交互通信

在智能硬件的数据传输体系中,数据交互通信包括设备与云端的数据交互、APP与云端的数据交互、设备与APP的数据交互、客户后台与云端的数据交互。
AbleCloud提供设备端固件、SDK或协议供设备与云端通信,提供APP SDK供APP与云端通信、支持设备端与APP端局域网内通信,提供Java/Php SDK供客户后台与云端通信。AbleCloud提供的SDK仅负责通信链路的建立、维护和安全,具体链路上传输怎样的数据内容由开发者自行定义。其中,数据格式支持JSON格式和二进制格式,开发者可根据设备支持情况自行选择。

AbleCloud还有提供msgCode供开发者使用,不同的msgCode可用来区分不同类别的数据包(比如选用200代表Wi-Fi信息的数据包,201代表设备状态的数据包等等),以方便业务各端处理所用。msgCode中,[200,255]供设备上报数据使用,[64,199]供非设备上报数据类型的命令使用(如查询、控制),其他范围为AbleCloud内部使用。

注:若客户的硬件协议中,若已有标识不同类型数据包的字段,则可以不借助msgCode进行区分。

设备与云端的数据交互

设备与云端的数据交互支持两种方式:

  • 长链接的方式:设备端和云端会建立永久长链接,通常适用于Wi-Fi类设备和网关类设备,传输协议当前已有支持TCP和MQTT两种协议。

  • 短链接的方式:设备端和云端在上报数据时即时建立链接并传输数据,通常适用于GPRS/3G类等省流量、低功耗的设备,AbleCloud提供Restful的接口供上报数据使用。

设备与云端交互的数据分为两种类型:

  • 一类是由设备主动发起的上报行为,比如设备运行状态参数发生改变时上报、设备故障信息上报等等,上报时带的msgCode需在[200,255]范围内;

  • 另一类是接受到云端下发的控制或查询指令后给予的返回数据,比如APP查询当前的设备运行状态,返回数据的msgCode与设备收到的指令中的msgCode一致即可,该类型不支持短链接方式与云端通信的设备。

对于不同情况的设备,AbleCloud有提供适合的固件、SDK或协议供设备端使用:

  • RTOS系统的设备:针对新定义通信协议的设备,可支持Wi-Fi模组中嵌入固件、MCU中嵌入SDK的方式与云端通信;针对已有通信协议的设备,可支持使用简化协议的方式与云端通信。

  • Linux/Android系统的设备:可支持嵌入硬件SDK的方式与云端通信。

APP与云端的数据交互

AbleCloud给开发者提供了APP端SDK(含Android和iOS),供实现APP与云端建立通信和数据传输。类似于设备SDK,APP SDK仅负责通信链路的建立、维护和安全,具体链路上传输怎样的数据内容由开发者根据业务自行定义。

APP与云端的数据交互可大体分为三种类型:

  • 通过云端透传的方式向设备发送控制/查询指令,云端收到指令后会将其直接透传给设备。若该指令不需要在云端进行存储记录,即可以采用该类型。设备收到该指令后,便会返回APP既定的数据。

  • APP向云端UDS发送指令,云端收到指令后会交由指定UDS版本进行解析处理。该类型适合于APP向数据库发起查询请求、APP发给设备的控制/查询指令也需要在云端记录等使用场景。

  • APP查看设备的实时状态,即无需APP刷新即可看到设备的实时变化,适合于查看空气净化器当前的各项监测参数、查看电饭煲当前的煮饭进度等使用场景。

APP与设备的局域网数据交互

局域网交互功能是开发者在开发过程中可选用的功能之一。针对于Wi-Fi类设备,当APP和设备处在同一局域网中时,还可使用局域网进行数据交互。在使用该功能的情况下,即便当前无Internet网络,APP也可正常控制设备。与此同时,APP SDK已实现了云端控制和局域网控制的无缝自动切换。

注:AbleCloud提供了四种与局域网相关的交互方式供开发者选择,具体可以在接口中配置相应参数,分别是:云端通信优先、仅云端通信、局域网通信优先和仅局域网通信。

客户后台与云端的数据交互

客户后台与云端的交互功能是开发者在开发过程中可选用的功能之一。其主要用于客户后台与AbleCloud平台的对接,比如AbleCloud的数据与客户后台数据同步、客户基于AbleCloud开发自己的Web管理后台等应用场景。

AbleCloud平台支持两种与客户后台的数据交互方式:

  • UDS访问客户后台:即UDS主动从客户后台获取数据或将数据推送给客户后台。

  • 客户后台访问UDS:即客户后台主动从UDS查询数据或发送指令。