From 767edd5ec2a133c04c5d84aeba4135f0bd21d23f Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期三, 28 八月 2024 15:11:49 +0800
Subject: [PATCH] V3.1,改为最新逻辑。 1.铁鞋没有处于充电状态&&同时在运动状态,正常定位,有uwb发uwb跟gps数据,没有就看是否有gps数据,有发gps数据没有发lbs数据。 2.铁鞋没有处于充电状态&&同时在静止休状态,1秒钟发送一次状态和位置坐标;直到定位引擎回复收到消息后,设备停止发送状态进入休眠模式;20分钟后再次启动工作,重复(避免铁鞋被盗找不到) 3.铁鞋插上充电时候(延迟x秒后,为了确保能判断归箱)1秒钟发送一次在充电状态;定位引擎回复收到消息后,设备停止发送状态进入休眠模式(目的太阳能充电省电) 4.铁鞋充电到100%后启动4G工作,1秒钟发送一次充满电状态;定位引擎回复收到消息后,设备停止发送状态进入休眠模式(目的太阳能充电省电)。休眠模式是指:所有外设不再工作,不联网不测距。PS:每两种状态之间切换时,只要之前进入过休眠,就要重新开启4g,联网时间根据信号强度5-20s不等。重新联网期间没有办法上发任何数据。

---
 Core/Src/main.c |   65 ++++++++++++--------------------
 1 files changed, 25 insertions(+), 40 deletions(-)

diff --git a/Core/Src/main.c b/Core/Src/main.c
index c3fd7fe..218e58c 100644
--- a/Core/Src/main.c
+++ b/Core/Src/main.c
@@ -831,19 +831,18 @@
 uint16_t fangchai_time;
 extern uint8_t fangchai_flag;
 extern uint8_t fangchai_state;
-uint8_t yundong_state;
-uint16_t yundong_time;
+
+
 uint8_t gpslednum;
 #define BAT_TIME 100
 #define DIANLIANG 15
-uint8_t air780_state;
+//uint8_t air780_state;
 extern uint8_t chongman_flag;
 uint8_t jinru_parsegga_flag;
 uint8_t input_5v_flag;
 uint8_t num;
 uint16_t sleep_time;
-uint16_t chongdian_yundong_time;
-uint16_t chongdianmeiyouuwb_time;
+uint16_t chongdian_time;
 void Bat_Percent_Poll()
 {
     bat_time++;
@@ -856,19 +855,8 @@
 void Powerled_Poll()
 {
     if(!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
-    {input_5v_flag=0;
-        if(bat_percent>DIANLIANG)
-        {
-             powerled = RED;
-        }
-        else
-        {
-             powerled = RED;
-        }
-    }
-    else
     {
-    input_5v_flag=1;
+        powerled = RED;
     }
 }
 void Fangchai_Panduan_Poll()
@@ -898,17 +886,7 @@
 //        Beep_Off();        
     }
 }
-void Yundong_Panduan_Poll()
-{
-    if(yundong_state>0)
-    {
-        yundong_time++;
-    }
-    else
-    {
-        yundong_time=0;
-    }
-}
+
 void Sleep_Panduan_Poll()
 {
     if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable)
@@ -926,7 +904,7 @@
 }
 void Gps_Chongqi_Poll()
 {
-    if(nomove_flag==0&&!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&fangchai_state==0&&air780_state==0)
+    if(nomove_flag==0&&!HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&fangchai_state==0)
     {
         if(jinru_parsegga_flag==0)
         {
@@ -940,12 +918,27 @@
         }
     }
 }
+uint16_t work_time;
+uint8_t input5vtime=10;
 void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim)
 {
     SystemClock_Config();
     Gps_Chongqi_Poll();
     Powerled_Poll();
-    chongdianmeiyouuwb_time++;
+//    chongdianmeiyouuwb_time++;
+    if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin))
+    {
+    chongdian_time++;
+        if(chongdian_time>input5vtime)
+        {input_5v_flag=1;}
+        else
+        {input_5v_flag=0;}
+    }
+    else
+    {
+    chongdian_time=0;
+    input_5v_flag=0;    
+    }
     if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&chongman_flag==0)
     {
         num++;
@@ -968,20 +961,12 @@
         Set4LEDColor(powerled,loraled,gpsled,uwbled);
     }
     Fangchai_Panduan_Poll();
-    Yundong_Panduan_Poll();
     heart_time++;
+    work_time++;
     nomove_count++;
     Sleep_Panduan_Poll();
     Bat_Percent_Poll();
-    chongdian_yundong_time++;
-//    if(!chongman_flag)
-//    {
-//    powerled=LEDOFF;
-//    loraled=LEDOFF;
-//    gpsled=LEDOFF;
-//    uwbled=LEDOFF;
-//    Set4LEDColor_Off();
-//    }
+
     if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)&&chongman_flag==0)
     {
     }

--
Gitblit v1.9.3