极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20244|回复: 0

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

[复制链接]
发表于 2017-8-1 11:58:52 | 显示全部楼层 |阅读模式
本帖最后由 MakerBingo 于 2017-8-17 10:31 编辑

在开发者控制台建立产品时,会选择接入协议。

目前有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下发数据:



使用JSON透传协议,设备上报数据:




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




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




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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 04:03 , Processed in 0.050773 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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