From b13574876322e59f75f26ac38f72c6b19c9d4aba Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期五, 27 六月 2025 14:02:08 +0800
Subject: [PATCH] 刚解决完网关下发会导致异常问题,但蓝牙那边mk给蓝牙发未配置成功未解决,开始调lora功耗

---
 keil/include/src/Radio/lora_1268.c |   46 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/keil/include/src/Radio/lora_1268.c b/keil/include/src/Radio/lora_1268.c
index c45ce99..dccdedf 100644
--- a/keil/include/src/Radio/lora_1268.c
+++ b/keil/include/src/Radio/lora_1268.c
@@ -313,7 +313,7 @@
 	checksum = Checksum_u16(lora_sendbuffer,9+data_length);
 	memcpy(&lora_sendbuffer[9+data_length],&checksum,2);
 	Radio.Send(lora_sendbuffer,data_length+11);
-
+LOG_INFO(TRACE_MODULE_APP, "进入回复\r\n");
   //LORA_3029_SINGLE_SEND(lora_sendbuffer,data_length+11,0);
   //  Delay_Ms(100);
 }
@@ -360,7 +360,20 @@
 
      
 }
-
+void lora_in_sleep(void)
+{
+				 //SPI0/MOSI/MISO/CLK/CS
+//	gpio_pin_set(LORA_CS);
+//	gpio_pin_clr(LORA_MOSI);
+//	gpio_pin_clr(LORA_MISO);
+//	gpio_pin_clr(LORA_CLK);
+//	gpio_pin_clr(LORA_IRQ);
+	//gpio_pin_clr(LORA_NRST);
+	//gpio_pin_clr(LORA_NRST);//lora休眠
+//	 Radio.Standby();
+	
+    Radio.Sleep();
+}
 ////States_t State = LOWPOWER;
 
 //////int8_t RssiValue = 0;
@@ -377,13 +390,16 @@
 //uint16_t current_count;
 //extern wg_state_enum wg_state;
 uint8_t txdone=0;
+uint8_t send_flag;
 void OnTxDone( void )
 { 
 	  txdone++;
+		
     if(flag_writepara_needreset) //配置写入完成设备需要重启
     {
-        printf("网关下发配置写入完成,重启");
-        SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
+        LOG_INFO(TRACE_MODULE_APP,"网关下发配置写入完成,重启\r\n");
+//        SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
+			sys_reset(0);
     }
     Radio.Standby();
     if(LoraUp_flag)
@@ -393,7 +409,9 @@
     }
     else
     {
+			
     Radio.Rx( 50 );
+			send_flag=1;
     //LORA_LED_OFF;
     }
 }
@@ -427,6 +445,9 @@
 uint8_t LoraUp_flag;
 uint16_t REV_WG_pack=0; 
 uint8_t rxdone=0;
+extern uint16_t set_mk_time;
+extern mk_send_message_to_BLE(void);
+uint8_t tt4=1;
 void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )
 {  
 				uint16_t checksum1;
@@ -459,8 +480,8 @@
 										switch(RX_Buffer[PWTAG_RW_FLAG_IDX])
 										{
 												case WGRSP_RWTAG_NONE:
-												REV_WG_pack++;
-                        wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400;
+												REV_WG_pack++;//此处刚放开
+                        wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400;//此处刚放开未测试
 //                        memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2);
 
 //                        if(report_ancnum<2)
@@ -504,6 +525,7 @@
 															LoraSendComMap(WGRSP_RWTAG_READ);
 															break;
 												case WGRSP_RWTAG_WRITE:
+
 														rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX];
 													switch(rec_index)
 															{
@@ -516,12 +538,17 @@
                         default :
                             memcpy(&rec_value,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2);
                             g_com_map[rec_index/2] = rec_value;
+														if(rec_index/2==POWER)//新增判断
+														{
+														 memcpy(&set_mk_time,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2);
+															mk_send_message_to_BLE();	//发送给蓝牙
+															//LOG_INFO(TRACE_MODULE_APP, "修改成功g_com表为%#x,时间为%#x\r\n",g_com_map[POWER],set_mk_time);
+														}
                             save_com_map_to_flash();
                             LoraRspWriteCommap(SUBMSG_WRITE_ANCPARA);
                             flag_writepara_needreset = 1;
                             no_rx_flag = 1;                           
 															}
-
 															break; 
 												case WGRSP_RWTAG_UPDATE:
 												rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX];
@@ -546,7 +573,8 @@
 									}
 								}
 
-							}						
+							}
+			
     if(!no_rx_flag)
     {
         if(lora_jianting_flag&&LoraUp_flag==0)
@@ -555,6 +583,7 @@
             Radio.Rx(0);
         }
     }
+		
 }
 
 void OnTxTimeout( void )
@@ -570,6 +599,7 @@
 void OnRxTimeout( void )
 {
     Radio.Standby();
+	
     if(lora_jianting_flag)
     {
         SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);

--
Gitblit v1.9.3