Skip to content

SDK使用

shockcao edited this page Nov 29, 2017 · 14 revisions

设备端SDK的使用

对设备端SDK的使用分为如下几步:

  • 修改编译配置进行编译, 详见设备端SDK的编译页面
  • 获取编译好的SDK, 如成功存放在output/release/lib/*.a
  • libiot_sdk.a libiot_platform.a等配合output/release/include/目录下的头文件, 加入您自己的工程使用

SDK编译产物说明

output/release/
+-- bin
+-- include
|   +-- exports
|   |   +-- qcloud_iot_export_err.h
|   |   +-- qcloud_iot_export_log.h
|   |   +-- qcloud_iot_export_mqtt.h
|   |   +-- qcloud_iot_export_shadow.h
|   +-- qcloud_iot_export.h
|   +-- qcloud_iot_import.h
+-- lib
|   +-- libiot_sdk.a
|   +-- libiot_platform.a
|   +-- libmbedcrypto.a
|   +-- libmbedtls.a
|   +-- libmbedx509.a
+-- src
    +-- makefile
    +-- mqtt-example.c

概要说明如下:

文件 说明
include/qcloud_iot_import.h 这个头文件中列出为SDK适配新硬件平台时, 需要实现的平台抽象层函数, 以HAL_*()的方式命名; 编写平台抽象层实现时, 包含此头文件即可
include/qcloud_iot_export.h 这个头文件中列出SDK能提供的所有用户级别API, 以IOT_*()的方式命名, 也就是供用户调用编写业务应用程序的函数
include/exports/qcloud_iot_export_*.h 这组头文件按功能模块分列各模块提供的用户级别API, 例如qcloud_iot_export_mqtt.h中定义了MQTT的通信接口 可直接忽略该文件
lib/lib*.a 编译出的iotsdk iot平台sdk(由硬件抽象层编译得来),mbedtls相关库用于加密通信
src/makefile 示例用makefile, 演示得到lib/lib*.a之后, 如何在SDK之外链接它使用起来

SDK编译开关说明

SDK顶层目录的make.settings文件, 列出了对功能进行裁剪时可以选择打开或者关闭的开关, 可以说明如下:

FEATURE_MQTT_COMM_ENABLED   	= y
FEATURE_ASYMC_ENCRYPT_ENABLED 	= y
选项 含义
FEATURE_MQTT_COMM_ENABLED 是否使用MQTT通道功能的总开关,当前不得关闭
FEATURE_ASYMC_ENCRYPT_ENABLED 是否使用非对称加密功能的开关

通过编辑make.settings文件, 把不需要的功能模块关闭, 可以减小最终编译出libiot_sdk.a库文件的大小, 以节省嵌入式设备上的资源 例如只需要以对称加密的方式连接, 不需要非对称功能, 可以将默认的make.settings修改如下:

FEATURE_MQTT_COMM_ENABLED   	= y
FEATURE_ASYMC_ENCRYPT_ENABLED 	= n

SDK API说明

Clone this wiki locally