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
package com.dev.ntm.cmd;
 
import java.nio.ByteBuffer;
 
import com.dev.bts.data.FBS9100_ComBase;
 
public class NTM_MonData {
    private final int BYTE_LEN = 16;
    private final int BATT_GROUP_MAX = 4;
    private final int BATT_MonCnt_MAX = 500;
    
    public int battgroup_cnt = 0;
    public int mon_cnt = 0;
    public double[] online_vol = new double[BATT_GROUP_MAX];
    public double[] group_vol = new double[BATT_GROUP_MAX];
    public double[] batt_curr = new double[BATT_GROUP_MAX];
    public int[] batt_stat = new int[BATT_GROUP_MAX];
    public double[] mon_vol = new double[BATT_MonCnt_MAX];
    public double[] mon_tmp = new double[BATT_MonCnt_MAX];
    public double[] mon_res = new double[BATT_MonCnt_MAX];
    
    public boolean putByteBuffer(final ByteBuffer bf, int mon_cnt_t) {
        if(bf.limit() < BYTE_LEN) {
            return false;
        }
        bf.position(0);
        
        mon_cnt = mon_cnt_t;
        
        for(int n=0; n<BATT_GROUP_MAX; n++) {
            group_vol[n] = FBS9100_ComBase.changeShortToDouble(bf.getShort()) / 10;
        }
        for(int n=0; n<BATT_GROUP_MAX; n++) {
            batt_curr[n] = FBS9100_ComBase.changeShortToDouble(bf.getShort()) / 10;
        }
        for(int n=0; n<BATT_GROUP_MAX; n++) {
            batt_stat[n] = FBS9100_ComBase.changeShortToInt(bf.getShort());
        }
        for(int n=0; n<BATT_GROUP_MAX; n++) {
            online_vol[n] = FBS9100_ComBase.changeShortToDouble(bf.getShort()) / 10;
        }
        
        int mon_cnt = mon_cnt_t;
        if(mon_cnt > BATT_MonCnt_MAX) {
            mon_cnt = BATT_MonCnt_MAX;
        }
        for(int n=0; n<mon_cnt; n++) {
            if(bf.remaining() >= 2) {
                mon_vol[n] = FBS9100_ComBase.changeShortToDouble(bf.getShort()) / 1000;
            }
        }
        
        return true;
    }
}