| 
    Link Kit C-SDK
    4.0.0
    
   | 
 
shadow模块头文件, 提供更新, 删除, 获取设备影子的能力 更多...
#include <stdint.h>
类 | |
| struct | aiot_shadow_msg_update_t | 
| 用于更新设备影子中的reported数据的消息结构体  更多... | |
| struct | aiot_shadow_msg_clean_desired_t | 
| 用于清除设备影子中的desired数据的消息结构体  更多... | |
| struct | aiot_shadow_msg_get_t | 
| 用于获取设备影子的消息结构体,  更多... | |
| struct | aiot_shadow_msg_delete_reported_t | 
| 用于删除设备影子中的reported数据的消息结构体  更多... | |
| struct | aiot_shadow_msg_t | 
| data-model模块发送消息的消息结构体  更多... | |
| struct | aiot_shadow_recv_generic_reply_t | 
| 设备发送 AIOT_SHADOWMSG_UPDATE, AIOT_SHADOWMSG_CLEAN_DESIRED 或 AIOT_SHADOWMSG_DELETE_REPORTED 类型消息后, 云端返回的应答消息  更多... | |
| struct | aiot_shadow_recv_control_t | 
| 如果设备在线, 用户应用调用云端APIUpdateDeviceShadow后云端下推的消息  更多... | |
| struct | aiot_shadow_recv_get_reply_t | 
| 设备发送 AIOT_SHADOWMSG_GET 类型消息后, 云端返回的设备影子数据  更多... | |
| struct | aiot_shadow_recv_t | 
| shadow模块收到从网络上来的报文时, 通知用户的报文内容  更多... | |
宏定义 | |
| #define | STATE_SHADOW_BASE (-0x1300) | 
| -0x1300~-0x13FF表达SDK在data-model模块内的状态码  更多... | |
| #define | STATE_SHADOW_MQTT_HANDLE_IS_NULL (-0x1301) | 
| 用户未调用aiot_shadow_setopt 配置MQTT句柄  更多... | |
| #define | STATE_SHADOW_REPORTED_DATA_IS_NULL (-0x1302) | 
| 用户上报AIOT_SHADOWMSG_UPDATE 或 AIOT_SHADOWMSG_DELETE_REPORTED 消息时, 消息结构体中的reported为NULL  更多... | |
| #define | STATE_SHADOW_INTERNAL_TOPIC_ERROR (-0x1303) | 
| 解析下行数据对应的topic时发生错误  更多... | |
| #define | STATE_SHADOW_LOG_RECV (-0x1304) | 
| 接收到服务器下行消息时的日志状态码  更多... | |
| #define | SATAE_SHADOW_LOG_PARSE_RECV_MSG_FAILED (-0x1305) | 
| 解析服务器下行消息失败时的日志状态码  更多... | |
类型定义 | |
| typedef void(* | aiot_shadow_recv_handler_t) (void *handle, const aiot_shadow_recv_t *recv, void *userdata) | 
| shadow模块收到从网络上来的报文时, 通知用户所调用的数据回调函数  更多... | |
枚举 | |
| enum | aiot_shadow_option_t { AIOT_SHADOWOPT_MQTT_HANDLE, AIOT_SHADOWOPT_RECV_HANDLER, AIOT_SHADOWOPT_USERDATA, AIOT_SHADOWOPT_MAX } | 
| aiot_shadow_setopt 接口的option参数可选值.  更多... | |
| enum | aiot_shadow_msg_type_t {  AIOT_SHADOWMSG_UPDATE, AIOT_SHADOWMSG_CLEAN_DESIRED, AIOT_SHADOWMSG_GET, AIOT_SHADOWMSG_DELETE_REPORTED, AIOT_SHADOWMSG_MAX }  | 
| shadow模块发送消息类型  更多... | |
| enum | aiot_shadow_recv_type_t { AIOT_SHADOWRECV_GENERIC_REPLY, AIOT_SHADOWRECV_CONTROL, AIOT_SHADOWRECV_GET_REPLY } | 
| shadow模块收到从网络上来的报文时, 通知用户的报文类型  更多... | |
函数 | |
| void * | aiot_shadow_init (void) | 
| 创建shadow会话实例, 并以默认值配置会话参数  更多... | |
| int32_t | aiot_shadow_setopt (void *handle, aiot_shadow_option_t option, void *data) | 
| 配置shadow会话  更多... | |
| int32_t | aiot_shadow_send (void *handle, aiot_shadow_msg_t *msg) | 
| 向服务器发送shadow消息请求  更多... | |
| int32_t | aiot_shadow_deinit (void **handle) | 
| 结束shadow会话, 销毁实例并回收资源  更多... | |
shadow模块头文件, 提供更新, 删除, 获取设备影子的能力
请按照以下流程使用API
aiot_shadow_init创建一个设备影子实例, 保存实例句柄aiot_shadow_setopt配置AIOT_SHADOWOPT_MQTT_HANDLE选项以设置MQTT句柄, 此选项为强制配置选项aiot_shadow_setopt配置AIOT_SHADOWOPT_RECV_HANDLER和AIOT_SHADOWOPT_USERDATA选项以注册数据接受回调函数和用户上下文数据指针aiot_shadow_send发送消息前, 应先完成MQTT实例的建连aiot_shadow_send发送更新设备影子, 获取设备影子或删除设备等消息到云平台, 在注册的回调函数中处理各种类型的云端应答消息或主动下推消息 | #define STATE_SHADOW_BASE (-0x1300) | 
-0x1300~-0x13FF表达SDK在data-model模块内的状态码
| #define STATE_SHADOW_MQTT_HANDLE_IS_NULL (-0x1301) | 
用户未调用aiot_shadow_setopt 配置MQTT句柄
| #define STATE_SHADOW_REPORTED_DATA_IS_NULL (-0x1302) | 
用户上报AIOT_SHADOWMSG_UPDATE 或 AIOT_SHADOWMSG_DELETE_REPORTED 消息时, 消息结构体中的reported为NULL
| #define STATE_SHADOW_INTERNAL_TOPIC_ERROR (-0x1303) | 
解析下行数据对应的topic时发生错误
| #define STATE_SHADOW_LOG_RECV (-0x1304) | 
接收到服务器下行消息时的日志状态码
| #define SATAE_SHADOW_LOG_PARSE_RECV_MSG_FAILED (-0x1305) | 
解析服务器下行消息失败时的日志状态码
| typedef void(* aiot_shadow_recv_handler_t) (void *handle, const aiot_shadow_recv_t *recv, void *userdata) | 
shadow模块收到从网络上来的报文时, 通知用户所调用的数据回调函数
| [in] | handle | shadow会话句柄 | 
| [in] | recv | shadow接受消息结构体, 存放收到的shadow报文内容 | 
| [in] | userdata | 指向用户上下文数据的指针, 这个指针由用户通过调用aiot_shadow_setopt 配置AIOT_SHADOWOPT_USERDATA 选项设置 | 
| enum aiot_shadow_option_t | 
aiot_shadow_setopt 接口的option参数可选值.
下文每个选项中的数据类型, 指的是aiot_shadow_setopt 中, data参数的数据类型
当data的数据类型是char *时, 以配置AIOT_SHADOWOPT_PRODUCT_KEY 为例:
char *product_key = "xxx"; aiot_shadow_setopt(shadow_handle, AIOT_SHADOWOPT_PRODUCT_KEY, product_key);
shadow模块发送消息类型
这个枚举类型包括了shadow模块支持发送的所有数据类型, 不同的消息类型将对于不同的消息结构体
| 枚举值 | |
|---|---|
| AIOT_SHADOWMSG_UPDATE | 
 更新设备影子中的reported值, 消息结构体参考aiot_shadow_msg_update_t  | 
| AIOT_SHADOWMSG_CLEAN_DESIRED | 
 清空设备影子的desired值, 消息结构体参考aiot_shadow_msg_clean_desired_t  | 
| AIOT_SHADOWMSG_GET | 
 获取设备影子, 消息结构体参考aiot_shadow_msg_get_t  | 
| AIOT_SHADOWMSG_DELETE_REPORTED | 
 删除设备影子的部分或全部reported值, 消息结构体参考aiot_shadow_msg_delete_reported_t  | 
| AIOT_SHADOWMSG_MAX | 
 消息数量最大值, 不可用作消息类型  | 
shadow模块收到从网络上来的报文时, 通知用户的报文类型
| 枚举值 | |
|---|---|
| AIOT_SHADOWRECV_GENERIC_REPLY | 
 设备发送 AIOT_SHADOWMSG_UPDATE, AIOT_SHADOWMSG_CLEAN_DESIRED 或 AIOT_SHADOWMSG_DELETE_REPORTED 这3这类型消息后, 云端返回的应答消息,   | 
| AIOT_SHADOWRECV_CONTROL | 
 设备在线时, 云端自动下发的影子内容, 消息数据结构体参考 aiot_shadow_recv_control_t  | 
| AIOT_SHADOWRECV_GET_REPLY | 
 主动获取设备影子内容云端返回的影子内容, 消息数据结构体参考 aiot_shadow_recv_get_reply_t  | 
| void* aiot_shadow_init | ( | void | ) | 
创建shadow会话实例, 并以默认值配置会话参数
| 非NULL | shadow实例的句柄 | 
| NULL | 初始化失败, 一般是内存分配失败导致 | 

| int32_t aiot_shadow_setopt | ( | void * | handle, | 
| aiot_shadow_option_t | option, | ||
| void * | data | ||
| ) | 
配置shadow会话
| [in] | handle | shadow会话句柄 | 
| [in] | option | 配置选项, 更多信息请参考aiot_shadow_option_t | 
| [in] | data | 配置选项数据, 更多信息请参考aiot_shadow_option_t | 
| STATE_SUCCESS | 参数配置成功 | 
| STATE_USER_INPUT_NULL_POINTER | 入参handle或data为NULL | 
| STATE_USER_INPUT_OUT_RANGE | 入参optioin的枚举值>=AIOT_SHADOWOPT_MAX | 
| others | 参考aiot_state_api.h | 

| int32_t aiot_shadow_send | ( | void * | handle, | 
| aiot_shadow_msg_t * | msg | ||
| ) | 
向服务器发送shadow消息请求
| [in] | handle | shadow会话句柄 | 
| [in] | msg | 消息结构体, 可指定发送消息的设备productKey, deviceName; 消息类型, 消息数据等, 更多信息请参考aiot_shadow_msg_t | 
| STATE_SUCCESS | 请求发送成功 | 
| STATE_USER_INPUT_NULL_POINTER | 入参handle或msg为NULL | 
| STATE_USER_INPUT_OUT_RANGE | 入参msg的结构体成员type >= AIOT_SHADOWMSG_MAX | 
| STATE_SYS_DEPEND_MALLOC_FAILED | 内存分配失败 | 
| STATE_SHADOW_MQTT_HANDLE_IS_NULL | 用户未调用aiot_shadow_setopt 配置MQTT句柄 | 
| others | 参考aiot_state_api.h 或STATE_SHADOW_BASE 中对应的错误码说明 | 

| int32_t aiot_shadow_deinit | ( | void ** | handle | ) | 
结束shadow会话, 销毁实例并回收资源
| [in] | handle | 指向shadow会话句柄的指针 | 
| STATE_SUCCESS | 执行成功 | 
| <STATE_SUCCESS | 执行失败 | 

 1.8.11