1:imageBlockResponseParse服务器
{ui
块请求应答spa
emberAfOtaStorageFinishDownloadCallback(offset); //完成下载
continueImageVerification(EMBER_AF_IMAGE_UNKNOWN); 、、映象的状态,为不知道it
}io
2:下载
recordUpgradeStatus(BOOTLOAD_STATE_VERIFY_IMAGE); 、、核对映象请求
customVerifyStatus = NEW_CUSTOM_VERIFY; //新的映象存在
setTimer(EMBER_AF_PLUGIN_OTA_CLIENT_VERIFY_DELAY_MS)im
continueImageVerification(EMBER_AF_IMAGE_VERIFY_IN_PROGRESS);不停的核对映象ember
3:核对成功static
downloadAndVerifyFinish(EMBER_AF_OTA_DOWNLOAD_AND_VERIFY_SUCCESS) 核对成功
askServerToRunUpgrade(START_NEW_TIMER);
请求服务器去升级,发送升级结束,若是没回,就强制升级
4:网关回了何时升级
waitTime=500;// ZGM
setTimer(waitTime);
emberAfCoreFlush();
otaPrintln("Countdown to upgrade: %d ms", waitTime);
emberAfCoreFlush();
recordUpgradeStatus(BOOTLOAD_STATE_COUNTDOWN_TO_UPGRADE); 500毫秒以后去升级
5:
case BOOTLOAD_STATE_COUNTDOWN_TO_UPGRADE:
runUpgrade(); 时间到升级
emberAfOtaClientBootloadCallback(¤tDownloadFile);
6:最终升级的地方
uint8_t emberAfOtaBootloadCallback(const EmberAfOtaImageId* id,uint16_t ncpUpgradeTagId)
{
halAppBootloaderInstallNewImage(); 升级文件,须要等1分钟左右
emberAfCorePrintln("Bootloading failed!");
// If we got here, it is a failure.
return 1;
}
2:
static void otaClientTick(void)
{
switch (currentBootloadState) {
case BOOTLOAD_STATE_DOWNLOAD:
continueImageDownload();
break;
case BOOTLOAD_STATE_VERIFY_IMAGE:
continueImageVerification(EMBER_AF_IMAGE_VERIFY_IN_PROGRESS);
break;
case BOOTLOAD_STATE_WAITING_FOR_UPGRADE_MESSAGE:
askServerToRunUpgrade(TIMEOUT_REACHED);
break;
case BOOTLOAD_STATE_COUNTDOWN_TO_UPGRADE:
runUpgrade();
case BOOTLOAD_STATE_UPGRADE_VIA_OUT_OF_BAND:
// Does nothing right now after timeout
default:
// Do nothing. Invalid state
break;
}
}
2: