一 ,netty概念:
网关实现作为服务器和设备之间的中间件 ,处理设备和服务器之间的通讯模式,微观上说,类似设计模式的中适配器模式中的适配器组件,作为上位机和下位机之间的数据的通讯
/**
* 自定义TCP通讯协议包的抽象类
*/
public class ConsumeTCPProtocol implements Serializable {//字节流传输实现序列化
//打印协议的日志对象
private static final Log LOG = LogFactory.getLog(HonooProtocolPackage.class);
//引导字节 固定值 0x7D7D
//2b
private byte []Start = {0x7D,0x7D};
//(目标地址1-65534)表示接收方设备地址(+)。若该值0xFFFF时,表示为广播命令
//2 b
private byte [] TargetADR = {0x00,0x00};
//源地址(1-65534),表示发送方设备地址
//2 b
private byte [] SourceADR = {0x00,0x00};
//流水号 根基指令好判断是否是同一个数据包,根据校验位进行拆包
//3 b
private byte [] SerialNo;
//报文长度 ---从命令字开始计算,到数据包结束,不包含校验位。俩个字节高位前,低位在后。报文大小(MAX)=2400
private byte [] Len;
//命令字,改数据包要执行的操作指令码
private byte CMD;
//真实的数据 ,根据实际报文长度计算实际接收的报文内容,有部分数据报文前还含有子命令,在运用到时会具体说明。
private byte [] DATA;
//校验, 从Addr T开始, 到报文结束,所有字节参与校验,校验方式为CRC16
private byte [] CRC;