DELL
2024-05-21 b3c0ad2b00c503efaf2e8ef8ac930c8823c08324
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
package com.dev.simpower.dev;
 
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
 
import com.dev.bts.data.FBS9100_ComBase;
 
public class Power_Param {
 
    public static final int REG_Count                 = 7;            //ϵͳ²ÎÊý¼Ä´æÆ÷ÊýÁ¿
    public static final int REG_Count_Power         = 2;            //µçÔ´²ÎÊý¼Ä´æÆ÷ÊýÁ¿
 
    public static final int REG_Count_Time             = 6;            //µçԴʱ¼äУ׼¼Ä´æÆ÷ÊýÁ¿
    public static final int REG_Count_Regular         = 14;            //µçÔ´¶¨Ê±¿ØÖƼĴæÆ÷ÊýÁ¿
    
    
    public static final int Reg_Count_Control         = 1;            //ϵͳ²ÎÊý¼Ä´æÆ÷ÊýÁ¿
    
    
    public int dev_comm_addr;        //2000    É豸ͨÐŵØÖ·    ModbusÉ豸µØÖ·£¬1~250
    public int libms_count;            //2001    ï®µç³Ø°ü¸öÊý    1~4
    public int model_count;            //2002    µçÔ´Ä£¿é¸öÊý    1~4
    public float power_downvol;        //2003    µç³ØÏµçµçѹ    0.1V
    public int back_time;            //2004    Òº¾§ÆÁ±³¹âʱ¼ä    Min£¬15~99
    public int charcurr_limit;        //2005    ³äµçÏÞÁ÷        A
    public int back_control_en;        //2006    ±¸µç¿ØÖÆÊ¹ÄÜ    0-½ûÓñ¸µçʹÄÜ    1-ÆôÓñ¸µç¿ØÖÆÊ¹ÄÜ
 
    
    
    public float output_vol;        //2600    µçÔ´Êä³öµçѹÉ趨    0.1V
    public float output_curr;        //2601    µçÔ´Êä³öÏÞÁ÷µãÉ趨    A
    
    //¶ÁÈ¡
    public int dev_year;            //2800    Äê    0~100£¬Àý£º2024Ä꣬2024-2000=24
    public int dev_month;            //2801    Ô    
    public int dev_day;                //2802    ÈÕ    
    public int dev_hour;            //2803    Ê±    
    public int dev_minute;            //2804    ·Ö    
    public int dev_second;            //2805    Ãë    
 
    
    public boolean putByteBuffer(ByteBuffer bbf_rx) {
        if(bbf_rx.limit() < REG_Count*2) {
            return false;
        }
        bbf_rx.position(0);
        
        this.dev_comm_addr = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());        //2000    É豸ͨÐŵØÖ·    ModbusÉ豸µØÖ·£¬1~250
        this.libms_count = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //2001    ï®µç³Ø°ü¸öÊý    1~4
        this.model_count = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //2002    µçÔ´Ä£¿é¸öÊý    1~4
        this.power_downvol = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/10;    //2003    µç³ØÏµçµçѹ    0.1V
        this.back_time = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //2004    Òº¾§ÆÁ±³¹âʱ¼ä    Min£¬15~99
 
        
        this.charcurr_limit = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());        //2005    ³äµçÏÞÁ÷        A
        this.back_control_en = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());        //2006    ±¸µç¿ØÖÆÊ¹ÄÜ    0-½ûÓñ¸µçʹÄÜ    1-ÆôÓñ¸µç¿ØÖÆÊ¹ÄÜ
        //System.out.println(this);
        return true;
    }
    
    public boolean putPowerByteBuffer(ByteBuffer bbf_rx) {
        if(bbf_rx.limit() < REG_Count_Power*2) {
            return false;
        }
        bbf_rx.position(0);
        
        this.output_vol = FBS9100_ComBase.changeShortToFloat(bbf_rx.getShort())/10;        //2003    µç³ØÏµçµçѹ    0.1V
        this.output_curr = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //2004    Òº¾§ÆÁ±³¹âʱ¼ä    Min£¬15~99
 
        return true;
    }
 
    public boolean putTimeByteBuffer(ByteBuffer bbf_rx) {
        if(bbf_rx.limit() < REG_Count_Time*2) {
            return false;
        }
        bbf_rx.position(0);
        
        this.dev_year = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort()) + 2000;        //2800    Äê    0~100£¬Àý£º2024Ä꣬2024-2000=24
        this.dev_month = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //2801    Ô    
        this.dev_day = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());                //2802    ÈÕ    
        this.dev_hour = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //2803    Ê±    
        this.dev_minute = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //2804    ·Ö    
        this.dev_second = FBS9100_ComBase.changeShortToInt(bbf_rx.getShort());            //2805    Ãë    
        
        return true;
    }
    
    
    
    public ByteBuffer getByteBuffer() {
        ByteBuffer buffer = ByteBuffer.allocate(REG_Count*2);
        buffer.order(ByteOrder.BIG_ENDIAN);
        buffer.position(0);
        
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.dev_comm_addr));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.libms_count));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.model_count));
        buffer.putShort(FBS9100_ComBase.changeFloatToShort(this.power_downvol*10));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.back_time));
 
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.charcurr_limit));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.back_control_en));
        
        
        buffer.flip();
        return buffer;
    }
    
 
    public ByteBuffer getPowerByteBuffer() {
        ByteBuffer buffer = ByteBuffer.allocate(REG_Count_Power*2);
        buffer.order(ByteOrder.BIG_ENDIAN);
        buffer.position(0);
        
        buffer.putShort(FBS9100_ComBase.changeFloatToShort(this.output_vol*10));
        buffer.putShort(FBS9100_ComBase.changeFloatToShort(this.output_curr));
        
        buffer.flip();
        return buffer;
    }
    
    public ByteBuffer getTimeByteBuffer() {
        ByteBuffer buffer = ByteBuffer.allocate(REG_Count_Time*2);
        buffer.order(ByteOrder.BIG_ENDIAN);
        buffer.position(0);
        
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.dev_year - 2000));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.dev_month));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.dev_day));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.dev_hour));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.dev_minute));
        buffer.putShort(FBS9100_ComBase.changeIntToShort(this.dev_second));
        
        buffer.flip();
        return buffer;
    }
 
    
    @Override
    public String toString() {
        return "Power_Param [dev_comm_addr=" + dev_comm_addr + ", libms_count=" + libms_count + ", model_count="
                + model_count + ", power_downvol=" + power_downvol + ", back_time=" + back_time + ", output_vol="
                + output_vol + ", output_curr=" + output_curr + "]";
    }
 
}