全部产品
云市场

设备OTA开发

更新时间:2019-02-21 20:49:36

OTA基本流程:

  1. 设备上报版本号
  2. 设备订阅 OTA 相关topic
  3. 在 OTA 后台配置 OTA 任务,可以按多纬度知道要升级的设备,地址:https://iot.console.aliyun.com/product
  4. 成功订阅了 OTA 相关topic的设备在当前配置的 OTA 任务中,设备会收到一个推送信息,其中包括:
    1. 可升级的版本号
    2. 固件地址,大小,MD5
  5. 下载固件,开始升级,并上报升级进度
  6. 升级完成后,自动上报新的版本号,整个 OTA 流程结束

如何接入

  1. 后台配置 OTA 升级任务,获取 OTA 实例:

    1. mOta = LinkKit.getInstance().getOta()
  2. 准备OTA升级任务,目前自动完成版本上报,订阅 topic, 当有 ota 推送时,会通过IOta.STEP_RCVD_OTA 回调:

    1. mOta.tryStartOta(mConfig, new OtaListener(){
    2. public boolean onOtaProgress(int step, IOta.OtaResult otaResult) {
    3. int code = otaResult.getErrorCode();
    4. Object data = otaResult.getData();
    5. switch (step) {
    6. case IOta.STEP_REPORT_VERSION:
    7. // 上报版本
    8. break;
    9. case IOta.STEP_SUBSCRIBE:
    10. // 订阅回调
    11. break;
    12. case IOta.STEP_RCVD_OTA:
    13. // 有新的OTA固件,返回true 表示继续升级
    14. break;
    15. case IOta.STEP_DOWNLOAD:
    16. // 下载固件中
    17. break;
    18. }
    19. return true;
    20. }
    21. });
  3. 收到推送的OTA 时,返回true ,会自动下载固件,下载进度通过IOta.STEP_DOWNLOAD 回调

  4. 固件下载完成后,设备厂商通过自己的OTA 方式升级设备即可

注意:本SDK只提供固件的管理,推送,下载,具体OTA 进度需要开发者者自己定义,通过接口 reportProgress() 完成,同时SDK提供接口 reportVersion() 用于上报版本功能。