Link Kit C-SDK  4.0.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;
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;
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 
AIOT_MQTTOPT_APPEND_TOPIC_MAP
可在MQTT建立连接之前配置MQTT topic与其对应的回调函数
Definition: aiot_mqtt_api.h:659
aiot_dm_recv_raw_data_t::data_len
uint32_t data_len
二进制数据的长度
Definition: aiot_dm_api.h:559
aiot_dm_msg_property_post_t::params
char * params
字符串形式的JSON结构体, 必须以结束符'\0'结尾. 包含用户要上报的属性数据, 如"{\"LightSwitch":0}"
Definition: aiot_dm_api.h:217
aiot_dm_msg_type_t
aiot_dm_msg_type_t
data-model模块发送消息类型
Definition: aiot_dm_api.h:148
aiot_dm_msg_t::device_name
char * device_name
消息所属设备的device_name, 若为NULL则使用通过aiot_dm_setopt配置的device_name 在网关子设备场景下, 可通过指定为子设备的product_key来发送子设备的消息...
Definition: aiot_dm_api.h:379
aiot_dm_recv_async_service_invoke_t::msg_id
uint64_t msg_id
消息标识符, uint64_t类型的整数
Definition: aiot_dm_api.h:533
AIOT_DMMSG_EVENT_POST
事件上报, 消息结构体参考aiot_dm_msg_event_post_t 成功发送此消息后, 将会收到AIOT_DMRECV_GENERIC_REPLY 类型的应答消息
Definition: aiot_dm_api.h:159
aiot_dm_msg_event_post_t::event_id
char * event_id
事件标示符, 必须为以结束符'\0'结尾的字符串
Definition: aiot_dm_api.h:227
aiot_dm_msg_delete_desired_t
删除指定期望值消息结构体
Definition: aiot_dm_api.h:346
aiot_mqtt_setopt
int32_t aiot_mqtt_setopt(void *handle, aiot_mqtt_option_t option, void *data)
设置mqtt参数
Definition: aiot_mqtt_api.c:2397
AIOT_DMRECV_RAW_SYNC_SERVICE_INVOKE
服务器下发的二进制格式的同步服务调用消息, 消息数据结构体参考aiot_dm_recv_raw_service_invoke_t
Definition: aiot_dm_api.h:444
STATE_DM_MSG_DATA_IS_NULL
#define STATE_DM_MSG_DATA_IS_NULL
用户发送应答类消息时, 消息数据中的data为NULL
Definition: aiot_dm_api.h:63
aiot_dm_msg_async_service_reply_t::data
char * data
设备端应答数据, 字符串形式的JSON结构体, 必须以结束符'\0'结尾, 如"{}"表示应答数据为空
Definition: aiot_dm_api.h:271
aiot_dm_recv_sync_service_invoke_t
同步服务调用消息结构体, 用户收到同步服务后, 必须在超时时间(默认7s)内进行应答
Definition: aiot_dm_api.h:503
aiot_dm_msg_t::type
aiot_dm_msg_type_t type
消息类型, 可参考aiot_dm_msg_type_t
Definition: aiot_dm_api.h:383
aiot_dm_msg_sync_service_reply_t::service_id
char * service_id
服务标示符, 标识了要响应服务
Definition: aiot_dm_api.h:289
aiot_dm_msg_t::delete_desired
aiot_dm_msg_delete_desired_t delete_desired
Definition: aiot_dm_api.h:396
aiot_dm_recv_sync_service_invoke_t::service_id
char * service_id
服务标示符, 字符串内容由用户定义的物模型决定
Definition: aiot_dm_api.h:515
_dm_recv_raw_sync_service_invoke_handler
static void _dm_recv_raw_sync_service_invoke_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_dm_api.c:652
aiot_dm_msg_sync_service_reply_t::rrpc_id
char * rrpc_id
RRPC标示符, 用于唯一标识每一个同步服务的字符串, 必须与同步服务调用消息的RRPC标示符一致
Definition: aiot_dm_api.h:285
aiot_dm_msg_property_set_reply_t::data
char * data
设备端应答数据, 字符串形式的JSON结构体, 必须以结束符'\0'结尾, 如"{}"表示应答数据为空
Definition: aiot_dm_api.h:249
aiot_sysdep_get_portfile
aiot_sysdep_portfile_t * aiot_sysdep_get_portfile(void)
aiot_dm_msg_sync_service_reply_t::msg_id
uint64_t msg_id
消息标识符, uint64_t类型的整数, 必须与同步服务调用的消息标示符一致
Definition: aiot_dm_api.h:281
_dm_send_alink_req
static int32_t _dm_send_alink_req(dm_handle_t *handle, const char *topic, char *params)
Definition: aiot_dm_api.c:231
aiot_dm_msg_async_service_reply_t::msg_id
uint64_t msg_id
消息标识符, uint64_t类型的整数, 必须与异步服务调用的消息标示符一致
Definition: aiot_dm_api.h:259
STATE_DM_EVENT_ID_IS_NULL
#define STATE_DM_EVENT_ID_IS_NULL
用户发送AIOT_DMMSG_EVENT_POST 消息时, 消息数据中的event_id为NULL
Definition: aiot_dm_api.h:43
STATE_USER_INPUT_MISSING_DEVICE_NAME
#define STATE_USER_INPUT_MISSING_DEVICE_NAME
用户输入参数中缺少deviceName
Definition: aiot_state_api.h:73
_dm_recv_sync_service_invoke_handler
static void _dm_recv_sync_service_invoke_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_dm_api.c:552
_dm_send_raw_data
static int32_t _dm_send_raw_data(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:331
_dm_core_mqtt_process_handler
static void _dm_core_mqtt_process_handler(void *context, aiot_mqtt_event_t *event, core_mqtt_event_t *core_event)
Definition: aiot_dm_api.c:684
AIOT_DMRECV_RAW_DATA_REPLY
服务器对设备上报的二进制数据应答, 消息数据结构体参考aiot_dm_recv_raw_data_t
Definition: aiot_dm_api.h:434
STATE_DM_LOG_RECV
#define STATE_DM_LOG_RECV
接收到服务器下行消息时的日志状态码
Definition: aiot_dm_api.h:78
AIOT_DMMSG_ASYNC_SERVICE_REPLY
异步服务应答, 消息结构体参考aiot_dm_msg_async_service_reply_t
Definition: aiot_dm_api.h:169
aiot_dm_msg_t::raw_service_reply
aiot_dm_msg_raw_service_reply_t raw_service_reply
Definition: aiot_dm_api.h:394
aiot_dm_msg_t::async_service_reply
aiot_dm_msg_async_service_reply_t async_service_reply
Definition: aiot_dm_api.h:392
aiot_dm_recv_sync_service_invoke_t::params
char * params
服务调用的输入参数数据, 为字符串形式的JSON结构体, 此字符串不以结束符'\0'结尾, 如"{\"LightSwitch":0}"
Definition: aiot_dm_api.h:519
aiot_dm_msg_async_service_reply_t
异步服务应答消息结构体, 用户在收到AIOT_DMRECV_ASYNC_SERVICE_INVOKE 类型的异步服务调用消息后, 应发送此消息进行应答
Definition: aiot_dm_api.h:255
SATAE_DM_LOG_PARSE_RECV_MSG_FAILED
#define SATAE_DM_LOG_PARSE_RECV_MSG_FAILED
解析服务器下行消息失败时的日志状态码
Definition: aiot_dm_api.h:83
_dm_recv_property_set_handler
static void _dm_recv_property_set_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_dm_api.c:476
_append_diag_data
static void _append_diag_data(dm_handle_t *dm_handle, uint8_t msg_type, int32_t msg_id)
Definition: aiot_dm_api.c:118
aiot_dm_msg_property_post_t
物模型属性上报消息结构体
Definition: aiot_dm_api.h:213
aiot_dm_msg_delete_desired_t::params
char * params
字符串形式的JSON结构体, 必须以结束符'\0'结尾. 应包含用户要删除的期望属性的ID和期望值版本号, 如"{\"LightSwitch":{"version":1},...
Definition: aiot_dm_api.h:350
aiot_dm_recv_raw_data_t::data
uint8_t * data
指向接受数据缓冲区的指针
Definition: aiot_dm_api.h:555
g_dm_send_topic_mapping
static const dm_send_topic_map_t g_dm_send_topic_mapping[AIOT_DMMSG_MAX]
Definition: aiot_dm_api.c:32
aiot_dm_recv_sync_service_invoke_t::rrpc_id
char * rrpc_id
RRPC标识符, 用于唯一标识每一个同步服务的特殊字符串
Definition: aiot_dm_api.h:511
aiot_dm_recv_t::generic_reply
aiot_dm_recv_generic_reply_t generic_reply
Definition: aiot_dm_api.h:600
_dm_get_topic_level
static int32_t _dm_get_topic_level(aiot_sysdep_portfile_t *sysdep, char *topic, uint32_t topic_len, uint8_t level, char **level_name)
Definition: aiot_dm_api.c:359
g_dm_recv_topic_mapping
static const dm_recv_topic_map_t g_dm_recv_topic_mapping[]
Definition: aiot_dm_api.c:75
AIOT_MQTTOPT_REMOVE_TOPIC_MAP
取消之前建立的MQTT topic与其回调函数的对应关系
Definition: aiot_mqtt_api.h:668
core_mqtt_get_product_key
char * core_mqtt_get_product_key(void *handle)
Definition: aiot_mqtt_api.c:3676
aiot_mqtt_event_t
MQTT内部事件
Definition: aiot_mqtt_api.h:309
aiot_dm_deinit
int32_t aiot_dm_deinit(void **p_handle)
销毁data-model实例, 释放资源
Definition: aiot_dm_api.c:808
_dm_recv_async_service_invoke_handler
static void _dm_recv_async_service_invoke_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_dm_api.c:513
aiot_dm_recv_raw_service_invoke_t::rrpc_id
char * rrpc_id
RRPC标识符, 用于唯一标识每一个同步服务的特殊字符串
Definition: aiot_dm_api.h:569
AIOT_DMRECV_RAW_DATA
服务器下发的物模型二进制数据, 消息数据结构体参考aiot_dm_recv_raw_data_t
Definition: aiot_dm_api.h:439
aiot_dm_recv_t::device_name
char * device_name
消息所属设备的device_name, 不配置则默认使用MQTT模块配置的device_name
Definition: aiot_dm_api.h:591
aiot_dm_recv_generic_reply_t::msg_id
uint32_t msg_id
消息标识符, uint64_t类型的整数, 与属性上报或事件上报的消息标示符一致
Definition: aiot_dm_api.h:459
AIOT_DMMSG_RAW_DATA
二进制格式的物模型上行数据, 消息结构体参考aiot_dm_msg_raw_data_t
Definition: aiot_dm_api.h:179
aiot_dm_recv_async_service_invoke_t::params_len
uint32_t params_len
输入参数的字符串长度
Definition: aiot_dm_api.h:545
aiot_dm_recv_t
data-model模块接收消息的结构体
Definition: aiot_dm_api.h:583
AIOT_DMOPT_MAX
配置选项数量最大值, 不可用作配置参数
Definition: aiot_dm_api.h:136
aiot_dm_recv_t::data
union aiot_dm_recv_t::@18 data
消息数据联合体, 不同的消息类型将使用不同的消息结构体
aiot_dm_msg_t::sync_service_reply
aiot_dm_msg_sync_service_reply_t sync_service_reply
Definition: aiot_dm_api.h:391
_dm_send_property_set_reply
static int32_t _dm_send_property_set_reply(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:310
aiot_sysdep_portfile_t
用以向SDK描述其运行硬件平台的资源如何使用的方法结构体
Definition: aiot_sysdep_api.h:72
aiot_dm_recv_generic_reply_t::code
uint32_t code
设备端错误码, 200-请求成功, 更多错误码码查看设备端错误码
Definition: aiot_dm_api.h:463
_dm_parse_alink_request
static int32_t _dm_parse_alink_request(const char *payload, uint32_t payload_len, uint64_t *msg_id, char **params, uint32_t *params_len)
Definition: aiot_dm_api.c:401
aiot_dm_recv_t::async_service_invoke
aiot_dm_recv_async_service_invoke_t async_service_invoke
Definition: aiot_dm_api.h:602
aiot_dm_msg_sync_service_reply_t
同步服务应答消息结构体, 用户在收到AIOT_DMRECV_SYNC_SERVICE_INVOKE 类型的同步服务调用消息后, 应在超时时间(默认7s)内进行应答
Definition: aiot_dm_api.h:277
aiot_dm_recv_t::raw_service_invoke
aiot_dm_recv_raw_service_invoke_t raw_service_invoke
Definition: aiot_dm_api.h:605
aiot_dm_recv_raw_service_invoke_t::data_len
uint32_t data_len
二进制数据的长度
Definition: aiot_dm_api.h:577
STATE_USER_INPUT_NULL_POINTER
#define STATE_USER_INPUT_NULL_POINTER
用户输入参数中包含非法的空指针
Definition: aiot_state_api.h:49
aiot_dm_recv_generic_reply_t::message
char * message
指向状态消息字符串的指针, 当设备端上报请求成功时对应的应答消息为"success", 若请求失败则应答消息中包含错误信息
Definition: aiot_dm_api.h:475
aiot_dm_recv_generic_reply_t::message_len
uint32_t message_len
消息字符串的长度
Definition: aiot_dm_api.h:479
_dm_send_raw_service_reply
static int32_t _dm_send_raw_service_reply(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:336
aiot_dm_recv_async_service_invoke_t::service_id
char * service_id
服务标示符, 字符串内容由用户定义的物模型决定
Definition: aiot_dm_api.h:537
aiot_dm_msg_t::property_set_reply
aiot_dm_msg_property_set_reply_t property_set_reply
Definition: aiot_dm_api.h:390
aiot_dm_deinit
int32_t aiot_dm_deinit(void **p_handle)
销毁data-model实例, 释放资源
Definition: aiot_dm_api.c:808
aiot_dm_msg_raw_service_reply_t
二进制格式的同步服务应答消息结构体, 用户在收到AIOT_DMRECV_RAW_SYNC_SERVICE_INVOKE 类型消息后, 应在超时时间(默认7s)内进行应答 用户在使用此消息前应确保已启用云...
Definition: aiot_dm_api.h:318
aiot_dm_recv_property_set_t::params
char * params
服务器下发的属性数据, 为字符串形式的JSON结构体, 此字符串不以结束符'\0'结尾, 如"{\"LightSwitch":0}"
Definition: aiot_dm_api.h:493
aiot_dm_option_t
aiot_dm_option_t
data-model模块的配置选项枚举类型定义. aiot_dm_setopt 函数入数data的数据类型根据不同的选项而不同
Definition: aiot_dm_api.h:90
AIOT_DMOPT_POST_REPLY
用户是否希望接收post消息后的reply
Definition: aiot_dm_api.h:131
aiot_dm_recv_t::raw_data
aiot_dm_recv_raw_data_t raw_data
Definition: aiot_dm_api.h:604
aiot_dm_msg_property_batch_post_t
物模型属性上报消息结构体
Definition: aiot_dm_api.h:357
aiot_mqtt_topic_map_t::handler
aiot_mqtt_recv_handler_t handler
Definition: aiot_mqtt_api.h:346
aiot_dm_msg_t
data-model模块发送消息的消息结构体
Definition: aiot_dm_api.h:369
aiot_dm_recv_generic_reply_t
云端通用应答消息结构体, 设备端上报AIOT_DMMSG_PROPERTY_POST, AIOT_DMMSG_EVENT_POST 或者AIOT_DMMSG_GET_DESIRED 等消息后,...
Definition: aiot_dm_api.h:455
_dm_send_desired_delete
static int32_t _dm_send_desired_delete(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:347
AIOT_DMOPT_MQTT_HANDLE
模块依赖的MQTT句柄
Definition: aiot_dm_api.h:100
AIOT_DMMSG_PROPERTY_BATCH_POST
清除指定的期望值, 消息结构体请参考aiot_dm_msg_delete_desired_t 成功发送此消息后, 将会收到AIOT_DMRECV_GENERIC_REPLY 类型的应答消息
Definition: aiot_dm_api.h:202
STATE_SUCCESS
#define STATE_SUCCESS
API执行成功
Definition: aiot_state_api.h:37
_dm_send_sync_service_reply
static int32_t _dm_send_sync_service_reply(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:324
AIOT_DMOPT_USERDATA
指向用户上下文数据的指针
Definition: aiot_dm_api.h:120
aiot_dm_recv_type_t
aiot_dm_recv_type_t
data-model模块接受消息类型枚举
Definition: aiot_dm_api.h:410
AIOT_DMRECV_SYNC_SERVICE_INVOKE
服务器下发的同步服务调用消息, 消息数据结构体参考aiot_dm_recv_sync_service_invoke_t
Definition: aiot_dm_api.h:429
aiot_dm_msg_async_service_reply_t::code
uint32_t code
设备端状态码, 200-请求成功, 更多状态码查看设备端通用code
Definition: aiot_dm_api.h:267
aiot_dm_send
int32_t aiot_dm_send(void *handle, const aiot_dm_msg_t *msg)
发送一条data-model消息到物联网平台, 消息类型和消息数据由msg入参决定
Definition: aiot_dm_api.c:779
aiot_dm_recv_handler_t
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
AIOT_DMRECV_MAX
消息数量最大值, 不可用作消息类型
Definition: aiot_dm_api.h:449
aiot_sysdep_portfile_t::core_sysdep_malloc
void *(* core_sysdep_malloc)(uint32_t size, char *name)
申请内存
Definition: aiot_sysdep_api.h:76
core_mqtt_setopt
int32_t core_mqtt_setopt(void *handle, core_mqtt_option_t option, void *data)
Definition: aiot_mqtt_api.c:2304
aiot_dm_msg_raw_service_reply_t::rrpc_id
char * rrpc_id
RRPC标示符, 特殊字符串, 必须与同步服务调用消息的RRPC标示符一致
Definition: aiot_dm_api.h:322
aiot_mqtt_topic_map_t::topic
char * topic
Definition: aiot_mqtt_api.h:345
aiot_dm_msg_property_batch_post_t::params
char * params
字符串形式的JSON结构体, 必须以结束符'\0'结尾. 包含用户要批量上报的属性和事件数据, 如 {"properties":{"Power": [ { "value": "on",...
Definition: aiot_dm_api.h:363
_dm_prepare_send_topic
static int32_t _dm_prepare_send_topic(dm_handle_t *dm_handle, const aiot_dm_msg_t *msg, char **topic)
Definition: aiot_dm_api.c:149
aiot_dm_msg_event_post_t
物模型事件上报消息结构体
Definition: aiot_dm_api.h:223
_dm_recv_generic_reply_handler
static void _dm_recv_generic_reply_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_dm_api.c:424
AIOT_DMMSG_SYNC_SERVICE_REPLY
同步服务应答, 消息结构体参考aiot_dm_msg_sync_service_reply_t
Definition: aiot_dm_api.h:174
aiot_dm_recv_t::product_key
char * product_key
消息所属设备的product_key, 不配置则默认使用MQTT模块配置的product_key
Definition: aiot_dm_api.h:587
aiot_dm_recv_t::property_set
aiot_dm_recv_property_set_t property_set
Definition: aiot_dm_api.h:601
aiot_dm_recv_async_service_invoke_t::params
char * params
服务调用的输入参数数据, 为字符串形式的JSON结构体, 此字符串不以结束符'\0'结尾, 如"{\"LightSwitch":0}"
Definition: aiot_dm_api.h:541
STATE_DM_SERVICE_ID_IS_NULL
#define STATE_DM_SERVICE_ID_IS_NULL
用户发送AIOT_DMMSG_ASYNC_SERVICE_REPLY 或AIOT_DMMSG_SYNC_SERVICE_REPLY 消息时, 消息数据中的event_id为NULL
Definition: aiot_dm_api.h:48
aiot_dm_msg_property_set_reply_t
属性设置应答消息结构体, 用户在收到AIOT_DMRECV_PROPERTY_SET 类型的属性设置后, 可发送此消息进行回复
Definition: aiot_dm_api.h:237
aiot_mqtt_pub
int32_t aiot_mqtt_pub(void *handle, char *topic, uint8_t *payload, uint32_t payload_len, uint8_t qos)
发送一条PUBLISH报文到MQTT服务器, QoS为0, 用于发布指定的消息
Definition: aiot_mqtt_api.c:3325
STATE_SYS_DEPEND_MALLOC_FAILED
#define STATE_SYS_DEPEND_MALLOC_FAILED
aiot_sysdep_portfile_t::core_sysdep_malloc 申请内存失败
Definition: aiot_state_api.h:115
aiot_dm_recv_raw_service_invoke_t
二进制数据的同步服务调用消息结构体, 服务器的JSON格式物模型数据将通过物联网平台的JavaScript脚本转化为二进制数据, 用户在接收此消息前应确保已正确启用云端解析脚本
Definition: aiot_dm_api.h:565
_dm_core_mqtt_operate_process_handler
static int32_t _dm_core_mqtt_operate_process_handler(dm_handle_t *dm_handle, core_mqtt_option_t option)
Definition: aiot_dm_api.c:703
core_mqtt_get_device_name
char * core_mqtt_get_device_name(void *handle)
Definition: aiot_mqtt_api.c:3687
aiot_dm_init
void * aiot_dm_init(void)
初始化data-model实例
Definition: aiot_dm_api.c:714
AIOT_DMMSG_PROPERTY_POST
属性上报, 消息结构体参考aiot_dm_msg_property_post_t 成功发送此消息后, 将会收到AIOT_DMRECV_GENERIC_REPLY 类型的应答消息
Definition: aiot_dm_api.h:153
STATE_DM_INTERNAL_TOPIC_ERROR
#define STATE_DM_INTERNAL_TOPIC_ERROR
解析下行数据对应的topic时发生错误
Definition: aiot_dm_api.h:68
AIOT_DMRECV_PROPERTY_SET
服务器下发的属性设置消息, 消息数据结构体参考aiot_dm_recv_property_set_t
Definition: aiot_dm_api.h:419
aiot_mqtt_topic_map_t::userdata
void * userdata
Definition: aiot_mqtt_api.h:347
aiot_dm_msg_sync_service_reply_t::data
char * data
设备端应答数据, 字符串形式的JSON结构体, 必须以结束符'\0'结尾, 如"{}"表示应答数据为空
Definition: aiot_dm_api.h:297
aiot_dm_recv_raw_service_invoke_t::data
uint8_t * data
指向接受数据缓冲区的指针
Definition: aiot_dm_api.h:573
aiot_dm_msg_t::data
union aiot_dm_msg_t::@17 data
消息数据联合体, 不同的消息类型将使用不同的消息结构体
_dm_send_alink_rsp
static int32_t _dm_send_alink_rsp(dm_handle_t *handle, const char *topic, uint64_t msg_id, uint32_t code, char *data)
Definition: aiot_dm_api.c:267
aiot_dm_msg_t::event_post
aiot_dm_msg_event_post_t event_post
Definition: aiot_dm_api.h:389
aiot_dm_recv_t::sync_service_invoke
aiot_dm_recv_sync_service_invoke_t sync_service_invoke
Definition: aiot_dm_api.h:603
aiot_dm_recv_property_set_t::params_len
uint32_t params_len
属性数据的字符串长度
Definition: aiot_dm_api.h:497
AIOT_DMRECV_ASYNC_SERVICE_INVOKE
服务器下发的异步服务调用消息, 消息数据结构体参考aiot_dm_recv_async_service_invoke_t
Definition: aiot_dm_api.h:424
STATE_DM_MQTT_HANDLE_IS_NULL
#define STATE_DM_MQTT_HANDLE_IS_NULL
用户未调用aiot_dm_setopt 配置MQTT句柄
Definition: aiot_dm_api.h:73
aiot_dm_recv_sync_service_invoke_t::params_len
uint32_t params_len
输入参数的字符串长度
Definition: aiot_dm_api.h:523
aiot_dm_recv_generic_reply_t::data_len
uint32_t data_len
云端应答数据的长度
Definition: aiot_dm_api.h:471
aiot_dm_msg_raw_service_reply_t::data
uint8_t * data
指向待发送二进制数据的指针
Definition: aiot_dm_api.h:326
aiot_dm_msg_sync_service_reply_t::code
uint32_t code
设备端状态码, 200-请求成功, 更多状态码查看设备端通用code
Definition: aiot_dm_api.h:293
aiot_sysdep_portfile_t::core_sysdep_free
void(* core_sysdep_free)(void *ptr)
释放内存
Definition: aiot_sysdep_api.h:80
STATE_DM_RRPC_ID_IS_NULL
#define STATE_DM_RRPC_ID_IS_NULL
用户发送AIOT_DMMSG_SYNC_SERVICE_REPLY 消息时, 消息数据中的rrpc_id为NULL
Definition: aiot_dm_api.h:53
AIOT_DMMSG_GET_DESIRED
获取期望属性值, 消息结构体请参考aiot_dm_msg_get_desired_t, 成功发送此消息后, 将会收到AIOT_DMRECV_GENERIC_REPLY 类型的应答消息
Definition: aiot_dm_api.h:190
aiot_dm_recv_property_set_t::msg_id
uint64_t msg_id
消息标识符, uint64_t类型的整数
Definition: aiot_dm_api.h:489
AIOT_DMMSG_PROPERTY_SET_REPLY
属性设置应答, 消息结构体参考aiot_dm_msg_property_set_reply_t
Definition: aiot_dm_api.h:164
_dm_send_property_post
static int32_t _dm_send_property_post(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:300
STATE_DM_BASE
#define STATE_DM_BASE
-0x0A00~-0x0AFF表达SDK在data-model模块内的状态码
Definition: aiot_dm_api.h:38
aiot_dm_msg_property_set_reply_t::msg_id
uint64_t msg_id
消息标识符, uint64_t类型的整数, 必须与属性设置的消息标示符一致
Definition: aiot_dm_api.h:241
aiot_dm_msg_raw_data_t::data
uint8_t * data
指向待发送二进制数据的指针
Definition: aiot_dm_api.h:307
aiot_mqtt_recv_t::data
union aiot_mqtt_recv_t::@4 data
MQTT报文联合体, 内容根据type进行选择
aiot_dm_recv_t::type
aiot_dm_recv_type_t type
接收消息的类型, 可参考aiot_dm_recv_type_t
Definition: aiot_dm_api.h:595
aiot_dm_msg_event_post_t::params
char * params
字符串形式的JSON结构体, 必须以结束符'\0'结尾. 包含用户要上报的事件数据, 如"{\"ErrorNum":0}"
Definition: aiot_dm_api.h:231
aiot_dm_msg_t::product_key
char * product_key
消息所属设备的product_key, 若为NULL则使用通过aiot_dm_setopt配置的product_key 在网关子设备场景下, 可通过指定为子设备的product_key来发送子设备的消息...
Definition: aiot_dm_api.h:374
aiot_mqtt_recv_t::pub
struct aiot_mqtt_recv_t::@4::@5 pub
MQTT PUBLISH报文
aiot_dm_msg_raw_service_reply_t::data_len
uint32_t data_len
待发送数据的长度
Definition: aiot_dm_api.h:330
aiot_dm_init
void * aiot_dm_init(void)
初始化data-model实例
Definition: aiot_dm_api.c:714
AIOT_DMMSG_MAX
消息数量最大值, 不可用作消息类型
Definition: aiot_dm_api.h:207
aiot_mqtt_recv_t
Definition: aiot_mqtt_api.h:207
aiot_dm_setopt
int32_t aiot_dm_setopt(void *handle, aiot_dm_option_t option, void *data)
设置data-model参数
Definition: aiot_dm_api.c:736
_dm_setup_topic_mapping
static int32_t _dm_setup_topic_mapping(void *mqtt_handle, void *dm_handle)
Definition: aiot_dm_api.c:130
aiot_dm_msg_raw_data_t::data_len
uint32_t data_len
待发送数据的长度
Definition: aiot_dm_api.h:311
AIOT_DMRECV_GENERIC_REPLY
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_recv_generic_reply_t
Definition: aiot_dm_api.h:414
aiot_dm_msg_t::raw_data
aiot_dm_msg_raw_data_t raw_data
Definition: aiot_dm_api.h:393
AIOT_DMMSG_RAW_SERVICE_REPLY
二进制格式的同步服务应答, 消息结构体参考aiot_dm_msg_raw_service_reply_t
Definition: aiot_dm_api.h:184
aiot_dm_msg_get_desired_t::params
char * params
字符串形式的JSON数组, 必须以结束符'\0'结尾. 应包含用户要获取的期望属性的ID, 如"[\"LightSwitch"]"
Definition: aiot_dm_api.h:340
AIOT_DMOPT_RECV_HANDLER
数据接收回调函数, data-model接收物联网平台的下行消息后调用此回调函数
Definition: aiot_dm_api.h:109
aiot_dm_recv_sync_service_invoke_t::msg_id
uint64_t msg_id
消息标识符, uint64_t类型的整数
Definition: aiot_dm_api.h:507
aiot_dm_msg_property_set_reply_t::code
uint32_t code
设备端状态码, 200-请求成功, 更多状态码查看设备端通用code
Definition: aiot_dm_api.h:245
aiot_dm_recv_property_set_t
属性设置消息结构体
Definition: aiot_dm_api.h:485
_dm_recv_up_raw_reply_data_handler
static void _dm_recv_up_raw_reply_data_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_dm_api.c:623
_dm_send_async_service_reply
static int32_t _dm_send_async_service_reply(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:317
_dm_send_event_post
static int32_t _dm_send_event_post(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:305
aiot_dm_recv_async_service_invoke_t
同步服务调用消息结构体
Definition: aiot_dm_api.h:529
aiot_dm_send
int32_t aiot_dm_send(void *handle, const aiot_dm_msg_t *msg)
发送一条data-model消息到物联网平台, 消息类型和消息数据由msg入参决定
Definition: aiot_dm_api.c:779
AIOT_DMMSG_DELETE_DESIRED
清除指定的期望值, 消息结构体请参考aiot_dm_msg_delete_desired_t 成功发送此消息后, 将会收到AIOT_DMRECV_GENERIC_REPLY 类型的应答消息
Definition: aiot_dm_api.h:196
aiot_dm_recv_raw_data_t
物模型二进制数据消息结构体, 服务器的JSON格式物模型数据将通过物联网平台的JavaScript脚本转化为二进制数据, 用户在接收此消息前应确保已正确启用云端解析脚本
Definition: aiot_dm_api.h:551
aiot_dm_msg_t::property_post
aiot_dm_msg_property_post_t property_post
Definition: aiot_dm_api.h:388
STATE_DM_MSG_PARAMS_IS_NULL
#define STATE_DM_MSG_PARAMS_IS_NULL
用户发送请求类消息时, 消息数据中的param为NULL
Definition: aiot_dm_api.h:58
_dm_send_property_batch_post
static int32_t _dm_send_property_batch_post(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:352
aiot_dm_msg_t::get_desired
aiot_dm_msg_get_desired_t get_desired
Definition: aiot_dm_api.h:395
_dm_send_desired_get
static int32_t _dm_send_desired_get(dm_handle_t *handle, const char *topic, const aiot_dm_msg_t *msg)
Definition: aiot_dm_api.c:342
STATE_USER_INPUT_OUT_RANGE
#define STATE_USER_INPUT_OUT_RANGE
用户输入参数中包含越界的值
Definition: aiot_state_api.h:55
aiot_dm_msg_async_service_reply_t::service_id
char * service_id
服务标示符, 标识了要响应服务
Definition: aiot_dm_api.h:263
aiot_dm_msg_raw_data_t
物模型二进制数据消息结构体, 发送的二进制数据将通过物联网平台的JavaScript脚本转化为JSON格式数据, 用户发送此消息前应确保已正确启用云端解析脚本
Definition: aiot_dm_api.h:303
aiot_dm_setopt
int32_t aiot_dm_setopt(void *handle, aiot_dm_option_t option, void *data)
设置data-model参数
Definition: aiot_dm_api.c:736
aiot_dm_recv_generic_reply_t::data
char * data
指向云端应答数据的指针
Definition: aiot_dm_api.h:467
aiot_mqtt_topic_map_t
使用 aiot_mqtt_setopt 配置 AIOT_MQTTOPT_APPEND_TOPIC_MAP 时的数据
Definition: aiot_mqtt_api.h:344
STATE_USER_INPUT_MISSING_PRODUCT_KEY
#define STATE_USER_INPUT_MISSING_PRODUCT_KEY
用户输入参数中缺少productKey
Definition: aiot_state_api.h:67
aiot_dm_msg_get_desired_t
获取期望属性值消息结构体, 发送
Definition: aiot_dm_api.h:336
_dm_recv_raw_data_handler
static void _dm_recv_raw_data_handler(void *handle, const aiot_mqtt_recv_t *msg, void *userdata)
Definition: aiot_dm_api.c:594