跳到主要内容

OTA升级

更新时间:2026-04-02 19:25:56
// 导入设备升级头文件
import { RTCXLogger, RTCXDeviceMgrTypes, RTCXDeviceOTAMgr } from 'rtcxsdk'

APP端触发设备固件升级

/**
* 检测是否有可更新版本
* @param checkReq 检测版本请求参数
* @public
*/
export declare function checkVersion(checkReq: OTACheckReq): Promise<OTACheckRsp | void>;
/**
* 触发升级
* @param devices iotId列表
* @public
*/
export declare function confirmUpgrade(devices: string[]): Promise<void>;
/**
* 单个设备触发升级
* @param singleConfirmReq [OTADeviceReq]
* @public
*/
export declare function confirmUpgradeSingle(singleConfirmReq: OTADeviceReq): Promise<void>;
/**
* 获取单个设备升级状态
* @param checkReq [OTADeviceReq]
* @public
*/
export declare function checkProgress(checkReq: OTADeviceReq): Promise<OTAProgressRsp | void>;

调用示例如下:

获取设备升级信息

private async checkDeviceVersion() {
const req: RTCXDeviceMgrTypes.OTACheckReq = {
iotId: "iotId",
}
try {
const rsp = await RTCXDeviceOTAMgr.checkVersion(req)
this.OTACheckRsp = rsp
} catch (e) {
showToast(this, `获取数据失败${e}`)
}
}

触发设备升级

该接口只是触发设备升级,返回结果只代表接口调用成功与否,并不是设备升级状态,需要通过调用获取设备升级状态接口获取升级状态

private async confirmDeviceUpgrade() {
const req: string[] = ["iotId"]
try {
const rsp = await RTCXDeviceOTAMgr.confirmUpgrade(req)
} catch (e) {
showToast(this, `获取数据失败${e}`)
}
}

获取设备升级状态

由于设备升级需要一定的时间,所以App层需要通过轮询的方式调用该接口查询设备升级状态(需注意控制超时)

private async checkDeviceProgress() {
const req: RTCXDeviceMgrTypes.OTACheckReq = {
iotId: "iotId",
}
try {
const rsp = await RTCXDeviceOTAMgr.checkProgress(req)
this.OTACheckRsp = rsp
} catch (e) {
showToast(this, `获取数据失败${e}`)
}
}

触发单台设备升级

该接口会触发单台设备升级指令,同步返回设备是否正常执行了升级指令结果,33216: 无可升级的版本;6221: 设备不在线

private async confirmSingleDeviceUpgrade() {
const req: RTCXDeviceMgrTypes.OTADeviceReq = {
iotId: "iotId",
}
try {
const rsp = await RTCXDeviceOTAMgr.confirmUpgradeSingle(req)
} catch (e) {
showToast(this, `获取数据失败${e}`)
}
}