Link Kit C-SDK
5.0.0
|
设备物模型模块头文件, 提供了物模型数据格式的上云能力, 包括属性, 事件, 服务和物模型二进制格式的数据上下行能力 更多...
#include <stdint.h>
结构体 | |
struct | aiot_dm_msg_generic_reply_t |
云端通用应答消息结构体, 设备端上报aiot_device_dm_property_post, aiot_device_dm_event_post 或者aiot_device_dm_get_desired 等消息后, 服务器会应答此消息 更多... | |
struct | aiot_dm_msg_property_set_t |
属性设置消息结构体 更多... | |
struct | aiot_dm_msg_service_invoke_t |
同步服务调用消息结构体, 用户收到同步服务后, 必须在超时时间(默认7s)内进行应答 更多... | |
struct | aiot_dm_msg_raw_data_t |
物模型二进制数据消息结构体, 服务器的JSON格式物模型数据将通过物联网平台的JavaScript脚本转化为二进制数据, 用户在接收此消息前应确保已正确启用云端解析脚本 更多... | |
struct | aiot_dm_msg_t |
data-model模块接收消息的结构体 更多... | |
类型定义 | |
typedef void(* | dm_msg_callback_t) (void *device, const aiot_dm_msg_t *msg, void *userdata) |
设备物模型消息回调函数原型,用户定义回调函数后,可通过 aiot_device_dm_set_msg_callback 配置 更多... | |
函数 | |
int32_t | aiot_device_dm_set_post_reply (void *device, int8_t post_reply) |
设置主动上报消息(如属性上报、事件上报)是否需要回复 更多... | |
int32_t | aiot_device_dm_set_msg_callback (void *device, dm_msg_callback_t msg_callback, void *userdata) |
设置设备接收到物模型消息后的回调函数 更多... | |
int32_t | aiot_device_dm_property_post (void *device, char *params) |
物模型属性消息上报 更多... | |
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) |
批量上报物模型属性/事件 更多... | |
int32_t | aiot_device_dm_get_desired (void *device, char *params) |
获取物模型期望属性 更多... | |
int32_t | aiot_device_dm_delete_desired (void *device, char *params) |
删除物模型期望属性 更多... | |
int32_t | aiot_device_dm_raw_post (void *device, uint8_t *data, uint32_t data_len) |
物模型事件消息上报 更多... | |
int32_t | aiot_device_dm_propertyset_reply (void *device, void *context, uint32_t code, char *data) |
属性设置应答 更多... | |
int32_t | aiot_device_dm_service_reply (void *device, void *context, char *service_id, uint32_t code, char *data) |
服务调用应答 更多... | |
int32_t | aiot_device_dm_raw_reply (void *device, void *context, uint8_t *data, uint32_t data_len) |
二进制格式的同步服务应答 更多... | |
void * | aiot_dm_msg_context_clone (void *context) |
深拷贝消息回复所需要上下文 更多... | |
int32_t | aiot_dm_msg_context_free (void *context) |
释放拷贝的上下文 更多... | |
设备物模型模块头文件, 提供了物模型数据格式的上云能力, 包括属性, 事件, 服务和物模型二进制格式的数据上下行能力
typedef void(* dm_msg_callback_t) (void *device, const aiot_dm_msg_t *msg, void *userdata) |
设备物模型消息回调函数原型,用户定义回调函数后,可通过 aiot_device_dm_set_msg_callback 配置
[in] | device | 设备句柄 |
[in] | msg | 接收到的物模型消息,消息的数据结构 aiot_dm_msg_t |
[in] | userdata | 用户设置的上下文,可通过 aiot_device_dm_set_msg_callback 配置 |
enum aiot_dm_msg_type_t |
data-model模块接收消息类型枚举
这个枚举类型包括了dm模块支持接收的所有数据类型, 不同的消息类型将对于不同的消息结构体 用户可查看网页文档设备属性/事件/服务进一步了解各种数据类型
枚举值 | |
---|---|
AIOT_DMRECV_POST_REPLY |
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_msg_generic_reply_t |
AIOT_DMRECV_BATCH_POST_REPLY |
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_msg_generic_reply_t |
AIOT_DMRECV_PROPERTY_SET |
服务器下发的属性设置消息, 消息数据结构体参考aiot_dm_msg_property_set_t |
AIOT_DMRECV_SERVICE_INVOKE |
服务器下发的异步服务调用消息, 消息数据结构体参考aiot_dm_msg_service_invoke_t |
AIOT_DMRECV_GET_DESIRED_REPLY |
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_msg_generic_reply_t |
AIOT_DMRECV_DELETE_DESIRED_REPLY |
上报属性/实践后服务器返回的应答消息, 消息数据结构体参考aiot_dm_msg_generic_reply_t |
AIOT_DMRECV_RAW_REPLY |
服务器对设备上报的二进制数据应答, 消息数据结构体参考aiot_dm_msg_raw_data_t |
AIOT_DMRECV_RAW_DOWN |
服务器下发的物模型二进制数据, 消息数据结构体参考aiot_dm_msg_raw_data_t |
AIOT_DMRECV_MAX |
消息数量最大值, 不可用作消息类型 |
int32_t aiot_device_dm_set_post_reply | ( | void * | device, |
int8_t | post_reply | ||
) |
设置主动上报消息(如属性上报、事件上报)是否需要回复
[in] | device | 设备句柄 |
[in] | post_reply | [0] 不需要回复 [1] 需要回复 |
STATE_SUCCESS | 参数配置成功 |
STATE_USER_INPUT_NULL_POINTER | 入参为空 |
其它 | 参考aiot_state_api.h |
int32_t aiot_device_dm_set_msg_callback | ( | void * | device, |
dm_msg_callback_t | msg_callback, | ||
void * | userdata | ||
) |
设置设备接收到物模型消息后的回调函数
[in] | device | 设备句柄 |
[in] | msg_callback | 回调函数 |
[in] | userdata | 执行回调函数后的上下文指针 |
STATE_SUCCESS | 参数配置成功 |
STATE_USER_INPUT_NULL_POINTER | 入参为空 |
其它 | 参考aiot_state_api.h |
int32_t aiot_device_dm_property_post | ( | void * | device, |
char * | params | ||
) |
物模型属性消息上报
[in] | device | 设备句柄 |
[in] | params | 字符串形式的JSON结构体, 必须以结束符'\0'结尾. 包含用户要上报的属性数据, 如"{\"LightSwitch":0}" |
>=STATE_SUCCESS | 消息发送成功, 返回消息id |
STATE_USER_INPUT_NULL_POINTER | 入参device或params为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
int32_t aiot_device_dm_event_post | ( | void * | device, |
char * | event_id, | ||
char * | params | ||
) |
物模型事件消息上报
[in] | device | 设备句柄 |
[in] | event_id | 事件标示符, 必须为以结束符'\0'结尾的字符串 |
[in] | params | 字符串形式的JSON结构体, 必须以结束符'\0'结尾. 包含用户要上报的事件数据, 如"{\"ErrorNum":0}" |
>=STATE_SUCCESS | 消息发送成功, 返回消息id |
STATE_USER_INPUT_NULL_POINTER | 入参device或event_id或params为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
int32_t aiot_device_dm_batch_post | ( | void * | device, |
char * | params | ||
) |
批量上报物模型属性/事件
[in] | device | 设备句柄 |
[in] | params | 字符串形式的JSON结构体, 必须以结束符'\0'结尾. 包含用户要批量上报的属性和事件数据, 如 {"properties":{"Power": [ { "value": "on", "time": 1524448722000 }, { "value": "off", "time": 1524448722001 } ], "WF": [ { "value": 3, "time": 1524448722000 }]}, "events": {"alarmEvent": [{ "value": { "Power": "on", "WF": "2"}, "time": 1524448722000}]}} |
>=STATE_SUCCESS | 消息发送成功, 返回消息id |
STATE_USER_INPUT_NULL_POINTER | 入参device或params为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
int32_t aiot_device_dm_get_desired | ( | void * | device, |
char * | params | ||
) |
获取物模型期望属性
[in] | device | 设备句柄 |
[in] | params | 字符串形式的JSON数组, 必须以结束符'\0'结尾. 应包含用户要获取的期望属性的ID, 如"[\"LightSwitch"]" |
>=STATE_SUCCESS | 消息发送成功, 返回消息id |
STATE_USER_INPUT_NULL_POINTER | 入参device或params为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
int32_t aiot_device_dm_delete_desired | ( | void * | device, |
char * | params | ||
) |
删除物模型期望属性
[in] | device | 设备句柄 |
[in] | params | 字符串形式的JSON结构体, 必须以结束符'\0'结尾. 应包含用户要删除的期望属性的ID和期望值版本号, 如"{\"LightSwitch":{"version":1},"Color":{}}" |
>=STATE_SUCCESS | 消息发送成功, 返回消息id |
STATE_USER_INPUT_NULL_POINTER | 入参device或params为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
int32_t aiot_device_dm_raw_post | ( | void * | device, |
uint8_t * | data, | ||
uint32_t | data_len | ||
) |
物模型事件消息上报
[in] | device | 设备句柄 |
[in] | data | 指向待发送二进制数据的指针 |
[in] | data_len | 待发送数据的长度 |
>=STATE_SUCCESS | 消息发送成功, 返回消息id |
STATE_USER_INPUT_NULL_POINTER | 入参device或params为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
int32_t aiot_device_dm_propertyset_reply | ( | void * | device, |
void * | context, | ||
uint32_t | code, | ||
char * | data | ||
) |
属性设置应答
[in] | device | 设备句柄 |
[in] | context | 消息的上下文,消息回调中有 |
[in] | code | 设备端状态码, 200-请求成功, 更多状态码查看设备端通用code |
[in] | data | 设备端应答数据, 字符串形式的JSON结构体, 必须以结束符'\0'结尾, 如"{}"表示应答数据为空 |
==STATE_SUCCESS | 消息发送成功 |
STATE_USER_INPUT_NULL_POINTER | 入参device或context或data为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
int32_t aiot_device_dm_service_reply | ( | void * | device, |
void * | context, | ||
char * | service_id, | ||
uint32_t | code, | ||
char * | data | ||
) |
服务调用应答
[in] | device | 设备句柄 |
[in] | context | 消息的上下文,消息回调中有 |
[in] | service_id | 服务标示符, 标识了要响应服务 |
[in] | code | 设备端状态码, 200-请求成功, 更多状态码查看设备端通用code |
[in] | data | 设备端应答数据, 字符串形式的JSON结构体, 必须以结束符'\0'结尾, 如"{}"表示应答数据为空 |
==STATE_SUCCESS | 消息发送成功 |
STATE_USER_INPUT_NULL_POINTER | 入参device或context或data为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
int32_t aiot_device_dm_raw_reply | ( | void * | device, |
void * | context, | ||
uint8_t * | data, | ||
uint32_t | data_len | ||
) |
二进制格式的同步服务应答
[in] | device | 设备句柄 |
[in] | context | 消息的上下文,消息回调中有 |
[in] | data | 指向待发送二进制数据的指针 |
[in] | data_len | 待发送数据的长度 |
STATE_SUCCESS | 消息发送成功 |
STATE_USER_INPUT_NULL_POINTER | 入参device或context或data为NULL |
其它 | 参考aiot_state_api.h 中对应的错误码说明 |
void* aiot_dm_msg_context_clone | ( | void * | context | ) |
深拷贝消息回复所需要上下文
[in] | context | 设备句柄 |
NULL | 拷贝失败 |
其它 | 返回拷贝后的上下文指针 |
int32_t aiot_dm_msg_context_free | ( | void * | context | ) |
释放拷贝的上下文
[in] | context | 设备句柄 |
STATE_SUCCESS | 成功释放 |