Link Kit C-SDK  5.0.0
aiot_device_api.h
浏览该文件的文档.
1 
9 #ifndef _AIOT_DEVICE_CLIENT_API_H_
10 #define _AIOT_DEVICE_CLIENT_API_H_
11 
12 #if defined(__cplusplus)
13 extern "C" {
14 #endif
15 
16 #include <stdint.h>
17 #include "aiot_message_api.h"
18 #include "aiot_linkconfig_api.h"
19 #include "aiot_state_api.h"
20 
30 typedef void (*aiot_device_msg_callback_t)(void *device, const aiot_msg_t *message, void *userdata);
31 
35 typedef enum {
49 
53 typedef struct {
58  aiot_device_status_type_t type;
62  uint32_t error_code;
64 
74 typedef void (*aiot_device_status_callback_t)(void *device, const aiot_device_status_t *event, void *userdata);
75 
79 typedef enum {
93 
97 typedef struct {
101  aiot_device_msg_result_type_t type;
105  int32_t message_id;
109  int32_t code;
111 
121 typedef void (*aiot_device_msg_result_callback_t)(void *device, const aiot_device_msg_result_t *result, void *userdata);
122 
132 void *aiot_device_create(char *product_key, char *device_name);
133 
143 int32_t aiot_device_set_device_secret(void *device, char *device_secret);
144 
154 int32_t aiot_device_set_linkconfig(void *device, aiot_linkconfig_t *config);
155 
172 int32_t aiot_device_set_conntype(void *device, int32_t conntype);
173 
182 int32_t aiot_device_connect(void *device);
183 
192 int32_t aiot_device_connect_async(void *device);
193 
204 int32_t aiot_device_send_message(void *device, const aiot_msg_t *message);
205 
217 int32_t aiot_device_set_event_callback(void *device, aiot_device_msg_callback_t msg_recv_callback, aiot_device_status_callback_t status_callback, aiot_device_msg_result_callback_t msg_result_callback, void *userdata);
218 
233 int32_t aiot_device_register_topic_filter(void *device, char *topic, aiot_device_msg_callback_t callback, uint8_t sub, void *userdata);
234 
247 int32_t aiot_device_deregister_topic_filter(void *device, char *topic, uint8_t unsub);
248 
257 int32_t aiot_device_disconnect(void *device);
258 
269 int32_t aiot_device_delete(void **device);
270 
274 typedef struct {
275  char host[128];
276  uint16_t port;
278 
292 
306 int32_t aiot_device_dynamic_secret(void *device, aiot_linkconfig_t *linkconfig, char *out_device_seceret, int32_t out_secret_len);
307 
311 typedef struct {
312  char username[128];
313  char password[128];
314  char client_id[128];
327 int32_t aiot_device_dynamic_register(void *device, aiot_linkconfig_t *linkconfig, aiot_dynamic_register_info_t *info);
328 
335 char *aiot_device_product_key(void *device);
336 
343 char *aiot_device_name(void *device);
344 
351 int32_t aiot_device_online(void *device);
352 
353 #if defined(__cplusplus)
354 }
355 #endif
356 
357 #endif
设备消息模块,包含:构建自定义消息、构建rrpc消息、消息拷贝、消息删除等功能
int32_t aiot_device_set_device_secret(void *device, char *device_secret)
设置设备建连使用的设备密钥
void(* aiot_device_status_callback_t)(void *device, const aiot_device_status_t *event, void *userdata)
设备状态变化时回调函数原型, 用户定义回调函数后,可通过 aiot_device_set_event_callback 设置 ...
Definition: aiot_device_api.h:74
aiot_device_status_type_t type
内部状态事件类型
Definition: aiot_device_api.h:58
aiot_device_status_type_t
device状态变化类型
Definition: aiot_device_api.h:35
就近接入返回的接入信息结构体
Definition: aiot_device_api.h:274
当实例断开网络连接时, 触发此事件
Definition: aiot_device_api.h:47
订阅感兴趣的消息的结果
Definition: aiot_device_api.h:87
int32_t code
结果,0:成功; 其它:错误码
Definition: aiot_device_api.h:109
int32_t aiot_device_register_topic_filter(void *device, char *topic, aiot_device_msg_callback_t callback, uint8_t sub, void *userdata)
设备注册感兴趣的topic,接收到该topic的消息,会执行对应回调
aiot_device_msg_result_type_t
设备消息ack的类型
Definition: aiot_device_api.h:79
设备连接参数设置api头文件,包含服务器host,多连接、mqtt协议参数等配置项
设备状态码头文件, 所有device-core中的api返回值均在此列出
设备动态注册,返回信息结构体,设备可用这些信息建连
Definition: aiot_device_api.h:311
当实例第一次连接网络成功时, 触发此事件
Definition: aiot_device_api.h:39
int32_t aiot_device_connect(void *device)
设备与云平台进行连接,同步阻塞的
char * aiot_device_name(void *device)
查询设备的device_name
int32_t message_id
消息ID
Definition: aiot_device_api.h:105
uint32_t error_code
错误码
Definition: aiot_device_api.h:62
设备状态变化时,描述设备状态的结构体
Definition: aiot_device_api.h:53
int32_t aiot_device_send_message(void *device, const aiot_msg_t *message)
设备向云平台发送消息
char * aiot_device_product_key(void *device)
查询设备的product_key
int32_t aiot_device_set_linkconfig(void *device, aiot_linkconfig_t *config)
设置设备连接的参数
int32_t aiot_device_deregister_topic_filter(void *device, char *topic, uint8_t unsub)
设备注销topic,接收到该topic的消息,将不再执行回调
取消订阅消息的结果
Definition: aiot_device_api.h:91
void(* aiot_device_msg_result_callback_t)(void *device, const aiot_device_msg_result_t *result, void *userdata)
设备接收到消息ACK时的回调函数原型, 可通过 aiot_device_set_event_callback 设置
Definition: aiot_device_api.h:121
描述设备建连所需参数的结构体
Definition: aiot_linkconfig_api.h:64
uint16_t port
Definition: aiot_device_api.h:276
设备消息发送后,返回的消息发送结果,包含pub/sub消息的ACK
Definition: aiot_device_api.h:97
int32_t aiot_device_disconnect(void *device)
设备主动与平台断开连接
aiot_protocol_type_t
Definition: aiot_linkconfig_api.h:22
当实例断开网络连接后重连成功时, 触发此事件
Definition: aiot_device_api.h:43
int32_t aiot_device_set_conntype(void *device, int32_t conntype)
设置连接设备的类型,该接口只有网关设备需要调用
int32_t aiot_device_dynamic_secret(void *device, aiot_linkconfig_t *linkconfig, char *out_device_seceret, int32_t out_secret_len)
设备动态获取密钥(设备需先预注册)
aiot_device_msg_result_type_t type
返回的ack类型
Definition: aiot_device_api.h:101
int32_t aiot_device_dynamic_register(void *device, aiot_linkconfig_t *linkconfig, aiot_dynamic_register_info_t *info)
设备动态注册(设备无需预注册),该请求会返回设备建连认证信息
int32_t aiot_device_online(void *device)
查询设备的状态
void(* aiot_device_msg_callback_t)(void *device, const aiot_msg_t *message, void *userdata)
设备报文接收回调函数原型, 可通过 aiot_device_set_event_callback 设置
Definition: aiot_device_api.h:30
void * aiot_device_create(char *product_key, char *device_name)
初始化设备并设置默认参数
int32_t aiot_device_set_event_callback(void *device, aiot_device_msg_callback_t msg_recv_callback, aiot_device_status_callback_t status_callback, aiot_device_msg_result_callback_t msg_result_callback, void *userdata)
设置设备事件:包含消息回调,状态回调
int32_t aiot_device_delete(void **device)
释放设备实例的资源
消息发送的结果
Definition: aiot_device_api.h:83
int32_t aiot_device_connect_async(void *device)
设备与云平台进行连接,异步非阻塞的
描述消息的数据结构
Definition: aiot_message_api.h:24
int32_t aiot_device_bootstrap_request(void *device, aiot_protocol_type_t type, aiot_bootstrap_info_t *info)
请求就近接入信息(host,port)