GizDeviceOTA 类

GizDeviceOTA类提供设备固件升级功能。可升级设备的wifi模组固件以及mcu固件。

目录

属性访问

[delegate]

使用委托获取对应事件。GizDeviceOTA 对应的回调接口在 GizDeviceOTADelegate 定义。需要用到哪个接口,回调即可。

定义

@property (class, weak, nonatomic) id <GizDeviceOTADelegate> _Nullable delegate;

回调接口

以下是GizDeviceOTA类提供的所有回调接口:

  • didCheckDeviceUpdate:检查固件更新的回调
  • didUpgradeDevice:固件开始升级的回调
  • didNotifyDeviceUpdate:设备固件有更新的主动通知
  • didNotifyDeviceUpgradeStatus:固件升级状态的主动通知

[didCheckDeviceUpdate]

回调

检查设备更新的回调,调用检查更新接口checkDeviceUpdate时触发该回调

- (void)didCheckDeviceUpdate:(GizWifiDevice *)device  result:(NSError*)result wifiVersion:(NSDictionary*)wifiVersion mcuVersion:(NSDictionary*)mcuVersion;
回调说明

回调参数

属性名 描述
device 回调的 GizWifiDevice 对象
result 接口执行结果,见GizWifiErrorCode定义。GIZ_SDK_SUCCESS表示成功,其他为失败。失败时参数wifiVersion和mcuVersion值为nil
wifiVersion 模组固件版本,字典格式:{"latest":"xxx", "current":"xxx"}。若此参数为nil,表示没有检查到模组固件更新信息
mcuVersion mcu固件版本,字典格式:{"latest":"xxx", "current":"xxx"}。若此参数为nil,表示没有检查到mcu固件更新信息

代码示例

GizDeviceOTA.delegate = self;

// 实现回调
- (void)didCheckDeviceUpdate:(GizWifiDevice *)device  result:(NSError*)result wifiVersion:(NSDictionary*)wifiVersion mcuVersion:(NSDictionary*)mcuVersion {
    if(result.code == GIZ_SDK_SUCCESS) {
        // 成功处理,取最新版本号
    } else {
        // 失败处理
    }
}

[didUpgradeDevice]

回调

设备开始升级的回调,调用开始升级接口upgradeDevice时触发该回调

- (void)didUpgradeDevice:(GizWifiDevice*)device result:(NSError*)result firmwareType:(GizOTAFirmwareType)firmwareType;
回调说明

回调参数

属性名 描述
device 回调的 GizWifiDevice 对象
result 接口执行结果,见GizWifiErrorCode定义。GIZ_SDK_SUCCESS表示成功,其他为失败
firmwareType 正在升级的固件类型

代码示例

GizDeviceOTA.delegate = self;

// 实现回调
- (void)didUpgradeDevice:(GizWifiDevice*)device result:(NSError*)result firmwareType:(GizOTAFirmwareType)firmwareType {
    if(result.code == GIZ_SDK_SUCCESS) {
        // 成功
    } else {
        // 失败
    }
}

[didNotifyDeviceUpdate]

回调

设备固件有更新的主动通知。设备固件有新版本时触发该回调

- (void)didNotifyDeviceUpdate:(GizWifiDevice*)device  wifiVersion:(NSDictionary*)wifiVersion mcuVersion:(NSDictionary*)mcuVersion;
回调说明

回调参数

属性名 描述
device 回调的 GizWifiDevice 对象
wifiVersion 模组固件版本,字典格式:{"latest":"xxx", "current":"xxx"}。若此参数为nil,表示没有检查到模组固件更新信息
mcuVersion mcu固件版本,字典格式:{"latest":"xxx", "current":"xxx"}。若此参数为nil,表示没有检查到mcu固件更新信息

代码示例

GizDeviceOTA.delegate = self;

// 实现回调
- (void)didNotifyDeviceUpdate:(GizWifiDevice*)device  wifiVersion:(NSDictionary*)wifiVersion mcuVersion:(NSDictionary*)mcuVersion {

}

[didNotifyDeviceUpgradeStatus]

回调

设备升级状态的主动通知。设备在升级过程中会主动上报升级状态,此时会触发该回调

- (void)didNotifyDeviceUpgradeStatus:(GizWifiDevice*)device firmwareType:(GizOTAFirmwareType)firmwareType upgradeStatus:(NSError*)upgradeStatus;
回调说明

回调参数

属性名 描述
device 回调的 GizWifiDevice 对象
firmwareType 正在升级的固件类型
upgradeStatus 设备升级状态,见GizWifiErrorCode定义中枚举值范围[8350, 8360]

代码示例

GizDeviceOTA.delegate = self;

// 实现回调
- (void)didNotifyDeviceUpdate:(GizWifiDevice*)device  wifiVersion:(NSDictionary*)wifiVersion mcuVersion:(NSDictionary*)mcuVersion {

}

API定义

[checkDeviceUpdate]

检查固件是否有更新

定义

+ (void)checkDeviceUpdate:(NSString*)uid token:(NSString*)token device:(GizWifiDevice*)device;

参数

属性名 描述
uid 用户uid
token 用户token
device 待检查固件版本的设备

代码示例

// 设置OTA委托
GizDeviceOTA.delegate = self;

// 检查固件版本是否有更新。mDevice为从设备列表中取到的待升级的设备
[GizDeviceOTA checkDeviceUpdate:@"your_uid" token: @"your_token" device:mDevice]; 

// 实现回调
- (void)didCheckDeviceUpdate:(GizWifiDevice *)device  result:(NSError*)result wifiVersion:(NSDictionary*)wifiVersion mcuVersion:(NSDictionary*)mcuVersion {
    if(result.code == GIZ_SDK_SUCCESS) {
        // 成功,比较固件版本号是否有更新
    } else {
        // 失败
    }
}

[upgradeDevice]

开始升级

定义

+ (void)upgradeDevice:(NSString *)uid token:(NSString*)token device:(GizWifiDevice*)device firmwareType:(GizOTAFirmwareType)firmwareType;

参数

属性名 描述
uid 用户uid
token 用户token
device 要升级的设备
firmwareType 要升级的固件类型,见GizOTAFirmwareType枚举定义

代码示例

// 设置OTA委托
[GizDeviceOTA setDelegate:self];

// 开始升级。mDevice为刚检查过版本信息待升级的设备
[GizDeviceOTA upgradeDevice:@"your_uid" token: @"your_token" device:mDevice firmwareType: GizOTAFirmareModule]; 

// 实现回调
- (void)didCheckDeviceUpdate:(GizWifiDevice *)device  result:(NSError*)result wifiVersion:(NSDictionary*)wifiVersion mcuVersion:(NSDictionary*)mcuVersion {
    if(result.code == GIZ_SDK_SUCCESS) {
        // 成功
    } else {
        // 失败
    }
}

results matching ""

    No results matching ""