From 974181bcefe299fbed4c1dcd6d39be3e9f674c0e Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 13 六月 2025 18:04:16 +0800 Subject: [PATCH] 成功增加sscom03shell配置指令功能,但是需要输入3次才能进入函数处理未解决 --- keil/include/main/main.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 97 insertions(+), 14 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 72d51b7..58edd5a 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -61,6 +61,8 @@ #include "HIDO_ATLite.h" #include "HIDO_Timer.h" #include "TCPClient.h" +#include "DBG.h" +#include "Shell.h" //#define DEBUG_MODE extern int simple_main(void); @@ -165,6 +167,7 @@ } uint8_t control_close_flag; int16_t control_close_count; +uint8_t close_state_flag; static void adc_callback(void *data, uint32_t number) { uint32_t *result = (uint32_t *)data; @@ -195,6 +198,7 @@ userkey_state=2; TCPHeartBeatUpload();//低电量休眠 control_close_flag=1; + close_state_flag=2; // delay_ms(1000);//等待发送完成 } power_low_flag=1; @@ -251,13 +255,14 @@ void IMUTask(void) { - if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&g_com_map[IMU_ENABLE]==1) + if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&g_com_map[IMU_ENABLE]==1&&active_flag) {power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)ACCLERATE_DETECT_Pin, POWER_WAKEUP_LEVEL_HIGH); userkey_state=3; if(control_close_flag==0) TCPHeartBeatUpload();//静止休眠 // delay_ms(1000); control_close_flag=1; + close_state_flag=3; } } @@ -285,6 +290,8 @@ gps_need_data_flag=1; gps_wait_count2=0; gps_wait_count=0; + beepontime=0; + beep_start_flag=0; } if(control_close_flag) { @@ -292,18 +299,23 @@ { gps_air780_power_change(0,0);//gps,4G关闭 - control_close_flag=0; - control_close_count=0; - if(userkey_state==4) - active_flag=0; - else if(userkey_state==3) + + if(close_state_flag==4) + {active_flag=0; + TCP_reconnect_timer=0;//重置4G重连条件 + flag_TCP_reconnectting = 1; + }else if(close_state_flag==3) { mcu_deep_sleep(); } + close_state_flag=0; + control_close_flag=0; + control_close_count=0; } }else{ control_close_count=0; } +// HIDO_TimerTick(); LED_Task(); //UWB状态检测 if(!power_low_flag&&active_flag)//低供电下不需要检测重连 @@ -378,6 +390,8 @@ { userkey_state=4; TCPHeartBeatUpload();//立即上传心跳包 control_close_flag=1; + close_state_flag=4; + //air_send_Task(); // gps_air780_power_change(0,0);//gps,4G关闭 // active_flag=0; @@ -385,11 +399,15 @@ gps_air780_power_change(1,1);//gps,4G关闭 active_flag=1; } + nomove_count=0; } void handle_single_click(void) { -beepontime=1; -beep_start_flag=1; +//beepontime=1; +//beep_start_flag=1; +motor_off(); +// motor_on_and_off(&motor_power_state); +// motor_power_state=1; } // 时间阈值定义 @@ -411,6 +429,8 @@ { sos_state=WAIT_NEXT_RISING; falling_time=HIDO_TimerGetTick(); +if(!power_low_flag&&active_flag) +motor_on(); } void click_Task(void) { @@ -479,11 +499,13 @@ { click_count=0; long_press_flag=1; + sos_state=IDLE; }else{ click_count=0; sos_state=IDLE; } + motor_off(); temp_rising_time=rising_time; } }else if(sos_state==WAIT_NEXT_FALLING) @@ -498,6 +520,7 @@ click_count=0; sos_state=IDLE; } + } } void UserKeyTask(void) @@ -566,12 +589,12 @@ } g_com_map[MODBUS_MODE] = 0; log_4g_enable_flag=g_com_map[LOG_4G_ENABLE]; - ip0 = (g_com_map[TCP_IP_0]>>12&0xf)*1000+(g_com_map[TCP_IP_0]>>8&0xf)*100+(g_com_map[TCP_IP_0]>>4&0xf)*10+(g_com_map[TCP_IP_0]&0xf); - ip1 = (g_com_map[TCP_IP_1]>>12&0xf)*1000+(g_com_map[TCP_IP_1]>>8&0xf)*100+(g_com_map[TCP_IP_1]>>4&0xf)*10+(g_com_map[TCP_IP_1]&0xf); - ip2 = (g_com_map[TCP_IP_2]>>12&0xf)*1000+(g_com_map[TCP_IP_2]>>8&0xf)*100+(g_com_map[TCP_IP_2]>>4&0xf)*10+(g_com_map[TCP_IP_2]&0xf); - ip3 = (g_com_map[TCP_IP_3]>>12&0xf)*1000+(g_com_map[TCP_IP_3]>>8&0xf)*100+(g_com_map[TCP_IP_3]>>4&0xf)*10+(g_com_map[TCP_IP_3]&0xf); - port = g_com_map[TCP_PORT]; - g_com_map[VERSION] = (1<<8)|15; + ip0 = g_com_map[IP_0]; + ip1 = g_com_map[IP_1]; + ip2 = g_com_map[IP_2]; + ip3 = g_com_map[IP_3]; + port = g_com_map[PORT]; + g_com_map[VERSION] = (1<<8)|20; 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",ip0,ip1,ip2,ip3,port); @@ -594,6 +617,64 @@ //UartInit(); } + //检测到5V输入 + while(1) + { + nomove_count = 0; + wdt_ping(WDT_ID0);//喂狗 + if(DBG_GetMode() == DBG_MODE_SHELL) + { + +// if(flag_secondtask) +// { +// flag_secondtask = 0; +// SecondTask(); +// } + } + if(flag_TCP_reconnectting||IfTCPConnected()) + { + if(flag_4G_recdata==1) + { + flag_4G_recdata = 2; + Socket_RecvAll(); + } + Internet_Poll(); + HIDO_ATLitePoll(); + HIDO_TimerPoll(); + TCPClient_Poll(); + } + UART_CheckReceive(); + UserKeyTask(); + IMUTask(); + if(flag_secondtask) + { + flag_secondtask = 0; + SecondTask(); + } + if(DBG_GetMode() == DBG_MODE_SHELL) + { + if(g_com_map[CNT_RESTART]==1) + { + g_com_map[CNT_RESTART]=0; + save_com_map_to_flash(); + NVIC_SystemReset(); + + } + } + else + { + + } +// if(input5v_time) +// { + if(!gpio_pin_get_val(INPUT_5V_Pin)) + { + break; + } + +// } + } + //NVIC_SystemReset();//重启 //UART_CheckSend(); } else { if(state5v==1) @@ -698,6 +779,8 @@ // TODO 4G Uart_Register(UART_ID_4G, UART_ID0); + Uart_Register(UART_ID_DBG_GPS, UART_ID1); + DBG_Init(); Internet_Init(); TCPClient_Init(); -- Gitblit v1.9.3