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不等。重新联网期间没有办法上发任何数据。 --- radio/Lora.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/radio/Lora.c b/radio/Lora.c index d630c99..314a20b 100644 --- a/radio/Lora.c +++ b/radio/Lora.c @@ -180,6 +180,7 @@ uint8_t rec_index; uint16_t rec_value,rec_delaytime,rx_count; int16_t target_count; +uint16_t testlorarecve; void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ) { BufferSize = size; @@ -189,6 +190,7 @@ Radio.Standby(); if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_RANGEPOLL) { + testlorarecve++; UWB_Wkup(); MbxTagUwbRec(); HAL_GPIO_WritePin(RADIO_NSS_GPIO_Port, RADIO_NSS_Pin, GPIO_PIN_RESET); //片选lora有效 @@ -199,7 +201,7 @@ void OnTxTimeout( void ) { Radio.Standby(); - SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,0); + SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,22); } uint8_t tm; uint16_t Lora_rece_error; @@ -211,7 +213,7 @@ // while(target_count<0) // target_count+=32768; // __HAL_LPTIM_COMPARE_SET(&hlptim1, target_count); - SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,0); + SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,22); Radio.Rx(0); } @@ -219,7 +221,7 @@ { Radio.Standby(); - SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,0); + SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,22); Radio.Rx(0); } @@ -255,7 +257,7 @@ RadioEvents.RxError = OnRxError; Radio.Init( &RadioEvents ); - SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],5,0); //切换lora接收频点 + SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,22); //切换lora接收频点 Radio.Sleep(); -- Gitblit v1.9.3