什么是OTA升级超时?
OTA升级超时是云端判断的并通过mqtt推送给APP,由APP进行UI或文本提示。APP开始一次OTA任务开始后,云端会启动一个超时定时器,只有升级过程中设备不断上报新的进度或状态,主动告诉云端还是在升级过程中,定时器才不会超时。
所以,了解OTA超时,就要了解这个超时定时器的几个方面
OTA定时器什么时候启动,什么时候终止?
启动:设备上报升级中状态,或者上报第一次OTA进度时启动
终止:超时、升级完成、升级失败 三种情况会终止定时器
定时器什么时候刷新?
设备上报状态、或者上报OTA升级进度时,都会刷新定时器,让定时器重新开始计时。
定时器什么情况下会超时,如何确保不超时?
如果正在升级过程中,要保证两次上报进度的时间间隔不要超过timeout的时间。
如果升级完了设备重启,要保证设备最后一次上报进度到重启后上报版本的这段时间不要超过timeout的时间。
超时后定时器会不会又重新启动?
会,如果超时后,设备又开始上报进度,云端还是会继续启动定时器。举个例子,假设网络有问题,进度丢失,云端超时后,网络恢复,又收到设备的进度,升级进度还是会继续刷新。
超时时间多长?
nb设备默认5400秒
如果固件上有配置超时时间,使用固件配置的超时时间(不能低于60秒)
兜底时间60秒
OTA升级超时原因?
类别 | 举例 | 说明 |
---|---|---|
固件超时时间配置太短导致超时 | 先报超时,后面实际又升级成功的情况 | 尝试增加超时时间 |
设备上报进度的通道号不对、或者不上报进度导致超时 | 进度和升级任务的通道号不一样 | 需要找设备的排查原因 |