whyclwt
2022-05-18 ab72c6e114d7c4e83564194367ba623ca23bf09d
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
#ifndef DATA_DEFINE_H
#define DATA_DEFINE_H
 
#include "app_define.h"
 
 
 
typedef struct __system_param_xml_
{
    quint8 dev_addr;
    quint16 save_time_interval; //数据保存间隔
 
    quint8 tcp_type;        //0-client 1-server
    quint16 server_port;
    QString server_ip;
 
}SYSTEM_PARAM_XML;
 
 
#pragma pack(1)
 
typedef struct __batt_pack_param_set_
{
    quint8 pack_type; //0-other  1-halo
    quint8 pack_devaddr;
    quint16 pack_errMask1;
    quint16 pack_errMask2;
 
    quint8 pack_Key[16]; //secret key
 
    quint8 reserved[10];
 
    quint16 crc16;
}PACK_PARAM;
 
typedef struct _dis_test_param_
{
    quint16 dis_time;
    quint16 dis_curr;
    quint16 dis_cap;
    quint16 sum_vol_low;
    quint16 cell_vol_low;
    quint16 dis_soc;
 
    //quint16 cell_vol_diff;
    //quint16 temp_high;
    //quint16 dis_constvol_EN; //放电恒压
    //quint16 dis_curr_end;
 
}DIS_TEST_PARAM;
 
typedef struct _chg_test_param_
{
    quint16 chg_time;
    quint16 chg_curr;
    quint16 chg_cap;
    quint16 sum_vol_high;
    quint16 cell_vol_high;
    quint16 chg_soc;
 
    //quint16 cell_vol_diff;
    //quint16 temp_high;
    //quint16 chg_constvol_EN; //放电恒压
    //quint16 chg_curr_end;
 
}CHG_TEST_PARAM;
 
typedef struct __test_param_
{
    //quint8  batt_packID[48];
 
    //quint16 batt_pack_type; //哈啰/小遛/美团.../其它
    //quint16 dev_addr;
    //quint16 batt_pack_addr;
 
    quint16 test_type;     //放电/充电
    quint16 union_test_EN; //是否组合测试
    //quint16 save_time_interval; //数据保存间隔
 
    quint16 cell_vol_diff;
    quint16 temp_high;
    quint16 constvol_EN; //恒压阶段:开启/禁止
    quint16 curr_end;    //恒压截止电流
 
    DIS_TEST_PARAM disParam;
    CHG_TEST_PARAM chgParam;
 
    quint16 crc16;
 
}TEST_PARAM;
 
typedef struct _pack_passthrough_state_
{
    quint8 execing;  //执行启动或停止中,禁止透传
    quint8 passing;  //透传中,禁止工作
 
}PASSTHROUGH_ST;
 
//============================================================================
 
typedef struct _icon_state_
{
    quint8 usbState;
    quint8 bleState;
    quint8 wifiState;
    quint8 slaveState;
 
}ICON_STATE;
 
typedef struct _ct_date_time_
{
    quint8 year;
    quint8 month;
    quint8 day;
    quint8 hour;
    quint8 minute;
    quint8 second;
 
}CT_DATE_TIME;
 
typedef struct _test_time_
{
    quint8 hour;
    quint8 minute;
    quint8 second;
 
}TEST_TIME;
 
typedef struct _test_state_data_tag_
{
    qint32  testCap;      //容量
    qint32  testCapPS;    //每秒容量
    TEST_TIME testTime;    //测试时间
 
    quint8  workState;    //状态
    quint8  alarmState;   //告警状态
    quint8  saveDataEn;   //保存数据使能位
 
    quint8  startState;   //启动状态:启动失败原因
 
}TEST_STATE_DATA;
 
//============================================================================
 
typedef struct _max_min_vol_
{
    quint16 max_vol_value;
    quint16 max_vol_index;
    quint16 min_vol_value;
    quint16 min_vol_index;
}CELL_MAX_MIN;
 
typedef struct _fbo_data_head_start_
{
    CT_DATE_TIME TestStartTime;            //放电开始的时间
    quint8 Device;                      //仪表类型
    quint8 DataVersion;                 //数据版本
    quint8 DataType;                    //数据类型;0xFD表示放电,0xFC表示充电
    quint8 HourRate;                    //小时率
    quint8 SaveInterval;                //采集间隔
    quint8 MonomerVol;                  //单体电压类型
    quint16 STDCap;                     //标称容量
    quint16 TestCur;                    //测试电流
    quint16 MVLLimit;                   //单体下限
    quint16 SumVLLimit;                 //组端下限
    quint16 BattSum;                    //单体数量
    quint16 BattGroup;                  //电池组数
    quint16 MVLLimitCount;              //单体下限个数
}FBO_DATA_HEAD_START;
 
typedef struct _fbo_data_head_stop_
{
    TEST_TIME TestTimeLong;         //测试时长
    quint8 StopType;                //结束方式
    quint8 BlockSum;                //保存数据的总块数
    quint8 StandBy;                 //保留备用
    quint16 SMaxIndex[4];           //最高单体索引
    quint16 SMinIndex[4];           //最低单体索引
    quint16 SMaxVol[4];             //最高单体
    quint16 SMinVol[4];             //最低单体
    quint16 TestCap;                //测试容量
}FBO_DATA_HEAD_STOP;
 
typedef struct _test_data_info_
{
    FBO_DATA_HEAD_START fbo_data_head_start;
    FBO_DATA_HEAD_STOP fbo_data_head_stop;
}TEST_DATA_INFO;
 
#define FBO_DATA_HEAD_START_LENTH  sizeof(FBO_DATA_HEAD_START)
#define FBO_DATA_HEAD_STOP_LENTH   sizeof(FBO_DATA_HEAD_STOP)
#define FBO_DATA_HEAD_INFO_LENTH   256
 
typedef struct _typetag_
{
    quint8 TypeTag0;
    quint8 TypeTag1;
    quint8 TypeTag2;
    quint8 TypeTag3;
}Data_Type;
 
#define    MONOMER_NUM_MAX          300 //单体总数
#define CELL_TEMP_NUM_MAX        100 //cell temp num max
 
typedef struct _fbo_data_
{
    Data_Type m_DataType;
    quint16   crc16;
    TEST_TIME m_TestTime;
    quint8  BattGroup;
    quint16 BattSum;
    quint16 OnlineVol;
    quint16 SumVoltage;
    quint16 SumCurrent;
    quint16 SubCurrent[4];
    quint16 AllCap;
    quint16 SubCap[4];
    quint16 SingleVol[MONOMER_NUM_MAX];
}FBO_DATA;
 
 
#pragma pack()
 
#endif // DATA_DEFINE_H