大衍物联网
开源目的:尽可能接入更多的传输层协议,编解码硬件自身的帧数据!
项目地址:https://gitee.com/big_coffee_market/large-derivative-linkage
项目优势:只是做网络层服务,不涉及到具体的业务逻辑,只是做信息的编解码服务,入手较简单,较快。在硬件编解码过程中,封装了一些类型与字节数组的转换,使用注解编程,代码可读性较强,扩展性更为自由,并且支持帧中包含帧!网络层与硬件交互,网络层与平台交互,都有唯一一个对应的接口,层次感较强!
概要说明
1:网络层与平台交互:
平台与网络中心交互的时候,指令是一一对应的,一个指令一个结果,泛型继承PlatformAttachDTO,含义是需要携带设备ID。
2:网络层与硬件交互:
与硬件交互,要发送二进制数组,因为在设备接入的时候,要保存设备的ID,作为接入标识! 这个接口的含义是,向某一设备发送二进制指令,得到二进制指令的返回值。
3:网络层帧的编解码
模仿FastJson,编码的时候传入对象信息,生成对应的二进制数组。
解码的时候,传输二进制数组信息和对象信息,会赋给对象数值。
注解支持帧中帧编码解码
支持帧中帧,@EncoderField 代表编码,@DecodeerField代表解码。该层Frame是最外层的Frame,在某些字段上,既支持编码又支持解码。
1:编码注解:
Sequence: 序列号,解析字段从前到后,1,2,3,4,5。按照顺序解析
Field:字段类型,byte[]编码后的字段类型
Len: 字段所占有的byte[]长度
Reverse:二进制字段是否反转,不反转解析的是1234,反转后解析的值是4321
Allow:该字段是否允许解析,可以不要,但是为了统一格式,保留了
Note: 备注,不起到任何作用,只是一个说明标注
支持的字段类型。Frame类型,对应的编解码格式都是一个对象,支持帧中帧!
2:解码注解
Sequence 按顺序解析1,2,3,4,5
Field 解析后的字段类型
Method 截取二进制数组的方法
Param 截取二进制数组的参数
Reverse 是否反转
Note 笔记,不做说明
Method,param要搭配使用,代表的是截取多少长度的byte[]数组
Length 定长,param = 4,代表从左到右截取的长度就是4.
Tail 到倒数第几位,假设总长度是12,param = 1。那么截取的长度就是11.
Untils 直到某一个字符,假设待解析的数组为 0x01,0x02,0x03,0x80,0x07,0x09
Param = 0x80,截取的长度是3,param = 0x07截取的长度是4
解析顺序都是从左到右依次解析!
完整的交互示例
读取设备每个端口的状态
服务器读取设备每个端口当前的状态。
数据方向:
模块——设备
命令:
|
CMD |
0x01 |
数据(上面表示数据含义,下面表示示例数据):
|
NULL |
|
0x00 |
参数 |
是否必填 |
说明 |
|
NULL |
是 |
固定为0x00 |
回复数据(上面表示数据含义,下面表示示例数据):
|
PORT_NUM |
PORT1_STATUS |
PORT2_STATUS |
… |
|
0x03 |
0x02 |
0x01 |
… |
参数 |
是否必填 |
说明 |
|
PORT_NUM |
是 |
设备端口数量 |
|
PORT_STATUS |
是 |
端口状态: 0x01:端口空闲;0x02:端口正在使用;0x03:端口禁用;0x04:端口故障。 |
示例:模块发送:EE 09 01 00 00 00 00 00 00 00 08
模块接收:66 13 01 00 00 00 00 00 00 0A 02 01 01 01 01 01 01 01 01 01 1B (1端口正在充电,其他端口空闲 )
1:编写对应的Model
2:对应的Controller
使用锁的阻塞特性,实现同步效果,返回给平台对应的byte[]。
3:对应的Device:
设备收到帧数据后,确定是否为平台下发数据,如果是使用锁的阻塞性,赋值到通道数据容器里,然后解锁,平台下发的阻塞状态就被唤醒,获取到通道数据容器内的数据。
其他Controller
在流程封装好后,扩展就很方便,示例如下
这样子扩展,就可以完成其他对应的平台发送设备回复的指令!
感谢支持
今天的文章大衍半导体有限公司_MQTT通信协议[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/65182.html
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图1 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/88eaebe94ae840fc8fce761bc1af5622.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图3 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/48cf7cf02bcf4c8ab9610b27eede9ce9.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图5 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/3f3bf4e1c1a04086a86636a14b46ff86.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图7 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/a4ca481ca3ce4cbc903cdb7188eee12a.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图9 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/01adcaecaba04f66b1cc13e5e985fce4.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图11 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/585529b234d8462585dbeabd95a90ac5.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图13 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/773ee6c666f84727b411e1dc4ceda5f4.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图15 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/0b39daebaefe4256bcd2e64cd620c479.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图17 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/4f54c451f75c4a2b95379d06c1345ba5.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图19 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/d2a0b7c6638a420ca356e1412dafebb3.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图21 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/46b1615b5de24e6897216a5003f3815d.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图23 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/ef4f018a63664783a618ee6c31dd7346.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图25 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/76d573b5705c49588117415a9b18953c.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图27 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/a3c49f0a328d4bfab31f43aa34a208f5.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图29 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/f5e82e53a7b04a6a8c5c0aed557f0351.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图31 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/1b6246cad0214f769eb94882b06d32d5.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图33 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/ad52b25a87b048eabb41e59ae919eea0.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图35 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/0c1369464e4b4299a1ca2de025cc27c1.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图37 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/eb15fbceebab467984ab33b513fe4e2d.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图39 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/6ecf32bb58b64d3587baf8e0b99302fa.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图41 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/32cd700e150d480fa6c0f2799bdfabbe.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图43 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/5a48c39d265b4908a17868e9157aa8ca.png)
![大衍半导体有限公司_MQTT通信协议[通俗易懂]插图45 大衍半导体有限公司_MQTT通信协议[通俗易懂]](https://img.mushiming.top/app/bianchenghao_cn/66a53ad210b04c0b8fedbf9e761f7f30.jpeg)