1:imageBlockResponseParse
{
块请求应答
emberAfOtaStorageFinishDownloadCallback(offset); //完成下载
continueImageVerification(EMBER_AF_IMAGE_UNKNOWN); 、、映象的状态,为不知道
}
2:
recordUpgradeStatus(BOOTLOAD_STATE_VERIFY_IMAGE); 、、核对映象
customVerifyStatus = NEW_CUSTOM_VERIFY; //新的映象存在
setTimer(EMBER_AF_PLUGIN_OTA_CLIENT_VERIFY_DELAY_MS)
continueImageVerification(EMBER_AF_IMAGE_VERIFY_IN_PROGRESS);不停的核对映象
3:核对成功
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: