From 2bda5756b312bfd5e6e7633f1b94bad36f81559b Mon Sep 17 00:00:00 2001 From: 钟印成 <zhyinch@gmail.com> Date: 星期三, 26 三月 2025 23:05:26 +0800 Subject: [PATCH] 修改状态机不跑BUG --- keil/include/main/main.c | 345 +++++++++++++++++++++++++-------------------------------- 1 files changed, 152 insertions(+), 193 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index bfd50f2..3d0b7c3 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -416,24 +416,8 @@ LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); - LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位工卡 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); - LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[IP_0],g_com_map[IP_1],g_com_map[IP_2],g_com_map[IP_3],g_com_map[PORT]); - if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) - { - LOG_INFO(TRACE_MODULE_APP,"TCP_RTCM模式,服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]); - } - else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP) - { - LOG_INFO(TRACE_MODULE_APP,"NtripHost:%s.\r\n",(char *)&g_com_map[NTRIP_HOST_INDEX]); - LOG_INFO(TRACE_MODULE_APP,"NtripPort:%d.\r\n",g_com_map[NTRIP_PORT_INDEX]); - LOG_INFO(TRACE_MODULE_APP,"NtripUsername:%s.\r\n",(char *)&g_com_map[NTRIP_USERNANME_INDEX]); - LOG_INFO(TRACE_MODULE_APP,"NtripPassword:%s.\r\n",(char *)&g_com_map[NTRIP_PASSWORD_INDEX]); - LOG_INFO(TRACE_MODULE_APP,"NtripSourcename:%s.\r\n",(char *)&g_com_map[NTRIP_SOURCENAME_INDEX]); - } - else if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NONE) - { - LOG_INFO(TRACE_MODULE_APP,"单点定位模式模式. \r\n"); - } + LOG_INFO(TRACE_MODULE_APP,"跳转OTA升级固件启动成功\r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); +// LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[IP_0],g_com_map[IP_1],g_com_map[IP_2],g_com_map[IP_3],g_com_map[PORT]); delay_ms(500); } uint32_t adctick = 0; @@ -444,133 +428,133 @@ extern uint8_t ota_flag; void IdleTask(void) { -if(read_5v_input_pca()) - { - if(state5v==0) - { - state5v=1; - state5V_prase_flag=state5v; - gps_prase_flag=0;//解除gps解析 - uart1_change_from_gps_to_debug();//测试 - PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 - } - chongman_time=0; - only_one_flag=0; - uwbled=0; - rtkled=0; - led4g=0; - powerled=0; -// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); - while(1) - { - nomove_count = 0; -// adctick = HIDO_TimerGetTick(); - if(HIDO_TimerGetTick()-adctick>60) //10分钟采样一次 电量 - { - chongman_time=chongman_time+60; - adctick = HIDO_TimerGetTick(); - PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 - adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 - } - if(bat_percent>=99&&!only_one_flag) - { - only_one_flag=1; - chongman_time=0; - } - if(bat_percent>=99&&chongman_time>=600) - { - powerled = GREEN; - }else{ - powerled = RED; - } - if(DBG_GetMode() == DBG_MODE_SHELL) - { - if(ota_flag==1) - { -// OTA_Poll(); -// HTTPClient_Poll(); - } - else - { - uwb_app_poll(); - } - Internet_Poll(); - HIDO_TimerPoll(); - HIDO_ATLitePoll(); - TCPClient_Poll(); - if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) - {TCPClient_Poll_1();} - if(flag_secondtask) - { - flag_secondtask = 0; - SecondTask(); - } - UserKeyTask(); - } - UART_CheckReceive(); - if(flag_secondtask) - { - flag_secondtask = 0; - SecondTask(); - } - if(DBG_GetMode() == DBG_MODE_SHELL) - { - Set4LEDColor(uwbled,rtkled,led4g,powerled); - if(g_com_map[CNT_RESTART]==1) - { - g_com_map[CNT_RESTART]=0; - save_com_map_to_flash(); - NVIC_SystemReset(); - } - } - else - { - Set4LEDColor(0,0,0,powerled); - } - if(input5v_time) - { - if(!read_5v_input_pca()) - { - break; - } - } - } - NVIC_SystemReset(); - input5vflag=1; - } - else - { - if(state5v==1) - { - g_com_map[MODBUS_MODE] = 0; - state5v=0; - state5V_prase_flag=state5v; - gps_prase_flag=1;//恢复gps解析 - uart1_change_from_debug_to_gps();//测试 - PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS - } - } - UART_CheckReceive(); - if(g_com_map[CNT_RESTART]==1) - { - g_com_map[CNT_RESTART]=0; - NVIC_SystemReset(); - - } - if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) - { - NVIC_SystemReset(); - } - HIDO_TimerPoll(); - if(ledonflag==1) - { - ledonflag=0; - uwbled=0; - rtkled=0; - led4g=0; - powerled=0; - Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); - } +//if(read_5v_input_pca()) +// { +// if(state5v==0) +// { +// state5v=1; +// state5V_prase_flag=state5v; +// gps_prase_flag=0;//解除gps解析 +// uart1_change_from_gps_to_debug();//测试 +// PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 +// } +// chongman_time=0; +// only_one_flag=0; +// uwbled=0; +// rtkled=0; +// led4g=0; +// powerled=0; +//// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0); +// while(1) +// { +// nomove_count = 0; +//// adctick = HIDO_TimerGetTick(); +// if(HIDO_TimerGetTick()-adctick>60) //10分钟采样一次 电量 +// { +// chongman_time=chongman_time+60; +// adctick = HIDO_TimerGetTick(); +// PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 +// adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 +// } +// if(bat_percent>=99&&!only_one_flag) +// { +// only_one_flag=1; +// chongman_time=0; +// } +// if(bat_percent>=99&&chongman_time>=600) +// { +// powerled = GREEN; +// }else{ +// powerled = RED; +// } +// if(DBG_GetMode() == DBG_MODE_SHELL) +// { +// if(ota_flag==1) +// { +//// OTA_Poll(); +//// HTTPClient_Poll(); +// } +// else +// { +// uwb_app_poll(); +// } +// Internet_Poll(); +// HIDO_TimerPoll(); +// HIDO_ATLitePoll(); +// TCPClient_Poll(); +// if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) +// {TCPClient_Poll_1();} +// if(flag_secondtask) +// { +// flag_secondtask = 0; +// SecondTask(); +// } +// UserKeyTask(); +// } +// UART_CheckReceive(); +// if(flag_secondtask) +// { +// flag_secondtask = 0; +// SecondTask(); +// } +// if(DBG_GetMode() == DBG_MODE_SHELL) +// { +// Set4LEDColor(uwbled,rtkled,led4g,powerled); +// if(g_com_map[CNT_RESTART]==1) +// { +// g_com_map[CNT_RESTART]=0; +// save_com_map_to_flash(); +// NVIC_SystemReset(); +// } +// } +// else +// { +// Set4LEDColor(0,0,0,powerled); +// } +// if(input5v_time) +// { +// if(!read_5v_input_pca()) +// { +// break; +// } +// } +// } +// NVIC_SystemReset(); +// input5vflag=1; +// } +// else +// { +// if(state5v==1) +// { +// g_com_map[MODBUS_MODE] = 0; +// state5v=0; +// state5V_prase_flag=state5v; +// gps_prase_flag=1;//恢复gps解析 +// uart1_change_from_debug_to_gps();//测试 +// PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS +// } +// } +// UART_CheckReceive(); +// if(g_com_map[CNT_RESTART]==1) +// { +// g_com_map[CNT_RESTART]=0; +// NVIC_SystemReset(); +// +// } +// if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) +// { +// NVIC_SystemReset(); +// } +// HIDO_TimerPoll(); +// if(ledonflag==1) +// { +// ledonflag=0; +// uwbled=0; +// rtkled=0; +// led4g=0; +// powerled=0; +// Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); +// } } void boot_deinit(void) { @@ -594,7 +578,7 @@ extern uint8_t receive_flag; extern uint8_t YUANGPS_ParseGGA_data[256]; extern uint8_t YUANGPS_ParseGGA_changdu; -static HIDO_CHAR url[256 + 1]; +static HIDO_CHAR url[256 + 1]="http://123.57.87.125:7001/hfs/MK8000-4G工卡V1.2.Bin"; //void OTA_MODE(void) //{ // if(g_com_map[OTA_FLAG]) @@ -670,17 +654,8 @@ DBG_Init(); Internet_Init(); - TCPClient_Init(); - if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_NTRIP) - { - NTRIPClient_Init(); - NTRIPApp_Init(); - } - if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) - { - TCPClient_Init_1(); - } -// HTTPClient_Init(); +// TCPClient_Init(); + HTTPClient_Init(); gpio_open(); LED_output_init();//配置彩色灯引脚 IIC2_Init(); @@ -694,52 +669,36 @@ PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低 adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 pca_input_detection_init(pca_handler);//pca检测输入 - Uwb_init(); - OpenUWB(); -// DBG_SetMode(DBG_MODE_SHELL); -// Shell_Init(); - - if(!read_5v_input_pca()) - { - Set4LEDColor(BLUE,GREEN,WHITE,RED); - delay_ms(500); - Set4LEDColor(RED,WHITE,RED,WHITE); - delay_ms(500); - Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF); - } - g_com_map[MODBUS_MODE] = 0; - state5v=0; + DBG_SetMode(DBG_MODE_SHELL); + state5v=1; state5V_prase_flag=state5v; - gps_prase_flag=1;//恢复gps解析 - uart1_change_from_debug_to_gps();//测试 - PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS + gps_prase_flag=0;//解除gps解析 + uart1_change_from_gps_to_debug();//测试 + PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平切换为5V输入 + +// memcpy(/*(HIDO_UINT8 *)*/url,(void *)APP_CONFIG_IAP_PARAM_MAP,256); + OTA_Start((HIDO_UINT8 *)url); + LOG_INFO(TRACE_MODULE_APP,"获取固件地址为:%s\r\n",url); while (1) { - if(ota_flag==1) - { -// OTA_Poll(); -// HTTPClient_Poll(); - } - else - { - uwb_app_poll(); - } + OTA_Poll(); + HTTPClient_Poll(); Internet_Poll(); HIDO_TimerPoll(); HIDO_ATLitePoll(); - TCPClient_Poll(); - if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) - { - TCPClient_Poll_1(); - } +// TCPClient_Poll(); +// if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP) +// { +// TCPClient_Poll_1(); +// } if(flag_secondtask) { flag_secondtask = 0; SecondTask(); } - PowerTask(); - IMUTask(); - UserKeyTask(); - IdleTask(); +// PowerTask(); +// IMUTask(); +// UserKeyTask(); +// IdleTask(); } } -- Gitblit v1.9.3