//判断升级结果函数
void OtaModel::CheckOtaResult(int status)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaModel::CheckOtaResult");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OtaModel::CheckOtaResult status=%d otaUi=%d", status, GetOtaStatus());
uapi_setScreenDuration(30000); // 重新设置30秒自动息屏
+ /* 4G/Cat1 模组升级:与文件下载成功/失败同一套成功页(无重启提示),可按键返回 */
+ if (GetOtaStatus() == OTA_UI_STATUS_CAT1_START) {
+ if (status == 3) {
+ if (OtaView::GetInstance()) {
+ OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_UPDATING, OtaView::OTA_VIEW_UPDATE_SUCCESS);
+ }
+ if (OtaSuccessView::GetInstance()) {
+ OtaSuccessView::GetInstance()->UpdateDownloadSuccess("模组升级失败");
+ }
+ } else if (status == 4) {
+ if (OtaView::GetInstance()) {
+ OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_UPDATING, OtaView::OTA_VIEW_UPDATE_SUCCESS);
+ }
+ if (OtaSuccessView::GetInstance()) {
+ OtaSuccessView::GetInstance()->UpdateDownloadSuccess("模组升级成功");
+ }
+ }
+ SetOtaStatus(OTA_UI_STATUS_NOT_START);
+ ThunderBirdModel::GetInstance()->ResetOtaStatus();
+ return;
+ }
+
if(status == 3)
{
OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_UPDATING, OtaView::OTA_VIEW_UPDATE_FAILED);
// OTA升级下载完成,跳转到OTA升级成功界面
if(OtaDownloadView::GetInstance())
{
- uapi_setScreenDuration(30000); // 重新设置30秒自动息屏
+ //uapi_setScreenDuration(30000); // 重新设置30秒自动息屏
OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_DOWNLOAD, OtaView::OTA_VIEW_UPDATE_SUCCESS);
OtaSuccessView::GetInstance()->UpdateDownloadSuccess("下载成功");
// 清空下载文件类型
{
//已完成下载
ThunderBirdModel::GetInstance()->ClearDownloadFile();
- if(content == "下载失败")
+ if(content == "下载失败" || content == "模组升级失败")
{
RemindIcon1->SetSrc("/user/res/warning.bin");
RemindLabel->SetPosition(136, 275, 88, 25);
RemindLabel->SetText("按 退出");
TextLabel->SetText(content.c_str());
- LittleTextLabel->SetText("请在小程序重新下载\n继续下载失败的文件");
+ if(content == "模组升级失败")
+ {
+ LittleTextLabel->SetText("请重新升级模组");
+ }
+ else
+ {
+ LittleTextLabel->SetText("请在小程序重新下载\n继续下载失败的文件");
+ }
LittleTextLabel->SetX(98);
TextLabel->Invalidate();
LittleTextLabel->Invalidate();
cat1_model_oat_suc_flag = 0;//升级成功后,将标志位设为0
printf("模组升级成功\n");
push_ota_status(OTA_UI_STATUS_SUCCESS);
- LOS_Msleep(1000);
- shutdown_reboot_prejobs(2);//重启
+ // LOS_Msleep(1000);
+ /* 不在 4G 模组 OTA 成功后立即重启,便于继续走后续手表 OTA(原 shutdown_reboot_prejobs(2)) */
+ printf("[OTA] Cat1 modem OTA success: skip immediate reboot, continue host OTA flow\r\n");
}
#endif
return 1;
#ifdef BOARD_LEINIAO
push_ota_status(OTA_UI_STATUS_SUCCESS);
- shutdown_reboot_prejobs(REBOOT_TYPE);
+ /* 不在 4G 模组 OTA 成功后立即重启,便于继续后续手表 OTA(原 shutdown_reboot_prejobs(REBOOT_TYPE)) */
+ printf("[OTA] Cat1 OTA py_ver changed: skip immediate reboot\r\n");
#else
CustomEventPublish(TOPIC_EVENT_BLE_TRANSMIT,&TRANSMIT_DATA,1);
#endif
}
if(mode_ota_count > 60)
{
- //重启设备
- uapi_reboot_device();
+ /* 超时不再强制重启,避免打断后续手表 OTA(原 uapi_reboot_device) */
+ printf("[OTA] Cat1 OTA timer: mode_ota_count>60 timeout, skip reboot\r\n");
}
#endif
}