大衍物联----二进制操作

项目地址:大衍物联: 这个框架的主要作用是解析各种协议!在数据解析中,有不同的协议类型。使用责任链模式,解析出不同的协议报文,并搭配使用,我在modbus中,解析出两种帧数据,一种是注册帧,注册帧内的设备id和设备通道绑定,一种是数据帧,数据帧里能得到设备通道信息,进而得到注册的设备id,根据设备id收发信息!获取完整一帧之后,要转化成model数据,我使用注解,参考FastJson,直接解码成对应的数据。

二进制合并

大衍物联----二进制操作_第1张图片

二进制合并,为了操作方便,因为帧会设计到合并帧,这种写法比较容易进行二进制合并!

例如:

大衍物联----二进制操作_第2张图片

参数为静态数组,或者动态数组!

二进制缓存

大衍物联----二进制操作_第3张图片

大衍物联----二进制操作_第4张图片

从缓存池里拿取byte[]数组, 拿取后五秒后,再放置到缓存池内。也就是说byte[]的操作要在五秒之内,这个时间如果线程不阻塞是没有问题的,如果阻塞可以调大参数!

这样写的目的,是根据二进制数组大小,取得对应的缓存二进制数组。物联网设备多,交换数据量如果不适用缓存池,重复new二进制数组,稳定性就不成了,会报OOM错误!

你可能感兴趣的:(物联网,漂亮的代码,java,数据结构,物联网)