/***************************************************************************** * @copyright Copyright (c) 2025-2055 Gary. All rights reserved. * @file kit_data.h * @brief 所有的数据类型定义以及 * @author Gary * @date 2024-09-03 * @remark *****************************************************************************/ #ifndef KIT_DATA_H #define KIT_DATA_H #include #include #include #include #include #include #include #define MAX_CODE_BUF_LEN 50 // 编号最大长度 #define MAX_NAME_BUF_LEN 100 // 名称最大长度 #define MAX_ADDR_BUF_LEN 200 // 地址最大长度 #define MAX_CONFIG_CONTENT_LEN 1200 // 协议配置内容最大长度 #define MAX_DEV_POINT_NUM_LEN 3000 // 同一设备下点位数组的最大长度 #define MAX_POINT_ID_LEN 100 // 点位Id最大长度 #define MAX_POINT_NAME_LEN 100 // 点位名称最大长度 #define MAX_POINT_VALUE_LEN 255 // 点位初始化值最大长度 #define MAX_POINT_ADDR_LEN 255 // 点位地址最大长度 #define MAX_DEV_POINT_MAP_LEND 500 // 协议整合设备数组 #define MAX_CLIENT_ID_LEN 50 // mqtt客户端Id最大长度 #define MAX_MQTT_USERNAME_LEN 50 // mqtt用户名最大长度 #define MAX_MQTT_PASSWORD_LEN 50 // mqtt密码最大长度 #define MAX_TOPIC_LEN 150 // mqtt主题最大长度 #define MAX_CERT_LEN 3000 // mqtt证书最大长度 #define MAX_IP_LEN 32 // ip地址最大长度 #define MAX_JSON_STR_LEN 10240 // JSON的Str最大长度 #define MAX_EXE_COUNT 86400 // 存储间隔最大个数 #define PATH_MAX_SIZE 128 // 地址最大长度 #define MAX_ADDR_LEN 255 // 串口地址最大长度 #define MAX_PV_DATE_LEN 6 // 削峰填谷日期最大长度 #define MAX_KEY_LEN 50 // 高级设置key最大长度 #define MAX_VALUE_LEN 100 // 高级设置value最大长度 #define MAX_UPGRADE_VERSION_LEN 10 // EMS升级版本最大长度 #define MAX_UPGRADE_PATH_LEN 200 // EMS升级包路径最大长度 #define MAX_UPGRADE_ERR_MSG_LEN 1000// EMS升级报错最大长度 // 模板类型类型枚举 typedef enum { kTemplate_Type_Start = 0, // 起始值 kTemplate_Type_Device = kTemplate_Type_Start, // 设备配置 kTemplate_Type_North, // 北向配置 kTemplate_Type_End // 结束值 } template_type_e; // 数据传输类型 // EMS设备配置类型枚举 typedef enum { kEms_Config_Start = 0, // 起始值 kEms_Config_Uart = kEms_Config_Start, // EMS的串口配置 kEms_Config_Net, // EMS的网口配置 kEms_Config_DI, // EMS的DI配置 kEms_Config_DO, // EMS的DO配置 kEms_Config_Wifi, // EMS的Wifi配置 kEms_Config_4G, // EMS的4G配置 kEms_Config_Rtc, // EMS的对时配置 kEms_Config_End // 结束值 } ems_dev_config_type_e; // 数据传输类型 // 点位配置的落库间隔 typedef enum { kStorage_Interval_1s = 1000, // 1秒 kStorage_Interval_2s = 2000, // 2秒 kStorage_Interval_3s = 3000, // 3秒 kStorage_Interval_4s = 4000, // 4秒 kStorage_Interval_5s = 5000, // 5秒 kStorage_Interval_6s = 6000, // 6秒 kStorage_Interval_7s = 7000, // 7秒 kStorage_Interval_8s = 8000, // 8秒 kStorage_Interval_9s = 9000, // 9秒 kStorage_Interval_10s = 10000, // 10秒 kStorage_Interval_15s = 15000, // 15秒 kStorage_Interval_20s = 20000, // 20秒 kStorage_Interval_30s = 30000, // 30秒 } storage_interval_type_e; // 点位配置的数据类型枚举 typedef enum { Data_Type_Start = 0, Uint8 = Data_Type_Start, //=0 无符号8位整形 Int8, //=1 有符号8位整形 Uint16, //=2 无符号16位整形 Int16, //=3 有符号16位整形 Uint32, //=4 无符号32位整形 Int32, //=5 有符号32位整形 Float32, //=6 32位单精度浮点数 Uint64, //=7 无符号64位整形 Int64, //=8 有符号64位整形 Float64, //=9 64位双精度浮点数 Data_Type_End } data_type_e; // 数据传输类型 // 点位配置的分组枚举 typedef enum { kPoint_Group_Type_Start = 0, // 开始值 kPoint_YX = kPoint_Group_Type_Start, // 遥信 kPoint_YC, // 遥测 kPoint_YK, // 遥控 kPoint_YT, // 遥调 kPoint_LS, // 设置 kPoint_YM, // 遥脉 kPoint_SOE, // 故障 kPoint_Group_Type_End // 结束值 } point_group_type_e; // 数据传输类型 // 点位配置的读写特性枚举 typedef enum { kPoint_Atrribute_Start = 0, // 开始值 kPoint_Read_Only = kPoint_Atrribute_Start, // 只读 kPoint_Write_Only, // 只写 kPoint_Read_Write, // 读写 kPoint_Static, // 静态 kPoint_Atrribute_End // 结束值 } point_attribute_e; // 数据传输类型 // 大小端类型枚举 typedef enum { E_AB, // 大端模式 E_BA, // 小端模式 E_ABCD, // 大端模式 E_CDAB, // 小端字、大端字节 E_BADC, // 大端字、小端字节 E_DCBA, // 小端模式 E_ABCDEFGH, // 大端模式 E_GHEFCDAB, // 小端字、大端字节 E_BADCFEHG, // 大端字、小端字节 E_HGFEDCBA // 小端模式 } data_endian_e; typedef enum { kSign_Share_Start = 0, kSign_ShMem = kSign_Share_Start, kSign_Redis, kSign_MQ, // 消息队列 kSign_Share_End } sign_share_type_e; // 实时库类型 typedef enum { E_STATUS_OK = 0, E_STATUS_ERROR = 1, } status_e; // 返回状态类型 // 主站通讯协议类型枚举 typedef enum { kProto_Master_Start = 0, // 起始值 kProto_ModbusTCP_Master, // Modbus TCP 主站 kProto_ModbusRTU_Master, // Modbus RTU 主站 kProto_DLT645TCP_Master, // DLT645 TCP 主站 kProto_IEC104_Master, // IEC 104 主站 kProto_IEC61850_Master, // IEC 61850 主站 kProto_CANbus_Master, // CANbus 主站 kProto_DLT645RTU_Master, // DLT645 RTU 主站 kProto_DI_Master, // DI 主站 kProto_DO_Master, // DO 主站 kProto_Master_End // 结束值 } protocol_type_master_e; // 从站通讯协议类型枚举 typedef enum { kProto_Slave_Start = 0, // 起始值 kProto_ModbusTCP_Slave, // Modbus TCP 从站 kProto_ModbusRTU_Slave, // Modbus RTU 从站 kProto_DLT645TCP_Slave, // DLT645 TCP 从站 kProto_IEC104_Slave, // IEC 104 从站 kProto_IEC61850_Slave, // IEC 61850 从站 kProto_CANbus_Slave, // CANbus 从站 kProto_DLT645RTU_Slave, // DLT645 RTU 从站 kProto_DI_Slave, // DI 从站 kProto_DO_Slave, // DO 从站 kProto_MQTT_Slave, // MQTT kProto_Slave_End // 结束值 } protocol_type_slave_e; // 上报下发点位配置类型枚举 typedef enum { kUp_Dis_Cfg_Type_Start = 0, // 起始值 kUp_Dis_Cfg_Type_Up = kUp_Dis_Cfg_Type_Start, // 上报点位配置 kUp_Dis_Cfg_Type_Dis_Point, // 下发点位配置 kUp_Dis_Cfg_Type_End } up_dis_config_type_e; // 拓扑节点类型枚举 typedef enum { kMenu_Tree_Start = 0, // 起始值 kMenu_Tree_Virtual = kMenu_Tree_Start, // 虚拟节点 kMenu_Tree_Device, // 设备节点 kMenu_Tree_End } menu_tree_e; // Modbus功能码枚举定义 typedef enum { kModbus_Func_Start = 0, // 开始值 kModbus_F01_Read_Coil = 0x01, // 读取线圈寄存器 kModbus_F02_Read_Discrete_Input = 0x02, // 读取离散输入寄存器 kModbus_F03_Read_Hold_Reg = 0x03, // 读取保持寄存器 kModbus_F04_Read_Input_Reg = 0x04, // 读取输入寄存器 kModbus_F05_Write_S_Coil = 0x05, // 写入单个线圈寄存器 kModbus_F06_Write_S_Hold_Reg = 0x06, // 写单个保持寄存器 kModbus_F0F_Write_M_Coil = 0x0F, // 写多个线圈寄存器 kModbus_F10_Write_M_Hold_Reg = 0x10, // 写多个寄存器 kModbus_Func_end // 结束值 } modbus_func_e; // 数据传输类型 // 接入EMS的所有设备类型 typedef enum { kDev_Type_Start = 0, // 起始值 kDev_Type_EMS = kDev_Type_Start, // EMS本机 数量一个 kDev_Type_Pccmeter, // PCC电表 数量一个 kDev_Type_Bsmeter, // 储能电表 一般数量一个 kDev_Type_BSU, // 电池堆 数量 多个可配置 kDev_Type_BCU, // 电池簇 数量 多个可配置 kDev_Type_PCS, // PCS 数量 多个可配 kDev_Type_AirCond_LiquidCool, // 空调/液冷机组 kDev_Type_Thsensor, // 温湿度传感器 数量 多个可配置 kDev_Type_WaterThsensor, // 水浸传感器 kDev_Type_YGThsensor, // 烟感传感器 数量 多个可配置 kDev_Type_FireSystem, // 消防系统 kDev_Type_DI_DO_Device, // DI/DO设备设备 kDev_Type_UPS, // UPS设备 一般数量一个 kDev_Type_Reserve2, // 预留类型2 kDev_Type_Reserve3, // 预留类型3 kDev_Type_Reserve4, // 预留类型4 kDev_Type_Reserve5, // 预留类型5 kDev_Type_End } dev_type_e; // EMS总的工作模式 typedef enum { E_TACTIC_MODE_START, // 无 E_TACTIC_MODE_DEBUG, // 调试模式 E_TACTIC_MODE_PEAKVALLY, // 削峰填谷模式 E_TACTIC_MODE_DEMANDRES, // 需求响应模式 E_TACTIC_MODE_LOADTRACK, // 负载跟踪模式 E_TACTIC_MODE_DMDCTRL, // 需量控制 E_TACTIC_MODE_PFCTRL, // 功率因数 E_TACTIC_MODE_END } work_mode_e; // DI 高电平(有效)1 低电平 0 typedef enum { kDiFuc_Start = 0, // DI信号功能枚举开始 kDiFuc_WaterLowOn, // R 水浸传感器低(常开) kDiFuc_WaterLowOff, // R 水浸传感器低(常闭) kDiFuc_WaterHighOn, // R 水浸传感器高(常开) kDiFuc_WaterHighOff, // R 水浸传感器高(常闭) kDiFuc_EmergStopOn, // R 急停(常开) kDiFuc_EmergStopOff, // R 急停(常闭) kDiFuc_SmokeDetecOn, // R 烟感(常开) kDiFuc_SmokeDetecOff, // R 烟感(常闭) kDiFuc_TempSensorOn, // R 温感(常开) kDiFuc_TempSensorOff, // R 温感(常闭) kDiFuc_FireFeedbackOn, // R 消防触发反馈(常开) kDiFuc_FireFeedbackOff, // R 消防触发反馈(常闭) kDiFuc_AccessSensorOn, // R 门禁传感器(常开) kDiFuc_AccessSensorOff, // R 门禁传感器(常闭) kDiFuc_CircuitFeedOn, // R 交流断路器反馈(常开) kDiFuc_CircuitFeedOff, // R 交流断路器反馈(常闭) kDiFuc_AerosolGetOn, // 气溶胶触发反馈常闭 kDiFuc_FireAerosolGetOff, // 气溶胶触发反馈常开 kDiFuc_SurgeGetOn, // 浪涌辅助触点常闭 kDiFuc_SurgeGetOff, // 浪涌辅助触点常开 kDiFuc_FireFaultGetOn, // 消防故障常闭 kDiFuc_FireFaultGetOff, // 消防故障常开 kDiFuc_End // 结束 } diFuc_e; // DO 高电平(有效)1 低电平 0 typedef enum { kDoFuc_Start = 0, // DO信号功能枚举起始 kDoFuc_NormalLight, // R/W 灯 常亮 kDoFuc_NormalLightBli, // R/W 灯 闪烁 kDoFuc_FaultLight, // R/W 故障灯 常亮 kDoFuc_FaultLightBli, // R/W 故障灯 闪烁 kDoFuc_CircuitTripping, // R/W 交流断路器分励脱扣 kDoFuc_CabinetFan, // R/W 机柜风扇 kDoFuc_FireConfirm, // R/W 消防触发确认 kDoFuc_FireTrigger, // R/W 消防触发 DO5 DO6同时置高电平才真的喷洒 kDoFuc_PutHigh, // R/W 输出高电平 kDoFuc_PutLow, // R/W 输出低电平 kDoFuc_End, // 结束 } doFuc_e; // 指示类型枚举 typedef enum { kIndicate_Type_Start = 0, // 起始值 kIndicate_Light_Close, // 关闭 kIndicate_Light_Open, // 亮起 kIndicate_Light_Flicker, // 闪烁 kIndicate_Type_End } indicate_type_e; // dido类型 typedef enum { kDi_Do_Type_Start = 0, // 起始值 kDi = kDi_Do_Type_Start, // DI kDo, // DO // kLed, // LED kReserve, // 保留 kDi_Do_type_End } di_do_type_e; // 北向配置类型 typedef enum { kNorth_Config_Type_Start = 0, // 起始值 kNorth_Config_Default = kNorth_Config_Type_Start, // 默认全部上传点位 kNorth_Config_Up, // 配置上传 kNorth_Config_Type_End } north_config_type_e; // 高级设置类型枚举 typedef enum { kAdvanced_Setting_Type_Start = 0, // 起始值 kEms_Mode = kAdvanced_Setting_Type_Start, // EMS工作模式 kLinux_Password, // Linux密码 kAdvanced_Setting_Type_End // 结束值 } advanced_setting_type_e; // 波特率 typedef enum { kBaud_Start = 0, kBaud_115200 = kBaud_Start, kBaud_57600, kBaud_38400, kBaud_19200, kBaud_9600, kBaud_4800, kBaud_2400, kBaud_1800, kBaud_1200, kBaud_600, kBaud_300, kBaud_200, kBaud_150, kBaud_End } baud_e; // 校验位 typedef enum { kParity_Start = 0, kParity_None = kParity_Start, kParity_Odd, kParity_Even, kParity_Mark, kParity_Space, kParity_End } parity_e; // 停止位 typedef enum { kStop_Start = 0, kStop_1 = kStop_Start, kStop_2, kStop_End } stop_e; // 数据位 typedef enum { kData_Start = 0, kData_5 = kData_Start, kData_6, kData_7, kData_8, kData_End } data_e; // 流控制 typedef enum { kFlow_Start = 0, kFlow_Disable = kFlow_Start, kFlow_Hardware_Enable, kFlow_Software_Enable, kFlow_End } flow_e; // 温控模式 typedef enum { kTemperature_ctrl_Start = 0, // 起始值 kTemperature_ctrl_Ac = kTemperature_ctrl_Start, // 风冷模式(手动) kTemperature_ctrl_Lc, // 液冷模式(手动) kTemperature_auto_Ac, // 风冷模式(自动) kTemperature_auto_Lc, // 液冷模式(自动) kTemperature_ctrl_end // 结束值 } temperature_ctrl_mod_e; // 版本升级状态 typedef enum { kUpgrade_Status_Start = 0, // 起始值 kUpgrade_Standby = kUpgrade_Status_Start, // 待升级 kUpgrade_Succ, // 升级成功 kUpgrade_Err, // 升级失败 kUpgrade_Status_end // 结束值 } upgrade_status_e; // 串口驱动结构体 typedef struct uart_lib { uint8_t uartId; // COM口对应序号 uint8_t address[MAX_ADDR_LEN]; // 通道驱动地址 uint16_t uId; // 设备序号 data_e data; // 数据位 stop_e stop; // 停止位 baud_e baud; // 波特率 parity_e parity; // 校验位 flow_e flow; // 流控制 uint16_t timeout; // 超时时间(milisecond) } kit_uart_lib_t; // tcp client驱动结构体 typedef struct { uint8_t netId; // NET口对应序号 uint16_t uId; // 设备序号 char ip[MAX_IP_LEN]; // ip地址 uint32_t port; // 端口号 uint16_t timeout; // 超时时间(milisecond) } kit_tcp_client_lib_t; // 南向驱动协议的联合体 typedef union { kit_uart_lib_t uartLib; // uart串口协议 kit_tcp_client_lib_t tcpClientLib; // tcp client协议 } dev_protocol_u; // 电站信息结构体 typedef struct { uint8_t name[MAX_NAME_BUF_LEN]; // 电站名称 uint8_t address[MAX_ADDR_BUF_LEN]; // 电站地址 float_t lng; // 经度 float_t lat; // 纬度 uint8_t timeZone[MAX_CODE_BUF_LEN]; // 时区 } station_t; // EMS设备口配置结构体 typedef struct { uint32_t dbId; // 配置数据库Id ems_dev_config_type_e type; // 配置类型 uint8_t content[MAX_CONFIG_CONTENT_LEN]; // 配置内容 } ems_dev_config_t; // // EMS设备的串口配置结构体 // typedef struct // { // uint8_t uartId; // COM口对应序号 // uart_data_e data; // 数据位 // uart_stop_e stop; // 停止位 // uart_baud_e baud; // 波特率 // uart_parity_e parity; // 校验位 // uint16_t timeout; // 超时时间(milisecond) // uint8_t address[MAX_ADDR_LEN]; // 通道驱动地址 // } ems_dev_uart_config_t; // EMS设备的网口配置结构体 typedef struct { uint8_t netId; // 网口口对应序号 uint8_t isDHCP; // 是否动态分配 uint8_t ip[MAX_IP_LEN]; // ip地址 uint8_t mask[MAX_IP_LEN]; // 子网掩码 uint8_t gateway[MAX_IP_LEN]; // 网关地址 uint8_t address[MAX_ADDR_LEN]; // 通道驱动地址 } ems_dev_eth_config_t; // EMS设备的DI配置结构体 typedef struct { uint8_t diId; // DI口对应序号 uint8_t validBit; // 有效位 uint8_t address[MAX_ADDR_LEN]; // 通道驱动地址 } ems_dev_di_config_t; // EMS设备的DO配置结构体 typedef struct { uint8_t doId; // DO口对应序号 uint8_t validBit; // 有效位 uint8_t address[MAX_ADDR_LEN]; // 通道驱动地址 } ems_dev_do_config_t; // EMS设备的系统时间配置结构体 typedef struct { uint8_t isNtp; // 是否ntp自动对时 uint16_t port; // 端口号 uint8_t address[MAX_ADDR_LEN]; // 对时ntp地址 uint8_t manualTime[22]; // "YYYY/DD/MM HH:MM:SS" } ems_dev_rtc_config_t; // 点位配置的结构体 typedef struct { uint32_t pointDbId; // 点位数据库Id uint32_t pointId; // 点ID storage_interval_type_e storageInterval; // 存储间隔 uint32_t devDbId; // 设备数据库Id uint16_t devId; // 设备编号 uint16_t regAddr; // 寄存器地址 modbus_func_e func; // 功能码 point_group_type_e groupType; // 分组 dev_type_e devType; // 设备类型 data_type_e dataType; // 数据类型 point_attribute_e attribute; // 属性枚举 data_endian_e endian; // 字节序 uint8_t bitPos; // 位位置 uint8_t bitNum; // 位数量 uint8_t isPersisted; // 是否持久化(0否,1是) float_t precision; // 精度 double ratio; // 比例,使用 float 以表示小数 float_t offset; // 偏移量,使用 float 以表示小数 float_t mutateBound; // 变更边界 double_t value; // 采集值 float_t minValue; // 最小值 float_t maxValue; // 最大值 float_t defaultValue; // 默认值 uint8_t pointName[MAX_POINT_NAME_LEN]; // 点位名称 } point_t; // 设备和点位结构体 typedef struct { protocol_type_master_e protocolType; // 协议类型 dev_type_e devType; // 设备类型 dev_protocol_u devProtocol; // 设备协议定义 uint32_t devDbId; // 设备数据库Id uint16_t templateId; // 模板Id uint16_t devId; // 设备编号 uint16_t pointNum; // 点位数量 uint16_t sortOrder; // 序号 point_t *pointArr; // 点位数组 uint8_t devName[MAX_NAME_BUF_LEN]; // 设备名称 } dev_info_t; // 协议和设备数组关联结构体 typedef struct { // protocol_type_master_e protocolType; // 协议类型 uint16_t devNum; // 当前协议下设备数量 dev_info_t *devPointMapArr; // 协议整合设备数组 } proto_dev_point_map_t; typedef struct { uint8_t uartCount; proto_dev_point_map_t *uartProtoItem; } uart_chan_proto_map_t; // 实时数据定时存储的结构体 typedef struct { dev_type_e devType; // 设备类型 storage_interval_type_e storageInterval; // 存储间隔 uint32_t devDbId; // 设备数据库Id uint32_t pointDbId; // 点位数据库Id float_t timedValue; // 值 } timed_data_storage_t; // 时序数据配置的结构体 typedef struct { dev_type_e devType; // 设备类型 storage_interval_type_e storageInterval; // 存储间隔 uint32_t devDbId; // 设备数据库Id uint16_t devId; // 设备编号 uint32_t pointDbId; // 点位数据库Id uint32_t pointId; // 点位编号 uint8_t devName[MAX_NAME_BUF_LEN]; // 设备名称 uint8_t pointName[MAX_POINT_NAME_LEN]; // 点位名称 } timed_data_config_t; // 故障点位定时存储的结构体 typedef struct { dev_type_e devType; // 设备类型 uint32_t devDbId; // 设备数据库Id uint16_t devId; // 设备编号 uint32_t pointDbId; // 点位数据库Id uint32_t pointId; // 点位编号 float_t faultsValue; // 故障值 } faults_data_storage_t; // 故障点位配置的结构体 typedef struct { dev_type_e devType; // 设备类型 uint32_t devDbId; // 设备数据库Id uint16_t devId; // 设备编号 uint32_t pointDbId; // 点位数据库Id uint32_t pointId; // 点位编号 uint8_t devName[MAX_NAME_BUF_LEN]; // 设备名称 uint8_t pointName[MAX_POINT_NAME_LEN]; // 点位名称 } faults_data_config_t; // MQTT断点记录的结构体 typedef struct { uint64_t dbId; // 断点记录Id uint8_t reason[MAX_NAME_BUF_LEN]; // 中断原因 uint8_t isUploaded; // 是否已全部上传 int startRow; int endRow; } break_record_t; // MQTT断点数据存储的结构体 typedef struct { uint8_t isUploaded; // 是否已上传 uint64_t breakDbId; // 断点记录表数据库Id uint8_t content[MAX_JSON_STR_LEN]; // 待上传的JSON串 } break_data_storage_t; // 上报下发点位的结构体 typedef struct { uint16_t devId; // 设备编号 uint32_t pointId; // 点ID dev_type_e devType; // 设备类型 uint8_t cloudCode[MAX_CODE_BUF_LEN]; // 云平台编号 uint8_t cloudName[MAX_NAME_BUF_LEN]; // 云平台名称 } up_dis_point_t; // 功率数据的结构体 typedef struct { dev_type_e devType; // 设备类型 uint16_t devId; // 设备编号 uint32_t pointId; // 点ID float_t value; // 值 } power_data_storage_t; typedef struct { uint8_t clientId[MAX_CLIENT_ID_LEN]; // 客户端Id uint8_t rootTopic[MAX_TOPIC_LEN]; // 初始化主题 uint8_t periodTopic[MAX_TOPIC_LEN]; // 周期上报主题 uint8_t changeTopic[MAX_TOPIC_LEN]; // 变化上报主题 uint8_t historyTopic[MAX_TOPIC_LEN]; // 历史主题 uint8_t controlTopic[MAX_TOPIC_LEN]; // 控制主题 uint8_t readTopic[MAX_TOPIC_LEN]; // 读取参数主题 uint8_t replycontrolTopic[MAX_TOPIC_LEN]; // 回复控制主题 uint8_t replyreadTopic[MAX_TOPIC_LEN]; // 回复读取参数主题 uint8_t tSendTaskPeriod; // 周期发送任务时间间隔 uint8_t url[MAX_IP_LEN]; // 服务器地址 uint8_t qos; // 通信质量 uint16_t port; // 服务器端口号 uint8_t username[MAX_MQTT_USERNAME_LEN]; // mqtt用户名 uint8_t password[MAX_MQTT_PASSWORD_LEN]; // mqtt密码 uint8_t caCert[MAX_CERT_LEN]; // CA证书 uint8_t x509Cert[MAX_CERT_LEN]; // x509证书 uint8_t keyCert[MAX_CERT_LEN]; // 密钥证书 bool isSsl; // 是否开启SSL } mqtt_lib_t; // 北向驱动协议的联合体 typedef union { mqtt_lib_t mqttLib; // mqtt协议 } north_protocol_u; // 北向上传下发设备结构体 typedef struct { uint32_t northCfgDbId; // 北向配置数据库Id uint16_t devId; // 设备编号 uint16_t upDisPointNum; // 上传下发点位数量 dev_type_e devType; // 设备类型 up_dis_point_t *upDisPointArr; // 上传下发点位数组 } up_dis_dev_t; // 北向配置结构体 typedef struct { uint32_t dbId; // 数据库Id north_config_type_e configType; // 北向配置类型 protocol_type_slave_e protocolType; // 协议类型 north_protocol_u northProtocol; // 北向协议定义 uint16_t upDevNum; // 上报设备数量 up_dis_dev_t *upDevArr; // 上报设备数组 uint16_t disDevNum; // 下发设备数量 up_dis_dev_t *disDevArr; // 下发设备数组 } north_config_t; // 削峰填谷时段配置表结构体 typedef struct { uint32_t startTime; // 开始时间 单位秒 uint32_t endTime; // 结束时间 单位秒 float_t power; // 功率 } pv_time_config_t; // 削峰填谷日期配置表结构体 typedef struct { uint8_t startDate[MAX_PV_DATE_LEN]; // 开始日期 单位日 uint8_t endDate[MAX_PV_DATE_LEN]; // 结束日期 uint8_t timeCfgLen; // 削峰填谷时段配置表长度 pv_time_config_t *timeCfgTab; // 削峰填谷时段配置表 } pv_date_config_t; // 负载跟踪参数(未实现 暂放在这里) typedef struct { float_t percent; // 负载跟踪百分比 (10% = 0.1) } load_track_params_t; // 需求响应参数(未实现 暂放在这里) typedef struct { // 可配参数(未知) } demand_res_params_t; // EMS拓扑结构的结构体 typedef struct { menu_tree_e menuTree; // 节点类型 uint8_t name[MAX_NAME_BUF_LEN]; // 名称 uint8_t sn[MAX_CODE_BUF_LEN]; // 设备SN号 uint32_t dbId; // 数据库Id int parentId; // 父Id uint16_t sortOrder; // 序号 dev_type_e devType; // 设备类型 } topology_t; // 保护算法的结构体 typedef struct { float_t transCapacity; // 变压器总容量(KW) float_t olWarnLimitVal; // 过载预警限流值(KW) float_t olShutdownVal; // 过载关机值(KW) float_t maxPower; // 充放电功率上限 uint8_t demandSwitch; // 防需量开关 float_t targetDemand; // 目标需量(KW) float_t deWarnLimitVal; // 需量预警限流值(KW) float_t deShutdownVal; // 需量关机值(KW) uint8_t backflowSwitch; // 防逆流开关 float_t bfWarnLimitVal; // 防逆流预警限流值(KW) float_t bfShutdownVal; // 防逆流关机值(KW) uint16_t socForbidChg; // 禁充SOC [55%-100%] uint16_t socForbidDischg; // 禁放SOC [0%-45%] uint32_t dbId; // 数据库Id } protect_algorithm_t; // 调试模式算法结构体 typedef struct { float_t activePower; // 目标有功功率(KW) float_t reactivePower; // 目标无功功率(KW) uint8_t pcsSwitch; // 充放电开关 1 开 0 关 uint8_t protectSwitch; // 保护算法开关 1 开 0 关 uint32_t dbId; // 数据库Id } debug_algorithm_t; // 功率分配的结构体 typedef struct { uint8_t allocateMode; // 下发功率模式:总功率(0),分相功率(1) uint8_t pcsNum; // pcs数量 int8_t chgDirection; // 充放电方向 1(正放 负充) -1(正充 负放) uint32_t dbId; // 数据库Id } allocate_power_t; // 调试设置的结构体 typedef struct { work_mode_e workMode; // 工作模式 uint32_t dbId; // 数据库Id } work_mode_set_t; // DIDO逻辑设置的结构体 typedef struct { uint8_t dIDOseq; // DIDO序列号 uint8_t cabinetCode; // 柜子编号 0-9 最多十个柜子 di_do_type_e dIDOType; // DIDO类型 diFuc_e strategySeqDi; // DI策略序号 doFuc_e strategySeqDo; // DO策略序号 // indicate_type_e indicateType; // 指示的方式 } di_do_logic_set_t; typedef struct { uint64_t dbId; // 数据库Id /* 温度控制模式 */ temperature_ctrl_mod_e mod; /* 工作温度 */ float_t workCoolTrigTemp; // 制冷触发温度 float_t workCoolHys; // 制冷回差 float_t workHeatTrigTemp; // 制热触发温度 float_t workHeatHys; // 制热回差 /* 静置温度(液冷) */ float_t standbyCoolTrigTemp; // 制冷触发温度 float_t standbyCoolHys; // 制冷回差 float_t standbyHeatTrigTemp; // 制热触发温度 float_t standbyHeatHys; // 制热回差 /* 静置自循环温度限制(液冷) */ float_t standbyMaxLimit; // 开启自循环高温 float_t standbyMinLimit; // 开启自循环低温 float_t standbyMaxbackLimit; // 自循环高温回温 float_t standbyMinbackLimit; // 自循环低温回温 /* 控制字 */ uint16_t tempCmdNormal; // 循环控制字 uint16_t tempCmdHeat; // 制热控制字 uint16_t tempCmdCold; // 制冷控制字 uint8_t tempCmdOpen; // 开控制字 uint8_t tempCmdClose; // 关控制字 } temp_ctrl_algorithm_t; // 温度控制参数 // 高级设置的结构体 typedef struct { uint8_t key[MAX_KEY_LEN]; // 设置项 uint8_t value[MAX_VALUE_LEN]; // 设置值 } advanced_setting_t; // 升级记录的结构体 typedef struct { uint64_t dbId; // 数据库Id uint8_t path[MAX_UPGRADE_PATH_LEN]; // 升级包路径 uint8_t errMsg[MAX_UPGRADE_ERR_MSG_LEN]; // 升级错误信息 upgrade_status_e status; // 升级状态 } upgrade_record_t; #endif // KIT_DATA_H