1
WXK
2024-02-25 0e86da85b241109f7bb2f0f847922b50506b520f
Src/radio/Lora.c
@@ -369,18 +369,6 @@
    {}//文件过大,超出范围
    else
    {
    __disable_irq();
        while(1)
        {
    FLASH_Prepare(APP2_ADRESS, APP_SIZE);
            delay_ms(500);
            if(testflag==0)
            {break;}
        }
//    FLASH_Write(APP2_ADRESS, (const uint8_t*)&tmp111, 2);
    __enable_irq();
    FLASH_Read(APP_1OR2_ADRESS,(uint8_t*)&app1_or_app2,2);
    final_bag_num=(rec_wenjian_daxiao/220)+1;//计算一共要请求多少包
    memcpy(&wangguan_up_id,&rxbuffer[SOURCE_ID_IDX],2);//网关ID 占用2个字节
    send_lora_data[MSG_TYPE_IDX]=LORA_MSGTYPE_UPDATE_CONFIRM;
    memcpy(&send_lora_data[SOURCE_ID_IDX],&dev_id,2);//网关ID 占用2个字节
@@ -392,7 +380,20 @@
    LoraUp_flag=1;
    Radio.Send(send_lora_data,8);//基站发送升级确认回复
    Delay_Ms(1000);    
    SwitchLoraSettings(LORA_UPCHANNEL_FRQ,7,22);
    SwitchLoraSettings(LORA_UPCHANNEL_FRQ,LORA_UPCHANNEL_SF,22); //切换lora升级频点
    delay_ms(200);
    __disable_irq();
//    FLASH_Read(APP_1OR2_ADRESS,(uint8_t*)&app1_or_app2,2);
    final_bag_num=(rec_wenjian_daxiao/220)+1;//计算一共要请求多少包
        while(1)
        {
            FLASH_Prepare(APP2_ADRESS, APP_SIZE);
            delay_ms(500);
            if(testflag==0)
            {break;}
        }
//    FLASH_Write(APP2_ADRESS, (const uint8_t*)&tmp111, 2);
    __enable_irq();
    while(1)
    {
        if(huifushengjibao_flag==1)
@@ -432,9 +433,9 @@
                     if(muqiandeshengjibao==rxbuffer[MUQIAN_BAG]&&!memcmp(&crc16,&rxbuffer[DATA_IDX+ONE_BAG_DAXIAO],2)&&!memcmp(&dev_id,&rxbuffer[DEST_ID_IDX],2)&& !memcmp(&wangguan_up_id,&rxbuffer[SOURCE_ID_IDX],2))
                     {
                     memcpy(Zhongjian_data,&rxbuffer[DATA_IDX],ONE_BAG_DAXIAO);
                     if(app1_or_app2==1)
                     FLASH_Write(APP1_ADRESS+ONE_BAG_DAXIAO*rxbuffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO);
                     else
//                     if(app1_or_app2==1)
//                     FLASH_Write(APP1_ADRESS+ONE_BAG_DAXIAO*rxbuffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO);
//                     else
                     FLASH_Write(APP2_ADRESS+ONE_BAG_DAXIAO*rxbuffer[MUQIAN_BAG],(uint8_t*)Zhongjian_data,ONE_BAG_DAXIAO);
                     
                     muqiandeshengjibao++;   
@@ -447,17 +448,19 @@
                    {
                    huifushengjibaoerror_num=0;    
                        muqiandeshengjibao=0;
                    Delay_Ms(500);
                    HAL_NVIC_SystemReset();
                    break;
                    }   
                }
                if(muqiandeshengjibao==final_bag_num)
                {
                uint16_t tmp11 ,result11;
                    tmp11=!app1_or_app2;
                result11 = FLASH_Prepare(APP_1OR2_ADRESS, 2);
                    tmp11=0XBB;
                result11 = FLASH_Prepare(APP_1OR2_ADRESS, PAGE_SIZE);
                if(result11)
                result11 = FLASH_Write(APP_1OR2_ADRESS, (const uint8_t*)&tmp11, 2); 
                Delay_Ms(500);
                Delay_Ms(1500);
                HAL_NVIC_SystemReset();
                }
            }