#ifndef __CA_DBG_H__ #define __CA_DBG_H__ #ifdef CFG_DEV_TYPE_LAND_CA /* Includes ------------------------------------------------------------------*/ #include "ca_main.h" /* Define --------------------------------------------------------------------*/ #define DEBUG_BUG_SIZE 1512 #define DEBUG_CJSON_BUG_SIZE 1512 #define DEBUG_PKT_DATA_POS (8) //#define DEBUG_MSG_INVALID_LEN (10) //head+cmd+len+verify #define DEBUG_CONFIG_GET (0x0001)//获取json配置 #define DEBUG_CONFIG_SET (0x0002)//设置json配置 #define DEBUG_REBOOT (0x0003)//重启 #define DEBUG_SET_TIME (0x0004)//对时 #define DEBUG_GET_REALDATA (0x0005)//获取实时数据 #define DEBUG_GET_HISDATA (0x0006)//获取历史 #define DEBUG_DAU_WAVE (0x0007)//手动高频录波 #define DEBUG_CAU_WAVE (0x0008)//手动工频录波 #define DEBUG_ADJUST_TASK (0x0009)//启动校准任务 #define DEBUG_ADJUST_RESULT (0x000A)//校准结束反馈结果 #define DEBUG_GET_ADJUST_PARAM (0x000B)//获取校准系数 #define DEBUG_UPGRADE_ARM (0x00EF)//ARM升级 #define DEBUG_DAUPowerControl (0x000C)//DAU电源控制 #define DEBUG_HFCTFreDetection (0x000D)//反馈高频特征值 #define DEBUG_AdjustValidation (0x000E)//校准参数验证 #define DEBUG_AdjustCl106dValue (0x000F)//设置校准源输出值 #define DEBUG_GetHWMQTTCFG (0x0010)//获取MQTT配置信息 #define DEBUG_SetHWMQTTCFG (0x0011)//设置MQTT配置 #define DEBUG_ManualAdjust (0x0012)//进入手动校准模式 #define DEBUG_ManualCalcu (0x0013)//手动计算 #define DEBUG_LOAD_CSGMQTTCFG (0x0014)//获取南网MQTT配置 #define DEBUG_SAVE_CSGMQTTCFG (0x0015)//保存南网MQTT配置 #define DEBUG_INVALID (0xFFFF) #define BITMAP_SAVE_FILE (1 << 0) #define BITMAP_IP_CHANGE (1 << 1) #define DEBUG_MANAGE_TOOL_PORT (10086) #define UPDATE_PACK_LENGTH (1024) #define UPDATE_FILE_PATH "/home/Cable/" #define UPDATE_FILE_NAME "update.zip" /* Exported types ------------------------------------------------------------*/ /* 端口校准系数. */ typedef struct { uint16_t point[4]; // 通道分段点. uint16_t param_a[5]; // 通道线性度校准系数 a. uint16_t param_b[5]; // 通道线性度校准系数 b. uint16_t alarm_ref; // 断线告警比较值. uint16_t reserve; } debug_pkt_adj_vport_t; /* 端口状态, 主要是 ADC 原始值和校准后的值.*/ typedef struct { uint16_t value_adc; int16_t value_adj; } debug_pkt_port_state_t; /* 设备状态. */ typedef struct { uint32_t idx; // 编号. uint32_t UTC_TimeScale; // UTC 时标 float F50Hz_Frequency; // 同步 50Hz 频率. uint8_t F50Hz_SynStatus; // 同步状态. uint8_t dau_status; // 插件状态. uint16_t sensor_status; // 传感器断线状态. uint16_t is_server_link; // 是否连接上后台. uint16_t version; // 软件版本 uint32_t communication_time; // 上一次通讯的时间 uint32_t run_time; // 设备运行时间 } debug_pkt_status_t; typedef struct { GateWay_t gateway; LandDevCfg_t landDevCfg; //HWMQTTCfg_t mqttCfg; CAUInitHexCfg_t CAUInit[MAX_CAU_CHANNEL*3]; }debug_pkt_device_cfg_t;//朗德协议上传的配置相关配置结构体 typedef struct updatePack_s{ U32 totalLen;//升级包的总长度 U32 currLen; //dataArea的真实数据长度,如果length != sizeof(dataArea) 代表这是最后一包了 U8 dataArea[UPDATE_PACK_LENGTH];//实际数据 }updatePack_t; typedef struct { uint16_t cmd; // 命令. uint32_t len; // 消息长度. char *pbuf; // 消息指针. } debug_msg_info_t; typedef int (*MsgProcessFxn)(debug_msg_info_t *msg); typedef struct { uint32_t uiMsgId; MsgProcessFxn pfMsgProcFxn; }msg_proc_t; /* 报文头. */ typedef struct{ uint16_t head; // 0x55aa. uint16_t cmd; // 命令. uint32_t len; // 包长. } debug_pkt_head_t; /* 调试工具全局结构 */ typedef struct{ int fd; // TCP server 监听使用的 socket. int fd_client; // TCP client 通讯使用的 socket. char buf[DEBUG_BUG_SIZE]; // 通讯使用收法包 buffer. char buf_post[DEBUG_BUG_SIZE]; // 主动上传通讯使用收法包 buffer. int is_manual_col; // 是否手动采集. } debug_ctrl_t; /* Exported macro ------------------------------------------------------------*/ /* Extern global variables ---------------------------------------------------*/ extern debug_ctrl_t debug_ctrl; /* Extern functions ----------------------------------------------------------*/ extern int32_t debug_handle_init(void); //extern int32_t debug_pkt_port_state_post(void) extern int _debug_pkt_send_data(int cmd, char *psrc, int len); extern int _dbg_get_current_cau_values(float *fdestArr); #endif #endif