本文介绍使用C Link SDK接入物联网平台时,需调用的基础API。
IOT_OpenLog
接口原型
void IOT_OpenLog(const char *ident);
接口说明
日志系统的初始化函数,本接口被调用后,SDK才有可能向终端打印日志文本,但打印的文本详细程度还是由
IOT_SetLogLevel()
确定,默认情况下,无日志输出。参数说明
参数
数据类型
方向
说明
ident
const char *
输入
日志的标识符字符串,例如:
IOT_OpenLog("linkkit")
。返回值说明
无返回值。
IOT_CloseLog
接口原型
void IOT_CloseLog(void);
接口说明
日志系统的销毁函数,本接口被调用后,SDK停止向终端打印任何日志文本,但之后可以调用
IOT_OpenLog()
接口重新输出日志。说明关闭和重新使能日志系统之后,需要重新调用
IOT_SetLogLevel()
接口设置日志级别,否则日志系统虽然使能了, 也不会输出文本。参数说明
无参数。
返回值说明
无返回值。
IOT_SetLogLevel
接口原型
void IOT_SetLogLevel(IOT_LogLevel level);
接口说明
日志系统的日志级别配置函数,本接口用于设置SDK的日志显示级别,需要在
IOT_OpenLog()
后被调用。参数说明
参数
数据类型
方向
说明
level
IOT_LogLevel
输入
需要显示的日志级别。
参数附加说明
typedef enum _IOT_LogLevel { IOT_LOG_EMERG = 0, IOT_LOG_CRIT, IOT_LOG_ERROR, IOT_LOG_WARNING, IOT_LOG_INFO, IOT_LOG_DEBUG, } IOT_LogLevel;
返回值说明
无返回值。
IOT_DumpMemoryStats
接口原型
void IOT_DumpMemoryStats(IOT_LogLevel level);
接口说明
该接口可显示出SDK各模块的内存使用情况,当
WITH_MEM_STATS=1
时起效,显示级别设置得越高,显示的信息越多。参数说明
参数
数据类型
方向
说明
level
IOT_LogLevel
输入
需要显示的日志级别。
返回值说明
无返回值。
IOT_SetupConnInfo
接口原型
int IOT_SetupConnInfo(const char *product_key, const char *device_name, const char *device_secret, void **info_ptr);
接口说明
在连接云端之前,需要做认证流程,如一型一密获取DeviceSecret或者根据当前所选认证模式向云端进行认证。
该接口在SDK基础版中需要在连接云端之前由用户显式调用,而在高级版中SDK会自动进行调用,不需要用户显式调用。
参数说明
参数
数据类型
方向
说明
product_key
const char *
输入
设备证书的ProductKey。
device_name
const char *
输入
设备证书的DeviceName。
device_secret
const char *
输入
设备证书的DeviceSecret。
info_ptr
void **
输出
该
void**
数据类型为iotx_conn_info_t
,在认证通过后,会得到云端的相关信息,用于建立与云端连接时使用。参数附加说明
typedef struct { uint16_t port; char host_name[HOST_ADDRESS_LEN + 1]; char client_id[CLIENT_ID_LEN + 1]; char username[USER_NAME_LEN + 1]; char password[PASSWORD_LEN + 1]; const char *pub_key; } iotx_conn_info_t, *iotx_conn_info_pt;
返回值说明
值
说明
0
成功
< 0
失败
IOT_Ioctl
接口原型
int IOT_Ioctl(int option, void *data);
接口说明
在SDK连接云端之前,用户可用此接口进行SDK部分参数的配置或获取,如连接的region,是否使用一型一密等。
该接口在基础版和高级版中均适用,但需要在SDK建立网络连接之前调用。
参数说明
参数
数据类型
方向
说明
option
iotx_ioctl_option_t
输入
选择需要配置或获取的参数。
data
void *
输入/输出
在配置或获取参数时需要的buffer,依据
option
而定。参数附加说明
typedef enum { IOTX_IOCTL_SET_DOMAIN, /* value(int*): iotx_cloud_domain_types_t */ IOTX_IOCTL_GET_DOMAIN, /* value(int*) */ IOTX_IOCTL_SET_DYNAMIC_REGISTER, /* value(int*): 0 - Disable Dynamic Register, 1 - Enable Dynamic Register */ IOTX_IOCTL_GET_DYNAMIC_REGISTER /* value(int*) */ } iotx_ioctl_option_t;
参数
说明
IOTX_IOCTL_SET_DOMAIN
设置需要访问的region,
data
为int *
类型,取值如下:IOTX_CLOUD_DOMAIN_SH:华东2(上海)
IOTX_CLOUD_DOMAIN_SG:新加坡
IOTX_CLOUD_DOMAIN_JP:日本(东京)
IOTX_CLOUD_DOMAIN_US:美国(硅谷)
IOTX_CLOUD_DOMAIN_GER:德国(法兰克福)
IOTX_IOCTL_GET_DOMAIN
获取当前的region,
data
为int *
类型。IOTX_IOCTL_SET_DYNAMIC_REGISTER
设置是否需要直连设备动态注册(一型一密),
data
为int *
类型,取值如下:0:不使用直连设备动态注册。
1:使用直连设备动态注册。
IOTX_IOCTL_GET_DYNAMIC_REGISTER
获取当前设备注册方式,
data
为int *
类型。返回值说明
值
说明
0
成功
< 0
失败