Administrator
2021-11-26 0deb53a184ea4bb5ca6967b2d9342cb597b53ab2
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
package com.dev.btse.data;
 
import java.nio.ByteBuffer;
 
public class FBS9100S_LIBMS_AlarmState {
    
    public static final int TOTAL_BYTE_LEN = 162;        //½á¹¹Ìå×ܳ¤¶È            
    public static final int BYTE_LEN = 40;                //µ¥¸ö½á¹¹Ì峤¶È
        
    public static final int LiBMS_MONOMER_MAX = 16;
    public static final int    LiBMS_TEMP_MAX = 4;
    
    public int data_flag;
    public int pack_pos;                      //ÉÏλ»úÐèÒª»ñÈ¡µÄPACK×éλÖÃ
 
    public int monomer_cnt;                  //µ¥Ìåµç³ØÊýÁ¿
    public int monomer_vol_alarm[];
 
    public int temp_cnt;                    //µçоζÈÊýÁ¿
    public int monomer_temp_alarm[];
 
    public int env_temp_alarm;               //»·¾³Î¶È
    public int mos_temp_alarm;               //MOS¹ÜζÈ
 
    public int current_alarm;                //µçÁ÷
    public int sum_vol_alarm;               //×Üѹ
 
    public int user_def_cnt;                 //×Ô¶¨Ò叿¾¯ÊýÁ¿
 
    public int junheng_event_code;             //¾ùºâʼþ´úÂë
    public int vol_event_code;                 //µçѹʼþ´úÂë
    public int temp_event_code;               //ζÈʼþ´úÂë
    public int curr_event_code;                //µçÁ÷ʼþ´úÂë
 
    public int rest_cap_alarm;              //Ê£ÓàÈÝÁ¿¸æ¾¯
    public int fet_state_code;              //FET״̬´úÂë
    public int junheng_state_code;             //¾ùºâ״̬´úÂë
 
    public int sys_state_code;                 //ϵͳ״̬´úÂë
    public int reserved;                       //Ô¤Áô
    
    public FBS9100S_LIBMS_AlarmState() {
        monomer_vol_alarm = new int[LiBMS_MONOMER_MAX];
        monomer_temp_alarm = new int[LiBMS_TEMP_MAX];
    }
    
    
    /**
     *     ½«bytebufferÖеÄÊý¾ÝÈ¡³ö·ÅÈë¸Ã¶ÔÏóµÄÊôÐÔÖУ¬²¢·µ»ØÊÇ·ñÈ¡³ö³É¹¦
     * @param bf
     * @return
     */
    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 = FBS9100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2);
//        if(crc0 != crc1)
//            return false;
        
        tmpbuf.position(0);
        
        data_flag = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
        pack_pos = FBS9100_ComBase.changeByteToInt(tmpbuf.get());                     //ÉÏλ»úÐèÒª»ñÈ¡µÄPACK×éλÖÃ
 
        monomer_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get());                 //µ¥Ìåµç³ØÊýÁ¿
        for(int n = 0;n<monomer_vol_alarm.length;n++) {
            monomer_vol_alarm[n] = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
        }
        
        temp_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get());                   //µçоζÈÊýÁ¿
        for(int n = 0;n<monomer_temp_alarm.length;n++) {
            monomer_temp_alarm[n] = FBS9100_ComBase.changeByteToInt(tmpbuf.get());
        }
        
        env_temp_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get());;               //»·¾³Î¶È
        mos_temp_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get());;               //MOS¹ÜζÈ
 
        current_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get());                //µçÁ÷
        sum_vol_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get());               //×Üѹ
        
        user_def_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get());                //×Ô¶¨Ò叿¾¯ÊýÁ¿
 
        junheng_event_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get());         //¾ùºâʼþ´úÂë
        vol_event_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get());             //µçѹʼþ´úÂë
        temp_event_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get());               //ζÈʼþ´úÂë
        curr_event_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get());            //µçÁ÷ʼþ´úÂë
 
        rest_cap_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get());              //Ê£ÓàÈÝÁ¿¸æ¾¯
        fet_state_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get());              //FET״̬´úÂë
        junheng_state_code = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort());     //¾ùºâ״̬´úÂë
 
        sys_state_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get());             //ϵͳ״̬´úÂë
        reserved = FBS9100_ComBase.changeByteToInt(tmpbuf.get());                   //Ô¤Áô
        
        tmpbuf.compact();
        tmpbuf.flip();
        return true;
    }
}