From 3f91d9cad5d95d7a37a4af1f1ed8c99b3d7c2e64 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期五, 28 三月 2025 15:47:30 +0800 Subject: [PATCH] 有BUG,没调完 --- Src/application/dw_mbx_tag.c | 52 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 37 insertions(+), 15 deletions(-) diff --git a/Src/application/dw_mbx_tag.c b/Src/application/dw_mbx_tag.c index 93dcdc7..c4b50b2 100644 --- a/Src/application/dw_mbx_tag.c +++ b/Src/application/dw_mbx_tag.c @@ -243,33 +243,55 @@ 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; extern u32 wg_lost_count; -uint16_t wg_report_freq,wg_report_id; +uint16_t wg_report_freq = START_FREQ,wg_report_id; #define WG_LOST_SWITCH_THRES 5 #define WG_LOST_NOUWB_COUNT 60 #define DEFAULT_WG_ID 0xFFFF u8 lora_jianting_flag = 1; + void LoraReportFreqPoll(void) { - if(wg_lost_count++>WG_LOST_NOUWB_COUNT) //网关60秒没有通讯,就不开启UWB测距lora监听 + if(wg_lost_count++>3) { - lora_jianting_flag = 0; + wg_state = WG_Lost; + wg_report_id = DEFAULT_WG_ID; + // 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; } else { lora_jianting_flag = 1; } - if(wg_state==WG_Lost) - { - wg_report_id = DEFAULT_WG_ID; - wg_report_freq = REPORT_MANGE_CHANNEL_FRQ; //如果丢失链接就进入WG管理信道。 - } else { - if(wg_lost_count>WG_LOST_SWITCH_THRES) - { - wg_state = WG_Lost; - } - } +// if(wg_state==WG_Lost) +// { +// wg_report_id = DEFAULT_WG_ID; +// wg_report_freq = REPORT_MANGE_CHANNEL_FRQ; //如果丢失链接就进入WG管理信道。 +// } else { +// if(wg_lost_count>WG_LOST_SWITCH_THRES) +// { +// wg_state = WG_Lost; +// } +// } + \ } static u16 checksum; u8 gps_state,gps_chafenlingqi,gps_satel_num,gps_signalpower; @@ -313,7 +335,7 @@ LoraReportFreqPoll(); flag_getwgresp = 0; // wg_report_freq = REPORT_MANGE_CHANNEL_FRQ; - SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,g_com_map[LORA_POWER]); +// SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,g_com_map[LORA_POWER]); if(heatbeat_count++>HEATBEAT_UPDATE_TIME && WG_Connected == wg_state) //如果心跳包到达上传时间,并且网关处于链接状态,就上传心跳包 { heatbeat_count = 0; @@ -352,7 +374,7 @@ memcpy(&lora_sendbuffer[DEST_ID_IDX],&wg_report_id,2); lora_sendbuffer[SEQNUM_IDX] = seq_num++; lora_sendbuffer[BAT_IDX] = bat_percent; - // lora_sendbuffer[BAT_IDX] = recnum[0]; + lora_sendbuffer[BAT_IDX] = wg_report_freq-400; // lora_sendbuffer[SEQNUM_IDX] = recnum[1]; lora_sendbuffer[STATE_IDX] = !GET_USERKEY|stationary_flag<<1; #ifdef USE_GPS -- Gitblit v1.9.3