From b32910bdb85c6e9d19abf97f1465c573a0bf9d38 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期四, 13 二月 2025 14:06:13 +0800
Subject: [PATCH] 测试版

---
 keil/lora_3029.c |  553 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 353 insertions(+), 200 deletions(-)

diff --git a/keil/lora_3029.c b/keil/lora_3029.c
index 4e3738b..4225a3e 100644
--- a/keil/lora_3029.c
+++ b/keil/lora_3029.c
@@ -2,6 +2,7 @@
 #include "mk_spi.h"
 #include "global_param.h"
 #include "pan_port.h"
+#include "pan_rf.h"
 //#include "WS2812.h"
 //#include "pan_port.h"
 //#include "pan_param.h"
@@ -41,7 +42,8 @@
 	 uint32_t ret = 0;
    uint32_t cnt = 0;
 	 ret=rf_init();
-   set_test_mode1_reg();
+   
+	 set_test_mode1_reg();
 		   if(ret== 1)
     {
 //        printf("LORA Init Fail");
@@ -52,7 +54,7 @@
 //				printf("LORA Init OK\r\n");
     }
 }
-wg_state_enum wg_state = WG_Lost;
+extern wg_state_enum wg_state;
 uint8_t lora_sendbuffer[200];
 uint8_t seq_num;
 extern uint16_t lora_up_uwb_flag;
@@ -89,6 +91,8 @@
             wg_report_id = DEFAULT_WG_ID;
             wg_report_freq = REPORT_MANGE_CHANNEL_FRQ; //如果丢失链接就进入WG管理信道。
             wg_report_sf = REPORT_CHANNEL_SF;
+//						wg_report_freq = TEST_MANAGE_CHANNEL_FRQ;
+//				  	wg_report_sf = TEST_MANAGE_CHANNEL_SF;
 				}
     } else {
         if(wg_lost_count>WG_LOST_SWITCH_THRES)
@@ -101,13 +105,12 @@
 
 //uint16_t wg_report_freq,wg_report_id;
 uint8_t lora_sendbuffer[200];
-void Lora_UploadHeartBeartPoll(void)
+void LoraHeartBeartPoll(void)
 {
 
 //	lora_up_uwb_flag=2;
 //  rf_set_default_para();
 
-		 rf_enter_continous_tx();
 /*****************************心跳包上传内容************************************/		
     lora_sendbuffer[MSG_TYPE_IDX] = LORA_MSGTYPE_TAGHEARTBEAT;
     lora_sendbuffer[MSG_LENGTH] = 14;
@@ -117,50 +120,45 @@
     lora_sendbuffer[HB_UWBPOWER_IDX] = g_com_map[POWER];
     lora_sendbuffer[HB_LORAPOWER_IDX] = g_com_map[LORA_POWER];
     checksum = Checksum_u16(lora_sendbuffer,14);
-    memcpy(&lora_sendbuffer[14],&checksum,2);		
+    memcpy(&lora_sendbuffer[14],&checksum,2);	
+    LORA_3029_SINGLE_SEND(lora_sendbuffer,16,0);
+		
 /*****************************心跳包上传内容*************************************/	
-		rf_set_transmit_flag(RADIO_FLAG_TXDONE);
-
-		 if(rf_get_transmit_flag()==RADIO_FLAG_TXDONE)
-			{
-				if(rf_continous_tx_send_data(lora_sendbuffer, 16)==OK)
-				{
-					//LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n");
-				}
-				while (rf_get_transmit_flag() == RADIO_FLAG_IDLE)
-				;
-				//rf_enter_continous_rx();;
-				rf_set_transmit_flag(RADIO_FLAG_IDLE);
-			}
-
+		
 }
-#define HEATBEAT_UPDATE_TIME   3600
+#define HEATBEAT_UPDATE_TIME   100
 uint16_t heatbeat_count = HEATBEAT_UPDATE_TIME-1 ;
 uint16_t flag_getwgresp = 0;
+uint16_t test_temp[10]={0x1306,9688,1000};
+uint16_t test_temp2[10]={0xff,0xcd,0x19};
 int16_t intheight;			//气压
-void Lora_Report_poll(void)
+extern uint16_t recnum[3];
+void LoraReportPoll(void)
 {
-	LoraReportFreqPoll();
-  flag_getwgresp = 0;										//网关回复标志位  && WG_Connected == wg_state
-	uint32_t ret = 0;
-	ret = rf_init();
-	
-	set_test_mode1_reg();
-	if(ret==OK)
-	{
-	rf_set_default_para(wg_report_freq*1000000,wg_report_sf);
-	}
-//	
-//	
-	if(heatbeat_count++>HEATBEAT_UPDATE_TIME) //如果心跳包到达上传时间,并且网关处于链接状态,就上传心跳包
-  {
-	 heatbeat_count = 0;
-	 Lora_UploadHeartBeartPoll();
-	 //rf_irq_process();
-	 return;
-	}
-	for(uint16_t i=0; i<report_ancnum-1; i++)
-  {
+    // delay_ms(100);
+#ifdef _USE_BAR
+    GetPressAndHeight();
+    intheight = Height*100;
+#endif
+#ifdef _SMT_TEST
+    printf("气压值:%d",intheight);
+#endif
+
+    TagListUpdate();
+
+    LoraReportFreqPoll();
+    flag_getwgresp = 0;
+   // wg_report_freq = REPORT_MANGE_CHANNEL_FRQ;
+	  rf_set_default_para(wg_report_freq,REPORT_CHANNEL_SF);
+   // 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;
+        LoraHeartBeartPoll();
+        return;
+    }
+    for(uint16_t i=0; i<report_ancnum-1; i++)
+    {
         for(uint16_t j=0; j<report_ancnum-1-i; j++)
         {
             if(report_ancdist[j]>report_ancdist[j+1])
@@ -175,200 +173,189 @@
                 report_ancdist[j+1] = dist;
             }
         }
-  }
-	if(report_ancnum>0)
-  {
-    //uwbled=0x11; //blue
-  }
-	else
-	{
-    //uwbled=0x1100;	//red
-  }
-	if(report_ancnum>LORA_REPORT_MAXANC_NUM)    //考虑lora传输时间,最多发送10个基站数据。
-     report_ancnum = LORA_REPORT_MAXANC_NUM;
-	
+    }
+    
+    if(report_ancnum>LORA_REPORT_MAXANC_NUM)    //考虑lora传输时间,最多发送10个基站数据。
+        report_ancnum = LORA_REPORT_MAXANC_NUM;
 #ifdef USE_GPS
     lora_sendbuffer[MSG_TYPE_IDX] = LORA_MSGTYPE_TAGMSGTOWG_GPS;
-    lora_sendbuffer[MSG_LENGTH] = 4*report_ancnum+ANCID_IDX;
+    lora_sendbuffer[MSG_LENGTH] = 4*report_ancnum+30;
 #else
     lora_sendbuffer[MSG_TYPE_IDX] = LORA_MSGTYPE_TAGMSGTOWG;
     lora_sendbuffer[MSG_LENGTH] = 4*report_ancnum+ANCID_IDX;
 #endif
-	
-//    2000f026   02020002  //000220200
     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;
+		//GET_USERKEY这个是那个lora——busy那个引脚
+		
    // lora_sendbuffer[STATE_IDX] = !GET_USERKEY|stationary_flag<<1;
 #ifdef USE_GPS
     memcpy(&lora_sendbuffer[GPS_JINGDU_IDX],&gps_jingdu,8);
-    memcpy(&lora_sendbuffer[GPS_WEIDU_IDX],&gps_weidu,8);
+    memcpy(&lora_sendbuffer[GPS_WEIDU_IDX],&gps_jingdu,8);
     memcpy(&lora_sendbuffer[GPS_HEIGHT_IDX],&gps_height,8);
     lora_sendbuffer[GPS_STATE_IDX] = gps_state;
     lora_sendbuffer[GPS_SATEL_NUM_IDX] = gps_satel_num;
     lora_sendbuffer[GPS_SPOWER_IDX] = gps_signalpower;
     lora_sendbuffer[GPS_CHAFENLINGQI] = gps_chafenlingqi;
 #endif
-		
-    memcpy(&lora_sendbuffer[BAR_HEIGHT_IDX],&intheight,2);
+    //  memcpy(&lora_sendbuffer[BAR_HEIGHT_IDX],&bar_height,2);
+		memcpy(&report_ancid,test_temp,10);
+		memcpy(&report_ancdist,test_temp2,10); 
+		report_ancnum=3;
     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);
-    
     checksum = Checksum_u16(lora_sendbuffer,4*report_ancnum+ANCID_IDX);
     memcpy(&lora_sendbuffer[ANCID_IDX+report_ancnum*4],&checksum,2);
-	  rf_enter_continous_tx();
-		//rf_irq_process();
-		rf_set_transmit_flag(RADIO_FLAG_TXDONE);
 
-		 if(rf_get_transmit_flag()==RADIO_FLAG_TXDONE)
-			{
-				if(rf_continous_tx_send_data(lora_sendbuffer,ANCID_IDX+report_ancnum*4+2)==OK)
-				{
-					//LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n");
-				}
-				while (rf_get_transmit_flag() == RADIO_FLAG_IDLE)
-				;
-				//rf_enter_continous_rx();;
-				rf_set_transmit_flag(RADIO_FLAG_IDLE);
-				
-			}
-		// rf_enter_continous_rx();
+		
+		//rf_enter_continous_tx();
+//    LORA_3029_SEND(lora_sendbuffer,ANCID_IDX+report_ancnum*4+2);
+    LORA_3029_SINGLE_SEND(lora_sendbuffer,ANCID_IDX+report_ancnum*4+2,0);
+		
+//			rf_single_tx_data(lora_sendbuffer,ANCID_IDX+report_ancnum*4+2,2);
+    //rf_enter_continous_rx();
+
+    //LED_TB_ON;
+   // bat_percent=Get_Battary();
+    
+    for(uint8_t i=0;i<3;i++)
+    recnum[i] = 0;
 
 }
 extern uint8_t report_ancnum;
 static uint16_t delaytime = 1200;
 static uint16_t source_id;
 uint8_t rec_index,rec_secdelay;
-uint16_t rec_value,rec_delaytime,rx_count;
-uint16_t rec_value,rec_delaytime,rx_count,datalen_offset;
+//uint16_t rec_value,rec_delaytime,rx_count;
+//uint16_t rec_value,rec_delaytime,rx_count,datalen_offset;
 int32_t target_count;
 uint8_t shengji_flag,time=5;
 extern uint32_t uwbled,gpsled,loraled,powerled;
 extern struct RxDoneMsg RxDoneParams;
-void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )
-{   	  uint16_t checksum1;
-        BufferSize = size;
-	      memcpy(RX_Buffer,RxDoneParams.Payload,RxDoneParams.Size);
-       // memcpy( RX_Buffer, payload, BufferSize );
-        RssiValue = rssi;
-        SnrValue = snr;
-        //Radio.Standby();
-        no_rx_flag = 0;
-        lora_up_rec_flag=1;
-//    if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_RANGEPOLL)
+//void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )
+//{   	  uint16_t checksum1;
+//        BufferSize = size;
+//	      memcpy(RX_Buffer,RxDoneParams.Payload,RxDoneParams.Size);
+//       // memcpy( RX_Buffer, payload, BufferSize );
+//        RssiValue = rssi;
+//        SnrValue = snr;
+//        //Radio.Standby();
+//        no_rx_flag = 0;
+//        lora_up_rec_flag=1;
+////    if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_RANGEPOLL)
+////    {
+////			UwbRange();
+////			rf_delay_us(time*1000);
+////       // UWB_RXStart(10);
+////       // delay_ms(time);
+////    }
+//    if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_WGRESPTAG)
 //    {
-//			UwbRange();
-//			rf_delay_us(time*1000);
-//       // UWB_RXStart(10);
-//       // delay_ms(time);
-//    }
-    if(RX_Buffer[MSG_TYPE_IDX]==LORA_MSGTYPE_WGRESPTAG)
-    {
-        checksum1=Checksum_u16(RX_Buffer,BufferSize-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;
-                // loraled=GREEN;
-                switch(RX_Buffer[PWTAG_RW_FLAG_IDX])
-                {
-                    case WGRSP_RWTAG_NONE:
-                       // current_count = HAL_LPTIM_ReadCounter(&hlptim1);
-                        wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400;
-                        memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2);
-                    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;
-                    }
-                        
-                        target_count = current_count + rec_delaytime*3.2768 - delaytime-datalen_offset;
-                        while(target_count>=32768)
-                            target_count-=32768;
-//                         __HAL_LPTIM_COMPARE_SET(&hlptim1, target_count);
-//                        rx_count = HAL_LPTIM_ReadCounter(&hlptim1);
-                     //   printf("tx %d,rx %d,delay %d",current_count>>5,rx_count>>5,rec_delaytime);
-                        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];
-                        if(rec_index<=DEV_ID)
-                            return;
-                        if(rec_index==0xDD)
-                        {
-//                             if(usart5_state==1)
-//                             {
-//                                Usart5Init();
-//                                usart5_state=0;    
-//                             }
-//                            HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, GPIO_PIN_SET);
-//                            HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);    
-//                            memcpy(&xiafayuyin_data,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],BufferSize-PWTAG_WRITE_VALUE_IDX-2);
-//                            yuyin_sendflag=1;           
-//                            yuyinzidongguan_time=0;             
-//                            yuyin_no_sleep_flag=1;  
-//                            SYN_FrameInfo(0,xiafayuyin_data); //播放内容
-//                            memset(xiafayuyin_data,0,sizeof(xiafayuyin_data));
-                           // LoraRspWriteCommap(SUBMSG_WRITE_ANCPARA);
-                              no_rx_flag = 1;                             
-                        }else{
-                            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:
-                    rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX];
-                    switch(rec_index)
-                    {
-                        case 0xaa:  //升级下发
-//                        memcpy(&rec_wenjian_daxiao,&RX_Buffer[WRITEPARA_VALUE_IDX],2);//文件大小
-//                        if(rec_wenjian_daxiao>APP_SIZE||rec_wenjian_daxiao==0)
-//                        {}//文件过大,超出范围
-//                        else
+//        checksum1=Checksum_u16(RX_Buffer,BufferSize-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;
+//                // loraled=GREEN;
+//                switch(RX_Buffer[PWTAG_RW_FLAG_IDX])
+//                {
+//                    case WGRSP_RWTAG_NONE:
+//                       // current_count = HAL_LPTIM_ReadCounter(&hlptim1);
+//                        wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400;
+//                        memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2);
+//                    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;
+//                    }
+//                        
+//                        target_count = current_count + rec_delaytime*3.2768 - delaytime-datalen_offset;
+//                        while(target_count>=32768)
+//                            target_count-=32768;
+////                         __HAL_LPTIM_COMPARE_SET(&hlptim1, target_count);
+////                        rx_count = HAL_LPTIM_ReadCounter(&hlptim1);
+//                     //   printf("tx %d,rx %d,delay %d",current_count>>5,rx_count>>5,rec_delaytime);
+//                        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];
+//                        if(rec_index<=DEV_ID)
+//                            return;
+//                        if(rec_index==0xDD)
 //                        {
-//                        memcpy(&wangguan_up_id,&RX_Buffer[SOURCE_ID_IDX],2);//网关ID 占用2个字节
-//                        shengji_flag=1;
-//                        LoraUp_flag=1;    
+////                             if(usart5_state==1)
+////                             {
+////                                Usart5Init();
+////                                usart5_state=0;    
+////                             }
+////                            HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, GPIO_PIN_SET);
+////                            HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);    
+////                            memcpy(&xiafayuyin_data,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],BufferSize-PWTAG_WRITE_VALUE_IDX-2);
+////                            yuyin_sendflag=1;           
+////                            yuyinzidongguan_time=0;             
+////                            yuyin_no_sleep_flag=1;  
+////                            SYN_FrameInfo(0,xiafayuyin_data); //播放内容
+////                            memset(xiafayuyin_data,0,sizeof(xiafayuyin_data));
+//                           // LoraRspWriteCommap(SUBMSG_WRITE_ANCPARA);
+//                              no_rx_flag = 1;                             
+//                        }else{
+//                            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;                        
-                    }
-                        break; 
-                }
-            }
-        }
-    } 
-//    if(!no_rx_flag&&LoraUp_flag==0)
-//    {
-//        if(RX_Buffer[MSG_TYPE_IDX]!=LORA_MSGTYPE_RANGEPOLL)
-//        SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,0);
-//        Radio.Rx(0);
-//    }
-}
+//                        break; 
+//                    case WGRSP_RWTAG_UPDATE:
+//                    rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX];
+//                    switch(rec_index)
+//                    {
+//                        case 0xaa:  //升级下发
+////                        memcpy(&rec_wenjian_daxiao,&RX_Buffer[WRITEPARA_VALUE_IDX],2);//文件大小
+////                        if(rec_wenjian_daxiao>APP_SIZE||rec_wenjian_daxiao==0)
+////                        {}//文件过大,超出范围
+////                        else
+////                        {
+////                        memcpy(&wangguan_up_id,&RX_Buffer[SOURCE_ID_IDX],2);//网关ID 占用2个字节
+////                        shengji_flag=1;
+////                        LoraUp_flag=1;    
+////                        }
+//                            break;                        
+//                    }
+//                        break; 
+//                }
+//            }
+//        }
+//    } 
+////    if(!no_rx_flag&&LoraUp_flag==0)
+////    {
+////        if(RX_Buffer[MSG_TYPE_IDX]!=LORA_MSGTYPE_RANGEPOLL)
+////        SwitchLoraSettings(UWB_CHANNEL_FRQ+g_com_map[GROUP_ID],UWB_CHANNEL_SF,0);
+////        Radio.Rx(0);
+////    }
+//}
 //void LORA_mode_select(void)
 //{
 //	if(TX_RX_SELECT==1)
@@ -522,11 +509,177 @@
 
 
 //}
+//extern     uint8_t Lora_tx_ancnum;
+//extern   u8 lora_seq_nb2;
+extern uint16_t lora_yingda_num;
+uint8_t lora_tx_flag=0;
+uint8_t lora_txanchor_power_flag;
+extern uint16_t Lora_tx_ancid[50];
+extern uint16_t Lora_tx_ancdist[50];
+extern uint8_t Lora_tx_anc_electricity[50];
+uint8_t lora_seq_nb1;
+
+extern uint8_t lora_sendbuffer[200];
+void LoraSendComMap(uint8_t cmd)
+{
+        uint8_t data_length = 0x50;
+        uint16_t checksum = 0;
+        lora_sendbuffer[MSG_TYPE_IDX] = LORA_MSGTYPE_READPARARESP;
+        lora_sendbuffer[MSG_LENGTH] = data_length+11;
+				memcpy(&lora_sendbuffer[SOURCE_ID_IDX],&g_com_map[DEV_ID],2);
+				memcpy(&lora_sendbuffer[DEST_ID_IDX],&wg_report_id,2);
+        lora_sendbuffer[RP_CMD_IDX] = cmd;
+        lora_sendbuffer[RP_INDEX_IDX] = 2;
+        lora_sendbuffer[RP_LEN_IDX] = data_length;
+        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);
+  //  Delay_Ms(100);
+}
+void LoraRspWriteCommap(uint8_t index)
+{
+	uint8_t data_length = 2;
+	uint16_t checksum = 0;
+	lora_sendbuffer[MSG_TYPE_IDX] = LORA_MSGTYPE_READPARARESP;
+	lora_sendbuffer[MSG_LENGTH] = data_length+9;
+    memcpy(&lora_sendbuffer[SOURCE_ID_IDX],&g_com_map[DEV_ID],2);
+    memcpy(&lora_sendbuffer[DEST_ID_IDX],&wg_report_id,2);
+	lora_sendbuffer[RP_CMD_IDX] = WGRSP_RWTAG_WRITE;
+	lora_sendbuffer[RP_INDEX_IDX] = index;
+	lora_sendbuffer[RP_LEN_IDX] = data_length;
+	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);
+}
+uint8_t t22[20],ti;
+uint8_t no_yingdaflag;
+uint8_t aRxBuffer[1];
+
+extern uint8_t group_id;
+uint16_t lora_send_count;
+uint8_t mode_flag=0;
+void Lora_Tx_Poll()
+{
+  
+//    if(lora_tx_flag)
+//    { 
+//     OnMaster();
+////
+//			//rf_enter_continous_rx();
+//		}
+ if(lora_tx_flag)
+    {
+        if(lora_send_count++%10==0||lora_jianting_flag)
+        {
+            lora_tx_flag=0;
+#ifdef GROUPID_SWITCH
+            if(rec_secdelay>0)
+            {
+                rec_secdelay--;
+//                if(lora_jianting_flag)
+//                {
+//                    if(++group_id>GROUP_NUM)
+//                    {
+//                        group_id = 1;
+//                    }
+//                    t22[ti++] = group_id;
+//                    if(ti>=20)
+//                        ti=0;
+//                    group_min_dist[group_id] = 0xffff;
+//                    Radio.Standby();
+//                    SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
+//                    Radio.Rx(0);
+//                }
+                return;
+            }
+//            //找3个小组中最近距离最大的小组,上传报文后切换到这个小组,因为上传报文会时间占用。
+//            if(group_min_dist[1]>group_min_dist[2])  //如果1大于2
+//            {
+//                group_maxdist_index = group_min_dist[1]>group_min_dist[3]?1:3; //取 1和3 最大值
+//                group_mindist_index = group_min_dist[2]<group_min_dist[3]?2:3;//取 2和3 最小值
+//                    
+//            }else{
+//                group_maxdist_index = group_min_dist[2]>group_min_dist[3]?2:3; //取 2和3 最大值
+//                group_mindist_index = group_min_dist[1]<group_min_dist[3]?1:3;//取 1和3 最小值
+//            }
+////            group_id = 1;
+//            group_id = group_maxdist_index;
+#endif
+            t22[ti++] = group_id;
+            if(ti>=20)
+                ti=0;
+         //  group_min_dist[group_id] = 0xffff;
+         //   Radio.Standby();
+						
+						//rf_set_default_para(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF);
+           // SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0);
+						//rf_enter_single_timeout_rx(0);
+//            rf_enter_continous_rx();
+            //LedTask();
+						//LoraHeartBeartPoll();
+						
+					//	rf_get_mode();
+            LoraReportPoll();
+            // LedOff_task();
+
+        }
+    }
+     
+}
+uint8_t TX_RX_SELECT=0;
+//void OnMaster()
+//{
+//	
+//	rf_set_default_para(DEFAULT_WG_SET_FREQ,DEFAULT_WG_SET_SF);
+//  rf_enter_continous_tx();//send_frame1, 19
+// // LORA_3029_SEND(send_frame1, 19);
+
+//     
+//}
+int LORA_3029_SINGLE_SEND(uint8_t *buffer, uint8_t size,uint8_t time)
+{
+    if((rf_single_tx_data(lora_sendbuffer,size,time))!= OK)
+		{
+      //while(1);
+		}	
+		rf_delay_us(1);
+		
+		//rf_enter_single_rx();
+		//rf_enter_single_timeout_rx(700);
+}
+
+int LORA_3029_CONTINOUS_SEND(uint8_t *buffer, uint8_t size)
+{
 
 
+}
+//			rf_enter_continous_tx();
 
-
-
+//			//rf_set_default_para(DEFAULT_WG_SET_FREQ,DEFAULT_WG_SET_SF);
+//			
+//			
+//			
+//		 rf_set_transmit_flag(RADIO_FLAG_TXDONE);
+//			
+//			
+//			 if(rf_get_transmit_flag() == RADIO_FLAG_TXDONE)
+//        {
+//          // 
+//					if(rf_continous_tx_send_data(send_frame1, 20) == OK)
+//					{
+//					//printf("tx ok!\n");
+//					}
+////					while (rf_get_transmit_flag() ==!RADIO_FLAG_TXDONE)
+////					;		
+//				while (rf_get_transmit_flag() ==!RADIO_FLAG_TXDONE)
+//				;				
+//           
+//        }
+//			
 
 
 

--
Gitblit v1.9.3