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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package com.dev.simpower.dev;
 
import java.nio.ByteBuffer;
 
import com.dev.bts.data.FBS9100_ComBase;
 
/**
 * Ö±Á÷ÅäµçÐÅÏ¢
 * @author DELL
 *
 */
public class Power_MU_DCData {
    public static final int REG_Count   = 56;            //¼Ä´æÆ÷ÊýÁ¿
    
    public static final int MAX_LOAD_COUNT = 12;
    
    public float dc_output_vol;                //Ö±Á÷Êä³öµçѹ            
    public float load_total_curr;            //¸ºÔØ×ܵçÁ÷            
    public float batt_total_curr;            //µç³Ø×ܵçÁ÷            
    public float batt_rest_cap;                //µç³Ø×éÊ£ÓàÈÝÁ¿
    public float batt_temp;                    //µç³Ø×éζÈ
    public float envir_temp1;                //»·¾³Î¶È1
    public float envir_temp2;                //»·¾³Î¶È2
    public float envir_humid;                //»·¾³Êª¶È
    public float load_total_power;            //¸ºÔØ×ܹ¦ÂÊ
    public float load_total_elect;            //¸ºÔØ×ܵçÁ¿
    public float load_curr[] = new float[MAX_LOAD_COUNT];        //¸ºÔØ1~12µçÁ÷
    public int dc_vol_st;                    //Ö±Á÷µçѹ״̬
    public int dc_thunder_st;                //Ö±Á÷·ÀÀ×״̬
    
    public int[] batt_fuse_st = new int[4];    //µç³Ø×éÈÛ˿״̬
    public int load_fuse_st;                //¸ºÔØÈÛ˿״̬
    public int batt_poweroff_st;            //µç³Ø×éϵç״̬
    public int batt_temp_st;                //µç³Ø×éζÈ״̬
    public int envir_temp1_st;                //»·¾³Î¶È1״̬
    public int envir_temp2_st;                //»·¾³Î¶È2״̬
    public int envir_humid_st;                //»·¾³Êª¶È״̬
    public int door_sensor_st;                //ÃÅ´Å״̬
    public int water_st;                    //Ë®½þ״̬
    public int smoke_st;                    //ÑÌÎí״̬
    public int[] din_st = new int[6];        //DIN״̬
    public int[] load_poweroff_st = new int[MAX_LOAD_COUNT];            //¸ºÔØ1~12ϵç״̬
    
    public DCParam dcParam;
    
    public class DCParam{
        public static final int REG_Count = 20;
        
        public float dc_overvol_coe;        //Ö±Á÷¹ýѹ¸æ¾¯µã(0.01V)
        public float dc_lessvol_coe;        //Ö±Á÷Ƿѹ¸æ¾¯µã(0.01V)
        public int batt_hightemp_coe;        //µç³Ø¸ßθ澯µã1¡æ
        public int batt_lowtemp_coe;        //µç³ØµÍθ澯µã1¡æ
        public int envir_hightemp_coe;        //»·¾³¸ßθ澯µã1¡æ
        public int envir_lowtemp_coe;        //»·¾³µÍθ澯µã1¡æ
        public int envir_highhumid_coe;        //»·¾³¸ßʪ¸æ¾¯µã1%
        public int envir_lowhumid_coe;        //»·¾³µÍʪ¸æ¾¯µã1%
        public float float_vol;                //¸¡³äµçѹ(0.01V)
        public float jun_vol;                //¾ù³äµçѹ(0.01V)
        public int batt_temp_coe;            //µç³ØÎ¶Ȳ¹³¥ÏµÊý(1mV/¡æ)
        public int batt_temp_core;            //µç³ØÎ¶Ȳ¹³¥ÖÐÐĵã(1¡æ)
        public float floattojun_coe;        //¸¡³äת¾ù³äϵÊý(0.01C)
        public float juntofloat_coe;        //¾ù³äת¸¡³äϵÊý(0.01C)
        public int batt_count;                //µç³Ø×é×éÊý
        public int batt_cap;                //µ¥×éµç³ØÈÝÁ¿(1AH)
        public float char_curr_limit;        //µç³Ø³äµçÏÞÁ÷(0.01C)
        public int load_poweroff_mode;        //¸ºÔØÏµçģʽ 0-µçѹ  1-ʱ¼ä  2-µçÁ¿
        public float batt_poweroff_vol;        //µç³Ø×éϵçµçѹ(0.01V)
        public float batt_poweron_vol;        //µç³Ø×éÉϵçµçѹ(0.01V)
        
        public boolean putDCParamByteBuffer(ByteBuffer bbf_rx) {
            if(bbf_rx.limit() < REG_Count*2) {
                return false;
            }
            bbf_rx.position(0);
            
            this.dc_overvol_coe = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;        //Ö±Á÷¹ýѹ¸æ¾¯µã(0.01V)
            this.dc_lessvol_coe = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;        //Ö±Á÷Ƿѹ¸æ¾¯µã(0.01V)
            this.batt_hightemp_coe = FBS9100_ComBase.changeSigleShortToInt(bbf_rx.getShort());            //µç³Ø¸ßθ澯µã1¡æ
            this.batt_lowtemp_coe = FBS9100_ComBase.changeSigleShortToInt(bbf_rx.getShort());            //µç³ØµÍθ澯µã1¡æ
            this.envir_hightemp_coe = FBS9100_ComBase.changeSigleShortToInt(bbf_rx.getShort());        //»·¾³¸ßθ澯µã1¡æ
            this.envir_lowtemp_coe = FBS9100_ComBase.changeSigleShortToInt(bbf_rx.getShort());        //»·¾³µÍθ澯µã1¡æ
            this.envir_highhumid_coe = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //»·¾³¸ßʪ¸æ¾¯µã1%
            this.envir_lowhumid_coe = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //»·¾³µÍʪ¸æ¾¯µã1%
            this.float_vol = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;                //¸¡³äµçѹ(0.01V)
            this.jun_vol = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;                //¾ù³äµçѹ(0.01V)
            this.batt_temp_coe = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //µç³ØÎ¶Ȳ¹³¥ÏµÊý(1mV/¡æ)
            this.batt_temp_core = FBS9100_ComBase.changeSigleShortToInt(bbf_rx.getShort());                //µç³ØÎ¶Ȳ¹³¥ÖÐÐĵã(1¡æ)
            this.floattojun_coe = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;        //¸¡³äת¾ù³äϵÊý(0.01C)
            this.juntofloat_coe = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;        //¾ù³äת¸¡³äϵÊý(0.01C)
            this.batt_count = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                    //µç³Ø×é×éÊý
            this.batt_cap = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                    //µ¥×éµç³ØÈÝÁ¿(1AH)
            this.char_curr_limit = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;        //µç³Ø³äµçÏÞÁ÷(0.01C)
            this.load_poweroff_mode = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //¸ºÔØÏµçģʽ 0-µçѹ  1-ʱ¼ä  2-µçÁ¿
            this.batt_poweroff_vol = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;        //µç³Ø×éϵçµçѹ(0.01V)
            this.batt_poweron_vol = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;        //µç³Ø×éÉϵçµçѹ(0.01V)
            //sysgate_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());
            return true;
        }
        
    }
 
 
    public Power_MU_DCData() {
        this.dcParam = new DCParam();
    }
    
    public boolean putByteBuffer(ByteBuffer bbf_rx) {
        if(bbf_rx.limit() < REG_Count*2) {
            return false;
        }
        bbf_rx.position(0);
        
        this.dc_output_vol = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;            //Ö±Á÷Êä³öµçѹ            
        this.load_total_curr = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/10;        //¸ºÔØ×ܵçÁ÷            
        this.batt_total_curr = FBS9100_ComBase.changeSigleShortToFloat(bbf_rx.getShort())/10;        //µç³Ø×ܵçÁ÷            
        this.batt_rest_cap = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/10;            //µç³Ø×éÊ£ÓàÈÝÁ¿
        this.batt_temp = FBS9100_ComBase.changeSigleShortToFloat(bbf_rx.getShort());            //µç³Ø×éζÈ
        this.envir_temp1 = FBS9100_ComBase.changeSigleShortToFloat(bbf_rx.getShort());            //»·¾³Î¶È1
        this.envir_temp2 = FBS9100_ComBase.changeSigleShortToFloat(bbf_rx.getShort());            //»·¾³Î¶È2
        this.envir_humid = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort());                //»·¾³Êª¶È
        this.load_total_power = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/100;        //¸ºÔØ×ܹ¦ÂÊ
        
        int elect_high = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());
        int elect_low = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());
        this.load_total_elect = (elect_high<<16 + elect_low)&0xFFFFFFFF;                        //¸ºÔØ×ܵçÁ¿
        
        for(int k =0;k<MAX_LOAD_COUNT;k++) {            
            this.load_curr[k] = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/10;        //¸ºÔØ1~12µçÁ÷
        }
        this.dc_vol_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                    //Ö±Á÷µçѹ״̬
        this.dc_thunder_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //Ö±Á÷·ÀÀ×״̬
        
        for(int k =0;k<batt_fuse_st.length;k++) {
            batt_fuse_st[k] = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //µç³Ø×éÈÛ˿״̬
        }
        this.load_fuse_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //¸ºÔØÈÛ˿״̬
        this.batt_poweroff_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //µç³Ø×éϵç״̬
        this.batt_temp_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //µç³Ø×éζÈ״̬
        this.envir_temp1_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //»·¾³Î¶È1״̬
        this.envir_temp2_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //»·¾³Î¶È2״̬
        this.envir_humid_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //»·¾³Êª¶È״̬
        this.door_sensor_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //ÃÅ´Å״̬
        this.water_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                    //Ë®½þ״̬
        this.smoke_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                    //ÑÌÎí״̬
        
        for(int k =0;k<din_st.length;k++) {
            din_st[k] = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());        //DIN״̬
        }
        for(int k =0;k<load_poweroff_st.length;k++) {            
            load_poweroff_st[k] = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //¸ºÔØ1~12ϵç״̬
        }    
        //sysgate_st = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());
        return true;
    }
    
    public boolean putDCParamByteBuffer(ByteBuffer bbf_rx) {
        return dcParam.putDCParamByteBuffer(bbf_rx);
    }
    
}