From e0a196fc7dcb47d200ab81a933dde2b18d169ed5 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期二, 13 五月 2025 16:23:21 +0800 Subject: [PATCH] 移植开关GPS代码 --- keil/include/main/main.c | 84 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 79 insertions(+), 5 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index ba1cfde..a751e73 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -46,6 +46,15 @@ #define UWB_MEASUREMENT_INTERVAL 5 #define UWB_MEASUREMENT_INTERVAL_SLEEP 30 + + +//室内外阈值 +#define XINGHAOQIANGDU_VALUE 210 +#define WEIXINGSHULIANG_VALUE 10 +uint8_t heart_upload_time=0; +uint8_t open_gps_time=0; + + extern uint8_t mUsartReceivePack[100]; extern uint8_t mUsart2ReceivePack[150]; extern uint8_t state5V_prase_flag,gps_prase_flag; @@ -110,7 +119,7 @@ .flow = UART_FLOW_CONTROL_NONE, .rx_level = UART_RXFIFO_CHAR_1, .tx_level = UART_TXFIFO_EMPTY, - .baud = BAUD_115200, + .baud = BAUD_9600, #if (TEST_UART_MODE == TEST_UART_POLL_MODE) .dma_en = false, .int_rx = false, @@ -211,6 +220,71 @@ power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW); mcu_deep_sleep(); } +} + +extern uint16_t g_spsum_GSV,g_snum_GSV,g_spsum_GSV_sum,g_snum_GSV_sum; +extern uint8_t lounei_flag,open_gps_time,ceju_leave_flag,fixed_solution_count_minute; +void GPS_ONOFF_Task() +{ + if(30<open_gps_time&&open_gps_time<=90) + { + Receive_g_spsum_Data(g_spsum_GSV); + Receive_g_snum_Data(g_snum_GSV); + if((g_spsum_GSV_sum<XINGHAOQIANGDU_VALUE||g_snum_GSV_sum<WEIXINGSHULIANG_VALUE)&&(fixed_solution_count_minute<30)) + { + lounei_flag=1; + } + if((XINGHAOQIANGDU_VALUE<g_spsum_GSV_sum&&WEIXINGSHULIANG_VALUE<g_snum_GSV_sum)&&(fixed_solution_count_minute>30)) + { + lounei_flag=0; + } + } + + if(open_gps_time>90) + { + if(ceju_leave_flag==1) + { + Receive_g_spsum_Data(g_spsum_GSV); + Receive_g_snum_Data(g_snum_GSV); + + if((g_spsum_GSV_sum<XINGHAOQIANGDU_VALUE||g_snum_GSV_sum<WEIXINGSHULIANG_VALUE)&&(fixed_solution_count_minute<30)) + { + lounei_flag=1; + } + if((XINGHAOQIANGDU_VALUE<g_spsum_GSV_sum&&WEIXINGSHULIANG_VALUE<g_snum_GSV_sum)&&(fixed_solution_count_minute>30)) + { + lounei_flag=0; + } + + if(heart_upload_time==60) + { + ceju_leave_flag=0; + fixed_solution_count_minute=0; + if(lounei_flag==1) + { + PCA9555_Set_One_Value_Output(GPS_POWER,0); + } + } + if(heart_upload_time==0||heart_upload_time==60) + { + heart_upload_time=0; + } + heart_upload_time++; + } + + } + if(open_gps_time>149&&lounei_flag==1) + { + + if(open_gps_time-90==60) + { + open_gps_time=90; + TCPHeartBeatUpload(); + } + + + } + uwb_app_poll(); } void powerON_Task(void) { @@ -327,14 +401,15 @@ { input5v_time=1; flag_secondtask = 1; + open_gps_time++; #ifdef UWB_1_5HZ uwb_time_count++; #endif - uwb_offtime_count++; +// uwb_offtime_count++; if(uwb_offtime_count>60) { uwb_offtime_count=0; - current_state = STATE_SLEEP; +// current_state = STATE_SLEEP; } if(!read_5v_input_pca()) { @@ -357,6 +432,7 @@ // OpenUWB(); } upload_apppoll(); + GPS_ONOFF_Task(); }else{ flag_secondtask = 0; } @@ -647,7 +723,6 @@ case UWB_OPEN_COUNT: CloseUWB(); UWBSendUDPTask(); - break; case UWB_MEASUREMENT_INTERVAL: @@ -656,7 +731,6 @@ Uwb_init(); OpenUWB(); state_start_time = uwb_time_count; - break; } break; -- Gitblit v1.9.3