#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