From b0b6c44f2adbbbac2711f4531ef552e15a1e8b45 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期一, 10 三月 2025 16:03:26 +0800 Subject: [PATCH] 对比poll_rx_en_start_u32这个的值的代码 --- keil/lora_3029.c | 669 +++++++++++++++++++++++++------------------------------ 1 files changed, 309 insertions(+), 360 deletions(-) diff --git a/keil/lora_3029.c b/keil/lora_3029.c index 4e3738b..bd1a636 100644 --- a/keil/lora_3029.c +++ b/keil/lora_3029.c @@ -2,6 +2,8 @@ #include "mk_spi.h" #include "global_param.h" #include "pan_port.h" +#include "pan_rf.h" +#include "dw_app_anchor.h" //#include "WS2812.h" //#include "pan_port.h" //#include "pan_param.h" @@ -29,9 +31,12 @@ static uint8_t rx_buf[10] = {0x00}; //extern uint32_t uwbled,gpsled,loraled,powerled; extern uint8_t bat_percent,taglist_num; -uint8_t report_ancnum; -uint16_t report_ancdist[ANC_MAX_NUM],report_ancid[ANC_MAX_NUM]; +//uint8_t report_ancnum; +//uint16_t report_ancdist[ANC_MAX_NUM],report_ancid[ANC_MAX_NUM]; extern void spi_transfer_callback(void *dev, uint32_t err_code); +extern uint16_t ancidlist_rec[TAG_NUM_IN_SYS],ancidlist_send[TAG_NUM_IN_SYS],rec_ancidlist[TAG_NUM_IN_SYS]; +extern uint8_t report_ancnum; +extern uint16_t report_ancdist[ANC_MAX_NUM],report_ancid[ANC_MAX_NUM]; void Lora_init(void) { // rf_write_reg(0x04, 0x55); @@ -41,18 +46,42 @@ 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"); + //printf("LORA Init Fail"); while(1); } else { -// printf("LORA Init OK\r\n"); + //printf("LORA Init OK\r\n"); } + } -wg_state_enum wg_state = WG_Lost; + + +//void TagListUpdate(void) +//{ +// uint16_t i,j=0,k=0,temp[TAG_NUM_IN_SYS]; +// for(i=0; i<taglist_num; i++) +// { +// if(tagofflinetime[i]++<REPORT_TAG_KEEPTIMES) +// { +// report_ancid[k]=tagid_list[i]; +// report_ancdist[k++]=tagdist_list[i]; +// } +// if(tagofflinetime[i]++<TAG_KEEPTIMES) +// { +// tagid_list[j]=tagid_list[i]; +// tagdist_list[j] = tagdist_list[i]; +// tagofflinetime[j++]=tagofflinetime[i]; +// } +// } +// report_ancnum = k; +// taglist_num=j; +//} +extern wg_state_enum wg_state; uint8_t lora_sendbuffer[200]; uint8_t seq_num; extern uint16_t lora_up_uwb_flag; @@ -89,6 +118,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 +132,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 +147,67 @@ 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 uint32_t dangqian_frqe; +extern uint16_t recnum[3]; +extern uint32_t freq_list[4]; +extern uint8_t DMA_RXBuf_BT[200]; +extern uint8_t report_ancnum; +extern uint8_t report_ancnum_bt; +uint32_t BT_SEND_flag=0; +uint8_t BT_NUM=0; +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; + //Lora_init(); + uint32_t para; + + para=freq_list[2] * 100000; +// rf_set_freq(wg_report_freq*100000); +// rf_set_carrier_wave_off(); +// rf_set_carrier_wave_on(); + rf_set_freq(para); + //rf_set_sf(UWB_CHANNEL_SF); +// rf_set_tx_power(para); +// rf_set_carrier_wave_freq(freq_list[1] * 100000); +// rf_set_freq(para); + rf_set_sf(REPORT_CHANNEL_SF); + //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(); + 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,357 +222,259 @@ 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]=0x01; +// lora_sendbuffer[GATEWAY_CHANL]=0x02; +// lora_sendbuffer[CHANL_NUM]=0x03; // 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); + 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); + uint8_t LORA_RETRANSNUSSION_BT=0; + BT_NUM=DMA_RXBuf_BT[0]; + if(0<BT_NUM&&BT_NUM<11) + { + lora_sendbuffer[MSG_TYPE_IDX] = LORA_MSGTYPE_TAGMSGTOWG_BT; + LORA_RETRANSNUSSION_BT=ANCID_IDX+report_ancnum*4; + //LORA_RETRANSNUSSION_BT report_ancnum_bt + lora_sendbuffer[LORA_RETRANSNUSSION_BT] = 0x2D; //蓝牙上传标识符 + 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] = 4*report_ancnum+4*BT_NUM+ANCID_IDX+2; + } + if(lora_sendbuffer[LORA_RETRANSNUSSION_BT]==0x2D) + { + checksum = Checksum_u16(lora_sendbuffer,4*BT_NUM+4*report_ancnum+ANCID_IDX+2); + memcpy(&lora_sendbuffer[ANCID_IDX+BT_NUM*4+report_ancnum*4+2],&checksum,2); + BT_SEND_flag++; + LORA_3029_SINGLE_SEND(lora_sendbuffer,ANCID_IDX+report_ancnum*4+BT_NUM*4+4,0); + } + else + { + checksum = Checksum_u16(lora_sendbuffer,4*report_ancnum+ANCID_IDX); + memcpy(&lora_sendbuffer[ANCID_IDX+report_ancnum*4],&checksum,2); + LORA_3029_SINGLE_SEND(lora_sendbuffer,ANCID_IDX+report_ancnum*4+BT_NUM*4+2,0); + } - 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(); + + + memset(DMA_RXBuf_BT, 0,200); + memset(&lora_sendbuffer[ANCID_IDX],0,200); + //LED_TB_ON; + + + 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; -int32_t target_count; +//uint16_t rec_value,rec_delaytime,rx_count; +//uint16_t rec_value,rec_delaytime,rx_count,datalen_offset; + 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) -// { -// 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 -// { -// 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); -// } + +//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 LORA_mode_select(void) -//{ -// if(TX_RX_SELECT==1) -// { -// rf_enter_continous_tx(); -// printf("fasong \n"); -// } -// else -// { -// rf_enter_continous_rx(); -// printf("jieshou\n"); -// } -//} -//void OnMaster(void) -//{ -// TX_RX_SELECT=1; -// LORA_mode_select(); -// //frame header -// send_buffer[MSG_F]=MSG_LORA_FH0; -// send_buffer[MSG_H]=MSG_LORA_FH1; -// -// send_buffer[MSG_Substance_event]=MSG_TTS; -// send_buffer[MSG_Substance2]=0; -// -// send_buffer[MESSAGE_TYPE_IDX] = DATA_LORA_TTS; -// send_buffer[GROUP_ID_LORA] = GROUP_TAG_NUM; -// rf_set_transmit_flag(RADIO_FLAG_TXDONE); -// // tx -// if(rf_get_transmit_flag()==RADIO_FLAG_TXDONE) -// { -// if(rf_continous_tx_send_data(send_buffer, 11) == OK) -// { -// printf("tx ok!\n"); -// } -// while (rf_get_transmit_flag() == RADIO_FLAG_IDLE) -// ; -// rf_set_transmit_flag(RADIO_FLAG_IDLE); -// } +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]; -// //delay_ms(10000); -// -//} +extern uint8_t group_id; +uint16_t lora_send_count; +uint8_t mode_flag=0; +uint32_t frqe,dangqian_frqe; +uint32_t freq_list[4] = {DEFAULT_up_FREQ/100000,4730,4780,4910}; -//void OnSlave(void) -//{ -// uint8_t Rev_Frequency = 0; -// rf_irq_process(); -// int j=2; -// if (rf_get_recv_flag() == RADIO_FLAG_RXDONE) -// { -// // Rssi_dBm = RxDoneParams.Rssi; // RSSI 的测量范围是-60 到-140 -// // Snr_value = RxDoneParams.Snr; -// // printf("Rx : SNR: %f ,RSSI: %f ,size: %d\r\n", Rssi_dBm, Snr_value,RxDoneParams.Size); -// //rf_set_recv_flag(RADIO_FLAG_IDLE); -// //printf("pack_size: %d\n",RxDoneParams.Size); -// //printf("\n"); -// //memset(RF_RX_temp,0,RxDoneParams.Size); -// switch(j) -// { -// case 1: -// { -// memcpy(RF_RX_temp1,RxDoneParams.Payload,RxDoneParams.Size); -// Uart_Send(UART_ID_GPS, &RF_RX_temp1[11], RxDoneParams.Size-11); -// rf_enter_continous_rx(); //重新进入接收模式 -// j++; -// break; -// } -// case 2: -// { -// Warn_TTS_play(); -//// memcpy(RF_RX_temp2,RxDoneParams.Payload,RxDoneParams.Size); -//// Uart_Send(UART_ID_GPS, &RF_RX_temp2[11], RxDoneParams.Size-11); -//// rf_enter_continous_rx(); //重新进入接收模式 -//// j=0; -// break; -// } -// memset(RF_RX_temp1,0,250); -// memset(RF_RX_temp2,0,250); +#define TX_LEN 10 +extern uint8_t tx_test_buf[TX_LEN]; + +void Lora_Tx_Poll() +{ + +// if(lora_tx_flag) +// { +// OnMaster(); +//// +// //rf_enter_continous_rx(); // } -// //Rev_Frequency++; -// //printf("Rev_Frequency: %d \n",Rev_Frequency); -// } -// -// if((rf_get_recv_flag() == RADIO_FLAG_RXTIMEOUT) || (rf_get_recv_flag() == RADIO_FLAG_RXERR)) -// { -// rf_set_recv_flag(RADIO_FLAG_IDLE); -// printf("Rxerr\r\n"); -// } -//} + if(lora_tx_flag) + { +// gpio_pin_set(IO_PIN_5); + + 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_antenna_close(); +// rf_set_mode(RF_MODE_STB3); +// uint32_t para; +// frqe=((UWB_CHANNEL_FRQ+group_id)*100000); +// para=freq_list[1] * 100000; +//// rf_set_default_para(frqe,UWB_CHANNEL_SF); +// rf_set_carrier_wave_off(); +//// rf_set_carrier_wave_on(); +// rf_set_freq(para); +// rf_set_sf(5); +//// rf_set_tx_power(para); +//// rf_set_carrier_wave_freq(freq_list[1] * 100000); +// //SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0); +// dangqian_frqe=rf_read_freq(); + // LoraSendComMap(WGRSP_RWTAG_READ); + + //delay_us(5000); +// rf_enter_continous_rx(); + //LedTask(); + //LoraHeartBeartPoll(); +// if(rf_continous_tx_send_data(tx_test_buf, TX_LEN) != OK) +// { +// while(1); +// } + // rf_get_mode(); + LoraReportPoll(); + // LedOff_task(); + + } + } + + +} +uint8_t TX_RX_SELECT=0; + +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) +{ -//void Warn_TTS_play() -//{ - -// uint8_t data[15]={0}; -// static HIDO_UINT32 Power_r = 0,Open_PJ,Group_id; -// uint8_t MSG_DATA=0; -// -// memcpy(data,RxDoneParams.Payload,11); -// Group_id=data[GROUP_ID_LORA]; -// - -// //delay_ms(5000); -// //copy 数据内容 -// MSG_DATA=data[MSG_Substance_event]; -// data[MSG_Substance2]=0; -//// if(EC6000_FLAG==1) -//// { -////// Open_PJ = sprintf(TTS_Lora_Open, "您已离开规定区域,请立刻返回"); -//// //Open_PJ = sprintf(TTS_Lora_Open, "设备"); -//// TTS_Play((HIDO_UINT8 *)TTS_Lora_Open, strlen(TTS_Lora_Open)); -//// } -// if(data[MSG_F]==MSG_LORA_FH0&&data[MSG_H]==MSG_LORA_FH1&&data[MESSAGE_TYPE_IDX]==DATA_LORA_TTS&&EC6000_FLAG==1) -// { - -// if(Group_id==2) -// { -// switch(MSG_DATA) -// { -// case 0x10 : -// { -// Open_PJ = sprintf(TTS_Lora_Open, "高压危险,请保持安全距离"); -// TTS_Play((HIDO_UINT8 *)TTS_Lora_Open, strlen(TTS_Lora_Open)); -// delay_ms(1000); -// break; -// } -// case 0x11 : -// { -// Open_PJ = sprintf(TTS_Lora_Open, "您已离开规定区域,请立刻返回"); -// TTS_Play((HIDO_UINT8 *)TTS_Lora_Open, strlen(TTS_Lora_Open+5)); -// break; -// } -// case 0x12 : -// { -// Open_PJ = sprintf(TTS_Lora_Open, "实验语音3"); -// TTS_Play((HIDO_UINT8 *)TTS_Lora_Open, strlen(TTS_Lora_Open)); -// break; -// } -// } -// -// } - -// } -// memset(data,0,15); - - -// - -// - - - -//} - - - - +} -- Gitblit v1.9.3