Link Kit C-SDK  5.0.0
结构体 | 类型定义 | 枚举 | 函数
aiot_dm_api.h 文件参考

设备物模型模块头文件, 提供了物模型数据格式的上云能力, 包括属性, 事件, 服务和物模型二进制格式的数据上下行能力 更多...

#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 配置 更多...
 

枚举

enum  aiot_dm_msg_type_t {
  AIOT_DMRECV_POST_REPLY, AIOT_DMRECV_BATCH_POST_REPLY, AIOT_DMRECV_PROPERTY_SET, AIOT_DMRECV_SERVICE_INVOKE,
  AIOT_DMRECV_GET_DESIRED_REPLY, AIOT_DMRECV_DELETE_DESIRED_REPLY, AIOT_DMRECV_RAW_REPLY, AIOT_DMRECV_RAW_DOWN,
  AIOT_DMRECV_MAX
}
 data-model模块接收消息类型枚举 更多...
 

函数

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)
 释放拷贝的上下文 更多...
 

详细描述

设备物模型模块头文件, 提供了物模型数据格式的上云能力, 包括属性, 事件, 服务和物模型二进制格式的数据上下行能力

日期
2022-01-20

类型定义说明

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 配置

枚举类型说明

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] 需要回复
返回
int32_t
返回值
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执行回调函数后的上下文指针
返回
int32_t
返回值
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}"
返回
int32_t
返回值
>=STATE_SUCCESS消息发送成功, 返回消息id
STATE_USER_INPUT_NULL_POINTER入参deviceparams为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}"
返回
int32_t
返回值
>=STATE_SUCCESS消息发送成功, 返回消息id
STATE_USER_INPUT_NULL_POINTER入参deviceevent_idparams为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}]}}
返回
int32_t
返回值
>=STATE_SUCCESS消息发送成功, 返回消息id
STATE_USER_INPUT_NULL_POINTER入参deviceparams为NULL
其它参考aiot_state_api.h 中对应的错误码说明
int32_t aiot_device_dm_get_desired ( void *  device,
char *  params 
)

获取物模型期望属性

参数
[in]device设备句柄
[in]params字符串形式的JSON数组, 必须以结束符'\0'结尾. 应包含用户要获取的期望属性的ID, 如"[\"LightSwitch"]"
返回
int32_t
返回值
>=STATE_SUCCESS消息发送成功, 返回消息id
STATE_USER_INPUT_NULL_POINTER入参deviceparams为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":{}}"
返回
int32_t
返回值
>=STATE_SUCCESS消息发送成功, 返回消息id
STATE_USER_INPUT_NULL_POINTER入参deviceparams为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待发送数据的长度
返回
int32_t
返回值
>=STATE_SUCCESS消息发送成功, 返回消息id
STATE_USER_INPUT_NULL_POINTER入参deviceparams为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'结尾, 如"{}"表示应答数据为空
返回
int32_t
返回值
==STATE_SUCCESS消息发送成功
STATE_USER_INPUT_NULL_POINTER入参devicecontextdata为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'结尾, 如"{}"表示应答数据为空
返回
int32_t
返回值
==STATE_SUCCESS消息发送成功
STATE_USER_INPUT_NULL_POINTER入参devicecontextdata为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待发送数据的长度
返回
int32_t
返回值
STATE_SUCCESS消息发送成功
STATE_USER_INPUT_NULL_POINTER入参devicecontextdata为NULL
其它参考aiot_state_api.h 中对应的错误码说明
void* aiot_dm_msg_context_clone ( void *  context)

深拷贝消息回复所需要上下文

参数
[in]context设备句柄
返回
void *
返回值
NULL拷贝失败
其它返回拷贝后的上下文指针
int32_t aiot_dm_msg_context_free ( void *  context)

释放拷贝的上下文

参数
[in]context设备句柄
返回
int32_t
返回值
STATE_SUCCESS成功释放