请选择 进入手机版 | 继续访问电脑版
查看: 380|回复: 0

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

[复制链接]

66

帖子

66

主题

296

积分

版主

Rank: 7Rank: 7Rank: 7

积分
296
杭州氦氪科技
QQ
发表于 2017-9-28 10:37:19 | 显示全部楼层 |阅读模式
本帖最后由 HekrLawrence 于 2017-9-29 10:09 编辑

在开发者控制台建立产品时,会选择接入协议。
191959yjuihkhxvaj47nzq.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下发数据:
183458t6ufasjt4lfffet2.png

183512ia36pfewdn73e6sj.png
使用JSON透传协议,设备上报数据:
183530bb6o4f64pplc36h6.png

183536c7u9m84lldllpdjn.png

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

183729sdi7lbyim7qdxd55.png

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

183746l58viix83avqa884.png

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



加入汇思锐,和智能生活沟通零距离! 用科技改变生活,用想法构思未来!
回复

使用道具 举报

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

本版积分规则

关闭

论坛灌水区开通公告上一条 /1 下一条

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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