Link Kit C-SDK
4.1.0
|
mqtt_download模块头文件, 提供mqtt文件传输的能力 更多...
#include <stdint.h>
类 | |
struct | aiot_mqtt_download_recv_t |
mqtt_download模块收到从网络上来的报文时, 通知用户的报文内容 更多... | |
宏定义 | |
#define | STATE_MQTT_DOWNLOAD_BASE (-0x1D00) |
-0x1D00~-0x1DFF表达SDK在mqtt_download模块内的状态码 更多... | |
#define | STATE_MQTT_DOWNLOAD_MQTT_HANDLE_NULL (-0x1D01) |
mqtt_download_handle为空 更多... | |
#define | STATE_MQTT_DOWNLOAD_TASK_DEINIT (-0x1D02) |
任务未初始化 更多... | |
#define | STATE_MQTT_DOWNLOAD_INIT (-0x1D03) |
初始化完,第一次执行请求 更多... | |
#define | STATE_MQTT_DOWNLOAD_ING (-0x1D04) |
正在下载文件 更多... | |
#define | STATE_MQTT_DOWNLOAD_FINISHED (-0x1D05) |
文件已经下载完,但未校验 更多... | |
#define | STATE_MQTT_DOWNLOAD_SUCCESS (-0x1D06) |
文件下载完成,并且校验通过 更多... | |
#define | STATE_MQTT_DOWNLOAD_FAILED_TIMEOUT (-0x1D07) |
文件下载接收失败,重试几个后还是失败,认定为超时 更多... | |
#define | STATE_MQTT_DOWNLOAD_FAILED_MISMATCH (-0x1D08) |
完整文件下载时,MD5校验失败 更多... | |
#define | STATE_MQTT_DOWNLOAD_FAILED_RECVERROR (-0x1D09) |
接收长度校验错误 更多... | |
#define | STATE_MQTT_DOWNLOAD_ABORT (-0x1D0A) |
用户主动取消下载任务 更多... | |
#define | STATE_MQTT_DOWNLOAD_FILESIZE_ERROR (-0x1D0B) |
设置的下载长度为空 更多... | |
类型定义 | |
typedef void(* | aiot_mqtt_download_recv_handler_t) (void *handle, const aiot_mqtt_download_recv_t *packet, void *userdata) |
mqtt_download模块收到从网络上来的报文时, 通知用户所调用的数据回调函数 更多... | |
枚举 | |
enum | aiot_mqtt_download_recv_type_t { AIOT_MDRECV_DATA_RESP } |
mqtt_download模块收到从网络上来的报文时, 通知用户的报文类型 更多... | |
enum | aiot_mqtt_download_option_t { AIOT_MDOPT_RECV_HANDLE, AIOT_MDOPT_MQTT_HANDLE, AIOT_MDOPT_USERDATA, AIOT_MDOPT_TASK_DESC, AIOT_MDOPT_RANGE_START, AIOT_MDOPT_RANGE_END, AIOT_MDOPT_DATA_REQUEST_SIZE, AIOT_MDOPT_MAX } |
aiot_mqtt_download_setopt 接口的option参数可选值. 更多... | |
函数 | |
void * | aiot_mqtt_download_init (void) |
创建mqtt_download会话实例, 并以默认值配置会话参数 更多... | |
int32_t | aiot_mqtt_download_setopt (void *handle, aiot_mqtt_download_option_t option, void *data) |
配置mqtt_download会话 更多... | |
int32_t | aiot_mqtt_download_deinit (void **handle) |
结束mqtt_download会话, 销毁实例并回收资源 更多... | |
int32_t | aiot_mqtt_download_process (void *handle) |
处理下载逻辑 更多... | |
mqtt_download模块头文件, 提供mqtt文件传输的能力
#define STATE_MQTT_DOWNLOAD_BASE (-0x1D00) |
-0x1D00~-0x1DFF表达SDK在mqtt_download模块内的状态码
#define STATE_MQTT_DOWNLOAD_MQTT_HANDLE_NULL (-0x1D01) |
mqtt_download_handle为空
#define STATE_MQTT_DOWNLOAD_TASK_DEINIT (-0x1D02) |
任务未初始化
#define STATE_MQTT_DOWNLOAD_INIT (-0x1D03) |
初始化完,第一次执行请求
#define STATE_MQTT_DOWNLOAD_ING (-0x1D04) |
正在下载文件
#define STATE_MQTT_DOWNLOAD_FINISHED (-0x1D05) |
文件已经下载完,但未校验
#define STATE_MQTT_DOWNLOAD_SUCCESS (-0x1D06) |
文件下载完成,并且校验通过
#define STATE_MQTT_DOWNLOAD_FAILED_TIMEOUT (-0x1D07) |
文件下载接收失败,重试几个后还是失败,认定为超时
#define STATE_MQTT_DOWNLOAD_FAILED_MISMATCH (-0x1D08) |
完整文件下载时,MD5校验失败
#define STATE_MQTT_DOWNLOAD_FAILED_RECVERROR (-0x1D09) |
接收长度校验错误
#define STATE_MQTT_DOWNLOAD_ABORT (-0x1D0A) |
用户主动取消下载任务
#define STATE_MQTT_DOWNLOAD_FILESIZE_ERROR (-0x1D0B) |
设置的下载长度为空
typedef void(* aiot_mqtt_download_recv_handler_t) (void *handle, const aiot_mqtt_download_recv_t *packet, void *userdata) |
mqtt_download模块收到从网络上来的报文时, 通知用户所调用的数据回调函数
[in] | handle | mqtt_download会话句柄 |
[in] | packet | mqtt_download消息结构体, 存放收到的mqtt_download报文内容 |
[in] | userdata | 用户上下文 |
aiot_mqtt_download_setopt 接口的option参数可选值.
下文每个选项中的数据类型, 指的是aiot_mqtt_download_setopt 中, data参数的数据类型
枚举值 | |
---|---|
AIOT_MDOPT_RECV_HANDLE |
设置处理OTA消息的用户回调函数 数据类型: (aiot_mqtt_download_recv_handler_t) |
AIOT_MDOPT_MQTT_HANDLE |
设置MQTT的handle 文件下载过程中使用MQTT的通道能力, 用以请求数据及接收数据 数据类型: (void *) |
AIOT_MDOPT_USERDATA |
用户需要SDK暂存的上下文 该上下文会在AIOT_OTAOPT_RECV_HANDLER 中传回给用户 数据类型: (void *) |
AIOT_MDOPT_TASK_DESC |
设置download实例句柄所包含下载任务的具体内容 用户在收到OTA的mqtt消息后, 如果决定升级, 则需要通过该选项, 在download实例句柄中开辟内存, 将OTA消息中携带的url, version, digest method, sign等信息复制过来, 有了这些信息后才能开始下载任务 数据类型: (aiot_download_task_desc_t *) |
AIOT_MDOPT_RANGE_START |
设置按照range下载的起始地址 MQTT 范围请求(range requests)特性中, 表示从第该byte开始下载 如果指定从头开始下载, 则start的值为0 数据类型: (uint32_t *) |
AIOT_MDOPT_RANGE_END |
设置按照range下载的结束地址 MQTT 范围请求(range requests)特性中, 表示下载到该byte后结束. 如果指定从头开始下载到10个byte后结束, 则需要指定start = 0, end = 9, 这样总共10个byte 数据类型: (uint32_t *) |
AIOT_MDOPT_DATA_REQUEST_SIZE |
单次请求数据的最大长度 数据类型: (uint32_t *) 默认值: (2 *1024) Bytes |
AIOT_MDOPT_MAX |
void* aiot_mqtt_download_init | ( | void | ) |
创建mqtt_download会话实例, 并以默认值配置会话参数
非NULL | mqtt_download实例的句柄 |
NULL | 初始化失败, 一般是内存分配失败导致 |
int32_t aiot_mqtt_download_setopt | ( | void * | handle, |
aiot_mqtt_download_option_t | option, | ||
void * | data | ||
) |
配置mqtt_download会话
[in] | handle | mqtt_download会话句柄 |
[in] | option | 配置选项, 更多信息请参考aiot_mqtt_download_option_t |
[in] | data | 配置选项数据, 更多信息请参考aiot_mqtt_download_option_t |
<STATE_SUCCESS | 参数配置失败 |
>=STATE_SUCCESS | 参数配置成功 |
int32_t aiot_mqtt_download_deinit | ( | void ** | handle | ) |
结束mqtt_download会话, 销毁实例并回收资源
[in] | handle | 指向mqtt_download会话句柄的指针 |
<STATE_SUCCESS | 执行失败 |
>=STATE_SUCCESS | 执行成功 |
int32_t aiot_mqtt_download_process | ( | void * | handle | ) |
处理下载逻辑
handle | mqtt_download会话句柄 |
STATE_MQTT_DOWNLOAD_INIT | 初始化完成 |
STATE_MQTT_DOWNLOAD_ING | 正在下载 |
STATE_MQTT_DOWNLOAD_SUCCESS | 下载完成 |
STATE_MQTT_DOWNLOAD_FAILED_RECVERROR | 数据接收错误 |
STATE_MQTT_DOWNLOAD_FAILED_TIMEOUT | 接收超时 |
STATE_MQTT_DOWNLOAD_FAILED_MISMATCH | 校验错误 |
STATE_MQTT_DOWNLOAD_MQTT_HANDLE_NULL | handle没有初始化 |
STATE_MQTT_DOWNLOAD_TASK_DEINIT | 没有设置task |