Link Kit C-SDK  4.1.0
aiot_dm_api.h
浏览该文件的文档.
1 
26 #ifndef __AIOT_DM_API_H__
27 #define __AIOT_DM_API_H__
28 
29 #if defined(__cplusplus)
30 extern "C" {
31 #endif
32 
33 #include <stdint.h>
34 
38 #define STATE_DM_BASE (-0x0A00)
39 
43 #define STATE_DM_EVENT_ID_IS_NULL (-0x0A01)
44 
48 #define STATE_DM_SERVICE_ID_IS_NULL (-0x0A02)
49 
53 #define STATE_DM_RRPC_ID_IS_NULL (-0x0A03)
54 
58 #define STATE_DM_MSG_PARAMS_IS_NULL (-0X0A04)
59 
63 #define STATE_DM_MSG_DATA_IS_NULL (-0X0A05)
64 
68 #define STATE_DM_INTERNAL_TOPIC_ERROR (-0x0A06)
69 
73 #define STATE_DM_MQTT_HANDLE_IS_NULL (-0x0A07)
74 
78 #define STATE_DM_LOG_RECV (-0x0A08)
79 
83 #define SATAE_DM_LOG_PARSE_RECV_MSG_FAILED (-0x0A09)
84 
85 
90 typedef enum {
101 
110 
121 
132 
138 
148 typedef enum {
154 
160 
165 
170 
175 
180 
185 
191 
197 
203 
209 
213 typedef struct {
217  char *params;
219 
223 typedef struct {
227  char *event_id;
231  char *params;
233 
237 typedef struct {
241  uint64_t msg_id;
245  uint32_t code;
249  char *data;
251 
255 typedef struct {
259  uint64_t msg_id;
263  char *service_id;
267  uint32_t code;
271  char *data;
273 
277 typedef struct {
281  uint64_t msg_id;
285  char *rrpc_id;
289  char *service_id;
293  uint32_t code;
297  char *data;
299 
303 typedef struct {
307  uint8_t *data;
311  uint32_t data_len;
313 
318 typedef struct {
322  char *rrpc_id;
326  uint8_t *data;
330  uint32_t data_len;
332 
336 typedef struct {
340  char *params;
342 
346 typedef struct {
350  char *params;
352 
353 
357 typedef struct {
363  char *params;
365 
369 typedef struct {
374  char *product_key;
379  char *device_name;
383  aiot_dm_msg_type_t type;
387  union {
397  } data;
398 } aiot_dm_msg_t;
399 
400 
410 typedef enum {
415 
420 
425 
430 
435 
440 
445 
451 
455 typedef struct {
459  uint32_t msg_id;
463  uint32_t code;
467  char *data;
471  uint32_t data_len;
475  char *message;
479  uint32_t message_len;
481 
485 typedef struct {
489  uint64_t msg_id;
493  char *params;
497  uint32_t params_len;
499 
503 typedef struct {
507  uint64_t msg_id;
511  char *rrpc_id;
515  char *service_id;
519  char *params;
523  uint32_t params_len;
525 
529 typedef struct {
533  uint64_t msg_id;
537  char *service_id;
541  char *params;
545  uint32_t params_len;
547 
551 typedef struct {
555  uint8_t *data;
559  uint32_t data_len;
561 
565 typedef struct {
569  char *rrpc_id;
573  uint8_t *data;
577  uint32_t data_len;
579 
583 typedef struct {
587  char *product_key;
591  char *device_name;
595  aiot_dm_recv_type_t type;
599  union {
606  } data;
608 
619 typedef void (*aiot_dm_recv_handler_t)(void *handle, const aiot_dm_recv_t *recv, void *userdata);
620 
628 void *aiot_dm_init(void);
629 
644 int32_t aiot_dm_setopt(void *handle, aiot_dm_option_t option, void *data);
645 
662 int32_t aiot_dm_send(void *handle, const aiot_dm_msg_t *msg);
663 
673 int32_t aiot_dm_deinit(void **p_handle);
674 
675 
676 #if defined(__cplusplus)
677 }
678 #endif
679 
680 #endif /* #ifndef __AIOT_DM_API_H__ */
681 
uint32_t msg_id
消息标识符, uint64_t类型的整数, 与属性上报或事件上报的消息标示符一致
Definition: aiot_dm_api.h:459
aiot_dm_msg_raw_data_t raw_data
Definition: aiot_dm_api.h:393
uint32_t code
设备端错误码, 200-请求成功, 更多错误码码查看设备端错误码
Definition: aiot_dm_api.h:463
删除指定期望值消息结构体
Definition: aiot_dm_api.h:346
uint64_t msg_id
消息标识符, uint64_t类型的整数
Definition: aiot_dm_api.h:533
aiot_dm_recv_sync_service_invoke_t sync_service_invoke
Definition: aiot_dm_api.h:603
二进制数据的同步服务调用消息结构体, 服务器的JSON格式物模型数据将通过物联网平台的JavaScript脚本转化为...
Definition: aiot_dm_api.h:565
aiot_dm_msg_async_service_reply_t async_service_reply
Definition: aiot_dm_api.h:392
服务器下发的物模型二进制数据, 消息数据结构体参考aiot_dm_recv_raw_data_t
Definition: aiot_dm_api.h:439
uint32_t data_len
云端应答数据的长度
Definition: aiot_dm_api.h:471
data-model模块发送消息的消息结构体
Definition: aiot_dm_api.h:369
物模型事件上报消息结构体
Definition: aiot_dm_api.h:223
uint32_t data_len
二进制数据的长度
Definition: aiot_dm_api.h:559
uint64_t msg_id
消息标识符, uint64_t类型的整数, 必须与属性设置的消息标示符一致
Definition: aiot_dm_api.h:241
配置选项数量最大值, 不可用作配置参数
Definition: aiot_dm_api.h:136
物模型二进制数据消息结构体, 服务器的JSON格式物模型数据将通过物联网平台的JavaScript脚本转化为二进制数...
Definition: aiot_dm_api.h:551
char * rrpc_id
RRPC标识符, 用于唯一标识每一个同步服务的特殊字符串
Definition: aiot_dm_api.h:511
char * params
字符串形式的JSON数组, 必须以结束符&#39;\0&#39;结尾. 应包含用户要获取的期望属性的ID, 如"[\"LightSwitch"]" ...
Definition: aiot_dm_api.h:340
uint32_t code
设备端状态码, 200-请求成功, 更多状态码查看设备端通用code
Definition: aiot_dm_api.h:267
char * data
设备端应答数据, 字符串形式的JSON结构体, 必须以结束符&#39;\0&#39;结尾, 如"{}"表示应答数据为空 ...
Definition: aiot_dm_api.h:249
aiot_dm_msg_type_t type
消息类型, 可参考aiot_dm_msg_type_t
Definition: aiot_dm_api.h:383
aiot_dm_recv_type_t type
接收消息的类型, 可参考aiot_dm_recv_type_t
Definition: aiot_dm_api.h:595
物模型二进制数据消息结构体, 发送的二进制数据将通过物联网平台的JavaScript脚本转化为JSON格式数据, 用户发送此消息前应确保已正确启用云端解析脚本
Definition: aiot_dm_api.h:303
aiot_dm_msg_delete_desired_t delete_desired
Definition: aiot_dm_api.h:396
char * service_id
服务标示符, 字符串内容由用户定义的物模型决定
Definition: aiot_dm_api.h:515
uint32_t data_len
待发送数据的长度
Definition: aiot_dm_api.h:330
物模型属性上报消息结构体
Definition: aiot_dm_api.h:213
char * rrpc_id
RRPC标示符, 用于唯一标识每一个同步服务的字符串, 必须与同步服务调用消息的RRPC标示符一致 ...
Definition: aiot_dm_api.h:285
aiot_dm_msg_type_t
data-model模块发送消息类型
Definition: aiot_dm_api.h:148
服务器对设备上报的二进制数据应答, 消息数据结构体参考aiot_dm_recv_raw_data_t
Definition: aiot_dm_api.h:434
char * device_name
消息所属设备的device_name, 若为NULL则使用通过aiot_dm_setopt配置的device_name 在网关子设备场景下, 可通过指定为子设备的product_key来发送子设备的消息到云端
Definition: aiot_dm_api.h:379
异步服务应答, 消息结构体参考aiot_dm_msg_async_service_reply_t
Definition: aiot_dm_api.h:169
aiot_dm_recv_raw_service_invoke_t raw_service_invoke
Definition: aiot_dm_api.h:605
aiot_dm_msg_sync_service_reply_t sync_service_reply
Definition: aiot_dm_api.h:391
char * rrpc_id
RRPC标识符, 用于唯一标识每一个同步服务的特殊字符串
Definition: aiot_dm_api.h:569
char * event_id
事件标示符, 必须为以结束符&#39;\0&#39;结尾的字符串
Definition: aiot_dm_api.h:227
uint8_t * data
指向待发送二进制数据的指针
Definition: aiot_dm_api.h:326
char * params
服务器下发的属性数据, 为字符串形式的JSON结构体, 此字符串不以结束符&#39;\0&#39;结尾, 如"{\"LightSwitch":0}" ...
Definition: aiot_dm_api.h:493
char * service_id
服务标示符, 标识了要响应服务
Definition: aiot_dm_api.h:289
char * product_key
消息所属设备的product_key, 不配置则默认使用MQTT模块配置的product_key
Definition: aiot_dm_api.h:587
uint8_t * data
指向接受数据缓冲区的指针
Definition: aiot_dm_api.h:555
uint8_t * data
指向接受数据缓冲区的指针
Definition: aiot_dm_api.h:573
char * params
服务调用的输入参数数据, 为字符串形式的JSON结构体, 此字符串不以结束符&#39;\0&#39;结尾, 如"{\"LightSwitch":0}" ...
Definition: aiot_dm_api.h:519
char * params
字符串形式的JSON结构体, 必须以结束符&#39;\0&#39;结尾. 包含用户要上报的事件数据, 如"{\"ErrorNum":0}" ...
Definition: aiot_dm_api.h:231
aiot_dm_msg_raw_service_reply_t raw_service_reply
Definition: aiot_dm_api.h:394
同步服务调用消息结构体
Definition: aiot_dm_api.h:529
aiot_dm_option_t
data-model模块的配置选项枚举类型定义. aiot_dm_setopt 函数入数data的数据类型根据不同的选项而不同 ...
Definition: aiot_dm_api.h:90
aiot_dm_recv_type_t
data-model模块接受消息类型枚举
Definition: aiot_dm_api.h:410
uint32_t code
设备端状态码, 200-请求成功, 更多状态码查看设备端通用code
Definition: aiot_dm_api.h:245
data-model模块接收消息的结构体
Definition: aiot_dm_api.h:583
char * params
字符串形式的JSON结构体, 必须以结束符&#39;\0&#39;结尾. 应包含用户要删除的期望属性的ID和期望值版本号, 如"{\"LightSwitch":{"version":1},"Color":{}}"
Definition: aiot_dm_api.h:350
同步服务调用消息结构体, 用户收到同步服务后, 必须在超时时间(默认7s)内进行应答
Definition: aiot_dm_api.h:503
同步服务应答, 消息结构体参考aiot_dm_msg_sync_service_reply_t
Definition: aiot_dm_api.h:174
指向用户上下文数据的指针
Definition: aiot_dm_api.h:120
int32_t aiot_dm_deinit(void **p_handle)
销毁data-model实例, 释放资源
Definition: aiot_dm_api.c:803
uint64_t msg_id
消息标识符, uint64_t类型的整数
Definition: aiot_dm_api.h:489
同步服务应答消息结构体, 用户在收到AIOT_DMRECV_SYNC_SERVICE_INVOKE 类型的同步服务调用消息后, 应在超时时间(默认7s)内进行应答
Definition: aiot_dm_api.h:277
服务器下发的同步服务调用消息, 消息数据结构体参考aiot_dm_recv_sync_service_invoke_t ...
Definition: aiot_dm_api.h:429
二进制格式的同步服务应答消息结构体, 用户在收到AIOT_DMRECV_RAW_SYNC_SERVICE_INVOKE 类型消息后...
Definition: aiot_dm_api.h:318
服务器下发的异步服务调用消息, 消息数据结构体参考aiot_dm_recv_async_service_invoke_t ...
Definition: aiot_dm_api.h:424
uint32_t code
设备端状态码, 200-请求成功, 更多状态码查看设备端通用code
Definition: aiot_dm_api.h:293
char * service_id
服务标示符, 标识了要响应服务
Definition: aiot_dm_api.h:263
aiot_dm_msg_property_set_reply_t property_set_reply
Definition: aiot_dm_api.h:390
模块依赖的MQTT句柄
Definition: aiot_dm_api.h:100
获取期望属性值, 消息结构体请参考aiot_dm_msg_get_desired_t, 成功发送此消息后, 将会收到AIOT_DMRECV_GEN...
Definition: aiot_dm_api.h:190
aiot_dm_recv_async_service_invoke_t async_service_invoke
Definition: aiot_dm_api.h:602
void * aiot_dm_init(void)
初始化data-model实例
Definition: aiot_dm_api.c:709
void(* aiot_dm_recv_handler_t)(void *handle, const aiot_dm_recv_t *recv, void *userdata)
data-model模块消息接收回调函数的函数原型定义, 当模块接收到服务器下行数据后将调用此回调函数, 并将消息数据通过recv参数输入给用户, 同时将用户上下文数据指针通过userdata参数返回给用户
Definition: aiot_dm_api.h:619
uint32_t data_len
二进制数据的长度
Definition: aiot_dm_api.h:577
char * data
设备端应答数据, 字符串形式的JSON结构体, 必须以结束符&#39;\0&#39;结尾, 如"{}"表示应答数据为空 ...
Definition: aiot_dm_api.h:271
物模型属性上报消息结构体
Definition: aiot_dm_api.h:357
二进制格式的同步服务应答, 消息结构体参考aiot_dm_msg_raw_service_reply_t
Definition: aiot_dm_api.h:184
数据接收回调函数, data-model接收物联网平台的下行消息后调用此回调函数
Definition: aiot_dm_api.h:109
二进制格式的物模型上行数据, 消息结构体参考aiot_dm_msg_raw_data_t
Definition: aiot_dm_api.h:179
char * data
指向云端应答数据的指针
Definition: aiot_dm_api.h:467
属性设置应答, 消息结构体参考aiot_dm_msg_property_set_reply_t
Definition: aiot_dm_api.h:164
aiot_dm_recv_raw_data_t raw_data
Definition: aiot_dm_api.h:604
uint32_t params_len
属性数据的字符串长度
Definition: aiot_dm_api.h:497
清除指定的期望值, 消息结构体请参考aiot_dm_msg_delete_desired_t 成功发送此消息后, 将会收到AIOT_DMRECV...
Definition: aiot_dm_api.h:202
char * rrpc_id
RRPC标示符, 特殊字符串, 必须与同步服务调用消息的RRPC标示符一致
Definition: aiot_dm_api.h:322
属性设置应答消息结构体, 用户在收到AIOT_DMRECV_PROPERTY_SET 类型的属性设置后, 可发送此消息进行回复 ...
Definition: aiot_dm_api.h:237
uint64_t msg_id
消息标识符, uint64_t类型的整数
Definition: aiot_dm_api.h:507
属性上报, 消息结构体参考aiot_dm_msg_property_post_t 成功发送此消息后, 将会收到AIOT_DMRECV_GENERIC_RE...
Definition: aiot_dm_api.h:153
消息数量最大值, 不可用作消息类型
Definition: aiot_dm_api.h:207
消息数量最大值, 不可用作消息类型
Definition: aiot_dm_api.h:449
char * params
字符串形式的JSON结构体, 必须以结束符&#39;\0&#39;结尾. 包含用户要上报的属性数据, 如"{\"LightSwitch":0}" ...
Definition: aiot_dm_api.h:217
属性设置消息结构体
Definition: aiot_dm_api.h:485
用户是否希望接收post消息后的reply
Definition: aiot_dm_api.h:131
异步服务应答消息结构体, 用户在收到AIOT_DMRECV_ASYNC_SERVICE_INVOKE 类型的异步服务调用消息后, 应发送此消息进行应答
Definition: aiot_dm_api.h:255
int32_t aiot_dm_send(void *handle, const aiot_dm_msg_t *msg)
发送一条data-model消息到物联网平台, 消息类型和消息数据由msg入参决定
Definition: aiot_dm_api.c:774
uint32_t data_len
待发送数据的长度
Definition: aiot_dm_api.h:311
char * params
字符串形式的JSON结构体, 必须以结束符&#39;\0&#39;结尾. 包含用户要批量上报的属性和事件数据, 如 {"properties":{"...
Definition: aiot_dm_api.h:363
char * service_id
服务标示符, 字符串内容由用户定义的物模型决定
Definition: aiot_dm_api.h:537
清除指定的期望值, 消息结构体请参考aiot_dm_msg_delete_desired_t 成功发送此消息后, 将会收到AIOT_DMRECV...
Definition: aiot_dm_api.h:196
uint32_t message_len
消息字符串的长度
Definition: aiot_dm_api.h:479
aiot_dm_recv_property_set_t property_set
Definition: aiot_dm_api.h:601
服务器下发的属性设置消息, 消息数据结构体参考aiot_dm_recv_property_set_t
Definition: aiot_dm_api.h:419
uint32_t params_len
输入参数的字符串长度
Definition: aiot_dm_api.h:523
uint64_t msg_id
消息标识符, uint64_t类型的整数, 必须与异步服务调用的消息标示符一致
Definition: aiot_dm_api.h:259
aiot_dm_msg_property_post_t property_post
Definition: aiot_dm_api.h:388
uint8_t * data
指向待发送二进制数据的指针
Definition: aiot_dm_api.h:307
uint64_t msg_id
消息标识符, uint64_t类型的整数, 必须与同步服务调用的消息标示符一致
Definition: aiot_dm_api.h:281
aiot_dm_msg_event_post_t event_post
Definition: aiot_dm_api.h:389
aiot_dm_msg_get_desired_t get_desired
Definition: aiot_dm_api.h:395
int32_t aiot_dm_setopt(void *handle, aiot_dm_option_t option, void *data)
设置data-model参数
Definition: aiot_dm_api.c:731
char * message
指向状态消息字符串的指针, 当设备端上报请求成功时对应的应答消息为"success", 若请求失败则应答消息中包含...
Definition: aiot_dm_api.h:475
uint32_t params_len
输入参数的字符串长度
Definition: aiot_dm_api.h:545
云端通用应答消息结构体, 设备端上报AIOT_DMMSG_PROPERTY_POST, AIOT_DMMSG_EVENT_POST 或者AIOT_DMMSG_GET_...
Definition: aiot_dm_api.h:455
获取期望属性值消息结构体, 发送
Definition: aiot_dm_api.h:336
char * params
服务调用的输入参数数据, 为字符串形式的JSON结构体, 此字符串不以结束符&#39;\0&#39;结尾, 如"{\"LightSwitch":0}" ...
Definition: aiot_dm_api.h:541
char * data
设备端应答数据, 字符串形式的JSON结构体, 必须以结束符&#39;\0&#39;结尾, 如"{}"表示应答数据为空 ...
Definition: aiot_dm_api.h:297
事件上报, 消息结构体参考aiot_dm_msg_event_post_t 成功发送此消息后, 将会收到AIOT_DMRECV_GENERIC_REPLY...
Definition: aiot_dm_api.h:159
char * product_key
消息所属设备的product_key, 若为NULL则使用通过aiot_dm_setopt配置的product_key 在网关子设备场景下, 可通过指定为子设备的product_key来发送子设备的消息到云端
Definition: aiot_dm_api.h:374
char * device_name
消息所属设备的device_name, 不配置则默认使用MQTT模块配置的device_name
Definition: aiot_dm_api.h:591
服务器下发的二进制格式的同步服务调用消息, 消息数据结构体参考aiot_dm_recv_raw_service_invoke_t ...
Definition: aiot_dm_api.h:444
aiot_dm_recv_generic_reply_t generic_reply
Definition: aiot_dm_api.h:600
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_recv_generic_reply_t ...
Definition: aiot_dm_api.h:414