SDK提供蓝牙Mesh OTA业务的APP端解决方案,提供了蓝牙Mesh设备固件升级的能力。
概述
依赖 SDK | 概述 |
移动端设备网关 SDK | 移动端设备网关SDK,运行于App上的子设备网关,对于无法直连网络的子设备,如蓝牙设备,提供子设备的管理功能,如子设备添加拓扑,删除拓扑,上线,下线以及数据上下行等。 |
使用说明
连接到OTA升级网络
在mesh设备升级前,需要保证当前APP断开Mesh网络并且初始化升级OTA网络。
GenieBLEDeviceManager.getInstance().disconnectFromMesh();
GenieBLEDeviceManager.getInstance().initFeiyanNetwork();
初始化升级
GenieBLEDeviceManager.getInstance().getRemoteGenieBLEDeviceWithScan( Context,address,timeout,new IActionListener<GenieBLEDevice> {
@Override
public void onSuccess(GenieBLEDevice[] genieBLEDevices) {
//初始化成功,返回设备信息列表
}
@Override
public void onFailure(int i, String s) {
//初始化失败
}
})
参数说明
名称 | 类型 | 必填 | 默认值 | 描述 |
context | Context | 是 | 上下文。 | |
address | String[] | 是 | 需要升级的mac地址数组。 | |
timeout | int | 是 | 扫描超时时间,建议填3000,单位毫秒。 | |
IActionListener | IActionListener<GenieBLEDevice> | 是 | 初始化结果回调。 |
连接设备
初始化设备成功后用返回的genieBLEDevices
去连接设备。
genieBLEDevices[0].connect(context, new IActionListener<BluetoothDevice>() {
@Override
public void onSuccess(BluetoothDevice[] bluetoothDevices) {
//连接设备成功,可以开始升级
}
@Override
public void onFailure(int i, String s) {
//连接失败
}
})
参数说明
名称 | 类型 | 必填 | 默认值 | 描述 |
context | Context | 是 | 上下文 | |
IActionListener | IActionListener<BluetoothDevice> | 是 | 初始化结果回调 |
下载升级固件
下载设备升级所需固件。方法入参deviceInfoModel
、MD5需要依赖获取固件的升级信息API接口。
genieBLEDevices[0].testDevice.startDownloadFeiyanDeviceFirmware(context, deviceInfoModel, MD5,
new IOTAPlugin.IFirmwareDownloadListener() {
@Override
public void onDownloadStart() {
//开始下载
}
@Override
public void onProgress(int i, int i1) {
//下载进度
}
@Override
public void onFailed(int i, String s) {
//下载失败
}
@Override
public void onComplete(String downloadedPath) {
//下载完成,返回本地保存地址
}
} );
参数说明
名称 | 类型 | 必填 | 默认值 | 描述 |
context | Context | 是 | 上下文。 | |
deviceInfoModel | DeviceVersionInfo.DeviceInfoModel | 是 | 下载固件地址的信息。 | |
md5 | String | 否 | null | 缓存本地存在设备固件的md5。 |
istener | IOTAPlugin.IFirmwareDownloadListener | 是 | 下载固件回调。 |
DeviceVersionInfo.DeviceInfoModel参数说明
//固件版本
private String otaUrl;
//固件版本
private String version;
//固件md5
private String md5;
//固件大小
private String size;
//最小升级版本号.可以不填
private String minimumAppVersion;
是否可以ota升级,填"true"
private String canOta;
开始升级设备
固件下载成功后升级设备。
genieBLEDevices[0].realStartFeiyanOta(downloadedPath, deviceInfoModel,new IOTAPlugin.IOTAActionListener(){
@Override
public void onStateChanged(IOTAPlugin.OTAState otaState) {
//设备状态变化回调
}
@Override
public void onSuccess(int i) {
//升级成功
}
@Override
public void onFailure(int i, String s) {
//升级失败
}
@Override
public void onProgress(int i, int i1) {
//升级中
}
})
参数说明
名称 | 类型 | 必填 | 默认值 | 描述 |
downloadedPath | downloadedPaths | 是 | 下载成功后的固件地址。 | |
deviceInfoModel | DeviceVersionInfo.DeviceInfoModel | 是 | 下载固件地址的信息。 | |
IActionListener | IOTAPlugin.IOTAActionListener | 是 | 升级结果回调。 |