Ubuntu12.04.4_lts
2023-08-01 961efe36f62f7eba688d504ec0cdf3e1daa4dd74
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
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
#ifndef DATA_DEFINE_H
#define DATA_DEFINE_H
 
#include "app_define.h"
 
#define MB_Caption          "Message"
#define File_Dir            "Data_files"
#define Default_Battery     "Default_Battery"
#define MaxDataNum          2000
 
#define  DISCHARGE_CURRENT  0
#define  DISCHARGE_POWER    1
 
#define OFFline_working     0
#define ONline_working      1
 
#define ACOFF_STOP          0//停止
#define ACOFF_CONTINUE      1//继续
 
#if __arm__
#define SOFT_ARM
#endif
 
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
#define SOFT_ARM_QT4
#endif
 
#define      RS485CommPort     "/dev/ttymxc1"
#define      PCCommPort        "/dev/ttymxc2"
 
#define   WiredMonCommPort  "/dev/ttymxc5"
#if mon_use_type == 0
#define      Module905Com     ""
#define      LORACOM        ""
#elif mon_use_type == 1
#define      Module905Com     "/dev/ttymxc4"
#define      LORACOM        ""
#elif mon_use_type == 2
#ifdef SOFT_ARM
#define      LORACOM     "/dev/ttymxc4"
#define      Module905Com     ""
#else
#define      LORACOM     "/dev/ttyUSB0"
#define   Module905Com ""
#endif
#endif
 
#ifdef SOFT_ARM
//const QString dataDir = "/media/mmcblk0p1/";
const QString dataDir = "/var/ftp/pub/USER_DATA/";
#else
const QString dataDir = "../Data/";
 
#endif
 
const QString setmonFile = dataDir+"setmon.xml"; //单体模块配置文件
 
const QString logoFile = dataDir+"logo.xml"; //开机界面
const QString usbDir = "/mnt/usb/";
const QString adjFile = dataDir+"adj_param.xml"; //校准参数
const QString sysFile = dataDir+"sys_param.xml"; //系统参数
const QString appVersion = "5.6.";       //主板版本号
const QString coreFile = "/app/fsVersion.txt";//核心板版本号文件
const QString configFile = "log_configfile.txt";//日志文件
 
#if TYPE_IDCE_6003
const QString dateVersion = ".6003";
const QString paramFile = "/param6003.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-6003NT,V1.0.0";
#elif TYPE_IDCE_6006
const QString dateVersion = ".6006";
const QString paramFile = "/param6006.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-6006NT,V1.0.0";
#elif TYPE_IDCE_60010
const QString dateVersion = ".60010";
const QString paramFile = "/param60010.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-60010NT,V1.0.0";
#elif TYPE_FBO_60010
const QString dateVersion = ".60010";
const QString paramFile = "/param60010.xml";
const QString phoneVersion = "FBO-Discharger,FBO-60010NT,V1.0.0";
#elif TYPE_FBO_6003
const QString dateVersion = ".6003";
const QString paramFile = "/param6003.xml";
const QString phoneVersion = "FBO-Discharger,FBO-6003NT,V1.0.0";
#elif TYPE_FBO_6006
const QString dateVersion = ".6006";
const QString paramFile = "/param6006.xml";
const QString phoneVersion = "FBO-Discharger,FBO-6006NT,V1.0.0";
#elif TYPE_IDCE_2415
const QString dateVersion = ".2415";
const QString paramFile = "/param2415.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-2415NT,V1.0.0";
#elif TYPE_IDCE_1110
const QString dateVersion = ".1110";
const QString paramFile = "/param1110.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-1110NT,V1.0.0";
#elif TYPE_IDCE_1230
const QString dateVersion = ".1230";
const QString paramFile = "/param1230.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-1230NT,V1.0.0";
#elif TYPE_IDCE_2206
const QString dateVersion = ".2206";
const QString paramFile = "/param2206.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-2206NT,V1.0.0";
#elif TYPE_FBO_2206
const QString dateVersion = ".2206";
const QString paramFile = "/param2206.xml";
const QString phoneVersion = "FBO-Discharger,FBO-2206NT,V1.0.0";
#elif TYPE_IDCE_2230
const QString dateVersion = ".2230";
const QString paramFile = "/param2230.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-2230NT,V1.0.0";
#elif TYPE_IDCE_2220
const QString dateVersion = ".2220";
const QString paramFile = "/param2220.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-2220NT,V1.0.0";
#elif TYPE_IDCE_4815MINI
const QString dateVersion = ".4815mini";
const QString paramFile = "/param4815mini.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-4815NT,V1.0.0";
#elif TYPE_IDCE_4815
const QString dateVersion = ".4815";
const QString paramFile = "/param4815.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-4815NT,V1.0.0";
#elif TYPE_IDCE_4830
const QString dateVersion = ".4830";
const QString paramFile = "/param4830.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-4830NT,V1.0.0";
#elif TYPE_IDCE_4850
const QString dateVersion = ".4850";
const QString paramFile = "/param4850.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-4850NT,V1.0.0";
#elif TYPE_FBO_4830
const QString dateVersion = ".4830";
const QString paramFile = "/param4830.xml";
const QString phoneVersion = "FBO-Discharger,FBO-4830NT,V1.0.0";
#elif TYPE_FBO_4850
const QString dateVersion = ".4850";
const QString paramFile = "/param4850.xml";
const QString phoneVersion = "FBO-Discharger,FBO-4850NT,V1.0.0";
#elif TYPE_FBO_2210 || TYPE_IDCE_2210
const QString dateVersion = ".2210";
const QString paramFile = "/param2210.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-2210NT,V1.0.0";
#elif TYPE_FBO_2415
const QString dateVersion = ".2415";
const QString paramFile = "/param2415.xml";
const QString phoneVersion = "FBO-Discharger,FBO-2415NT,V1.0.0";
#elif TYPE_FBO_4815
const QString dateVersion = ".4815";
const QString paramFile = "/param4815.xml";
const QString phoneVersion = "FBO-Discharger,FBO-4815NT,V1.0.0";
#elif TYPE_FBI_4548
const QString dateVersion = ".4548";
const QString paramFile = "/param4548.xml";
const QString phoneVersion = "FBI-Discharger,FBI-4548NT,V1.0.0";
#elif TYPE_FBI_10480
const QString dateVersion = ".10480";
const QString paramFile = "/param10480.xml";
const QString phoneVersion = "FBI-Discharger,FBI-10480NT,V1.0.0";
#elif TYPE_FBI_20240
const QString dateVersion = ".20240";
const QString paramFile = "/param20240.xml";
const QString phoneVersion = "FBI-Discharger,FBI-20240NT,V1.0.0";
#elif TYPE_IDCE_940
const QString dateVersion = ".940";
const QString paramFile = "/param940.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-940NT,V1.0.0";
#elif TYPE_IDCE_840
const QString dateVersion = ".840";
const QString paramFile = "/param840.xml";
const QString phoneVersion = "IDCE-Discharger,IDCE-840NT,V1.0.0";
#endif
 
const QString dataType = "*.FBO";
const QString newestPNameFile = dataDir+"newest_pname.xml";
const QString F1223P_File = usbDir+"F1223P_APP.bin";
const QString update_cfg = usbDir+"update.cfg";
 
typedef struct _welcome_logo_
{
    bool     LOGOEN;            //图标显示
    QString  ModelLogo;         //型号
    QString  MachineName;       //机器名称
    QString  CompanyCName;       //公司名称
    QString  CompanyEName;       //公司英文名
 
}WELCOME_LOGO;
 
//-----------------sum data------------------------------
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 _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;
 
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;
 
typedef struct _icon_state_
{
    bool monomerState;
    bool usbState;
    bool wifiState;
}ICON_STATE;
 
//-----------------param---------------------------------
typedef struct _test_param_xml_tag_
{
    quint16 test_mode;  //在线 离线
    quint16 acstop_op;
    quint16 nominal_cap;
    quint16 hourly_rate;
    quint16 preset_cur;
    quint16 preset_cap;
    quint16 preset_time;
    quint16 mon_lower;
    quint16 group_lower;
    quint16 mon_number;
    quint16 group_number;
    quint16 lower_number;
    quint16 mon_vol;
    quint16 booster_ceiling;    //升压上限
    quint16 charge_limit;       //充电限流
    quint16 temp_High;
    quint16 onlinevol_lowlimit;
 
    quint16 discharge_mode;//恒流 恒功率
    quint16 preset_power;
}TEST_PARAM_XML;
 
typedef struct _sys_param_tag_
{
    quint16 save_interval;
    quint16 monomerlow_act;
    quint16 monomer_order;
    quint16 monomer_addrset;
    quint16 monomer_fre;
    quint16 loader_plusEn;
    quint8 tcp_ip[4];
    quint16 tcp_port;
 
    qint16  OnlineOffVol;
    qint16  GroupOffVol;
}SYS_PARAM;
 
typedef struct _adj_param_
{
    double onlinevol_slope;
    double groupvol_slope;
    double temp_slope;
}ADJ_PARAM_XML;
 
//-------------------sysinfo---------------------------------
typedef struct _sys_info_config_tag_
{
    quint16 InnerCurrRange;    //内部电流钳量程
    quint16 ExterCurrRange;    //外部电流钳量程
    quint16 MashineCurr;       //机器电流
    quint16 DCDC_Count;           //DCDC模块个数
    quint16 Mashine_Type;       //机器类型(0-IDCE,1-FBO,2-FBI)
 
    quint16 MashinePower;       //机器功率
    quint16 TKQenable;         //脱扣器使能 用于显示 1启用 0禁用
 
}SYS_CONFIG;
 
 
//-----------------others---------------------------------
typedef struct _sys_state_tag
{
    bool  SaveDataEN;
    quint8  TestType;
    quint8  SysWorkState;
    quint8  WP_AlarmState;
    quint16  CapPS;         //每秒累加的容量
    quint16  SubCapPS[4];   //每秒累加的容量
    quint8   OnlineVollow;  //在线电压状态
    quint16  OverChargeTime;//
    quint16  addmark;// 专门用于FBO-4830充电规则3、7
    quint16  addcount;//专门用于FBO-4830充电规则3、7
}SYS_State;
 
typedef struct _mon_table_
{
    int monPageIndex;   //当前单体页数
    int monGroupIndex;  //当前单体组数
    int monPageNum;     //每组单体页数
    int monGroupNum;    //单体组数
    int monNum;         //每组单体个数
    int pageIndex;      //页数索引(不区分组数时)
}MON_TABLE;
 
typedef struct _TEST_DATA_
{
    quint16  OnlineVol;    //在线电压
    quint16  GroupVol;     //组端电压
    CT_DATE_TIME CurrTime;
    TEST_TIME testtime;
    quint8 KeyState;
    quint16 monomerCount;
    quint16 curr_cur;
    quint16 AllCap;
    quint16  SMaxIndex;
    quint16  SMaxVol;
    quint16  SMinIndex;
    quint16  SMinVol;
    quint16  dischgTimes;
    quint8  HighTemp;
    quint8  LowTTemp;
 
    quint8  reserved[16];
}TEST_DATA;
 
typedef struct _ADJ_DATA_
{
    quint16 OnlineVol;
    quint16 GroupVol;
    quint16 dis_cur;
    quint16 chr_cur;
    quint16 out_cur;
}ADJ_DATA;
 
typedef struct _FILE_LIST_DATA_
{
    quint8 TotalFileNum;
    quint8 CurrFileIndex;
    CT_DATE_TIME TestStartTime;
    TEST_TIME TestTimeLong;
    quint8 DataType;
    quint16 TestCur;
    quint16 TestCap;
    quint16 STDCap;
    quint16 MVLLimit;
    quint16 SumVLLimit;
    quint16 BattSum;
    quint16 BattGroup;
    quint8 StopType;
    quint8 MonomerVol;
}FILE_LIST_DATA;
 
typedef struct _mon_data_
{
    quint16 GroupVol[4];
    quint16 GroupCur[4];
    quint16 BattStatus[4];
    quint16 reserved[4];
    quint16 MonomerVol[MONOMER_NUM_MAX];
}MON_DATA;
 
typedef struct _slave_tcp_
{
    quint8 ID;
    quint8 mode;//0服务端 1//客户端
    quint8 heart_cnt;
    quint8 Enter_ctrl;
 
}TCP_CTRL;
 
typedef struct _MASTER_DATA_
{
    quint8 heart_cnt;
    quint8 Interface;
    quint8 workState;
    quint8 Alarm;
    quint8 Enter_ctrl;
    MON_DATA Cell_data;
    TEST_DATA test_data;
    ADJ_DATA adj_data;
}MASTER_DATA;
 
typedef struct _slave_rs485_
{
    quint8 heart_cnt;
    quint8 Enter_ctrl;
}RS485_SLAVE_CTRL;
 
typedef struct _dcdc_data
{
    quint16 DC_Alarm;
    quint16 DC_Cur;
    quint16 DC_Vol;
    quint16 TX;
    quint16 RX;
}DCDC_DATA;
 
typedef struct _local_data_
{
    quint16  SoftVersion; //软件版本
    quint16  OnlineVol;    //在线电压
    quint16  GroupVol;     //组端电压
    quint16  InnerCurrVal;    //内部电流值
    quint16  InnerCurrDir;      //内部电流方向
    quint16  ExterCurrVal;      //外部电流值
    quint16  ExterCurrDir;      //外部电流方向
    quint16  Temp;              //温度
 
    quint16  AlarmState;        //告警状态
 
    quint16  RLY_OK;            //ROK状态
 
    quint16  PWM1_Value;        //PWM1值
    quint16  PWM2_Value;        //PWM2值
    quint16  PWM3_Value;        //PWM3值
 
    quint16  ModuleDropIndex;   //XX号单体模块异常
 
    quint16  Reserved[7];       //Reserved
 
    quint16  Work_State;       //运行状态 用于停电\黑屏区分
 
    quint16  SMaxIndex[4];      //最高单体索引
    quint16  SMinIndex[4];      //最低单体索引
    quint16  SMaxVol[4];        //最高单体
    quint16  SMinVol[4];        //最低单体
 
    DCDC_DATA dcdc_data[4];     //DCDC模块数据
 
    quint16  monomerLowCount;
 
    quint8   SysWorkState;
    quint8   WPAlarmState;
 
    quint16  SingleRemainCap[MONOMER_NUM_MAX]; //单体剩余容量
    quint16  GroupRemainCap[4];  //整组剩余容量
    quint16  SingleRes[MONOMER_NUM_MAX];  //单体内阻
 
    /*
    1:启动放电/充电时,都置为0;从参数界面进去都置为0;
    2:内阻值是变动的,放电时有内阻值,每2个相近时段计算出一个内阻值;
    */
    MASTER_DATA master_data;
    TCP_CTRL tcp_ctrl;
    RS485_SLAVE_CTRL rs485_ctrl;
    RS485_SLAVE_CTRL rs485_pc;
    quint8   TestType;
    quint8   deviceTestType;
    quint8   pauseBtnState;
    quint8   SlaveMode;
    quint8   Interface;
    quint8   popBox;
    quint8   dischgTimes;
    quint16  waitTimeCount;
 
}LOCAL_DATA;
 
typedef struct _comm_test_param_tag_
{
    quint16 test_mode;              //放电模式 在线 离线
    quint16 acstop_op;              //停电处理
    quint16 nominal_cap;            ////标称容量 范围0-9999AH
    quint16 hourly_rate;            //小时率
    quint16 preset_cur;             //放电电流, 范围1-150A
    quint16 preset_cap;             //放电容量 范围0-9999AH
    quint16 preset_time;            //预放时间 分钟单位,没用限定范围
    quint16 mon_lower;              //单体下限 分辨率0.01,范围0-20V
    quint16 group_lower;            //组端下限 分辨率0.1,范围1-285V
    quint16 mon_number;             //单体数量 1-300
    quint16 group_number;            //组数 不可设值,目前为1
    quint16 lower_number;            //下限个数 范围1至单体总数
    quint16 mon_vol;                //只取值1.2, 2.0,6.0,12.0,3.2,3.7
 
    quint16 dischg_mode; //放电模式:0恒流放电         1恒功率放电
    quint16 pre_power;   //预放功率      范围0-7.5kw
    quint16 pre_res;    //放电阻值
 
    quint16 chrg_curr;   //充电电流//范围1-100A
    quint16 chrg_vol;    //充电电压//范围1-285V
    quint16 chrg_vol_2;  //浮充电压//范围小于充电电压
    quint16 chrg_cap;    //充电容量
    quint16 chrg_time;   //充电时长  范围没有限制
    quint16 chrg_time_2;   //浮充时长  范围没有限制
    quint16 chrg_stopcurr; //截止电流        小于充电电流
    quint16 grp_uppervol;   //组端上限    不可设置,比充电电压大5V
    quint16 mon_uppervol;  //单体上限    分辨率0.01,范围0-16V
    quint16 mon_uppernum;  //单体上限数量        范围大于0,小于单体总数
 
    quint16 chrg_temp;     //充电过温
    quint16 dischrg_temp;     //放电过温
 
    quint16 cycle_start;   //活化起点 0放电 ,1充电
    quint16 cycle_times;   //活化次数    1-50次
    quint16 waitdis_time;  //充完静置    0-500分钟
    quint16 waitchr_time;  //放完静置    0-500分钟
 
    quint16  Reserved[10];//预留
 
}COMM_TEST_PARAM;
 
 
typedef struct RFData_tag
{
    quint8 Addr[4];
    quint16 CMD;
    quint16 VolData[4];
    quint16 CRC;
}RFData;
typedef struct Rx_Data
{
    quint16 Addr;
    quint16 VolData[4];
}Rx_Data_RF;
 
#pragma pack(1)
typedef struct _FRAME_DATA_
{
    quint32 SYNCode;
    quint16 Len;
    quint16 CMD;
    quint8 RecState;    //RTN
    quint8 type;        //Cid1
    quint8 workState;   //Cid2
    quint8 Alarm;
    quint8 Db1;       //预留
    quint8 Db2;
    quint8 Db3;
    quint8 Db4;
    quint16 CRC;
    quint8 info[1056];
}FRAME_DATA;
#pragma pack()
#endif // DATA_DEFINE_H