You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
5.6 KiB
C

#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