Link Kit C-SDK  5.0.0
结构体 | 枚举 | 函数
aiot_linkconfig_api.h 文件参考

设备连接参数设置api头文件,包含服务器host,多连接、mqtt协议参数等配置项 更多...

#include <stdint.h>
#include "aiot_message_api.h"
#include "aiot_sysdep_api.h"

浏览源代码.

结构体

struct  aiot_protocol_t
 描述消息传输协议实现方法的结构体 更多...
 
struct  aiot_linkconfig_t
 描述设备建连所需参数的结构体 更多...
 

枚举

enum  aiot_protocol_type_t { MQTT_PROTOCOL, HTTP_PROTOCOL }
 

函数

aiot_linkconfig_taiot_linkconfig_init (aiot_protocol_t *protocol)
 初始化默认的连接配置参数,生成配置参数句柄 更多...
 
int32_t aiot_linkconfig_deinit (aiot_linkconfig_t **config)
 删除连接配置句柄,回收资源 更多...
 
int32_t aiot_linkconfig_host (aiot_linkconfig_t *config, char *host, uint16_t port)
 设置连接的host, port 更多...
 
int32_t aiot_linkconfig_cred_option (aiot_linkconfig_t *config, aiot_sysdep_network_cred_option_t option)
 设备网络连接的类型 更多...
 
int32_t aiot_linkconfig_root_cert (aiot_linkconfig_t *config, const char *cert, uint32_t len)
 设置服务器的根证书 更多...
 
int32_t aiot_linkconfig_client_cert_privkey (aiot_linkconfig_t *config, char *client_cert, uint32_t cert_len, char *client_privkey, uint32_t key_len)
 X509认证,设置客户端证书和私钥 更多...
 
int32_t aiot_linkconfig_connect_timeout (aiot_linkconfig_t *config, uint32_t timeout_ms)
 设置建连超时的时间 更多...
 
int32_t aiot_linkconfig_recv_timeout (aiot_linkconfig_t *config, uint32_t timeout_ms)
 设置接收超时的时间 更多...
 
int32_t aiot_linkconfig_send_timeout (aiot_linkconfig_t *config, uint32_t timeout_ms)
 设置发送超时的时间 更多...
 
int32_t aiot_linkconfig_reconnect_enable (aiot_linkconfig_t *config, uint8_t enable)
 设置是否自动重连, 默认为开启自动重连 更多...
 
int32_t aiot_linkconfig_multi_channel (aiot_linkconfig_t *config, uint32_t start_cid, uint32_t num)
 设置多连接:允许建连多个与云平台的连接 更多...
 
int32_t aiot_linkconfig_mqtt_extclientid (aiot_linkconfig_t *config, char *extern_clientid)
 设备连接阿里云物联网平台时的扩展clientid 更多...
 
int32_t aiot_linkconfig_mqtt_keepalive (aiot_linkconfig_t *config, uint16_t keep_alive_s)
 MQTT建联时, CONNECT报文中的最长心跳间隔 更多...
 
int32_t aiot_linkconfig_mqtt_cleansession (aiot_linkconfig_t *config, uint8_t clean_session)
 MQTT建联时, CONNECT报文中的clean session参数 更多...
 
int32_t aiot_linkconfig_mqtt_heartbeat_interval (aiot_linkconfig_t *config, uint32_t interval_ms)
 配置设备主动发送PINGREQ报文发送时间间隔. (心跳发送间隔) 更多...
 
int32_t aiot_linkconfig_dynamic_register (aiot_linkconfig_t *config, char *product_secret, char *instance_id)
 动态注册参数配置,设置产品密钥及实例id 更多...
 
int32_t aiot_linkconfig_mqtt_auth (aiot_linkconfig_t *config, char *username, char *password, char *clientid)
 透传给mqtt的建连认证信息, 免白动态注册后需要使用 更多...
 

详细描述

设备连接参数设置api头文件,包含服务器host,多连接、mqtt协议参数等配置项

日期
2021-12-16

枚举类型说明

枚举值
MQTT_PROTOCOL 
HTTP_PROTOCOL 

函数说明

aiot_linkconfig_t* aiot_linkconfig_init ( aiot_protocol_t protocol)

初始化默认的连接配置参数,生成配置参数句柄

返回
void*
返回值
非NULL设备句柄
NULL初始化失败, 一般是内存分配失败导致
int32_t aiot_linkconfig_deinit ( aiot_linkconfig_t **  config)

删除连接配置句柄,回收资源

参数
[in]config配置句柄
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_host ( aiot_linkconfig_t config,
char *  host,
uint16_t  port 
)

设置连接的host, port

参数
[in]config配置句柄
[in]host服务器地址
[in]port服务端口号
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_cred_option ( aiot_linkconfig_t config,
aiot_sysdep_network_cred_option_t  option 
)

设备网络连接的类型

参数
[in]config配置句柄
[in]option网络安全类型
AIOT_SYSDEP_NETWORK_CRED_NONE 不实用加密
AIOT_SYSDEP_NETWORK_CRED_SVRCERT_CA, 使用CA证书加密, 默认值
AIOT_SYSDEP_NETWORK_CRED_SVRCERT_PSK,使用PSK方式加密
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_root_cert ( aiot_linkconfig_t config,
const char *  cert,
uint32_t  len 
)

设置服务器的根证书

有默认的服务器根证书,只有需要自定义证书认证的设备才需要设置

参数
[in]config配置句柄
[in]cert证书内容
[in]len证书长度
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_client_cert_privkey ( aiot_linkconfig_t config,
char *  client_cert,
uint32_t  cert_len,
char *  client_privkey,
uint32_t  key_len 
)

X509认证,设置客户端证书和私钥

参数
[in]config配置句柄
[in]client_cert端证书
[in]cert_len端证书长度
[in]client_privkey端私钥证书
[in]key_len端私钥长度
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_connect_timeout ( aiot_linkconfig_t config,
uint32_t  timeout_ms 
)

设置建连超时的时间

参数
[in]config配置句柄
[in]timeout_ms超时时间, 默认值:10000ms
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_recv_timeout ( aiot_linkconfig_t config,
uint32_t  timeout_ms 
)

设置接收超时的时间

参数
[in]config配置句柄
[in]timeout_ms超时时间, 默认值:5000ms
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_send_timeout ( aiot_linkconfig_t config,
uint32_t  timeout_ms 
)

设置发送超时的时间

参数
[in]config配置句柄
[in]timeout_ms超时时间, 默认值:5000ms
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_reconnect_enable ( aiot_linkconfig_t config,
uint8_t  enable 
)

设置是否自动重连, 默认为开启自动重连

参数
[in]config配置句柄
[in]enable【0,关闭自动重连】,关闭自动重连后需要手动触发重连 【1,打开自动重连】,SDK重连会有逼退算法,重连的间隔时间为2~120s
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_multi_channel ( aiot_linkconfig_t config,
uint32_t  start_cid,
uint32_t  num 
)

设置多连接:允许建连多个与云平台的连接

参数
[in]config配置句柄
[in]start_cid连接的唯一标识符,起始值,一般从填0.
[in]num设置多个连接的数量,消息量大的时候避免限流可以多建连几个,取值范围【1~100】
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_mqtt_extclientid ( aiot_linkconfig_t config,
char *  extern_clientid 
)

设备连接阿里云物联网平台时的扩展clientid

参数
[in]config配置句柄
[in]extern_clientid扩展的clientid, 若需要上报模组商id和模组id以及os信息, 按以下格式填写: "mid=<模组ID>,pid=<模组商ID>,os=<操作系统>"
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_mqtt_keepalive ( aiot_linkconfig_t config,
uint16_t  keep_alive_s 
)

MQTT建联时, CONNECT报文中的最长心跳间隔

参数
[in]config配置句柄
[in]keep_alive_s取值范围为30 ~ 1200s
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_mqtt_cleansession ( aiot_linkconfig_t config,
uint8_t  clean_session 
)

MQTT建联时, CONNECT报文中的clean session参数

  1. 设备上线时如果clean session为0, 那么上线前服务器推送QoS1的消息会在此时推送给设备
  2. 设备上线时如果clean session为1, 那么上线前服务器推送的QoS1的消息会被丢弃
    参数
    [in]config配置句柄
    [in]clean_session是否清除mqtt会话内容
    返回
    int32_t
    返回值
    <STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
    >=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_mqtt_heartbeat_interval ( aiot_linkconfig_t config,
uint32_t  interval_ms 
)

配置设备主动发送PINGREQ报文发送时间间隔. (心跳发送间隔)

维持连接,设备会主动定时发送心跳,若连续三次的心跳丢失,设备会主动断开并进行重连

参数
[in]config配置句柄
[in]interval_ms设备发送心跳的时间间隔,默认值25s
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_dynamic_register ( aiot_linkconfig_t config,
char *  product_secret,
char *  instance_id 
)

动态注册参数配置,设置产品密钥及实例id

设备动态注册需要产品密钥,企业型实例还需要实例id

参数
[in]config配置句柄
[in]product_secret产品密钥
[in]instance_id企业实例id,如为公共实例,输入NULL即可
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功
int32_t aiot_linkconfig_mqtt_auth ( aiot_linkconfig_t config,
char *  username,
char *  password,
char *  clientid 
)

透传给mqtt的建连认证信息, 免白动态注册后需要使用

设备建连一般使用设备认证信息进行建连,不需要调用该接口。

免白动态注册时,会返回mqtt鉴权的信息username、password、clientid。 调用该接口完成参数配置,即可完成设备建连,不需要使用设备认证信息。

参数
[in]config配置句柄
[in]usernamemqtt协议建连消息中的username
[in]passwordmqtt协议建连消息中的password
[in]clientidmqtt协议建连消息中的clientid
返回
int32_t
返回值
<STATE_SUCCESS执行失败, 更多信息请参考aiot_state_api.h
>=STATE_SUCCESS执行成功