From 01eb2711c0c175661337934c1f7a888cd31d45af Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期二, 01 四月 2025 10:04:13 +0800
Subject: [PATCH] V2.54

---
 Src/application/dw_mbx_tag.c |   62 +++++++++++++++++--------------
 1 files changed, 34 insertions(+), 28 deletions(-)

diff --git a/Src/application/dw_mbx_tag.c b/Src/application/dw_mbx_tag.c
index c4b50b2..7eedc73 100644
--- a/Src/application/dw_mbx_tag.c
+++ b/Src/application/dw_mbx_tag.c
@@ -243,8 +243,7 @@
     dwt_entersleep();
 
 }
-#define START_FREQ    480
-#define END_FREQ      483  //LR 远距离通道
+
 wg_state_enum wg_state = WG_Lost;
 uint8_t lora_sendbuffer[200];
 u8 seq_num;
@@ -257,27 +256,22 @@
 
 void LoraReportFreqPoll(void)
 {
-    if(wg_lost_count++>3)
+    if(wg_lost_count++>WG_LOST_SWITCH_THRES)
     {
         wg_state = WG_Lost;
         wg_report_id = DEFAULT_WG_ID;
-       // if(wg_report_freq++>END_FREQ)
+        if(wg_report_freq++>=END_FREQ)
         {
             wg_report_freq = START_FREQ;
         }
-        if(wg_report_freq==END_FREQ)
-        {
-            SwitchLoraSettings(wg_report_freq,LR_CHANNEL_SF,g_com_map[LORA_POWER]);    
-        }else{
-            SwitchLoraSettings(wg_report_freq, REPORT_CHANNEL_SF,g_com_map[LORA_POWER]); 
-        }
+   
         
     }
 //    wg_report_freq = g_com_map[ALARM_DISTANCE2];
     if(wg_lost_count++>WG_LOST_NOUWB_COUNT) //网关60秒没有通讯,就不开启UWB测距lora监听
         
     {
-       // lora_jianting_flag = 0;
+//        lora_jianting_flag = 0;
     } else {
         lora_jianting_flag = 1;
     }
@@ -330,10 +324,22 @@
     printf("气压值:%d",intheight);
 #endif
 
-    TagListUpdate();
-
+  
     LoraReportFreqPoll();
     flag_getwgresp = 0;
+    if(wg_report_freq==END_FREQ)
+    {
+        SwitchLoraSettings(wg_report_freq,LR_CHANNEL_SF,g_com_map[LORA_POWER]);    
+    }else{
+        SwitchLoraSettings(wg_report_freq, REPORT_CHANNEL_SF,g_com_map[LORA_POWER]); 
+    }
+    if(wg_state == WG_Lost)
+    {
+        if(wg_report_freq==END_FREQ)
+          TagListUpdate();
+    }else{
+         TagListUpdate();
+    }
     //  wg_report_freq = REPORT_MANGE_CHANNEL_FRQ;
 //    SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,g_com_map[LORA_POWER]);
     if(heatbeat_count++>HEATBEAT_UPDATE_TIME && WG_Connected == wg_state) //如果心跳包到达上传时间,并且网关处于链接状态,就上传心跳包
@@ -457,23 +463,23 @@
         {
             Lora_send_flag=0;
 #ifdef GROUPID_SWITCH
+            if(lora_jianting_flag)
+            {
+                if(++group_id>2)
+                {
+                    group_id = 1;
+                }
+                t22[ti++] = group_id;
+                if(ti>=20)
+                    ti=0;
+                group_min_dist[group_id] = 0xffff;
+                Radio.Standby();
+                SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
+                Radio.Rx(0);
+            }
             if(rec_secdelay>0)
             {
                 rec_secdelay--;
-                if(lora_jianting_flag)
-                {
-                    if(++group_id>GROUP_NUM)
-                    {
-                        group_id = 1;
-                    }
-                    t22[ti++] = group_id;
-                    if(ti>=20)
-                        ti=0;
-                    group_min_dist[group_id] = 0xffff;
-                    Radio.Standby();
-                    SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
-                    Radio.Rx(0);
-                }
                 return;
             }
 //            //找3个小组中最近距离最大的小组,上传报文后切换到这个小组,因为上传报文会时间占用。
@@ -486,7 +492,7 @@
 //                group_maxdist_index = group_min_dist[2]>group_min_dist[3]?2:3; //取 2和3 最大值
 //                group_mindist_index = group_min_dist[1]<group_min_dist[3]?1:3;//取 1和3 最小值
 //            }
-          group_id = 1;
+//          group_id = 1;
 //            group_id = group_maxdist_index;
 #endif
             t22[ti++] = group_id;

--
Gitblit v1.9.3