whyclj
2020-08-29 166f2f34ffed7ee9562eff02482ac6a3f7168bcd
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
131
package com.dev_fbs9600s.data;
 
import java.nio.ByteBuffer;
import java.util.Date;
 
import com.battmonitor.base.ComBase;
 
public class FBS9600S_SystemState {
    public static final int REGCOUNT = 26;        //¼Ä´æÆ÷ÊýÁ¿
    
    public int dev_id;
    public int dev_ip;
    
    public Date record_datetime;                //¼Ç¼ʱ¼ä
    public int work_state;                        //ϵͳ״̬
    
    public float dev_version;                    //ϵͳ°æ±¾(0.1)
    public int dev_state;                        //ϵͳ״̬0:³£¹æÄ£Ê½    1:ÄÚ×èģʽ    2:±àַģʽ
    public float group_vol;                        //×é¶Ëµçѹ(0.1)
    public float group_curr;                    //×é¶ËµçÁ÷(0.1)
    public int batt_state;                        //µç³Ø×´Ì¬  0:¸¡³ä        1:·Åµç        2:³äµç
    public int curr_dire;                        //µçÁ÷·½Ïò  0:³äµç        1:·Åµç
    public float avg_rippcurr;                    //ÎÆ²¨µçÁ÷¾ùÖµ(0.01)
    public float top_rippcurr;                    //ÎÆ²¨µçÁ÷ ·åÖµ(0.01)
    public int backup1;
    public int backup2;
    public int backup3;
    public int backup4;
    public int backup5;
    public int backup6;
    public int resTestCount;                    //ÄÚ×è²âÊÔ´ÎÊý
    public int resTestMethod;                    //ÄÚ×è²âÊÔ·½·¨    0:µ¥½Ú·Åµç·¨    1:¹ã²¥·Åµç·¨    2:¼²¨·¨
    public int backup7;
    public int backup8;
    public int backup9;
    public int backup10;
    public int backup11;
    public int backup12;
    public int backup13;
    public int backup14;
    public int backup15;
    public int backup16;
    
    
    public FBS9600S_SystemState clone() {
        FBS9600S_SystemState syState  = new FBS9600S_SystemState();
        
        syState.dev_id = this.dev_id;
        syState.dev_ip = this.dev_ip;
        syState.record_datetime = this.record_datetime;                //¼Ç¼ʱ¼ä
        syState.work_state = this.work_state;                        //ϵͳ״̬
        
        syState.dev_version = this.dev_version;                    //ϵͳ°æ±¾(0.1)
        syState.dev_state = this.dev_state;                        //ϵͳ״̬0:³£¹æÄ£Ê½    1:ÄÚ×èģʽ    2:±àַģʽ
        syState.group_vol = this.group_vol;                        //×é¶Ëµçѹ(0.1)
        syState.group_curr = this.group_curr;                    //×é¶ËµçÁ÷(0.1)
        syState.batt_state = this.batt_state;                        //µç³Ø×´Ì¬  0:¸¡³ä        1:·Åµç        2:³äµç
        syState.curr_dire = this.curr_dire;                        //µçÁ÷·½Ïò  0:³äµç        1:·Åµç
        syState.avg_rippcurr = this.avg_rippcurr;                    //ÎÆ²¨µçÁ÷¾ùÖµ(0.01)
        syState.top_rippcurr = this.top_rippcurr;                    //ÎÆ²¨µçÁ÷ ·åÖµ(0.01)
        syState.backup1 = this.backup1;
        syState.backup2 = this.backup2;
        syState.backup3 = this.backup3;
        syState.backup4 = this.backup4;
        syState.backup5 = this.backup5;
        syState.backup6 = this.backup6;
        syState.resTestCount = this.resTestCount;                    //ÄÚ×è²âÊÔ´ÎÊý
        syState.resTestMethod = this.resTestMethod;                    //ÄÚ×è²âÊÔ·½·¨    0:µ¥½Ú·Åµç·¨    1:¹ã²¥·Åµç·¨    2:¼²¨·¨
        syState.backup7 = this.backup7;
        syState.backup8 = this.backup8;
        syState.backup9 = this.backup9;
        syState.backup10 = this.backup10;
        syState.backup11 = this.backup11;
        syState.backup12 = this.backup12;
        syState.backup13 = this.backup13;
        syState.backup14 = this.backup14;
        syState.backup15 = this.backup15;
        syState.backup16 = this.backup16;
        return syState;
    }
    
    public boolean putByteBuffer(ByteBuffer bf) {
        if(bf.limit() < REGCOUNT*2) {
            return false;
        }
        record_datetime = new Date();
        ByteBuffer tmpbuf = bf;
        tmpbuf.position(0);
        
        dev_version = (float)ComBase.changeShortToDouble(tmpbuf.getShort())/10;            //ϵͳ°æ±¾
        dev_state = ComBase.changeShortToInt(tmpbuf.getShort());                        //ϵͳ״̬
        group_vol = (float)ComBase.changeShortToDouble(tmpbuf.getShort())/10;            //×é¶Ëµçѹ
        group_curr = (float)ComBase.changeShortToDouble(tmpbuf.getShort())/10;            //×é¶ËµçÁ÷
        batt_state = ComBase.changeShortToInt(tmpbuf.getShort());                        //µç³Ø×´Ì¬
        curr_dire = ComBase.changeShortToInt(tmpbuf.getShort());                        //µçÁ÷·½Ïò
        avg_rippcurr = (float)ComBase.changeShortToDouble(tmpbuf.getShort())/100;        //ÎÆ²¨µçÁ÷¾ùÖµ(0.01)
        top_rippcurr = (float)ComBase.changeShortToDouble(tmpbuf.getShort())/100;        //ÎÆ²¨µçÁ÷ ·åÖµ(0.01)
        
        backup1 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup2 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup3 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup4 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup5 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup6 = ComBase.changeShortToInt(tmpbuf.getShort());                
        resTestCount = ComBase.changeShortToInt(tmpbuf.getShort());                        //ÄÚ×è²âÊÔ´ÎÊý    
        resTestMethod = ComBase.changeShortToInt(tmpbuf.getShort());                    //ÄÚ×è²âÊÔ·½·¨
        backup7 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup8 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup9 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup10 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup11 = ComBase.changeShortToInt(tmpbuf.getShort());                
        backup12 = ComBase.changeShortToInt(tmpbuf.getShort());
        backup13 = ComBase.changeShortToInt(tmpbuf.getShort());
        backup14 = ComBase.changeShortToInt(tmpbuf.getShort());
        backup15 = ComBase.changeShortToInt(tmpbuf.getShort());
        backup16 = ComBase.changeShortToInt(tmpbuf.getShort());
        
        int ws_state = FBS9600S_ComBase.SYS_WORKSTATE_STOPPED;
        if(batt_state == FBS9600S_ComBase.BattState_Discharge) {
            ws_state = FBS9600S_ComBase.SYS_WORKSTATE_DISCHARGING;
        }
        if(batt_state == FBS9600S_ComBase.BattState_Charge) {
            ws_state = FBS9600S_ComBase.SYS_WORKSTATE_CHARGING;
        }
        if(dev_state == 1) {                //ÄÚ×è²âÊÔʱÏÔʾΪÔÚÏß¼à²â״̬
            ws_state = FBS9600S_ComBase.SYS_WORKSTATE_STOPPED;
        }
        work_state = ws_state;
        return true;
    }
}