ADD 1.自动校准由校准5段改为校准1段(1~100A);2.增加自动校准;3.增加自动校准调试相关操作,如:msg m

master
bowang888 5 months ago
parent a18ee4d648
commit e7defc61e5

@ -109,6 +109,8 @@ extern usart_buf_t debug_buf;
extern void debug_start(void);
extern void debug_adj_auto(uint8_t bitmap);
extern int32_t debug_app_check(uint32_t addr, uint32_t size, uint8_t file_type);
extern void _debug_pkt_adj_auto(void);
extern void _debug_pkt_adj_autoEx(uint16_t elec, uint8_t index);
#endif
/******************* (C) COPYRIGHT LandPower ***** END OF FILE ****************/

@ -147,8 +147,10 @@ extern dau_ctrl_t dau_ctrl;
/* Extern functions ----------------------------------------------------------*/
extern void dau_init(void);
extern void dau_adj_init(void);
extern void dau_spi_rw(int8_t rw, uint16_t addr, uint16_t len);
extern void dau_show(void);
extern HAL_StatusTypeDef _dau_base_auto(uint8_t ch_bitmap, uint8_t index);
#endif
/******************* (C) COPYRIGHT LandPower ***** END OF FILE ****************/

@ -46,6 +46,7 @@
#include "wireless.h"
#include "flash_if.h"
#include "flash_log.h"
#include "dau.h"
/* Private define ------------------------------------------------------------*/
#define DEBUG_FLASH_BUF_SIZE DEBUG_DATA_SIZE
@ -111,6 +112,7 @@ static UART_HandleTypeDef *debug_adj_uart = &huart1;
static uint8_t debug_state = 0;
/* 远程升级 flash 数据校验使用. */
static uint8_t debug_flash[DEBUG_FLASH_BUF_SIZE];
extern int8_t g_is_adj_status;
/* Private function prototypes -----------------------------------------------*/
/* Internal functions --------------------------------------------------------*/
@ -164,7 +166,7 @@ void _debug_pkt_head_init(uint16_t len, uint8_t cmdType)
}
/* 发送数据.. */
void _debug_pkt_send(uint16_t len, uint8_t debug_len)
void _debug_pkt_send(uint16_t len, uint16_t debug_len)
{
/* 发送报文 */
HAL_UART_Transmit_IT(debug_uart, debug_buf.buf, len);
@ -558,7 +560,7 @@ static void _debug_pkt_adj_get(void)
*crc = crc32(debug_buf.buf, head->len);
/* 发送报文 */
_debug_pkt_send(head->len + 4, 20);
_debug_pkt_send(head->len + 4, head->len + 4);
return;
}
@ -682,12 +684,15 @@ static HAL_StatusTypeDef _debug_adj_source_set(uint8_t ch_bitmap, uint8_t index)
{
turn_num = 20;
}
DBG(DBG_M_RS485_SEN, "ADC_base_elec[%d][%d] = %d turn_num = %d\r\n", ch, index, dev_config.ADC_base_elec[ch][index], turn_num);
DBG(DBG_M_RS485_SEN, "ADC_base_elec[%d][%d] / turn_num = %d\r\n", ch, index, dev_config.ADC_base_elec[ch][index]/turn_num);
/* 填充 buf, 设置电流电压. */
_debug_adj_source_set_buf(2200000, dev_config.ADC_base_elec[ch][index] / turn_num);
/* 发送报文. */
DBG(DBG_M_RS485_SEN, "ADJS(%d):\r\n", head->len);
DBG(DBG_M_RS485_SEN, "ADJS(%d) SEND:\r\n", head->len);
if (dbg_stat_get(DBG_M_RS485_SEN))
{
buf_print(debug_flash, head->len);
@ -699,7 +704,7 @@ static HAL_StatusTypeDef _debug_adj_source_set(uint8_t ch_bitmap, uint8_t index)
/* 接收报文. */
HAL_UART_Abort(debug_adj_uart);
HAL_E_RETURN(HAL_UART_Receive(debug_adj_uart, debug_flash, 0x6, 300));
DBG(DBG_M_RS485_SEN, "ADJS(%d):\r\n", 0x6);
DBG(DBG_M_RS485_SEN, "ADJS(%d) RECV:\r\n", 0x6);
if (dbg_stat_get(DBG_M_RS485_SEN))
{
buf_print(debug_flash, 0x6);
@ -715,6 +720,69 @@ static HAL_StatusTypeDef _debug_adj_source_set(uint8_t ch_bitmap, uint8_t index)
osDelay(4000);
return HAL_OK;
}
static HAL_StatusTypeDef _debug_adj_source_setEx(uint8_t ch_bitmap, uint8_t index, uint16_t elec)
{
debug_adj_head_t *head = (debug_adj_head_t*)&debug_flash[1];
uint8_t ch = 0;
uint8_t turn_num = 10;
/* 以第一个校准通道的校准点为准. */
for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++)
{
if (IS_MONITOR_BIT_SET(ch_bitmap, ch))
{
break;
}
}
/* 没有通道被选择直接退出. */
if (DAU_PORT_POWER_CNT == ch)
{
return HAL_OK;
}
turn_num = dev_config.ADC_turns[ch];
if (0 == turn_num)
{
turn_num = 20;
}
DBG(DBG_M_RS485_SEN, "ADC_base_elec[%d][%d] = %d turn_num = %d\r\n", ch, index, dev_config.ADC_base_elec[ch][index], turn_num);
DBG(DBG_M_RS485_SEN, "ADC_base_elec[%d][%d] / turn_num = %d\r\n", ch, index, dev_config.ADC_base_elec[ch][index]/turn_num);
/* 填充 buf, 设置电流电压. */
_debug_adj_source_set_buf(2200000, elec);
/* 发送报文. */
DBG(DBG_M_RS485_SEN, "ADJS(%d) SEND:\r\n", head->len);
if (dbg_stat_get(DBG_M_RS485_SEN))
{
buf_print(debug_flash, head->len);
}
HAL_GPIO_WritePin(RS485_A_DE_GPIO_Port, RS485_A_DE_Pin, GPIO_PIN_SET);
HAL_E_RETURN(HAL_UART_Transmit(debug_adj_uart, debug_flash, head->len, 300));
HAL_GPIO_WritePin(RS485_A_DE_GPIO_Port, RS485_A_DE_Pin, GPIO_PIN_RESET);
/* 接收报文. */
HAL_UART_Abort(debug_adj_uart);
HAL_E_RETURN(HAL_UART_Receive(debug_adj_uart, debug_flash, 0x6, 300));
DBG(DBG_M_RS485_SEN, "ADJS(%d) RECV:\r\n", 0x6);
if (dbg_stat_get(DBG_M_RS485_SEN))
{
buf_print(debug_flash, 0x6);
}
/* 判断返回值. */
if (head->cmd != 0x30)
{
return HAL_ERROR;
}
/* 等待电压电流稳定. */
osDelay(4000);
return HAL_OK;
}
/* 自动校准仪器连接. */
static HAL_StatusTypeDef _debug_adj_connect(void)
@ -731,7 +799,7 @@ static HAL_StatusTypeDef _debug_adj_connect(void)
*crc = _debug_adj_checksum((uint8_t*)head, head->len - 2);
/* 发送报文. */
DBG(DBG_M_RS485_SEN, "ADJS(%d):\r\n", head->len);
DBG(DBG_M_RS485_SEN, "SEND ADJS(%d):\r\n", head->len);
if (dbg_stat_get(DBG_M_RS485_SEN))
{
buf_print(debug_flash, head->len);
@ -740,11 +808,11 @@ static HAL_StatusTypeDef _debug_adj_connect(void)
HAL_GPIO_WritePin(RS485_A_DE_GPIO_Port, RS485_A_DE_Pin, GPIO_PIN_SET);
HAL_E_RETURN(HAL_UART_Transmit(debug_adj_uart, debug_flash, head->len, 300));
HAL_GPIO_WritePin(RS485_A_DE_GPIO_Port, RS485_A_DE_Pin, GPIO_PIN_RESET);
/* 接收报文. */
HAL_UART_Abort(debug_adj_uart);
HAL_E_RETURN(HAL_UART_Receive(debug_adj_uart, debug_flash, 0x29, 300));
DBG(DBG_M_RS485_SEN, "ADJS(%d):\r\n", 0x29);
DBG(DBG_M_RS485_SEN, "RECV ADJS(%d):\r\n", 0x29);
if (dbg_stat_get(DBG_M_RS485_SEN))
{
buf_print(debug_flash, 0x29);
@ -800,6 +868,7 @@ static HAL_StatusTypeDef _debug_adj_start(void)
{
MONITOR_BITMAP_SET(system_init_flag, SYS_INIT_ADJ);
HAL_UART_Abort(debug_adj_uart);
HAL_GPIO_WritePin(POWER_RS485_GPIO_Port, POWER_RS485_Pin, GPIO_PIN_SET);
osDelay(1000);
HAL_E_RETURN(_debug_adj_connect());
@ -817,11 +886,12 @@ static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
{
return HAL_OK;
}
/* 设置开始操作. */
HAL_E_RETURN(_debug_adj_start());
for(i = 0; i < DAU_PORT_POWER_CNT; i++)
//for(i = 0; i < DAU_PORT_POWER_CNT; i++)
for(i = 0; i < 1; i++)
{
/* 过滤不需要的通道. */
if (!IS_MONITOR_BIT_SET(bitmap, i) || 0 == dev_config.ADC_ratio[i])
@ -844,10 +914,18 @@ static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
}
/* 开始自动校准, 注意不同变比的通道不能一起校准. */
for (j = 0; j < DAU_POWER_ADJ_CNT; j++)
for (j = 0; j < 1; j++) // 只校准一个分段点 2024/12/11
{
HAL_E_RETURN(_debug_adj_source_set(bitmap_new, j));
//HAL_E_RETURN(ADC_base_auto(bitmap_new, j + 1));
osDelay(3000);
g_is_adj_status = 1;
while (g_is_adj_status != 2)
{
common_watchdog_set(COM_WDG_CLI);
osDelay(2000);
}
DBG(DBG_M_RS485_DEBUG, "capture end...\r\n");
HAL_E_RETURN(_dau_base_auto(bitmap_new, j + 1));
}
}
@ -856,19 +934,82 @@ static HAL_StatusTypeDef _debug_adj_auto(uint8_t bitmap)
return HAL_OK;
}
static HAL_StatusTypeDef _debug_adj_autoEx(uint8_t bitmap, uint16_t elec, uint8_t index)
{
uint8_t i = 0;
uint8_t j = 0;
uint8_t bitmap_new = 0;
if (!bitmap)
{
return HAL_OK;
}
/* 设置开始操作. */
HAL_E_RETURN(_debug_adj_start());
//for(i = 0; i < DAU_PORT_POWER_CNT; i++)
for(i = 0; i < 1; i++)
{
/* 过滤不需要的通道. */
if (!IS_MONITOR_BIT_SET(bitmap, i) || 0 == dev_config.ADC_ratio[i])
{
continue;
}
/* 将变比相同的通道归到同一个 bitmap 中. */
bitmap_new = 0;
for (j = i; j < DAU_PORT_POWER_CNT; j++)
{
if (!IS_MONITOR_BIT_SET(bitmap, j)
|| dev_config.ADC_ratio[i] != dev_config.ADC_ratio[j])
{
continue;
}
MONITOR_BITMAP_RESET(bitmap, j);
MONITOR_BITMAP_SET(bitmap_new, j);
}
/* 开始自动校准, 注意不同变比的通道不能一起校准. */
//for (j = 0; j < DAU_POWER_ADJ_CNT; j++)
{
HAL_E_RETURN(_debug_adj_source_setEx(bitmap_new, index-1, elec));
osDelay(5000);
g_is_adj_status = 1;
while (g_is_adj_status != 2)
{
common_watchdog_set(COM_WDG_CLI);
osDelay(2000);
}
DBG(DBG_M_RS485_DEBUG, "capture end...\r\n");
HAL_E_RETURN(_dau_base_auto(bitmap_new, index));
g_is_adj_status = 0;
}
}
/* 关闭校准. */
HAL_E_RETURN(_debug_adj_close());
return HAL_OK;
}
/* 自动校准报文处理. */
static void _debug_pkt_adj_auto(void)
void _debug_pkt_adj_auto(void)
{
proto_head_t *head = (proto_head_t*)debug_buf.buf;
debug_adj_set *data = (debug_adj_set*)(debug_buf.buf + sizeof(proto_head_t));
uint32_t *rt = (uint32_t*)(debug_buf.buf + sizeof(proto_head_t));
uint32_t *crc = NULL;
HAL_StatusTypeDef rv = HAL_ERROR;
if (IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ))
{
/* 开始自动校准. */
//data->ch_selecet = 1;
rv = _debug_adj_auto(data->ch_selecet);
if (rv == HAL_OK)
{
@ -900,6 +1041,55 @@ static void _debug_pkt_adj_auto(void)
return;
}
void _debug_pkt_adj_autoEx(uint16_t elec, uint8_t index)
{
proto_head_t *head = (proto_head_t*)debug_buf.buf;
debug_adj_set *data = (debug_adj_set*)(debug_buf.buf + sizeof(proto_head_t));
uint32_t *rt = (uint32_t*)(debug_buf.buf + sizeof(proto_head_t));
uint32_t *crc = NULL;
HAL_StatusTypeDef rv = HAL_ERROR;
if (IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ))
{
/* 开始自动校准. */
data->ch_selecet = 1;
if (data->ch_selecet == 1)
{
HAL_GPIO_WritePin(LED_RUN_GPIO_Port, LED_RUN_Pin, GPIO_PIN_SET);
}
rv = _debug_adj_autoEx(data->ch_selecet, elec, index);
if (rv == HAL_OK)
{
/* 完成后保存配置. */
common_sys_set(COM_SYS_SAVE_CONFIG, 0);
}
/* 电池电压自动校准. */
if (data->is_voltage_sel)
{
ADC_vbat_auto(dev_config.vin);
}
}
else
{
rv = HAL_ERROR;
}
*rt = rv;
/* 封装报文头. */
_debug_pkt_head_init(sizeof(proto_head_t) + 4, 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_data_get(void)
@ -1307,7 +1497,7 @@ static HAL_StatusTypeDef _debug_adj_manual(uint8_t bitmap, uint8_t index)
}
}
//HAL_E_RETURN(ADC_base_auto(bitmap, index + 1));
HAL_E_RETURN(_dau_base_auto(bitmap, index + 1));
return HAL_OK;
}
@ -1489,7 +1679,7 @@ static void _debug_pkt_process(void)
return;
}
/* Interface functions -------------------------------------------------------*/
/* Interface functions -------------------------------------------------------*/
/* RS485 传感器主任务循环. */
void debug_start(void)
{
@ -1556,7 +1746,7 @@ void debug_start(void)
if (dbg_stat_get(DBG_M_RS485_DEBUG))
{
buf_print(debug_buf.buf, 28);
}
}
/* 报文处理. */
_debug_pkt_process();

@ -120,6 +120,7 @@ static BaseType_t _cli_save(const char *string);
static BaseType_t _cli_show(const char *string);
static BaseType_t _cli_spi(const char *string);
static BaseType_t _cli_work_mode(const char *string);
static BaseType_t _cli_debug_msg(const char *string);
#if LD_DEBUG
static BaseType_t _cli_debug(const char *string);
@ -146,6 +147,7 @@ static const CLI_Command_Definition_t cmd_save = {"save", _cli_save, 1};
static const CLI_Command_Definition_t cmd_show = {"show", _cli_show, 2};
static const CLI_Command_Definition_t cmd_test = {"spi", _cli_spi, 3};
static const CLI_Command_Definition_t cmd_work_mode = {"work-mode", _cli_work_mode, 1};
static const CLI_Command_Definition_t cmd_debug_msg = {"msg", _cli_debug_msg, 1};
/* Internal functions --------------------------------------------------------*/
/* cli获取互斥锁. */
@ -623,6 +625,39 @@ static BaseType_t _cli_spi(const char *string)
return pdFALSE;
}
static BaseType_t _cli_debug_msg(const char *string)
{
const char *param = NULL;
uint8_t param_len = 0;
param = FreeRTOS_CLIGetParameter(string, 1, (BaseType_t *)&param_len);
if (NULL == param)
{
vty_print(cli_param_erro);
return pdFALSE;
}
switch(param[0])
{
case 'a':
// 50(1A) 100(2A) 250(5A) 500(10A) 1500(30A)
_debug_pkt_adj_autoEx(50,1);
break;
case 'm':
_debug_pkt_adj_auto(); // 一个分段点 100A
break;
default:
vty_print(cli_param_erro);
return pdFALSE;
}
vty_print(cli_rv_ok);
return pdFALSE;
}
/* 工作模式配置命令. */
static BaseType_t _cli_work_mode(const char *string)
{
@ -795,6 +830,7 @@ static void _cli_start(void)
FreeRTOS_CLIRegisterCommand(&cmd_show, CLI_NODE_COMMON);
FreeRTOS_CLIRegisterCommand(&cmd_test, CLI_NODE_COMMON);
FreeRTOS_CLIRegisterCommand(&cmd_work_mode, CLI_NODE_CONFIG);
FreeRTOS_CLIRegisterCommand(&cmd_debug_msg, CLI_NODE_CONFIG);
for(;;)
{
@ -841,21 +877,36 @@ void cli_start(void const * argument)
FLASH_If_Init();
/* 配置系统初始化. */
dev_config_init();
dev_config_flag_set(DEV_FLAG_CLI);
//dev_config_flag_set(DEV_FLAG_CLI);
//dev_config_flag_unset(DEV_FLAG_CLI);
//dev_config_flag_set(DEV_FLAG_ADJ);
flash_log_init();
st_init();
/* 公共监控任务初始化. */
common_sys_init();
/* 默认开启的 debug. */
dbg_cmd_hander(DBG_CMD_ON, DBG_M_DAU);
//dbg_cmd_hander(DBG_CMD_ON, DBG_M_DAU_TXRX);
//dbg_cmd_hander(DBG_CMD_ON, DBG_M_GPS);
dbg_cmd_hander(DBG_CMD_ON, DBG_M_4G);
if (IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_CLI))
{
dbg_cmd_hander(DBG_CMD_ON, DBG_M_DAU);
//dbg_cmd_hander(DBG_CMD_ON, DBG_M_DAU_TXRX);
//dbg_cmd_hander(DBG_CMD_ON, DBG_M_GPS);
dbg_cmd_hander(DBG_CMD_ON, DBG_M_4G);
dbg_cmd_hander(DBG_CMD_ON, DBG_M_RS485_SEN);
dbg_cmd_hander(DBG_CMD_ON, DBG_M_RS485_DEBUG);
}
/* 初始化 ADC 采样任务. */
ADC_init();
/* 初始化 DAU 任务. */
dau_init();
if (IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ))
{
dau_adj_init();
}
else
{
/* 初始化 DAU 任务. */
dau_init();
}
/* 初始化无线通讯任务. */
if (!IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_ADJ)
&& !IS_MONITOR_BIT_SET(dev_config.flag, DEV_FLAG_FACTORY))

@ -50,6 +50,7 @@
#include "ADC_collect.h"
#include "dau.h"
#include "wireless.h"
#include "RS485_debug.h"
/* Private define ------------------------------------------------------------*/
#define DAU_WAVE_WAIT_MAX 3 // DAU 波形等待次数
@ -148,12 +149,21 @@ const osThreadAttr_t dau_gps_attributes =
.priority = (osPriority_t) osPriorityNormal,
};
const osThreadAttr_t dau_adj_attributes =
{
.name = "ADJ",
.stack_size = 160 * 4,
.priority = (osPriority_t) osPriorityNormal,
};
/* DAU 全局结构体 */
dau_ctrl_t dau_ctrl;
static struct tm _dau_tm;
int8_t _dau_spi_rw;
uint16_t _dau_spi_addr;
uint16_t _dau_spi_len;
int8_t g_is_adj_status = 0; // 1:采集 2:采集完成
/* Private function prototypes -----------------------------------------------*/
/* Internal functions --------------------------------------------------------*/
@ -856,6 +866,65 @@ void _dau_power_calculate(DAU_SOURCE_E source)
//}
}
/* dau data base 自动计算. */
HAL_StatusTypeDef _dau_base_auto(uint8_t ch_bitmap, uint8_t index)
{
int16_t (*val)[DAU_POWER_DATE_LEN] = dau_ctrl.reg_power;
//uint32_t *power = dau_ctrl.reg_elec;
uint8_t ch = 0;
uint16_t i = 0;
uint64_t square_sum = 0;
int32_t mean_sum = 0;
if (!ch_bitmap)
{
return HAL_OK;
}
/* 遍历通道, 计算有效值. */
index--;
for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++)
{
/* 过滤通道. */
if (!IS_MONITOR_BIT_SET(ch_bitmap, ch))
{
continue;
}
square_sum = 0;
mean_sum = 0;
/* 遍历通道所有值, 求和, 并计算出最大值和最小值. */
for(i = 0; i < DAU_POWER_DATE_LEN; i++)
{
square_sum += val[ch][i] * val[ch][i];
mean_sum += val[ch][i];
}
/* 计算校准参数. */
dev_config.ADC_base[ch][index] = (double)sqrt(square_sum / DAU_POWER_DATE_LEN) - abs(mean_sum / DAU_POWER_DATE_LEN);
if (0 == index)
{
dev_config.ADC_adj[ch][index] = (uint16_t)(dev_config.ADC_base_elec[ch][index] * 32768 / (dev_config.ADC_base[ch][index] * dev_config.ADC_ratio[ch] * 1.414));
}
else
{
square_sum = (uint64_t)(dev_config.ADC_base_elec[ch][index] - dev_config.ADC_base_elec[ch][index - 1]) * 32768;
dev_config.ADC_adj[ch][index] = (uint16_t)(square_sum / ((dev_config.ADC_base[ch][index] - dev_config.ADC_base[ch][index - 1]) * dev_config.ADC_ratio[ch] * 1.414));
}
/* 调试打印. */
if (dbg_stat_get(DBG_M_DAU))
{
DBG(DBG_M_DAU, "ADC_base[%d][%d] = %f \r\n", ch, index, dev_config.ADC_base[ch][index]);
DBG(DBG_M_DAU, "ADC_base_elec[%d][%d] = %d \r\n", ch, index, dev_config.ADC_base_elec[ch][index]);
DBG(DBG_M_DAU, "ADC_adj[%d][%d] = %d \r\n", ch, index, dev_config.ADC_adj[ch][index]);
}
}
return HAL_OK;
}
/* description: 故障触发波形采集
param:
return: HAL_xxx */
@ -1147,6 +1216,78 @@ static void _dau_start(void *argument)
}
}
/* description: DAU 校准任务循环
param:
return: */
static void _dau_adj_start(void *argument)
{
//uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]);
uint16_t *buf = NULL;
//uint32_t addr = 0;
uint8_t i = 0;
uint8_t j = 0;
uint16_t k = 0;
int32_t rv = HAL_ERROR;
/* 状态初始化 */
_dau_init();
for (;;)
{
osDelay(10000);
common_watchdog_set(COM_WDG_DAU);
if (g_is_adj_status == 1)
{
memset(dau_ctrl.reg_power, 0, sizeof(dau_ctrl.reg_power));
/* 读取全局状态寄存器 */
rv = _dau_reg_read_global_state();
if (rv != HAL_OK)
{
vty_print("rv=%d\r\n", rv);
continue;
}
/* 循环工频缺陷电流采集 */
dau_ctrl.col_time = 600000;
MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP);
MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP);
_dau_wave_col_trigger_by_reg();
#if 1
//for(i = 0; i < DAU_PORT_POWER_CNT; i++)
for(i = 0; i < 1; i++)
{
vty_print("POWER %d\r\n", i);
buf = (uint16_t*)dau_ctrl.reg_power[i];
for(j = 0; j < DAU_PKT_POWER_CNT; j++)
{
common_watchdog_set(COM_WDG_DAU);
for(k = 0; k < 512;)
{
vty_print("%-04x ", buf[k++]);
if(0 == (j*512+k ) % 40)
{
osDelay(100);
vty_print("\r\n");
}
}
/*if((j*512+k ) % 40 != 0)
{
osDelay(100);
vty_print("\r\n");
}*/
buf += 512;
}
vty_print("\r\n");
}
#endif
g_is_adj_status = 2;
_dau_base_auto(1, 0);
}
}
}
/* description: GPS 报文处理 ($GNZDA,235949.012,05,01,1980,,*4F)
param:
return: */
@ -1291,6 +1432,16 @@ void dau_init(void)
dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes);
}
/* description: DAU 采集校准任务初始化
param:
return: */
void dau_adj_init(void)
{
dau_ctrl.dau_handle = osThreadNew(_dau_adj_start, NULL, &dau_adj_attributes);
dau_ctrl.gps_handle = osThreadNew(_dau_gps_start, NULL, &dau_gps_attributes);
}
/* description: spi 接口测试函数
param:
return: */

@ -143,7 +143,8 @@ static HAL_StatusTypeDef _dev_config_default_set(void)
if (i < 4)
{
dev_config.ADC_ratio[i] = 60;
dev_config.ADC_base_elec[i][0] = 1000;
//dev_config.ADC_base_elec[i][0] = 1000;
dev_config.ADC_base_elec[i][0] = 100000; // 100A 只校准一个分段点,其他不用
dev_config.ADC_base_elec[i][1] = 2000;
dev_config.ADC_base_elec[i][2] = 5000;
dev_config.ADC_base_elec[i][3] = 10000;

@ -87,7 +87,7 @@ void MX_USART1_UART_Init(void)
/* USER CODE END USART1_Init 1 */
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
huart1.Init.BaudRate = 9600;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;

Loading…
Cancel
Save