whyclj
2019-07-24 c9f8b9e09489e547734246140b4fd3635100fbb6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.fbs9100;
 
import java.nio.ByteBuffer;
 
public class FBS_CapState implements Cloneable
{
    private final int BYTE_LEN = 222;
    private final int BATTGROUP_COUNT = FBS_ComBase.BattGroupCountMax;
 
    public FBS_DateTime StartDT = new FBS_DateTime();                //启动放电的日期时间
    public FBS_DateTime StopDT = new FBS_DateTime();                //终止放电的日期时间
    public FBS_TestTime Test_Time = new FBS_TestTime();                //已测试时间(HMS)
 
    public int TestState;                                            //测试状态(停止/暂停/放电)
    public int TestType;                                            //测试类型(放电/充电)
    public int TestGroupNum;                                        //被测试电池组编号(1~4)
    public int SaveDataEN;                                            //保存数据标识
    public int BackUp;                                                //备份
    public int MonomerLowCount[] = new int[FBS_ComBase.BattGroupCountMax];    //每组已到单体下限数量
 
    public double TestCur[] = new double[FBS_ComBase.BattGroupCountMax];
    public double GroupVol[] = new double[FBS_ComBase.BattGroupCountMax];
    public double OnlineVol[] = new double[FBS_ComBase.BattGroupCountMax];
    public double TestCapInt[] = new double[FBS_ComBase.BattGroupCountMax];
    public double GroupCapInt[] = new double[FBS_ComBase.BattGroupCountMax];
    public double GroupRestCapInt[] = new double[FBS_ComBase.BattGroupCountMax];
    public int MonMaxNum[] = new int[FBS_ComBase.BattGroupCountMax];
    public int MonMinNum[] = new int[FBS_ComBase.BattGroupCountMax];
    public double MonMaxValue[] = new double[FBS_ComBase.BattGroupCountMax];
    public double MonMinValue[] = new double[FBS_ComBase.BattGroupCountMax];
 
    public int RestTest_Time[] = new int[FBS_ComBase.BattGroupCountMax];    //剩余容量可放电时间(HMS)
 
    public int    CRC;
 
    public FBS_CapState clone()
    {
        FBS_CapState obj = null;
        try
        {
            obj = (FBS_CapState)super.clone();
        }
        catch(CloneNotSupportedException e)
        {
            e.printStackTrace();
        }
        return obj;
    }
 
    public boolean putByteBuffer(final ByteBuffer bf)
    {
        if(bf.limit() != BYTE_LEN)
            return false;
 
        ByteBuffer tmpbuf = bf;
        int crc0 = tmpbuf.getShort(BYTE_LEN-2) & 0xFFFF;
        int crc1 = FBS_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2);
        if(crc0 != crc1)
            return false;
 
        tmpbuf.position(0);
        StartDT.year = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StartDT.month = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StartDT.day = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StartDT.hour = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StartDT.minute = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StartDT.second = FBS_ComBase.changeByteToInt(tmpbuf.get());
 
        StopDT.year = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StopDT.month = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StopDT.day = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StopDT.hour = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StopDT.minute = FBS_ComBase.changeByteToInt(tmpbuf.get());
        StopDT.second = FBS_ComBase.changeByteToInt(tmpbuf.get());
 
        Test_Time.hour = FBS_ComBase.changeByteToInt(tmpbuf.get());
        Test_Time.minute = FBS_ComBase.changeByteToInt(tmpbuf.get());
        Test_Time.second = FBS_ComBase.changeByteToInt(tmpbuf.get());
 
        TestState = FBS_ComBase.changeByteToInt(tmpbuf.get());
        TestType = FBS_ComBase.changeByteToInt(tmpbuf.get());
        TestGroupNum = FBS_ComBase.changeByteToInt(tmpbuf.get());
        SaveDataEN = FBS_ComBase.changeByteToInt(tmpbuf.get());
        BackUp = FBS_ComBase.changeByteToInt(tmpbuf.get());
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            MonomerLowCount[n] = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            TestCur[n] = FBS_ComBase.changeShortToDouble(tmpbuf.getShort()) / 10;
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            GroupVol[n] = FBS_ComBase.changeShortToDouble(tmpbuf.getShort()) / 10;
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            OnlineVol[n] = FBS_ComBase.changeShortToDouble(tmpbuf.getShort()) / 10;
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            TestCapInt[n] = FBS_ComBase.changeShortToDouble(tmpbuf.getShort());
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            GroupCapInt[n] = FBS_ComBase.changeShortToDouble(tmpbuf.getShort());
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            GroupRestCapInt[n] = FBS_ComBase.changeShortToDouble(tmpbuf.getShort());
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            MonMaxNum[n] = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            MonMinNum[n] = FBS_ComBase.changeShortToInt(tmpbuf.getShort());
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            MonMaxValue[n] = FBS_ComBase.changeShortToDouble(tmpbuf.getShort()) / 1000;
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            MonMinValue[n] = FBS_ComBase.changeShortToDouble(tmpbuf.getShort()) / 1000;
 
        for(int n=0; n<BATTGROUP_COUNT; n++)
            RestTest_Time[n] = tmpbuf.getInt();
 
        tmpbuf.compact();
        tmpbuf.flip();
 
        return true;
    }
}
/***************************************************************************************
 ****************************** end of file (FBS_CapState) ******************************
 ***************************************************************************************/