task模块头文件, 提供任务管理的能力
更多...
#include <stdint.h>
浏览源代码.
|
enum | aiot_task_option_t { AIOT_TASKOPT_MQTT_HANDLE,
AIOT_TASKOPT_RECV_HANDLER,
AIOT_TASKOPT_USERDATA,
AIOT_TASKOPT_MAX
} |
|
enum | aiot_task_status_t {
AIOT_TASK_STATUS_QUEUED,
AIOT_TASK_STATUS_SENT,
AIOT_TASK_STATUS_IN_PROGRESS,
AIOT_TASK_STATUS_SUCCEEDED,
AIOT_TASK_STATUS_FAILED,
AIOT_TASK_STATUS_REJECTED,
AIOT_TASK_STATUS_CANCELLED,
AIOT_TASK_STATUS_REMOVED,
AIOT_TASK_STATUS_TIMED_OUT,
AIOT_TASK_STATUS_NOT_FOUND
} |
| 任务的状态. 更多...
|
|
enum | aiot_task_recv_type_t { AIOT_TASKRECV_NOTIFY,
AIOT_TASKRECV_GET_DETAIL_REPLY,
AIOT_TASKRECV_GET_LIST_REPLY,
AIOT_TASKRECV_UPDATE_REPLY
} |
| 下行有关的数据结构 更多...
|
|
task模块头文件, 提供任务管理的能力
- 日期
- 2020-11-25
- 版权所有
- Copyright (C) 2015-2020 Alibaba Group Holding Limited
#define STATE_TASK_BASE (-0x0B00) |
-0x0B00~-0x0BFF表达SDK在task模块内的状态码
#define STATE_TASK_DEINIT_HANDLE_IS_NULL (-0x0B01) |
销毁task会话实例时, 发现会话句柄为空, 中止销毁动作
#define STATE_TASK_SETOPT_HANDLE_IS_NULL (-0x0B02) |
配置task会话实例时, 发现会话句柄为空, 中止配置动作
#define STATE_TASK_RECV_NOTIFY (-0x0B03) |
#define STATE_TASK_PARSE_NOTIFY_FAILED (-0x0B04) |
#define STATE_TASK_PARSE_JSON_MALLOC_FAILED (-0x0B05) |
为解析JSON报文而申请内存时, 未获取到所需内存而解析失败
#define STATE_TASK_PARSE_JSON_ERROR (-0x0B06) |
#define STATE_TASK_QUERY_TASK_ID_IS_NULL (-0x0B07) |
#define STATE_TASK_RECV_GET_LIST_REPLY (-0x0B08) |
接收到服务器get list reply下行消息时的日志状态码
#define STATE_TASK_SETOPT_DATA_IS_NULL (-0x0B09) |
配置task会话实例时, 发现会话句柄为空, 中止配置动作
#define STATE_TASK_UPDATE_STATUS_INVALID (-0x0B0A) |
#define STATE_TASK_UPDATE_STATUS_DETAILS_INVALID (-0x0B0B) |
aiot_task_setopt 接口的option参数可选值.
update task的时候task status_details只能为NULL或者json字符串对象
typedef void(* aiot_task_recv_handler_t) (void *handle, const aiot_task_recv_t *recv, void *userdata) |
设备收到task的mqtt下行报文时的接收回调函数
- 参数
-
[in] | handle | task实例句柄 |
[in] | recv | 云端下行的消息 |
[in] | userdata | 用户上下文 |
- 返回
- void
枚举值 |
---|
AIOT_TASKOPT_MQTT_HANDLE |
设置MQTT的handle
OTA过程中使用MQTT的通道能力, 用以向云端上报版本号, 进度, 以及错误码
数据类型: (void *)
|
AIOT_TASKOPT_RECV_HANDLER |
设置处理task消息的用户回调函数
从云端下发或者返回的数据的处理函数
数据类型: (void *)
|
AIOT_TASKOPT_USERDATA |
用户需要SDK暂存的上下文
这个上下文指针会在 AIOT_TASKOPT_RECV_HANDLER设置的回调被调用时, 由SDK传给用户
数据类型: (void *)
|
AIOT_TASKOPT_MAX |
|
任务的状态.
枚举值 |
---|
AIOT_TASK_STATUS_QUEUED |
|
AIOT_TASK_STATUS_SENT |
|
AIOT_TASK_STATUS_IN_PROGRESS |
|
AIOT_TASK_STATUS_SUCCEEDED |
|
AIOT_TASK_STATUS_FAILED |
|
AIOT_TASK_STATUS_REJECTED |
|
AIOT_TASK_STATUS_CANCELLED |
|
AIOT_TASK_STATUS_REMOVED |
|
AIOT_TASK_STATUS_TIMED_OUT |
|
AIOT_TASK_STATUS_NOT_FOUND |
|
下行有关的数据结构
枚举值 |
---|
AIOT_TASKRECV_NOTIFY |
|
AIOT_TASKRECV_GET_DETAIL_REPLY |
|
AIOT_TASKRECV_GET_LIST_REPLY |
|
AIOT_TASKRECV_UPDATE_REPLY |
|
void* aiot_task_init |
( |
void |
| ) |
|
创建一个task实例
- 返回
- void*
- 返回值
-
非NULL | task实例句柄 |
NULL | 初始化失败, 或者是因为没有设置portfile, 或者是内存分配失败导致 |
int32_t aiot_task_deinit |
( |
void ** |
handle | ) |
|
销毁task实例句柄
- 参数
-
- 返回
- int32_t
- 返回值
-
STATE_USER_INPUT_NULL_POINTER | handle或者handle所指向的地址为空 |
STATE_SUCCESS | 执行成功 |
设置task句柄的参数
对task会话进行配置, 常见的配置选项包括
- 参数
-
- 返回
- int32_t
- 返回值
-
STATE_TASK_SETOPT_HANDLE_IS_NULL | task句柄为空 |
STATE_TASK_SETOPT_DATA_IS_NULL | 参数data字段为空 |
STATE_USER_INPUT_UNKNOWN_OPTION | option不支持 |
STATE_SUCCESS | 参数设置成功 |
int32_t aiot_task_get_task_list |
( |
void * |
handle | ) |
|
从云端获取task列表
从云端获取task列表
- 参数
-
- 返回
- int32_t
- 返回值
-
STATE_TASK_SETOPT_DATA_IS_NULL | 参数的handle字段为空 |
STATE_SUCCESS | 发送成功 |
int32_t aiot_task_get_task_detail |
( |
void * |
handle, |
|
|
char * |
user_task_id |
|
) |
| |
从云端获取task详细内容
从云端获取task详细内容
- 参数
-
[in] | handle | task句柄 |
[in] | user_task_id | task的id或者$next |
- 返回
- int32_t
- 返回值
-
STATE_TASK_SETOPT_DATA_IS_NULL或user_task_id | 参数的handle字段为空 |
STATE_SUCCESS | 发送成功 |
int32_t aiot_task_update |
( |
void * |
handle, |
|
|
task_desc_t * |
task |
|
) |
| |
更新任务状态到云端
更新任务状态到云端
- 参数
-
[in] | handle | task句柄 |
[in] | task | task信息 |
- 返回
- int32_t
- 返回值
-
STATE_TASK_SETOPT_DATA_IS_NULL或task | 参数的handle字段为空 |
STATE_SUCCESS | 更新成功 |