开发框架

名词解释

名称 含义
UserApp User Application,用户部署在嵌入式Linux设备上的应用程序,开发者自行实现的设备控制逻辑和业务逻辑
AcAPI Ablecloud API,Ablecloud提供给开发者的API,供UserApp调用

设备应用开发框架

对于Linux设备,用户的应用程序通过调用Ablecloude的SDK实现与云端/移动端的通信,用户应用程序(UserApp)可以把Ablecloud的SDK看成一个联网模块(AC联网模块),二者处于同一个进程中:
DeviceWiFi_SDKArch

在使用SDK开发时,软件逻辑分如下四个部分:
1. UserApp:用户应用程序。实现设备的控制过程,此部分由厂商自行实现
2. AcAPI:Ablecloud为UserApp提供的API接口函数。负责用户控制逻辑与云端/APP之间的数据收发、协议报文的解析/组装等。
3. AC联网模块:Ablecloud提供的联网模块,包括硬件抽象层,云端协议层以及链路安全层。
4. AC Http OTA模块:Ablecloud提供的使用Http进行文件上传/下载的模块。

开发时,开发者只需要了解Ablecloud提供的API接口,剩下的就是用户自己的控制逻辑的开发。

下面首先介绍开发者需要掌握的基本概念,之后以功能为主体,结合场景叙述开发者如何通过调用Ablecloud的API实现各个功能。

基本概念

UserApp通过AC联网模块可以实现与云端/移动端之间的消息交互,开发者不需要关心交互的消息的完整格式,只需要掌握如下概念:

(1)消息构成

对开发者来说,设备与云端之间的消息由以下部分构成:

名称 作用
MsgSN 消息的序号(Msg Sequence Number),设备主动上报时填0;设备响应云端指令时必须填写对应的云端指令携带的MsgSN
MsgCode 标识payload的类型
Payloadlen 消息携带的payload的长度,以字节为单位
payload 消息体

(2)MsgCode

MsgCode用来标识设备与云端交互的消息类型,云端和设备端根据对应的MsgCode区分消息携带的payload的类型。

消息类型表(MsgCode)如下:

MsgCode 消息类型 消息类型说明
2 AC_CODE_WIFI_CONNECTED WiFi链接成功通知
3 AC_CODE_WIFI_DISCONNECTED WiFi断链通知
4 AC_CODE_CLOUD_CONNECTED 云端链接成功通知
5 AC_CODE_CLOUD_DISCONNECTED 云端链接断链通知
17 ZC_CODE_OTA_BEGIN MCU OTA开始通知
18 ZC_CODE_OTA_FILE_BEGIN MCU OTA文件传输开始通知
19 ZC_CODE_OTA_FILE_CHUNK MCU OTA文件块到达通知
20 ZC_CODE_OTA_FILE_END MCU OTA文件传输结束通知
21 ZC_CODE_OTA_END MCU OTA结束通知
64 AC_EVENT_BASE 设备自定义控制消息基址
(64,200) AC_EVENT_CONTROL_AND_RESPONSE 设备自定义,由服务或APP发给设备的控制消息以及设备的应答消息
[200,255] AC_EVENT_DEVICE_REPORT 设备自定义,设备上报信息

注意: 小于64的MsgCode是AC使用的消息码,开发者不能占用。[64,255]是提供给开发者的设备自定义消息码,开发者使用时需要遵守表中的规则,且要与移动端协商一致

(3)payload

是由MsgCode定义的消息类型的具体内容。payload的格式可以是二进制,也可以是JSON。

注意:
建议Linux设备开发者使用JSON格式

获取API接口详细信息

下面开发指导中用到的所有AC提供的用于Linux设备的API函数,其接口的详细信息请参阅Linux设备API参考手册