|
|
@ -654,110 +654,6 @@ static void _debug_pkt_config_set(void)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 校准参数获取报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_get(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_cfg_t *data = (dev_adj_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t) + sizeof(dev_adj_cfg_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装数据, 这里减 4 是因为结构体最后 4byte 位置特殊. */
|
|
|
|
|
|
|
|
memcpy(data->power_adj, dev_config.power_adj, 64);
|
|
|
|
|
|
|
|
data->vin_adj = dev_config.vin_adj;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, head->len + 4);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 校准参数设置报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_set_power(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_power_cfg_t *data = (dev_adj_power_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 配置参数. */
|
|
|
|
|
|
|
|
memcpy(dev_config.power_adj, data->power_adj, 32);
|
|
|
|
|
|
|
|
dev_config.vin_adj = data->vin_adj;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 校准参数设置报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_set_defect(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_defect_cfg_t *data = (dev_adj_defect_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 配置参数. */
|
|
|
|
|
|
|
|
memcpy(dev_config.defect_base, data->defect_base, sizeof(dev_adj_defect_cfg_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 校准参数设置报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_set_fault(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_fault_cfg_t *data = (dev_adj_fault_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 配置参数. */
|
|
|
|
|
|
|
|
memcpy(dev_config.fault_base, data->fault_base, sizeof(dev_adj_fault_cfg_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 自动校准仪器通讯校验和计算. */
|
|
|
|
/* 自动校准仪器通讯校验和计算. */
|
|
|
|
static uint8_t _debug_adj_checksum(uint8_t *buf, uint8_t len)
|
|
|
|
static uint8_t _debug_adj_checksum(uint8_t *buf, uint8_t len)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -1020,7 +916,6 @@ void _debug_adj_power_cal(void)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 自动校准处理. */
|
|
|
|
/* 自动校准处理. */
|
|
|
|
static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
|
|
|
|
static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -1048,6 +943,368 @@ static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
|
|
|
|
return HAL_OK;
|
|
|
|
return HAL_OK;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 手动校准处理. */
|
|
|
|
|
|
|
|
static HAL_StatusTypeDef _debug_adj_manual(uint8_t bitmap)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (!bitmap)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return HAL_OK;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dau_adj_state = DAU_ADJ_STATE_POWER;
|
|
|
|
|
|
|
|
while (dau_adj_state != DAU_ADJ_STATE_NONE)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
common_watchdog_set(COM_WDG_CLI);
|
|
|
|
|
|
|
|
osDelay(1000);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
DBG(DBG_M_RS485_DEBUG, "capture end...\r\n");
|
|
|
|
|
|
|
|
_debug_adj_power_cal();
|
|
|
|
|
|
|
|
return HAL_OK;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 校准参数获取报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_get(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_cfg_t *data = (dev_adj_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t) + sizeof(dev_adj_cfg_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装数据, 这里减 4 是因为结构体最后 4byte 位置特殊. */
|
|
|
|
|
|
|
|
memcpy(data->power_adj, dev_config.power_adj, 64);
|
|
|
|
|
|
|
|
data->vin_adj = dev_config.vin_adj;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, head->len + 4);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 校准参数设置报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_set_power(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_power_cfg_t *data = (dev_adj_power_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 配置参数. */
|
|
|
|
|
|
|
|
memcpy(dev_config.power_adj, data->power_adj, 32);
|
|
|
|
|
|
|
|
dev_config.vin_adj = data->vin_adj;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 校准参数设置报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_set_defect(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_defect_cfg_t *data = (dev_adj_defect_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 配置参数. */
|
|
|
|
|
|
|
|
memcpy(dev_config.defect_base, data->defect_base, sizeof(dev_adj_defect_cfg_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 校准参数设置报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_set_fault(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_fault_cfg_t *data = (dev_adj_fault_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 配置参数. */
|
|
|
|
|
|
|
|
memcpy(dev_config.fault_base, data->fault_base, sizeof(dev_adj_fault_cfg_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 设备状态获取报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_defect_zero(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_defect_zero_t *data = (dev_adj_defect_zero_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
uint8_t i = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 解析数据. */
|
|
|
|
|
|
|
|
memcpy(&debug_adj_defect, data, sizeof(dev_adj_defect_zero_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dau_adj_state = DAU_ADJ_STATE_DEFECT_ZERO;
|
|
|
|
|
|
|
|
while(dau_adj_state != DAU_ADJ_STATE_NONE)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
osDelay(1000);
|
|
|
|
|
|
|
|
common_watchdog_set(COM_WDG_CLI);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (!IS_MONITOR_BIT_SET(debug_adj_defect.bitmap, i))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dev_config.defect_base[i] = dau_ctrl.reg_port_state.DAVR[i];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 设备状态获取报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_defect(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_defect_cfg_t *data = (dev_adj_defect_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
uint32_t temp = 0;
|
|
|
|
|
|
|
|
uint8_t i = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dau_adj_state = DAU_ADJ_STATE_DEFECT;
|
|
|
|
|
|
|
|
while(dau_adj_state != DAU_ADJ_STATE_NONE)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
osDelay(1000);
|
|
|
|
|
|
|
|
common_watchdog_set(COM_WDG_CLI);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (!IS_MONITOR_BIT_SET(debug_adj_defect.bitmap, i))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
temp = dau_ctrl.reg_port_state.DAVR[i] - dev_config.defect_base[i];
|
|
|
|
|
|
|
|
//temp = 3276;
|
|
|
|
|
|
|
|
dev_config.defect_adj[i] = debug_adj_defect.defect_elec * 32768 / temp;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t) + sizeof(dev_adj_defect_cfg_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 配置参数. */
|
|
|
|
|
|
|
|
memcpy(data->defect_base, dev_config.defect_base, sizeof(dev_adj_defect_cfg_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 设备状态获取报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_fault_zero(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_fault_zero_t *data = (dev_adj_fault_zero_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 解析数据. */
|
|
|
|
|
|
|
|
memcpy(&debug_adj_fault, data, sizeof(dev_adj_fault_zero_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dau_adj_state = DAU_ADJ_STATE_FAULT_ZERO;
|
|
|
|
|
|
|
|
while(dau_adj_state != DAU_ADJ_STATE_NONE)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
osDelay(1000);
|
|
|
|
|
|
|
|
common_watchdog_set(COM_WDG_CLI);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 设备状态获取报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_fault(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_fault_cfg_t *data = (dev_adj_fault_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
uint8_t i = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dau_adj_state = DAU_ADJ_STATE_FAULT;
|
|
|
|
|
|
|
|
while(dau_adj_state != DAU_ADJ_STATE_NONE)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
osDelay(1000);
|
|
|
|
|
|
|
|
common_watchdog_set(COM_WDG_CLI);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(i = 0; i < DAU_PORT_FAULT_CNT; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
data->fault_base[i] = dev_config.fault_base[i];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!IS_MONITOR_BIT_SET(debug_adj_fault.bitmap, i))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
data->fault_adj[i] = dev_config.fault_adj[i];
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!((dau_ctrl.reg_global.GFTR & DAU_GFTR_FAULT_Msk) >> DAU_GFTR_FAULT_Pos))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
data->fault_adj[i] = 0;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//data->fault_adj[i] = abs_cal_u(dau_ctrl.reg_port_state.FMAX[i] - dev_config.fault_base[i]);
|
|
|
|
|
|
|
|
data->fault_adj[i] = 13107;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t) + sizeof(dev_adj_fault_cfg_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 手动校准报文处理. */
|
|
|
|
|
|
|
|
static void _debug_pkt_adj_manual(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_power_t *data = (dev_adj_power_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
dev_adj_power_cfg_t *cfg = (dev_adj_power_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 解析数据. */
|
|
|
|
|
|
|
|
memcpy(&debug_adj_power, data, sizeof(dev_adj_power_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 组装数据 */
|
|
|
|
|
|
|
|
cfg->return_value = _debug_adj_manual(debug_adj_power.bitmap);
|
|
|
|
|
|
|
|
if (debug_adj_power.is_voltage_adj)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ADC_vbat_auto(5000);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
memcpy(cfg->power_adj, dev_config.power_adj, 32);
|
|
|
|
|
|
|
|
//memcpy(cfg->power_adj_point, dev_config.power_adj_point, 32);
|
|
|
|
|
|
|
|
cfg->vin_adj = dev_config.vin_adj;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t) + sizeof(dev_adj_power_cfg_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 自动校准报文处理. */
|
|
|
|
|
|
|
|
void _debug_pkt_adj_auto(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
proto_head_t *head = (proto_head_t*)debug_buf.buf;
|
|
|
|
|
|
|
|
dev_adj_power_t *data = (dev_adj_power_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
dev_adj_power_cfg_t *cfg = (dev_adj_power_cfg_t*)(debug_buf.buf + sizeof(proto_head_t));
|
|
|
|
|
|
|
|
uint32_t *crc = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 解析数据. */
|
|
|
|
|
|
|
|
memcpy(&debug_adj_power, data, sizeof(dev_adj_power_t));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 组装数据 */
|
|
|
|
|
|
|
|
cfg->return_value = _debug_adj_auto(debug_adj_power.bitmap);
|
|
|
|
|
|
|
|
if (debug_adj_power.is_voltage_adj)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ADC_vbat_auto(5000);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
memcpy(cfg->power_adj, dev_config.power_adj, 32);
|
|
|
|
|
|
|
|
cfg->vin_adj = dev_config.vin_adj;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 封装报文头. */
|
|
|
|
|
|
|
|
_debug_pkt_head_init(sizeof(proto_head_t) + sizeof(dev_adj_power_cfg_t), DEBUG_CT_PRV_REPLY);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算校验和. */
|
|
|
|
|
|
|
|
crc = (uint32_t*)(debug_buf.buf + head->len);
|
|
|
|
|
|
|
|
*crc = crc32(debug_buf.buf, head->len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 发送报文 */
|
|
|
|
|
|
|
|
_debug_pkt_send(head->len + 4, 20);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 保存参数. */
|
|
|
|
|
|
|
|
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 实时数据获取报文处理. */
|
|
|
|
/* 实时数据获取报文处理. */
|
|
|
|
static void _debug_pkt_data_get(void)
|
|
|
|
static void _debug_pkt_data_get(void)
|
|
|
|
{
|
|
|
|
{
|
|
|
|