2025-05-13 17:49:49 +08:00
|
|
|
|
/*****************************************************************************
|
2025-05-24 17:16:28 +08:00
|
|
|
|
* @copyright Copyright (c) 2025-2055 Gary. All rights reserved.
|
2025-05-13 17:49:49 +08:00
|
|
|
|
* @file kit_data.h
|
|
|
|
|
* @brief 所有的数据类型定义以及
|
|
|
|
|
* @author Gary
|
|
|
|
|
* @date 2024-09-03
|
|
|
|
|
* @remark
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
#ifndef KIT_DATA_H
|
|
|
|
|
#define KIT_DATA_H
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdbool.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
#include <math.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
|
|
#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, // 电池簇 数量 多个可配置
|
2025-05-22 21:40:05 +08:00
|
|
|
|
kDev_Type_PCS, // PCS 数量 多个可配
|
|
|
|
|
kDev_Type_AirCond_LiquidCool, // 空调/液冷机组
|
2025-05-13 17:49:49 +08:00
|
|
|
|
kDev_Type_Thsensor, // 温湿度传感器 数量 多个可配置
|
2025-05-22 21:40:05 +08:00
|
|
|
|
kDev_Type_WaterThsensor, // 水浸传感器
|
|
|
|
|
kDev_Type_YGThsensor, // 烟感传感器 数量 多个可配置
|
|
|
|
|
kDev_Type_FireSystem, // 消防系统
|
2025-05-13 17:49:49 +08:00
|
|
|
|
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; // 精度
|
|
|
|
|
float_t 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
|