本文介绍使用C Link SDK配置OTA升级时,需调用的API。
IOT_OTA_Init
- 接口原型 - void *IOT_OTA_Init(const char *product_key, const char *device_name, void *ch_signal);
- 接口说明 - 初始化OTA模块,需要先建立与云端的MQTT连接后才能使用。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - product_key - const char * - 输入 - 设备证书中的Product Key。 - device_name - const char * - 输入 - 设备证书中的Device Name。 - ch_signal - void * - 输入 - MQTT句柄。 
- 返回值说明 - 值 - 说明 - NULL - 失败 - 非NULL - OTA句柄 
IOT_OTA_Deinit
- 接口原型 - int IOT_OTA_Deinit(void *handle)
- 接口说明 - 反初始化OTA模块,释放所有资源。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - handle - void * - 输入 - OTA句柄 
- 返回值说明 - 值 - 说明 - 0 - 成功 - < 0 - 失败 
IOT_OTA_ReportVersion
- 接口原型 - int IOT_OTA_ReportVersion(void *handle, const char *version);
- 接口说明 - 向云端上报当前SDK版本号。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - handle - void * - 输入 - OTA句柄 - version - const char * - 输入 - 版本号 
- 返回值说明 - 值 - 说明 - 0 - 成功 - < 0 - 失败 
IOT_OTA_ReportProgress
- 接口原型 - int IOT_OTA_ReportProgress(void *handle, IOT_OTA_Progress_t progress, const char *msg);
- 接口说明 - 向云端上报升级进度。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - handle - void * - 输入 - OTA句柄。 - progress - IOT_OTA_Progress_t - 输入 - 当前升级进度。 - msg - const char * - 输入 - 升级状态的描述信息,可以为NULL。 
- 参数附加说明 - typedef enum { IOT_OTAP_BURN_FAILED = -4, IOT_OTAP_CHECK_FAILED = -3, IOT_OTAP_FETCH_FAILED = -2, IOT_OTAP_GENERAL_FAILED = -1, IOT_OTAP_FETCH_PERCENTAGE_MIN = 0, IOT_OTAP_FETCH_PERCENTAGE_MAX = 100 } IOT_OTA_Progress_t;- 参数 - 说明 - IOT_OTAP_BURN_FAILED - 固件烧写失败。 - IOT_OTAP_CHECK_FAILED - 固件校验失败。 - IOT_OTAP_FETCH_FAILED - 固件下载失败。 - IOT_OTAP_GENERAL_FAILED - OTA其他错误。 - IOT_OTAP_FETCH_PERCENTAGE_MIN - 固件OTA进度最小值,为0。 - IOT_OTAP_FETCH_PERCENTAGE_MAX - 固件OTA进度最大值,为100。 - 升级进度取值范围 - [0,100]区间的整数。 
- 返回值说明 - 值 - 说明 - 0 - 成功 - < 0 - 失败 
IOT_OTA_IsFetching
- 接口原型 - int IOT_OTA_IsFetching(void *handle);
- 接口说明 - 检测当前OTA模块是否处于从云端获取数据的状态。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - handle - void * - 输入 - OTA句柄 
- 返回值说明 - 值 - 说明 - 0 - 未处于获取数据状态 - 1 - 正在从云端获取数据 
IOT_OTA_IsFetchFinish
- 接口原型 - int IOT_OTA_IsFetchFinish(void *handle);
- 接口说明 - 检测当前OTA模块是否获取数据完成。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - handle - void * - 输入 - OTA句柄 
- 返回值说明 - 值 - 说明 - 0 - 获取数据未完成 - 1 - 已从云端获取数据完成 
IOT_OTA_FetchYield
- 接口原型 - int IOT_OTA_FetchYield(void *handle, char *buf, uint32_t buf_len, uint32_t timeout_s);
- 接口说明 - 该接口用于从网络接收报文,需要用户周期性调用。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - handle - void * - 输入 - OTA句柄。 - buf - void * - 输入 - 用于获取配置文件的临时buffer。 - buf_len - int - 输入 - data_buf的长度。
- 返回值说明 - 值 - 说明 - 0 - 成功 - < 0 - 失败 
IOT_OTA_Ioctl
- 接口原型 - int IOT_OTA_Ioctl(void *handle, IOT_OTA_CmdType_t type, void *buf, size_t buf_len);
- 接口说明 - 用于设置OTA部分参数或获取当前OTA运行状态。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - handle - void * - 输入 - OTA句柄 - type - IOT_OTA_CmdType_t - 输入 - 命令类型 - buf - void * - 输入/输出 - 命令buffer - buf_len - size_t - 输入 - buf的长度
- 参数附加说明 - typedef enum { IOT_OTAG_COTA_CONFIG_ID, IOT_OTAG_COTA_CONFIG_SIZE, IOT_OTAG_COTA_SIGN, IOT_OTAG_COTA_SIGN_METHOD, IOT_OTAG_COTA_URL, IOT_OTAG_COTA_GETTYPE, IOT_OTAG_OTA_TYPE, IOT_OTAG_FETCHED_SIZE, /* option for get already fetched size */ IOT_OTAG_FILE_SIZE, /* size of file */ IOT_OTAG_MD5SUM, /* md5 in string format */ IOT_OTAG_VERSION, /* version in string format */ IOT_OTAG_CHECK_FIRMWARE, /* Check firmware is valid or not */ IOT_OTAG_CHECK_CONFIG, /* Check config file is valid or not */ IOT_OTAG_RESET_FETCHED_SIZE /* reset the size_fetched parameter to be 0 */ } IOT_OTA_CmdType_t;- 参数 - 说明 - IOT_OTAG_COTA_CONFIG_ID - 当前可升级配置文件的ID。 - IOT_OTAG_COTA_CONFIG_SIZE - 当前可升级配置文件的大小。 - IOT_OTAG_COTA_SIGN - 当前可升级配置文件的签名。 - IOT_OTAG_COTA_SIGN_METHOD - 当前可升级配置文件计算签名的方法。 - IOT_OTAG_COTA_URL - 当前可升级配置文件的下载地址。 - IOT_OTAG_COTA_GETTYPE - 当前可升级配置文件的类型。 - IOT_OTAG_OTA_TYPE - 当前OTA类型,COTA或FOTA。 - IOT_OTAG_FETCHED_SIZE - 当前可升级配置文件已下载大小。 - IOT_OTAG_FILE_SIZE - 当前可升级固件文件的大小。 - IOT_OTAG_MD5SUM - 当前已下载文件的MD5值。 - IOT_OTAG_VERSION - 当前可升级固件的版本号。 - IOT_OTAG_CHECK_FIRMWARE - 对已下载固件文件进行校验。 - IOT_OTAG_CHECK_CONFIG - 对已下载配置文件进行校验。 - IOT_OTAG_RESET_FETCHED_SIZE - 下载开始前,将已下载的数据量大小size_fetched值清零。 
- 返回值说明 - 值 - 说明 - 0 - 成功 - < 0 - 失败 
IOT_OTA_GetLastError
- 接口原型 - int IOT_OTA_GetLastError(void *handle);
- 接口说明 - 获取最近一次的错误码。 
- 参数说明 - 参数 - 数据类型 - 方向 - 说明 - handle - void * - 输入 - OTA句柄 
- 返回值说明 - 值 - 说明 - 0 - 最近一次错误码为成功 - < 0 - 最近一次错误码为失败