Link Kit C-SDK  4.0.0
函数 | 变量
aiot_task_api.c 文件参考

TASK模块接口实现文件, 其中包含了TASK的所有用户API. 更多...

#include "core_mqtt.h"
#include "core_string.h"
#include "core_log.h"
#include "core_global.h"
#include "task_private.h"
aiot_task_api.c 的引用(Include)关系图:

函数

static void _task_recv_notify_handler (void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
 
static void _task_recv_get_reply_handler (void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
 
static void _task_recv_update_reply_handler (void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
 
static char * _task_convert_status_to_str (aiot_task_status_t status)
 
static aiot_task_status_t _task_cover_status_to_enum (char *str)
 
static int32_t _task_parse_json (aiot_sysdep_portfile_t *sysdep, const void *input, uint32_t input_len, char *key_word, char **out)
 
static int32_t _task_parse_task_detail (task_handle_t *task_handle, const char *payload, uint32_t payload_len, task_desc_t *task)
 
static void _task_free_task_list (task_handle_t *task_handle, task_get_list_reply_t *list)
 
static void _task_free_task_detail (task_handle_t *task_handle, task_desc_t *task)
 
static void _task_free_update_reply (task_update_reply_t *reply)
 
static int32_t _task_send_notify_reply (task_handle_t *task_handle, char *msg_id, uint32_t code)
 
static int32_t _task_parse_notify (task_handle_t *task_handle, const char *payload, uint32_t payload_len, task_desc_t *task)
 
static int32_t _task_parse_get_list_reply_array (char *str, int32_t str_len, task_list_json *array)
 
static uint32_t _task_parse_get_list_reply (task_handle_t *task_handle, void *input, uint32_t input_len, task_get_list_reply_t *reply)
 
static int32_t _task_setup_topic_mapping (void *mqtt_handle, void *task_handle)
 
static void _task_core_mqtt_process_handler (void *context, aiot_mqtt_event_t *event, core_mqtt_event_t *core_event)
 
static int32_t _task_core_mqtt_operate_process_handler (task_handle_t *task_handle, core_mqtt_option_t option)
 
static int32_t _task_send_query_task (task_handle_t *task_handle, char *task_id)
 
int32_t aiot_task_get_task_list (void *handle)
 从云端获取task列表 更多...
 
int32_t aiot_task_get_task_detail (void *handle, char *task_id)
 从云端获取task详细内容 更多...
 
int32_t aiot_task_update (void *handle, task_desc_t *task)
 更新任务状态到云端 更多...
 
int32_t aiot_task_setopt (void *handle, aiot_task_option_t option, void *data)
 设置task句柄的参数 更多...
 
void * aiot_task_init (void)
 创建一个task实例 更多...
 
int32_t aiot_task_deinit (void **p_handle)
 销毁task实例句柄 更多...
 

变量

static const task_status_map_t g_task_stauts_mapping []
 
static const task_recv_topic_map_t g_task_recv_topic_mapping []
 

详细描述

TASK模块接口实现文件, 其中包含了TASK的所有用户API.

日期
2019-12-27

函数说明

static void _task_recv_notify_handler ( void *  handle,
const aiot_mqtt_recv_t msg,
void *  userdata 
)
static

函数调用图:

static void _task_recv_get_reply_handler ( void *  handle,
const aiot_mqtt_recv_t msg,
void *  userdata 
)
static

函数调用图:

static void _task_recv_update_reply_handler ( void *  handle,
const aiot_mqtt_recv_t msg,
void *  userdata 
)
static

函数调用图:

static char* _task_convert_status_to_str ( aiot_task_status_t  status)
static
static aiot_task_status_t _task_cover_status_to_enum ( char *  str)
static
static int32_t _task_parse_json ( aiot_sysdep_portfile_t sysdep,
const void *  input,
uint32_t  input_len,
char *  key_word,
char **  out 
)
static
static int32_t _task_parse_task_detail ( task_handle_t *  task_handle,
const char *  payload,
uint32_t  payload_len,
task_desc_t task 
)
static

函数调用图:

static void _task_free_task_list ( task_handle_t *  task_handle,
task_get_list_reply_t list 
)
static
static void _task_free_task_detail ( task_handle_t *  task_handle,
task_desc_t task 
)
static

函数调用图:

static void _task_free_update_reply ( task_update_reply_t reply)
static

函数调用图:

static int32_t _task_send_notify_reply ( task_handle_t *  task_handle,
char *  msg_id,
uint32_t  code 
)
static

函数调用图:

static int32_t _task_parse_notify ( task_handle_t *  task_handle,
const char *  payload,
uint32_t  payload_len,
task_desc_t task 
)
static

函数调用图:

static int32_t _task_parse_get_list_reply_array ( char *  str,
int32_t  str_len,
task_list_json *  array 
)
static
static uint32_t _task_parse_get_list_reply ( task_handle_t *  task_handle,
void *  input,
uint32_t  input_len,
task_get_list_reply_t reply 
)
static

函数调用图:

static int32_t _task_setup_topic_mapping ( void *  mqtt_handle,
void *  task_handle 
)
static

函数调用图:

static void _task_core_mqtt_process_handler ( void *  context,
aiot_mqtt_event_t event,
core_mqtt_event_t *  core_event 
)
static
static int32_t _task_core_mqtt_operate_process_handler ( task_handle_t *  task_handle,
core_mqtt_option_t  option 
)
static

函数调用图:

static int32_t _task_send_query_task ( task_handle_t *  task_handle,
char *  task_id 
)
static

函数调用图:

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更新成功

函数调用图:

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参数设置成功

函数调用图:

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执行成功

函数调用图:

变量说明

const task_status_map_t g_task_stauts_mapping[]
static
初始值:
= {
{"IN_PROGRESS", AIOT_TASK_STATUS_IN_PROGRESS},
}
Definition: aiot_task_api.h:138
Definition: aiot_task_api.h:136
Definition: aiot_task_api.h:132
Definition: aiot_task_api.h:137
Definition: aiot_task_api.h:133
Definition: aiot_task_api.h:134
Definition: aiot_task_api.h:135
Definition: aiot_task_api.h:140
Definition: aiot_task_api.h:139
const task_recv_topic_map_t g_task_recv_topic_mapping[]
static
初始值:
= {
{
"/sys/+/+/thing/job/notify",
},
{
"/sys/+/+/thing/job/get_reply",
},
{
"/sys/+/+/thing/job/update_reply",
}
}
static void _task_recv_update_reply_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_task_api.c:458
static void _task_recv_get_reply_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_task_api.c:373
static void _task_recv_notify_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_task_api.c:264