Link Kit C-SDK
4.0.0
|
阿里云的物联网平台提供安全可靠的设备连接通信能力, 帮助用户将海量设备数据采集上云
设备可通过集成 Link SDK
具备连接物联网平台服务器的能力, 以及进而使用物联网平台的其它高级能力
这个SDK以C99编写, 开源发布, 支持多种操作系统和硬件平台, 阅读本文开始使用, 访问SDK的线上文档首页得到更多信息
SDK基座: 下载地址
下载SDK基座得到的, 主要含上图中的**SDK核心模块**, 它本身已是完整可用的了, 点击以下链接阅读编程导引开始使用
以上高阶能力, 任意两两之间无依赖关系, 仅依赖SDK核心模块(core
目录), 用户装备任一种能力的方式都是一致的
components/xxx
目录目前已就绪的高阶组件有
高阶组件 | 组件说明 | 下载地址 |
---|---|---|
Bootstrap | 实时动态的同步国家与地区的建连信息给设备 | Bootstrap组件下载链接 |
OTA | 固件升级和远程配置 | OTA组件下载链接 |
Data-Model | 使用属性, 事件, 服务构成的物模型描述设备 | Data-Model组件下载链接 |
Dynreg | 在设备运行时分配deviceSecret 以简化烧录 | Dynreg组件下载链接 |
NTP | 基于MQTT协议从云平台获取标准时间 | NTP组件下载链接 |
Shadow | 基于MQTT协议获取或更新云端缓存模型 | Shadow组件下载链接 |
Logpost | 基于MQTT协议上报设备日志到云端控制台 | Logpost组件下载链接 |
Devinfo | 基于MQTT协议上报标签删除或标签更新请求 | Devinfo组件下载链接 |
为直观的了解SDK的移植和使用, 可点击链接访问以下的实际场景中开发文档记录, 参考官方给出的使用者角度最佳实践
**Link SDK
完全由高移植性的C语言源文件构成**, 用户应使用惯用的任意编译方式, 将这些C文件(demos
目录除外)跟自己的其它源文件编译到一起即可使用它
如果用户使用安装有GNU Make
的Linux
主机开发环境, 可在SDK源码根目录运行
编译SDK例程, 编好的例程在output/xxxx_demo
, 运行这些例程可快速体验SDK和物联网平台的功能, 编程导引文档中也有例程的运行输出讲解
不论是MQTT连云这样放在core
的SDK核心模块, 还是固件升级这样放在components/xxx
的高阶组件, 一致使用以下的设计原则
xxx/aiot_xxx_api.h
头文件中列出, 以aiot_xxx_yyy
风格命名xxx/aiot_xxx_api.c
中xxx/demos/xxx_{basic,posix}_demo.c
中aiot_xxx_init()
: 初始化1个会话实例, 并设置默认参数aiot_xxx_deinit()
: 销毁1个会话实例, 回收其占用资源aiot_xxx_setopt()
: 配置1个会话实例的运行参数, 可用参数及用法在编程手册中有指出aiot_xxx_send_yyy()
: 向云平台发起某种会话请求aiot_xxx_recv()
: 从云平台接收请求的应答16 bits
的非正数整型, 也叫**状态码**, 0
表成功, 其它值表达运行状态retval = aiot_xxx_yyy()
方式获取返回值core/aiot_state_api.h
或components/xxx/aiot_xxx_api.h
0x0000 - 0xFFFF
aiot_xxx_setopt(handle, AIOT_XXXOPT_RECV_HANDLER, user_recv_cb)
设置数据回调aiot_xxx_setopt(handle, AIOT_XXXOPT_EVENT_HANDLER, user_event_cb)
设置事件回调aiot_state_set_logcb(user_log_cb)
设置日志回调[timestamp][LK-XXXX] message
XXXX
以数字形式标识了日志字符串, 它和返回值共享一个**状态码**分布空间, 都在-0xFFFF ~ 0x0000
ntp
), 可进行网络对时, 此后日志中的timestamp
会自动变成"年月日 时分秒"的易读模式点此查看详细状态码清单, 比如
-0x0305
代表MQTT连云时设备鉴权失败