From f8fe8c08a399c3b6622f809fda4925851aef2c21 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期三, 23 七月 2025 14:05:45 +0800
Subject: [PATCH] 长庆测试版

---
 keil/include/src/Radio/lora_1268.c |  206 +++++++++++++++++++++++++++------------------------
 1 files changed, 110 insertions(+), 96 deletions(-)

diff --git a/keil/include/src/Radio/lora_1268.c b/keil/include/src/Radio/lora_1268.c
index 54728bd..77a3fc2 100644
--- a/keil/include/src/Radio/lora_1268.c
+++ b/keil/include/src/Radio/lora_1268.c
@@ -3,7 +3,6 @@
 #include "sx126x.h"
 #include "sx126x-board.h"
 #include "lora_1268.h"
-//#include "lora_3029.h""
 #include "user.h"
 #include "sx126x-board.h"
 #include "string.h"
@@ -158,7 +157,7 @@
     lora_sendbuffer[HB_LORAPOWER_IDX] = g_com_map[LORA_POWER];
     checksum = Checksum_u16(lora_sendbuffer,14);
     memcpy(&lora_sendbuffer[14],&checksum,2);	
-//    Radio.Send(lora_sendbuffer,16);
+    Radio.Send(lora_sendbuffer,16);
 		
 /*****************************心跳包上传内容*************************************/	
 		
@@ -173,7 +172,7 @@
 extern uint8_t DMA_RXBuf_BT[200];
 extern uint8_t report_ancnum;
 extern uint8_t report_ancnum_bt;
-uint32_t BT_SEND_flag=0;
+uint32_t BT_SEND_lenth=0;
 uint8_t BT_NUM=0;
 extern uint16_t report_ancdist[ANC_MAX_NUM],report_ancid[ANC_MAX_NUM];
 extern uint8_t bat_percent;
@@ -187,6 +186,8 @@
 extern uint32_t step_count;
 uint8_t step_count_rep;
 //extern u16_m f_step;
+extern uint8_t uwbled,gpsled,loraled,powerled;
+extern uint8_t exercise_state;
 void LoraReportPoll(void)
 {
     // delay_ms(100);
@@ -199,13 +200,13 @@
     printf("气压值:%d",intheight);
 #endif
 
-    TagListUpdate();
+//    TagListUpdate();
 
     LoraReportFreqPoll();
     flag_getwgresp = 0;
 
     SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,22);
-    mir3da_get_step();
+//    mir3da_get_step();
     if(heatbeat_count++>HEATBEAT_UPDATE_TIME && WG_Connected == wg_state) //如果心跳包到达上传时间,并且网关处于链接状态,就上传心跳包
     {
         heatbeat_count = 0;
@@ -251,7 +252,8 @@
     memcpy(&lora_sendbuffer[SOURCE_ID_IDX],&g_com_map[DEV_ID],2);
     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] = bat_percent;//(uint8_t)(step_count % 256);
+//		lora_sendbuffer[BAT_IDX] = (uint8_t)(step_count % 256);
 		lora_sendbuffer[STATE_IDX] = !GET_USERKEY|stationary_flag<<1;
 		//GET_USERKEY这个是那个lora——busy那个引脚
 //		lora_sendbuffer[STATE_IDX]=0x01;
@@ -282,20 +284,35 @@
     memcpy(&lora_sendbuffer[LORA_RETRANSNUSSION_BT+1],&DMA_RXBuf_BT[0],BT_NUM*2+1); 									//基站ID
     memcpy(&lora_sendbuffer[LORA_RETRANSNUSSION_BT+BT_NUM*2+2],&DMA_RXBuf_BT[1+BT_NUM*2],BT_NUM*2);//基站距离		
 		lora_sendbuffer[MSG_LENGTH] = LORA_RETRANSNUSSION_BT+4*BT_NUM+2;
-		
+
+    //保留位3
 		if(step_count < 0)
 			step_count=0;
-		lora_sendbuffer[STEP_COUNT] = (uint8_t)(step_count % 256);
-		
+		  lora_sendbuffer[STEP_COUNT] = (uint8_t)(step_count % 256);
+		  lora_sendbuffer[EXERCISE_STATE]=exercise_state;
+		  lora_sendbuffer[RESERVED_POSITION]=0;
 //		}
 //		if(lora_sendbuffer[LORA_RETRANSNUSSION_BT]==0x2D)
 //		{
 		checksum = Checksum_u16(lora_sendbuffer,4*BT_NUM+4*report_ancnum+BT_ANCID_IDX+3);
 		memcpy(&lora_sendbuffer[LORA_RETRANSNUSSION_BT+BT_NUM*4+2],&checksum,2);
-		BT_SEND_flag=BT_ANCID_IDX+report_ancnum*4+BT_NUM*4+5;
+		BT_SEND_lenth=BT_ANCID_IDX+report_ancnum*4+BT_NUM*4+5;
 		
-		Radio.Send(lora_sendbuffer,BT_SEND_flag);	
+		Radio.Send(lora_sendbuffer,BT_SEND_lenth);	
 		LORA_POLL_COUNT++;
+//#ifdef CESHIGUJIAN		
+//		uint16_t log_info_bt[10];
+//		uint16_t log_info_uwb[10];
+//		memcpy(log_info_bt,&lora_sendbuffer[LORA_RETRANSNUSSION_BT+1],BT_NUM*2+1);
+//		memcpy(log_info_uwb,&lora_sendbuffer[BT_ANCID_IDX+1],report_ancnum*2);
+//		
+//		uint16_t corrected_value =(log_info_bt[0] << 8) | (log_info_bt[0] >> 8);
+//		uint16_t corrected_value2 =(log_info_bt[1] << 8) | (log_info_bt[1] >> 8);
+//		LOG_INFO(TRACE_MODULE_APP,"BTNUM:%d,基站ID1: %04x ,基站ID2: %04x 运动状态:%d,步数: %d\r\n",BT_NUM,corrected_value,corrected_value2,lora_sendbuffer[EXERCISE_STATE],lora_sendbuffer[STEP_COUNT]);
+//		LOG_INFO(TRACE_MODULE_APP,"UWBNUM:%d,基站ID1: %x,基站ID2: %x \r\n",report_ancnum,log_info_uwb[0],log_info_uwb[1]);
+//		memset(log_info_uwb,0,10);
+//		taglist_num==0;
+//#endif
 //		LORA_3029_SINGLE_SEND(lora_sendbuffer,ANCID_IDX+report_ancnum*4+BT_NUM*4+4,0);
 //		}
 //		else
@@ -310,7 +327,7 @@
 		memset(DMA_RXBuf_BT, 0,200);
 		memset(&lora_sendbuffer[ANCID_IDX],0,200);
     //LED_TB_ON;
-    LORA_LED_ON;
+    loraled=1;
     
     for(uint8_t i=0;i<3;i++)
     recnum[i] = 0;
@@ -324,7 +341,7 @@
 //uint16_t rec_value,rec_delaytime,rx_count,datalen_offset;
 
 uint8_t shengji_flag,time=5;
-extern uint32_t uwbled,gpsled,loraled,powerled;
+//extern uint32_t uwbled,gpsled,loraled,powerled;
 extern struct RxDoneMsg RxDoneParams;
 
 //extern     uint8_t Lora_tx_ancnum;
@@ -352,8 +369,7 @@
         memcpy(&lora_sendbuffer[9], &g_com_map[1], data_length);
         checksum = Checksum_u16(lora_sendbuffer,11+data_length);
         memcpy(&lora_sendbuffer[11+data_length],&checksum,2);
-//        LORA_3029_SINGLE_SEND(lora_sendbuffer,data_length+13,0);
-//				Radio.Send(lora_sendbuffer,data_length+13);
+				Radio.Send(lora_sendbuffer,data_length+13);
 	      //++;
   //  Delay_Ms(100);
 }
@@ -371,10 +387,7 @@
 	memcpy(&lora_sendbuffer[7], &g_com_map[index/2], data_length);
 	checksum = Checksum_u16(lora_sendbuffer,9+data_length);
 	memcpy(&lora_sendbuffer[9+data_length],&checksum,2);
-//	Radio.Send(lora_sendbuffer,data_length+11);
-
-//	 LORA_3029_SINGLE_SEND(lora_sendbuffer,data_length+11,0);
-  //  Delay_Ms(100);
+	Radio.Send(lora_sendbuffer,data_length+11);
 }
 uint8_t t22[20],ti;
 uint8_t no_yingdaflag;
@@ -487,66 +500,67 @@
 uint8_t rxdone=0;
 void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )
 {  
-				uint16_t checksum1;
+		uint16_t checksum1;
         BufferSize = size;
         memcpy( RX_Buffer, payload, BufferSize );
         RssiValue = rssi;
         SnrValue = snr;
         Radio.Standby();
-	      rxdone++;
-				no_rx_flag = 0;
-				lora_up_rec_flag=1;
-				 if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_WGRESPTAG)
-						{
-							checksum1=Checksum_u16(RX_Buffer,BufferSize-2);
-							
-              memcpy(&DEST_ID,&RX_Buffer[DEST_ID_IDX],2);
-							memcpy(&CRC16,&RX_Buffer[BufferSize-2],2);
-							if(!memcmp(&checksum1,&RX_Buffer[BufferSize-2],2))
-							if(!memcmp(&dev_id,&RX_Buffer[DEST_ID_IDX],2))
-							{
-								memcpy(&source_id,&RX_Buffer[SOURCE_ID_IDX],2); 
-								if(wg_state==WG_Lost)
-									{
-									 wg_state = WG_Connected;
-									 wg_report_id = source_id;
-									}
-								if(!memcmp(&wg_report_id,&RX_Buffer[SOURCE_ID_IDX],2))
-								{
-										wg_lost_count = 0;
-										switch(RX_Buffer[PWTAG_RW_FLAG_IDX])
-										{
-												case WGRSP_RWTAG_NONE:
-												REV_WG_pack++;
-                        wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400;
-                        memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2);
+	    rxdone++;
+		no_rx_flag = 0;
+		lora_up_rec_flag=1;
+		if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_WGRESPTAG)
+		{
+            checksum1=Checksum_u16(RX_Buffer,BufferSize-2);                       
+            memcpy(&DEST_ID,&RX_Buffer[DEST_ID_IDX],2);
+            memcpy(&CRC16,&RX_Buffer[BufferSize-2],2);
+                        if(!memcmp(&checksum1,&RX_Buffer[BufferSize-2],2))
+                        if(!memcmp(&dev_id,&RX_Buffer[DEST_ID_IDX],2))
+                        {
+                            memcpy(&source_id,&RX_Buffer[SOURCE_ID_IDX],2); 
+                            if(wg_state==WG_Lost)
+                                {
+                                 wg_state = WG_Connected;
+                                 wg_report_id = source_id;
+                                }
+                            if(!memcmp(&wg_report_id,&RX_Buffer[SOURCE_ID_IDX],2))
+                            {
+                                    wg_lost_count = 0;
+                                    switch(RX_Buffer[PWTAG_RW_FLAG_IDX])
+                                    {
+                                     case WGRSP_RWTAG_NONE:
+                                            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)
-                        {
-                            datalen_offset = report_ancnum*85;
-                        }else{
-                            datalen_offset = (report_ancnum-1)*46+85;
-                        }
-                        rec_secdelay = RX_Buffer[PWTAG_SECDELAY_IDX];
-                        if(BufferSize!=13||rec_secdelay>20)
-                        {
-                         rec_secdelay = 0;
-                        }
+                                            if(report_ancnum<2)
+                                            {
+                                                datalen_offset = report_ancnum*85;
+                                            }
+                                            else
+                                            {
+                                                datalen_offset = (report_ancnum-1)*46+85;
+                                            }
+                                            rec_secdelay = RX_Buffer[PWTAG_SECDELAY_IDX];
+                                            if(BufferSize!=13||rec_secdelay>20)
+                                            {
+                                             rec_secdelay = 0;
+                                            }
 											if(rec_delaytime<500)
-												{
-												int t;
-													t++;
-												}
+                                            {
+                                            int t;
+                                                t++;
+                                            }
 //                        sleep_time_count =(__MS_TO_32K_CNT(rec_delaytime)/10)- delaytime-datalen_offset;
-                        sleep_time_count =(__MS_TO_32K_CNT(rec_delaytime)/10);
-                        while(sleep_time_count>=32768)
-												{
-                         sleep_time_count-=32768;											
-												}
-												while(sleep_time_count<2000)
-												{
-												 sleep_time_count+=10000;
-												}
+                                            sleep_time_count =(__MS_TO_32K_CNT(rec_delaytime)/10);
+                                            while(sleep_time_count>=32768)
+                                            {
+                                             sleep_time_count-=32768;											
+                                            }
+                                            while(sleep_time_count<2000)
+                                            {
+                                             sleep_time_count+=10000;
+                                            }
 //												if(REV_WG_pack==1)
 //												{
 //												sleep_time_count_LAST=sleep_time_count;
@@ -556,32 +570,32 @@
 //												 sleep_timer_start(sleep_time_count);
 													time_count++;
 //												}
-                        break;
-												case WGRSP_RWTAG_READ:
-															no_rx_flag = 1;
-															LoraSendComMap(WGRSP_RWTAG_READ);
-															break;
-												case WGRSP_RWTAG_WRITE:
-														rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX];
-													switch(rec_index)
-															{
-																	case 0xdd:  //语音下发
-																			break;
-//                        case 0x20:  //蜂鸣
-//                            memcpy(&rec_value,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2);
-//                            motor_keeptime = rec_value;
-//                            break;
-                        default :
-                            memcpy(&rec_value,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2);
-                            g_com_map[rec_index/2] = rec_value;
-                            save_com_map_to_flash();
-                            LoraRspWriteCommap(SUBMSG_WRITE_ANCPARA);
-                            //flag_writepara_needreset = 1;
-                            no_rx_flag = 1;                           
-															}
+                                            break;
+									case WGRSP_RWTAG_READ:
+                                            no_rx_flag = 1;
+                                            LoraSendComMap(WGRSP_RWTAG_READ);
+                                            break;
+									case WGRSP_RWTAG_WRITE:
+											rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX];
+									   switch(rec_index)
+										{
+										 case 0xdd:  //语音下发
+										 break;
+//                                        case 0x20:  //蜂鸣
+//                                            memcpy(&rec_value,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2);
+//                                            motor_keeptime = rec_value;
+//                                            break;
+                                                       default :
+                                            memcpy(&rec_value,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2);
+                                            g_com_map[rec_index/2] = rec_value;
+                                            save_com_map_to_flash();
+                                            LoraRspWriteCommap(SUBMSG_WRITE_ANCPARA);
+                                            //flag_writepara_needreset = 1;
+                                            no_rx_flag = 1;                           
+										 }
 
-															break; 
-												case WGRSP_RWTAG_UPDATE:
+										 break; 
+									case WGRSP_RWTAG_UPDATE:
 												rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX];
 //												switch(rec_index)
 //												{

--
Gitblit v1.9.3