WXK
6 天以前 31a18a379b5d7073705895dba364ca3b76d5d44e
keil/include/src/Radio/lora_1268.c
@@ -548,8 +548,15 @@
uint16_t shoudaodebaoshu;
uint16_t aaa;
void LoraUp_Poll()
{    uint16_t  result ;
{
    LoraReportFreqPoll();
    SwitchLoraSettings(wg_report_freq,REPORT_CHANNEL_SF,22);
    uint16_t  result ;
    uint16_t crc16;
    shengji_flag=1;
    LoraUp_flag=1;
    wangguan_up_id=g_com_map[LORA_UPDATE_WANGGUAN_ID];
    LOG_INFO(TRACE_MODULE_APP," 网关ID:%x\r\n",wangguan_up_id);
    if(shengji_flag)
    {
//    memcpy(&wangguan_up_id,&RX_Buffer[SOURCE_ID_IDX],2);//网关ID 占用2个字节
@@ -569,15 +576,20 @@
    delay_ms(200);   
    __disable_irq();
//    FLASH_Read(APP_1OR2_ADRESS,(uint8_t*)&app1_or_app2,2);        
    final_bag_num=(rec_wenjian_daxiao/220)+1;//计算一共要请求多少包
    final_bag_num=g_com_map[LORA_UPDATE_WENJIAN_DAXIAO];//计算一共要请求多少包
    LOG_INFO(TRACE_MODULE_APP," 文件包数:%d\r\n",final_bag_num);
        while(1)
        {
            //FLASH_Prepare(APP2_ADRESS, APP_SIZE); //删除上一次app为下次做准备
            testflag=1;
                  testflag=flash_erase(FLASH_ID0,APP2_ADRESS,APP_SIZE);//删除100kAPP2空间为下面做准备
            testflag=flash_erase(FLASH_ID0,APP2_ADRESS,APP2_SIZE);//删除100kAPP2空间为下面做准备
            delay_ms(500);
            if(testflag==0)
            {break;}
            {
            LOG_INFO(TRACE_MODULE_APP," 擦除APP2空间成功\r\n");
            break;
            }
            LOG_INFO(TRACE_MODULE_APP," 擦除APP2空间失败\r\n");
        }
//    FLASH_Write(APP2_ADRESS, (const uint8_t*)&tmp111, 2);    
    __enable_irq();             
@@ -596,7 +608,7 @@
                memcpy(&send_lora_data[8],&crc16,2);
                lora_up_rec_flag=0;    
                Radio.Send(send_lora_data,10);//基站发送请求第x包
            LOG_INFO(TRACE_MODULE_APP," 基站发送请求第:%d包\r\n",muqiandeshengjibao);
                /*重写超时逻辑
                start_count1=HAL_LPTIM_ReadCounter(&hlptim1);     //等待接收完成直到超时
                end_count1=start_count1+32768/2;//500ms等待
@@ -629,6 +641,7 @@
                    if(lora_up_rec_flag)
                    {break;}
                    Radio.Send(send_lora_data,10);
                    LOG_INFO(TRACE_MODULE_APP," 基站发送请求第:%d包\r\n",muqiandeshengjibao);
                        }
//                while(1);
                if(lora_up_rec_flag)
@@ -648,6 +661,7 @@
                     delay_ms(10);    
                     }                         
                     if(result12==0)
                     LOG_INFO(TRACE_MODULE_APP," 写:%d包成\r\n",muqiandeshengjibao);
                     muqiandeshengjibao++;   
                     }
                     __enable_irq();
@@ -660,6 +674,7 @@
                    {
                    huifushengjibaoerror_num=0;    
                    muqiandeshengjibao=0;
                    LOG_INFO(TRACE_MODULE_APP," 满20次失败,退出\r\n");
                    delay_ms(500);
                    //HAL_NVIC_SystemReset();//修改重启
                              sys_reset(0);                                 
@@ -670,11 +685,12 @@
                {
                uint16_t tmp11 ,result11;
                tmp11=0XCC;
                testflag=flash_erase(FLASH_ID0,APP1_ADRESS,APP_SIZE);//删除100kAPP1空间
                testflag=flash_erase(FLASH_ID0,APP1_ADRESS,APP1_SIZE);//删除100kAPP1空间
//                final_bag_num=(rec_wenjian_daxiao/1024)+1;
                if(!testflag)
                {
                final_bag_num=(rec_wenjian_daxiao/1024)+1;
                LOG_INFO(TRACE_MODULE_APP," 擦除APP1空间成功,准备搬运\r\n");
                final_bag_num=(APP1_SIZE/1024)+1;
                for(aaa=0;aaa<final_bag_num;aaa++)
                {
                memcpy(&Zhongjian_data,(HIDO_VOID *)(APP2_ADRESS+(aaa*1024)),1024);
@@ -685,8 +701,10 @@
//                flash_write_nbytes((APPLICATION_ADDRESS+(aaa*1024)), (const uint8_t*)&zhongjian_shuju, 1024);
//                flash_write_nbytes(FLASH_ID0,0x400FF80,(uint8_t*)Zhongjian_data,248);              
                }
//                g_com_map[LORA_UPDATE_FLAG]=tmp11;
                LOG_INFO(TRACE_MODULE_APP,"搬运完成,准备发给BLE升完请求\r\n");
                delay_ms(300);
                mk_send_offupdata_to_BLE();
                LOG_INFO(TRACE_MODULE_APP," 发送给蓝牙升级完成请求\r\n");
//                result11=flash_erase(FLASH_ID0,APP_1OR2_ADRESS,FLASH_SECTOR_SIZE);//删除标志位所在区域
//                if(!result11)
//                result11 = flash_write_nbytes(FLASH_ID0,APP_1OR2_ADRESS, (const uint8_t*)&tmp11, 2);//更新标志位