公开协议产品 | 特点 | 优点 | 缺点 |
EDP | 亲儿子,旗舰级,功能全面 | 功能丰富,接收数据格式多样 | 数据需要最低限度的打包 |
MQTT | 功耗低,轻量级,协议成熟 | 资料多,One net对其支持同EDP | 同上 |
HTTP | 设备只能发送数据,不能接收 | 无需建立HTTP连接,格式简单 | 服务器不能控制设备 |
ModBus | 基于ModBus的数据经过简单封装即可传输 | 使用方便(对已使用ModBus协议的设备) | 使用困难(非Modbus协议设备) |
JT\T800 | 车载终端设备优先选择的接入协议 | 针对性强 | 通用性差 |
TCP透传 | 自定义脚本对数据进行解析 | 传输数据灵活,可自定义格式 | 需要编写Lua脚本 |
详细比较
EDP:OneNET平台自己开发的协议,消息类型(用于设备与服务器交互,类型越多即功能越多)多,接收数据时的支持格式多(达到7种)。是官方平台力推且功能强大的协议。
MQTT:早于OneNET平台就有的协议,消息类型、数据格式与EDP支持的数量相当。OneNET使用的协议似乎与通用的MQTT略有不同,开发文档上说“只介绍不同的部分”。疑似EDP的原型,OneNET平台虽然支持使用,但开发文档似乎故意没有翻译完全......
HTTP:直观看就是直接使用RestFul API对服务器进行数据传输。特点是不能使用服务器向设备下发命令。
ModBus:严格以ModBus协议进行通信。如果是已经使用这种协议的设备,那么连接服务器后很容易传输数据。反之,就要面临着数据不易打包、可传输数据格式少且严格等问题。
JT\T800:J为T/T808协议提供的拓展协议,车载终端设备专用,需要的可以细看
TCP透传:在服务器上用自己编写的脚本解释设备上传的数据。即将设备要做的数据打包工作交给服务器去做,而服务器的依据是用户上传的自定义脚本。
总的来说,给人的感觉是OneNET 平台支持旧的物联网协议MQTT,基于其制作了自己的协议EDP,允许使用人数众多的ModBus协议和JT\T800协议直接接入平台,将RestFul API整合作为HTTP协议,剩下用自己方式写数据的去使用TCP透传协议编写Lua脚本自己解释自己的数据。
以上只是一个单片机开发人员的主观感受,如果有大神前来指导,不胜感激。