基于工厂模式的包识别引擎设计,和一般工厂模式不同是:
- 匹配规则查询表中是一个树形结构,既有精确规则,又有模糊规则,匹配的过程需要多次查询的操作,从精确到模糊直至无法匹配。
- 匹配规则查询表能够支持添加新规则操作
1 问题描述
A NMS基础协议
NMS是服务器与硬件设备(具体为RTU或者网关)工作的通信协议,协议格式描述如下:
网关地址 | 节点地址 | 源类型 | 包序号 | 包类型 | 负载长度 | 负载 |
---|---|---|---|---|---|---|
gateway_mac | rtu_mac | source_type | packet_id | packet_type | payload_length | payload |
8 | 8 | 1 | 4 | 1 | 1 | - |
前23字节为包头部,各个字段描述如下:
- 网关地址:64位长整型,显示为十六进制形式。
- 节点地址:64位长整型,显示为十六进制形式。
- 源类型:表示哪一种设备,主要有 Gateway/GPRS-RTU/Mesh-RTU 三种类型的设备。
- 包序号:32位整数,0 - 4294967295 。
- 包类型:该包的类型。
- 负载长度:整数0-255,表示后面的负载长度,实际中负载长度小于255。