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