mxpopstar
2022-05-03 e75ef5f04f61aa5fbd89fd5c413dcee1819b7a91
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
package com.dev.bts.data;
 
import java.nio.ByteBuffer;
 
public class FBS9100S_NT_DCDC_Data {
    public final int DevDcDc_DataLen = 56;
    
    public double Vsys;                //¶Ë¿Úµçѹ*0.01
    public double Vout;                //DCDCÊä³öµçѹ*0.01
    public double Vbat;                //µç³Øµçѹ*0.01
    public double Iout;                //·ÅµçÊä³öµçÁ÷*0.01
    public double Ibuck;            //³äµçµçÁ÷*0.01
    public double Tmp_Dis;            //·ÅµçζÈ*1
    public double Tmp_Chr;            //³äµçζÈ*1
    public int SMR_Alarm1;
    public int SMR_Alarm2;
    public int Version;                //°æ±¾*0.01
    public int[] backup = new int[10];
    public int ModeSetComm;            //¹¤×÷ģʽÉ趨,£¨1=³äµç£¬2=·Åµç£©
    public int RunSetComm;            //Æô¶¯/Í£Ö¹,£¨1=Æô¶¯£¬ÆäËû=Í££©
    public double SetBuckI;            //³äµçµçÁ÷ÉèÖÃ*0.01
    public double SetDisVol;        //·ÅµçµçѹÉèÖÃ*0.01
    public double SetDisCurr;        //·ÅµçµçÁ÷ÉèÖÃ*0.01
    
    public int CommTxCnt;            //·¢ËͼÆÊý
    public int CommRxCnt;            //½ÓÊÕ¼ÆÊý
    public int CRC = 0;
    
    public FBS9100S_NT_DCDC_Data clone()
    {
        FBS9100S_NT_DCDC_Data obj = new FBS9100S_NT_DCDC_Data();  
        
        obj.Vsys = Vsys;
        obj.Vout = Vout;
        obj.Vbat = Vbat;
        obj.Iout = Iout;
        obj.Ibuck = Ibuck;
        obj.Tmp_Dis = Tmp_Dis;
        obj.Tmp_Chr = Tmp_Chr;
        obj.SMR_Alarm1 = SMR_Alarm1;
        obj.SMR_Alarm2 = SMR_Alarm2;
        obj.Version = Version;
        
        obj.backup = backup.clone();
        
        obj.ModeSetComm = ModeSetComm;
        obj.RunSetComm = RunSetComm;
        obj.SetBuckI = SetBuckI;
        obj.SetDisVol = SetDisVol;
        obj.SetDisCurr = SetDisCurr;
        obj.CommTxCnt = CommTxCnt;
        obj.CommRxCnt = CommRxCnt;
        obj.CRC = CRC;
        
        return obj;
    }
    
    public void copyData (FBS9100S_NT_DCDC_Data dcdc_data)
    {
        this.Vsys = dcdc_data.Vsys;
        this.Vout = dcdc_data.Vout;
        this.Vbat = dcdc_data.Vbat;
        this.Iout = dcdc_data.Iout;
        this.Ibuck = dcdc_data.Ibuck;
        this.Tmp_Dis = dcdc_data.Tmp_Dis;
        this.Tmp_Chr = dcdc_data.Tmp_Chr;
        this.SMR_Alarm1 = dcdc_data.SMR_Alarm1;
        this.SMR_Alarm2 = dcdc_data.SMR_Alarm2;
        this.Version = dcdc_data.Version;
        
        for(int n=0; n<this.backup.length; n++) {
            this.backup[n] = backup[n];
        }
        
        this.ModeSetComm = dcdc_data.ModeSetComm;
        this.RunSetComm = dcdc_data.RunSetComm;
        this.SetBuckI = dcdc_data.SetBuckI;
        this.SetDisVol = dcdc_data.SetDisVol;
        this.SetDisCurr = dcdc_data.SetDisCurr;
        this.CommTxCnt = dcdc_data.CommTxCnt;
        this.CommRxCnt = dcdc_data.CommRxCnt;
    }
    
    public boolean putByteBuffer(final ByteBuffer bf)
    {
        if(bf.limit() < DevDcDc_DataLen)
            return false;
        
        ByteBuffer tmpbuf = bf;
        int crc0 = tmpbuf.getShort(DevDcDc_DataLen-2) & 0xFFFF;
        int crc1 = FBS9100_Crc16.CalCRC16(tmpbuf, DevDcDc_DataLen-2);
        if(crc0 != crc1) {
            return false;
        }
        
        tmpbuf.position(0);
        Vsys = ((double)(tmpbuf.getShort()&0xFFFF))/100;
        Vout = ((double)(tmpbuf.getShort()&0xFFFF))/100;
        Vbat = ((double)(tmpbuf.getShort()&0xFFFF))/100;
        Iout = ((double)(tmpbuf.getShort()&0xFFFF))/100;
        Ibuck = ((double)(tmpbuf.getShort()&0xFFFF))/100;
        Tmp_Dis = ((double)(tmpbuf.getShort()&0xFFFF));
        Tmp_Chr = ((double)(tmpbuf.getShort()&0xFFFF));
        SMR_Alarm1 = tmpbuf.getShort()&0xFFFF;
        SMR_Alarm2 = tmpbuf.getShort()&0xFFFF;
        Version = tmpbuf.getShort()&0xFFFF;
        
        for(int n=0; n<backup.length; n++) {
            backup[n] = tmpbuf.getShort()&0xFFFF;
        }
        
        ModeSetComm = tmpbuf.getShort()&0xFFFF;
        RunSetComm = tmpbuf.getShort()&0xFFFF;
        SetBuckI = ((double)(tmpbuf.getShort()&0xFFFF))/100;
        SetDisVol = ((double)(tmpbuf.getShort()&0xFFFF))/100;
        SetDisCurr = ((double)(tmpbuf.getShort()&0xFFFF))/100;
        CommTxCnt = tmpbuf.getShort()&0xFFFF;
        CommRxCnt = tmpbuf.getShort()&0xFFFF;
        CRC = tmpbuf.getShort()&0xFFFF;
        
        tmpbuf.compact();
        tmpbuf.flip();
        
        return true;
    }
}