OTA升级流程参考:

一、前置条件:
  1. 设备电量大于30%(该值根据具体产品定义,APP端可自定义,如40%,只要大于固件限制的最低电量)
  2. 需要连接上设备
二、检查升级

1、根据设备固件版本信息 https://idoosmart.github.io/Native_GitBook/en/doc/IDODeviceInfo.html ,"${fwVersion1}.${fwVersion2}.${fwVersion3}"

调用OTA根据接口(服务端实现)

2、判断有升级后,根据服务端返回的ota文件地址,下载该文件到设备

三、执行升级

1、调用文件传输接口,把ota文件传给设备

2、传输完成后,设备会自动进入升级状态,期间蓝牙连接会断开

3、设备升级完成会重启,升级流程结束

示例参考:

设备OTA升级并不复杂,可以把它看作只是一个文件传输到设备的过程

SDK只有一个方法用于传输所有文件,参考:

https://idoosmart.github.io/Native_GitBook/en/doc/transfer/IDOFileTransfer.html

示例中以下代码就是固件升级:

var items = mutableListOf<IDOTransBaseModel>()

// Firmware 
items.add(IDOTransNormalModel(fileType: IDOTransType.FW , filePath: "/xx/xx/xx.fw[bin|zip]", fileName: "xx"))

// Call transfer 
val cancelable = sdk.transfer.transferFiles(
 items, cancelPre,
 { currentIndex, totalCount, currentProgress, totalProgress -> 
 print("Transmitting ${currentIndex + 1}/$totalCount...")
 },
 { currentIndex: Int, status: IDOTransStatus, errorCode: Int?, finishingTime: Int? ->
 if (status != IDOTransStatus .FINISHED || errorCode != 0) {
 print("Transmission failed: $errorCode")
 }
 },
 {resultList-> resultList.forEach {
 if (it){
 //Transmission successful
 }else{ 
 //Transfer failed
 }
 }})
Copyright © 2023-2024 IDO. All rights reserved. all right reserved,powered by Gitbook修改日期: 2024-06-27 14:19:07

results matching ""

    No results matching ""