From b8fac32aed712a3e0e87cea99b9c6d5ef5e12d2b Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期五, 07 三月 2025 18:02:15 +0800
Subject: [PATCH] 现在单个测距完成,然后3s测一次距功能实现

---
 keil/include/src/Radio/lora_1268.c |   66 ++++++++++++++++++---------------
 1 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/keil/include/src/Radio/lora_1268.c b/keil/include/src/Radio/lora_1268.c
index 31f6c71..044c97f 100644
--- a/keil/include/src/Radio/lora_1268.c
+++ b/keil/include/src/Radio/lora_1268.c
@@ -165,6 +165,7 @@
 uint16_t heatbeat_count = HEATBEAT_UPDATE_TIME-1 ;
 uint16_t flag_getwgresp = 0;
 int16_t intheight;			//气压
+uint16_t FACHU_FLAG=0;
 extern uint32_t dangqian_frqe;
 uint16_t recnum[3];
 extern uint32_t freq_list[4];
@@ -175,6 +176,8 @@
 uint8_t BT_NUM=0;
 extern uint16_t report_ancdist[ANC_MAX_NUM],report_ancid[ANC_MAX_NUM];
 extern uint8_t bat_percent;
+extern int32_t tagdist_list[TAG_NUM_IN_SYS];
+extern uint16_t tagid_list[TAG_NUM_IN_SYS];
 void LoraReportPoll(void)
 {
     // delay_ms(100);
@@ -191,14 +194,9 @@
 
     LoraReportFreqPoll();
     flag_getwgresp = 0;
-   // wg_report_freq = REPORT_MANGE_CHANNEL_FRQ;
-	 //Lora_init();
-		uint32_t para;
-
-		para=freq_list[2] * 100000;
-
+// wg_report_freq = REPORT_MANGE_CHANNEL_FRQ;
 //		rf_set_sf(REPORT_CHANNEL_SF);
-		SwitchLoraSettings(para,REPORT_CHANNEL_SF,0);
+		SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,g_com_map[LORA_POWER]);
 	  //rf_set_default_para(wg_report_freq,REPORT_CHANNEL_SF);
    // SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,g_com_map[LORA_POWER]);
 //	  dangqian_frqe=rf_read_freq();
@@ -261,8 +259,12 @@
 //		memcpy(&report_ancdist,test_temp2,10); 
 
     lora_sendbuffer[ANCNUM_IDX] = report_ancnum;
-    memcpy(&lora_sendbuffer[ANCID_IDX],report_ancid,report_ancnum*2);
-    memcpy(&lora_sendbuffer[ANCID_IDX+report_ancnum*2],report_ancdist,report_ancnum*2);
+//    memcpy(&lora_sendbuffer[ANCID_IDX],report_ancid,report_ancnum*2);
+//	  memcpy(&lora_sendbuffer[ANCID_IDX+report_ancnum*2],report_ancdist,report_ancnum*2);
+		memcpy(&lora_sendbuffer[ANCID_IDX],tagid_list,report_ancnum*2);
+		memcpy(&lora_sendbuffer[ANCID_IDX+report_ancnum*2],tagdist_list,report_ancnum*2);
+//		tagdist_list[taglist_pos]tagid_list
+
 		uint8_t LORA_RETRANSNUSSION_BT=0;
 		BT_NUM=DMA_RXBuf_BT[0];
 		if(0<BT_NUM&&BT_NUM<11)
@@ -290,7 +292,7 @@
 		Radio.Send(lora_sendbuffer,ANCID_IDX+report_ancnum*4+BT_NUM*4+2);
 		}
 
-
+    FACHU_FLAG++;
 //    LORA_3029_SINGLE_SEND(lora_sendbuffer,ANCID_IDX+report_ancnum*4+BT_NUM*4+4,0);
 		memset(DMA_RXBuf_BT, 0,200);
 		memset(&lora_sendbuffer[ANCID_IDX],0,200);
@@ -387,6 +389,7 @@
         if(lora_send_count++%10==0||lora_jianting_flag)
         {
             lora_tx_flag=0;
+//				  	Anchor_RecNearPoll();
 #ifdef GROUPID_SWITCH
             if(rec_secdelay>0)
             {
@@ -505,6 +508,7 @@
 uint16_t BufferSize = BUFFER_SIZE;
 uint16_t CRC16=0;
 uint16_t DEST_ID=0;
+uint16_t JIESHOU_FLAG=0;
 uint8_t shengji_flag;
 int8_t RssiValue = 0;
 int8_t SnrValue = 0;
@@ -524,8 +528,8 @@
 void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )
 {  
 	
-
-	uint16_t checksum1;
+//        LORA_LED_ON;
+				uint16_t checksum1;
         BufferSize = size;
         memcpy( RX_Buffer, payload, BufferSize );
         RssiValue = rssi;
@@ -536,7 +540,7 @@
 				 if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_WGRESPTAG)
 						{
 							checksum1=Checksum_u16(RX_Buffer,BufferSize-2);
-							
+							JIESHOU_FLAG++;
               memcpy(&DEST_ID,&RX_Buffer[DEST_ID_IDX],2);
 							memcpy(&CRC16,&RX_Buffer[BufferSize-2],2);
 							if(!memcmp(&checksum1,&RX_Buffer[BufferSize-2],2))
@@ -554,23 +558,24 @@
 										switch(RX_Buffer[PWTAG_RW_FLAG_IDX])
 										{
 												case WGRSP_RWTAG_NONE:
-                        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;
-                        }
-                        sleep_time_count = rec_delaytime - delaytime-datalen_offset;
-                        while(sleep_time_count>=1000)
-                            sleep_time_count-=1000;
-												sleep_timer_start(sleep_time_count);
+//													LORA_LED_OFF;
+//                        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;
+//                        }
+//                        sleep_time_count = rec_delaytime - delaytime-datalen_offset;
+//                        while(sleep_time_count>=1000)
+//                            sleep_time_count-=1000;
+//												sleep_timer_start(sleep_time_count);
 
                         break;
 												case WGRSP_RWTAG_READ:
@@ -629,6 +634,7 @@
             Radio.Rx(0);
         }
     }
+		
 }
 
 void OnTxTimeout( void )

--
Gitblit v1.9.3