From a489e104f73fe7bbe78892b416f716ef501059cc Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期二, 12 三月 2024 11:07:13 +0800 Subject: [PATCH] 修复灯乱闪的bug --- APL/APL.c | 35 ++++++++++++++++++++++++++++++----- 1 files changed, 30 insertions(+), 5 deletions(-) diff --git a/APL/APL.c b/APL/APL.c index e5e97f1..0390e26 100644 --- a/APL/APL.c +++ b/APL/APL.c @@ -233,7 +233,7 @@ HAL_Delay(100); loraled=LEDOFF; Set4LEDColor(powerled,loraled,gpsled,uwbled); - if(lora_sendfinalbag_num>30) + if(lora_sendfinalbag_num>4) { lora_sendfinal_rx_bag_flag=0; lora_sendfinalbag_flag=0; @@ -292,11 +292,12 @@ return HIDO_OK; } -static uint8_t Input_5V_flag=0; +uint8_t Input_5V_flag=0; void Input_5V_Poll (void) { if(IsTypecCActive() == HIDO_TRUE&&Input_5V_flag==0) { Input_5V_flag=1; + nomove_time=0; if(bat_percent>=90) { powerled=GREEN; @@ -331,6 +332,21 @@ uint32_t GPSDateTime =0; uint8_t uwbqiehuangps_flag; extern uint8_t nomove_flag; +HIDO_INT32 NOWAKEUP_Poll(void) +{ + while(1) + { + HIDO_TimerPoll(); + Lora_Poll();//lora接收函数 + IdleTask(); + if((Lora_IsIdle() == HIDO_TRUE)/*为了防止lora初始化的时候进入休眠*/ + &&(IsTypecCActive() == HIDO_FALSE) /*5v输入检测时不休眠*/) + { + Power_Sleep(); + } + } +} +extern uint8_t fengming_time,fengming_flag; HIDO_INT32 APL_Poll(void) { // ST_RTCDateTime stNow; @@ -340,7 +356,7 @@ IdleTask(); GPS_Poll();//gps接收函数 Lora_Poll();//lora接收函数 - if(nomove_flag==0) + if(nomove_flag==0&&Input_5V_flag==0) { Lora_Sendfinalbag_Poll();//lora在gps成功获得位置坐标或者超过1分钟没有获得时发送gps最后一包数据的函数,之后1分钟(10s)发一次,除非lora收到消除标志位或者发送超过10次 } @@ -350,7 +366,7 @@ if(((Lora_IsIdle() == HIDO_TRUE)/*为了防止lora初始化的时候进入休眠*/ && (GPS_IsIdle() == HIDO_TRUE)/*防止gps工作时进入休眠*/ &&(lora_sendfinal_rx_bag_flag==0)//防止lora在2s等待接收的时候进入休眠 - && (IsTypecCActive() == HIDO_FALSE)&&(fangchai_flag==0)) /*5v输入检测时不休眠*/||nomove_flag==1/*静止1小时立刻休眠。*/) + && (IsTypecCActive() == HIDO_FALSE)/*5v输入检测时不休眠*/&&(fangchai_flag==0)&&fengming_flag==0) ||nomove_flag==1/*静止1小时立刻休眠。*/) { ////// if(Lora_IsIdle() == HIDO_TRUE) Power_Sleep(); @@ -359,7 +375,7 @@ else { } -if(nomove_flag==0&&(Lora_IsIdle() == HIDO_TRUE)) +if(nomove_flag==0&&(Lora_IsIdle() == HIDO_TRUE)&&Input_5V_flag==0) { if(GPS_ON_flag) { @@ -422,6 +438,8 @@ l_eGPSState = GPS_OFF; // uwbqiehuangps_flag=1;//如果放开,就是uwb切到gps会立刻工作一次,不放开就是就算uwb切换到gps也要判断是否过了一小时 } + if(fengming_flag==1) + {Beep_On();} } else { @@ -434,13 +452,20 @@ /* 拆卸告警 */ if(IsDisassemblyAlarm()) { + if(lp_time%2==1) Beep_On(); + else + Beep_Off(); + fangchai_flag=1; } else { + if(fengming_flag==0) + { Beep_Off(); fangchai_flag=0; + } } #endif -- Gitblit v1.9.3