蓝牙 Mesh OTA SDK

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

升级结果回调。