yincheng.zhong
2024-02-21 aea9fefdfa35ce25c436d924ff8bc54fcd1baca7
Src/radio/Lora.c
@@ -193,16 +193,20 @@
{
//   HAL_GPIO_TogglePin(GPIOB, LED1_Pin);
}
uint8_t tttt;
uint8_t huifushengjibao_flag;
uint8_t LoraUp_flag;
extern uint8_t flag_writepara_needreset;
void OnTxDone( void )
{   
//   T_R_Init(0);   
//    Radio.Standby();
    Radio.Standby();
//    Radio.Rx( RX_TIMEOUT_VALUE ); //进入接收
  tttt++;
    if(flag_writepara_needreset) //配置写入完成设备需要重启
    {
        printf("网关下发配置写入完成,重启");
        SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader
    }
    if(LoraUp_flag)
    {
    huifushengjibao_flag=1;
@@ -274,6 +278,7 @@
    Radio.Init( &RadioEvents );
    Radio.Standby();
    Radio.Sleep();
//       Radio.SetChannel( UWB_CHANNEL_FRQ );                                           
//      Radio.SetTxConfig( MODEM_LORA, 22, 0, LORA_BANDWIDTH,
//                                   LORA_SPREADING_FACTOR, LORA_CODINGRATE,
@@ -327,7 +332,7 @@
//    Radio.Init( &RadioEvents );
    Radio.Standby();
  //  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
    Radio.SetChannel( freq );
    Radio.SetChannel( freq*1000000 );
 
    Radio.SetTxConfig( MODEM_LORA, power, 0, 2,
    sf, LORA_CODINGRATE,LORA_PREAMBLE_LENGTH_T, LORA_FIX_LENGTH_PAYLOAD_ON,
@@ -352,14 +357,14 @@
void LoraUp_Poll()
{    uint16_t  result ;
    uint16_t crc16;
    memcpy(&rec_wenjian_daxiao,&rxbuffer[WRITEPATE_VALUE_IDX],2);//网关ID 占用2个字节
    memcpy(&rec_wenjian_daxiao,&rxbuffer[WRITEPARA_VALUE_IDX],2);//网关ID 占用2个字节
//    rec_wenjian_daxiao=rxbuffer[WRITEPATE_VALUE_IDX];
    if(rec_wenjian_daxiao>0XAC00)
    {}//文件过大,超出范围
    else
    {
    final_bag_num=(rec_wenjian_daxiao/220)+1;//计算一共要请求多少包    
    wangguan_up_id=rxbuffer[WG_ID_IDX];
    wangguan_up_id=rxbuffer[SOURCE_ID_IDX];
    send_lora_data[MSG_TYPE_IDX]=LORA_MSGTYPE_UPDATE_CONFIRM;
    memcpy(&send_lora_data[WANGGUAN_ID],&wangguan_up_id,2);//网关ID 占用2个字节
    memcpy(&send_lora_data[JIZHAN_ID],&dev_id,2);//标签或者基站的设备ID 2个字节
@@ -469,8 +474,8 @@
   }
}
void test1()
{
    if(!memcmp(&dev_id,&rxbuffer[ANCTAG_DEVICEID_IDX],2))
    {LoraUp_Poll();}
}
//void test1()
//{
//    if(!memcmp(&dev_id,&rxbuffer[ANCTAG_DEVICEID_IDX],2))
//    {LoraUp_Poll();}
//}