| | |
| | | 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个字节 |
| | |
| | | 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(); |
| | |
| | | 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等待 |
| | |
| | | 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) |
| | |
| | | delay_ms(10); |
| | | } |
| | | if(result12==0) |
| | | LOG_INFO(TRACE_MODULE_APP," 写:%d包成\r\n",muqiandeshengjibao); |
| | | muqiandeshengjibao++; |
| | | } |
| | | __enable_irq(); |
| | |
| | | { |
| | | huifushengjibaoerror_num=0; |
| | | muqiandeshengjibao=0; |
| | | LOG_INFO(TRACE_MODULE_APP," 满20次失败,退出\r\n"); |
| | | delay_ms(500); |
| | | //HAL_NVIC_SystemReset();//修改重启 |
| | | sys_reset(0); |
| | |
| | | { |
| | | 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); |
| | |
| | | // 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);//更新标志位 |