氦氪云入门教程10-聊聊产品接入协议-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3564|回复: 0

氦氪云入门教程10-聊聊产品接入协议

[复制链接]
发表于 2017-8-17 10:27 | 显示全部楼层 |阅读模式
本帖最后由 lawrencedon 于 2017-8-17 10:38 编辑

在开发者控制台建立产品时,会选择接入协议。
1.png
目前有4种接入协议:
JSON透传协议
JSON主控协议
48透传协议
JSON透传协议不校验raw

这些协议可以分为两大类:
1.指令是JSON格式
JSON透传协议是JSON主控协议的特例,JSON透传协议不校验raw是JSON透传协议的特例。


JSON透传协议:
云端会校验JSON数据中data部分的raw字段的值是否符合在控制台中设置的产品协议。
选择JSON透传协议时,一般使用我们的官方透传固件,产品采用WiFi模块+单片机的方式,单片机作为主控芯片,WiFi模块只作为一个功能模块接入。使用该协议时,也可以不外接单片机,但是需要你自己编写固件。
我们的官方透传固件使用JSON透传协议且实现了串口透传协议

相关文档:
2.4 APP发送数据到设备 2.4.2 设备使用JSON透传协议时
2.5 设备发送数据到APP 2.5.2 设备使用JSON透传协议时


JSON主控协议:
云端会校验JSON数据中data部分的K-V键值对是否符合在控制台中设置的产品协议。
选择JSON主控协议时,一般使用基于我们设备端的SDK编写的固件,只使用WiFi模块,不外接单片机,WiFi模块作为主控芯片。使用该协议时,也可以外接单片机,至于WiFi模块和单片机之间的通信协议,你可以自己制定。

相关文档:
2.4 APP发送数据到设备 2.4.1 设备使用JSON主控协议时
2.5 设备发送数据到APP 2.5.1 设备使用JSON主控协议时


JSON透传协议不校验raw:
顾名思义,云端不会校验JSON数据中data部分的raw字段的值,选择该接入协议时,控制台中不会出现产品协议设置页面。
选择JSON透传协议不校验raw时,如果使用我们的官方透传固件,需要遵循串口透传协议的格式规范,业务数据可以随便填,云端不校验业务数据。
如果是自己写固件,所有的数据都可以随便填,不需要遵循我们的串口透传协议,而且JSON数据中data部分里不仅可以有raw字段,还可以有其他的K-V键值对,但是一定要有raw字段。
使用该协议时,开发者不用在控制台设置产品协议,云端也不校验收发的数据,所以数据代表的意义对云端是透明的,云端无法提供数据统计分析,告警推送,设备联动等高级功能。

自己编写设备端固件,可以按照我们的文档全部自己做,也可以基于我们设备端的SDK

2.指令是48开头的字符串格式
48透传协议:
主要针对移动模块,保证在相同的有效载荷数据下,尽量减少附属数据的数量,以节省流量。
具体协议规范请参看移动模块接入方案

最后,我们利用开发者控制台中的虚拟设备调试页面,来看看JSON透传协议和JSON主控协议有什么不同。
使用JSON透传协议,APP下发数据:
2.png

3.png
使用JSON透传协议,设备上报数据:
4.png

5.png

使用JSON主控协议,APP下发数据:
6.png

7.png

使用JSON主控协议,设备上报数据:
8.png

9.png

从以上的截图,我们可以发现JSON透传协议和JSON主控协议最大的不同是JSON数据中data部分的内容:
JSON透传协议中data部分的内容形式是 {"raw":"48xxxxxx"}
JSON主控协议中data部分的内容形式是 {"cmdId":x,"K1":"V1","K2":"V2",...}



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 01:28 , Processed in 0.134456 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表