ota 固件升级

如有远程升级需求,请参考具体 ota 升级流程文档及本小节内容进行实现

设置ota属性

IotDeviceSDK.getInstance().setOTAOption(int exceptTime, int chunkSize);

参数 说明
exceptTime 期望升级倒计时,单位秒,范围 120-3600
chunkSize 云端会将固件按 chunkSize 分块,分块后一次下发一块。2的 n 次幂,范围 256-1048576,默认 1024
返回值 0:设置属性成功,可在 log 中查看实际升级时间-1 :失败,参数错误

接收固件信息

sdk自动调用该函数,接受云端发来的固件信息说明,包含,固件的种类、固件的大小和固件的OTA版本。

IotDeviceSDK.getInstance().setOnGetOTAInfoListener(new IotDeviceSDK.OnGetOTAInfoListener() {

@Override

public void onGetOTAInfo(int otaType, long otaFileSize, String

otaVersion) {

}

});

Log.e("TAG", "otaType:" + otaType); // 0:wifi 固件,1:MCU 固件Log.e("TAG", "otaFileSize:" + otaFileSize);//OTA 固件大小Log.e("TAG", "otaVersion:" + otaVersion); // OTA 固件版本

接收固件数据块

sdk自动调用该函数,接受云端发来的固件数据块,收到后更新本地固件。回调函数中不可执行太多耗时代码。

IotDeviceSDK.getInstance().setOnOTAChunkDataListener(new IotDeviceSDK.OnOTAChunkDataListener() {

@Override

public boolean onOTAChunkData(boolean isLastChunk, long chunkOffset, byte[] chunkData) {

isLastChunk 表示是否是最后一个包;

chunkOffset 表示本次数据包在总数据量的偏移起始位置;

chunkData 表示本次数据包数据

}

});

// return true 或者 return false

// 返回 true 表示本次 chunk 包处理成功

// 返回 false 表示本次 chunk 包处理失败

接收升级指令

收到此命令,重启,运行新版本固件。回调函数中不可执行太多耗时代码。IotDeviceSDK.getInstance().setOnOTAUpgradeListener(new

IotDeviceSDK.OnOTAUpgradeListener() {

@Override

public void onOTAUpgrade() {

}

});

Copyright & copy qinglianyun all right reserved,powered by Gitbook该文件修订时间: 2021-04-22 18:53:48

results matching ""

    No results matching ""