Link Kit C-SDK  4.0.0
| 宏定义 | 类型定义 | 枚举 | 函数
aiot_task_api.h 文件参考

task模块头文件, 提供任务管理的能力 更多...

#include <stdint.h>
aiot_task_api.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  task_desc_t
 任务描述的数据结构 更多...
 
struct  task_summary_t
 从云端拉取list时每个任务的简要描述 更多...
 
struct  task_get_list_reply_t
 从云端拉取list返回的数据 更多...
 
struct  task_get_detail_reply_t
 从云端拉取任务详细信息时返回的数据 更多...
 
struct  task_update_reply_t
 更新任务状态到云端后,云端返回的数据 更多...
 
struct  aiot_task_recv_t
 云端主动下发或更新任务云端返回的数据 更多...
 

宏定义

#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)
 接收到服务器notify下行消息时的日志状态码 更多...
 
#define STATE_TASK_PARSE_NOTIFY_FAILED   (-0x0B04)
 解析服务器下推的MQTT下行JSON报文时出错 更多...
 
#define STATE_TASK_PARSE_JSON_MALLOC_FAILED   (-0x0B05)
 为解析JSON报文而申请内存时, 未获取到所需内存而解析失败 更多...
 
#define STATE_TASK_PARSE_JSON_ERROR   (-0x0B06)
 接收到服务器notify下行消息时的日志状态码 更多...
 
#define STATE_TASK_QUERY_TASK_ID_IS_NULL   (-0x0B07)
 接收到查询task id是空 更多...
 
#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)
 配置task 描述时状态设置不对 更多...
 
#define STATE_TASK_UPDATE_STATUS_DETAILS_INVALID   (-0x0B0B)
 aiot_task_setopt 接口的option参数可选值. 更多...
 

类型定义

typedef void(* aiot_task_recv_handler_t) (void *handle, const aiot_task_recv_t *recv, void *userdata)
 设备收到task的mqtt下行报文时的接收回调函数 更多...
 

枚举

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 }
 下行有关的数据结构 更多...
 

函数

void * aiot_task_init (void)
 创建一个task实例 更多...
 
int32_t aiot_task_deinit (void **handle)
 销毁task实例句柄 更多...
 
int32_t aiot_task_setopt (void *handle, aiot_task_option_t option, void *data)
 设置task句柄的参数 更多...
 
int32_t aiot_task_get_task_list (void *handle)
 从云端获取task列表 更多...
 
int32_t aiot_task_get_task_detail (void *handle, char *user_task_id)
 从云端获取task详细内容 更多...
 
int32_t aiot_task_update (void *handle, task_desc_t *task)
 更新任务状态到云端 更多...
 

详细描述

task模块头文件, 提供任务管理的能力

日期
2020-11-25

宏定义说明

#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)

接收到服务器notify下行消息时的日志状态码

#define STATE_TASK_PARSE_NOTIFY_FAILED   (-0x0B04)

解析服务器下推的MQTT下行JSON报文时出错

#define STATE_TASK_PARSE_JSON_MALLOC_FAILED   (-0x0B05)

为解析JSON报文而申请内存时, 未获取到所需内存而解析失败

#define STATE_TASK_PARSE_JSON_ERROR   (-0x0B06)

接收到服务器notify下行消息时的日志状态码

#define STATE_TASK_QUERY_TASK_ID_IS_NULL   (-0x0B07)

接收到查询task id是空

#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)

配置task 描述时状态设置不对

#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]handletask实例句柄
[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*
返回值
非NULLtask实例句柄
NULL初始化失败, 或者是因为没有设置portfile, 或者是内存分配失败导致

函数调用图:

int32_t aiot_task_deinit ( void **  handle)

销毁task实例句柄

参数
[in]handle指向task实例句柄的指针
返回
int32_t
返回值
STATE_USER_INPUT_NULL_POINTERhandle或者handle所指向的地址为空
STATE_SUCCESS执行成功

函数调用图:

int32_t aiot_task_setopt ( void *  handle,
aiot_task_option_t  option,
void *  data 
)

设置task句柄的参数

对task会话进行配置, 常见的配置选项包括

参数
[in]handletask句柄
[in]option配置选项, 更多信息请参考aiot_task_option_t
[in]data配置选项数据, 更多信息请参考aiot_task_option_t
返回
int32_t
返回值
STATE_TASK_SETOPT_HANDLE_IS_NULLtask句柄为空
STATE_TASK_SETOPT_DATA_IS_NULL参数data字段为空
STATE_USER_INPUT_UNKNOWN_OPTIONoption不支持
STATE_SUCCESS参数设置成功

函数调用图:

int32_t aiot_task_get_task_list ( void *  handle)

从云端获取task列表

从云端获取task列表

参数
[in]handletask句柄
返回
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]handletask句柄
[in]user_task_idtask的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]handletask句柄
[in]tasktask信息
返回
int32_t
返回值
STATE_TASK_SETOPT_DATA_IS_NULL或task参数的handle字段为空
STATE_SUCCESS更新成功

函数调用图: