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
package com.fbs9100;
 
import java.nio.ByteBuffer;
 
public class FBS_ChargeState implements Cloneable
{
    private final int BYTE_LEN = 120;
    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 ChargeEN;                    //开始充电标识
    public int ChargeOverTime;                //充电过流超时
    public int LastCapTestAlarmRes;            //保留
 
    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 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    CRC;
 
    public FBS_ChargeState clone()
    {
        FBS_ChargeState obj = null;
        try
        {
            obj = (FBS_ChargeState)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());
        ChargeEN = FBS_ComBase.changeByteToInt(tmpbuf.get());
        ChargeOverTime = FBS_ComBase.changeByteToInt(tmpbuf.get());
        LastCapTestAlarmRes = FBS_ComBase.changeByteToInt(tmpbuf.get());
 
        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++)
            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;
 
        tmpbuf.compact();
        tmpbuf.flip();
 
        return true;
    }
}
/***************************************************************************************
 **************************** end of file (FBS_ChargeState) *****************************
 ***************************************************************************************/