Link Kit C-SDK  5.0.0
aiot_dm_api.h
浏览该文件的文档.
1 
10 #ifndef _AIOT_DM_API_H_
11 #define _AIOT_DM_API_H_
12 
13 #if defined(__cplusplus)
14 extern "C" {
15 #endif
16 
17 #include <stdint.h>
18 
28 typedef enum {
33 
38 
43 
48 
53 
58 
63 
68 
74 
78 typedef struct {
79  uint32_t msg_id;
83  uint32_t code;
87  char *data;
91  uint32_t data_len;
95  char *message;
99  uint32_t message_len;
101 
105 typedef struct {
109  char *params;
113  uint32_t params_len;
115 
119 typedef struct {
123  char *service_id;
127  char *params;
131  uint32_t params_len;
133 
134 
138 typedef struct {
142  uint8_t *data;
146  uint32_t data_len;
148 
152 typedef struct {
153  /* 原始的消息对象,回复的时候需要使用 */
154  void *context;
155  /* 解析后的数据类型 */
156  aiot_dm_msg_type_t type;
160  union {
165  } data;
166 } aiot_dm_msg_t;
167 
175 typedef void (*dm_msg_callback_t)(void *device, const aiot_dm_msg_t *msg, void *userdata);
176 
189 int32_t aiot_device_dm_set_post_reply(void *device, int8_t post_reply);
190 
204 int32_t aiot_device_dm_set_msg_callback(void *device, dm_msg_callback_t msg_callback, void *userdata);
205 
218 int32_t aiot_device_dm_property_post(void *device, char *params);
219 
233 int32_t aiot_device_dm_event_post(void *device, char *event_id, char *params);
234 
249 int32_t aiot_device_dm_batch_post(void *device, char *params);
250 
263 int32_t aiot_device_dm_get_desired(void *device, char *params);
264 
277 int32_t aiot_device_dm_delete_desired(void *device, char *params);
278 
292 int32_t aiot_device_dm_raw_post(void *device, uint8_t *data, uint32_t data_len);
293 
308 int32_t aiot_device_dm_propertyset_reply(void *device, void *context, uint32_t code, char *data);
309 
325 int32_t aiot_device_dm_service_reply(void *device, void *context, char *service_id, uint32_t code, char *data);
326 
341 int32_t aiot_device_dm_raw_reply(void *device, void *context, uint8_t *data, uint32_t data_len);
342 
352 void *aiot_dm_msg_context_clone(void *context);
353 
362 int32_t aiot_dm_msg_context_free(void *context);
363 
364 #if defined(__cplusplus)
365 }
366 #endif
367 
368 #endif
aiot_dm_msg_raw_data_t raw_data
Definition: aiot_dm_api.h:164
char * data
指向云端应答数据的指针
Definition: aiot_dm_api.h:87
int32_t aiot_device_dm_event_post(void *device, char *event_id, char *params)
物模型事件消息上报
int32_t aiot_device_dm_batch_post(void *device, char *params)
批量上报物模型属性/事件
云端通用应答消息结构体, 设备端上报aiot_device_dm_property_post, aiot_device_dm_event_post 或者aiot_de...
Definition: aiot_dm_api.h:78
uint32_t code
设备端错误码, 200-请求成功, 更多错误码码查看设备端错误码
Definition: aiot_dm_api.h:83
data-model模块接收消息的结构体
Definition: aiot_dm_api.h:152
int32_t aiot_device_dm_service_reply(void *device, void *context, char *service_id, uint32_t code, char *data)
服务调用应答
aiot_dm_msg_type_t type
Definition: aiot_dm_api.h:156
int32_t aiot_dm_msg_context_free(void *context)
释放拷贝的上下文
uint32_t params_len
属性数据的字符串长度
Definition: aiot_dm_api.h:113
物模型二进制数据消息结构体, 服务器的JSON格式物模型数据将通过物联网平台的JavaScript脚本转化为二进制数...
Definition: aiot_dm_api.h:138
消息数量最大值, 不可用作消息类型
Definition: aiot_dm_api.h:72
aiot_dm_msg_type_t
data-model模块接收消息类型枚举
Definition: aiot_dm_api.h:28
char * message
指向状态消息字符串的指针, 当设备端上报请求成功时对应的应答消息为"success", 若请求失败则应答消息中包含...
Definition: aiot_dm_api.h:95
void * context
Definition: aiot_dm_api.h:154
服务器下发的属性设置消息, 消息数据结构体参考aiot_dm_msg_property_set_t
Definition: aiot_dm_api.h:42
int32_t aiot_device_dm_set_post_reply(void *device, int8_t post_reply)
设置主动上报消息(如属性上报、事件上报)是否需要回复
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_msg_generic_reply_t ...
Definition: aiot_dm_api.h:37
aiot_dm_msg_service_invoke_t service_invoke
Definition: aiot_dm_api.h:163
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_msg_generic_reply_t ...
Definition: aiot_dm_api.h:57
uint32_t msg_id
Definition: aiot_dm_api.h:79
aiot_dm_msg_property_set_t property_set
Definition: aiot_dm_api.h:162
int32_t aiot_device_dm_delete_desired(void *device, char *params)
删除物模型期望属性
int32_t aiot_device_dm_propertyset_reply(void *device, void *context, uint32_t code, char *data)
属性设置应答
int32_t aiot_device_dm_raw_reply(void *device, void *context, uint8_t *data, uint32_t data_len)
二进制格式的同步服务应答
int32_t aiot_device_dm_set_msg_callback(void *device, dm_msg_callback_t msg_callback, void *userdata)
设置设备接收到物模型消息后的回调函数
void * aiot_dm_msg_context_clone(void *context)
深拷贝消息回复所需要上下文
uint32_t message_len
消息字符串的长度
Definition: aiot_dm_api.h:99
aiot_dm_msg_generic_reply_t generic_reply
Definition: aiot_dm_api.h:161
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_msg_generic_reply_t ...
Definition: aiot_dm_api.h:52
char * params
服务调用的输入参数数据, 为字符串形式的JSON结构体, 此字符串不以结束符&#39;\0&#39;结尾, 如"{\"LightSwitch":0}" ...
Definition: aiot_dm_api.h:127
int32_t aiot_device_dm_raw_post(void *device, uint8_t *data, uint32_t data_len)
物模型事件消息上报
uint32_t data_len
二进制数据的长度
Definition: aiot_dm_api.h:146
属性设置消息结构体
Definition: aiot_dm_api.h:105
服务器下发的物模型二进制数据, 消息数据结构体参考aiot_dm_msg_raw_data_t
Definition: aiot_dm_api.h:67
服务器下发的异步服务调用消息, 消息数据结构体参考aiot_dm_msg_service_invoke_t
Definition: aiot_dm_api.h:47
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_msg_generic_reply_t ...
Definition: aiot_dm_api.h:32
uint8_t * data
指向接受数据缓冲区的指针
Definition: aiot_dm_api.h:142
uint32_t params_len
输入参数的字符串长度
Definition: aiot_dm_api.h:131
void(* dm_msg_callback_t)(void *device, const aiot_dm_msg_t *msg, void *userdata)
设备物模型消息回调函数原型,用户定义回调函数后,可通过 aiot_device_dm_set_msg_callback 配置 ...
Definition: aiot_dm_api.h:175
int32_t aiot_device_dm_property_post(void *device, char *params)
物模型属性消息上报
uint32_t data_len
云端应答数据的长度
Definition: aiot_dm_api.h:91
同步服务调用消息结构体, 用户收到同步服务后, 必须在超时时间(默认7s)内进行应答
Definition: aiot_dm_api.h:119
char * params
服务器下发的属性数据, 为字符串形式的JSON结构体, 此字符串不以结束符&#39;\0&#39;结尾, 如"{\"LightSwitch":0}" ...
Definition: aiot_dm_api.h:109
int32_t aiot_device_dm_get_desired(void *device, char *params)
获取物模型期望属性
char * service_id
服务标示符, 字符串内容由用户定义的物模型决定
Definition: aiot_dm_api.h:123
服务器对设备上报的二进制数据应答, 消息数据结构体参考aiot_dm_msg_raw_data_t
Definition: aiot_dm_api.h:62