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