模板解析“固定包头”数据适配器
定义
定义
一、说明
和用户自定义适配器相比,使用模板解析将会更加简单流程。例如在上节所说的数据格式,前三个字节是固定长度的,为3,而后续长度则由第一个字节计算可得,所以我们把类似这样的数据格式,叫做“固定包头”数据,那么,他就可以使用固定包头数据解析模板。
例如:假设如下数据格式。
- 第1个字节表示整个数据长度(包括数据类型和指令类型)
- 第2字节表示数据类型。
- 第3字节表示指令类型。
- 后续字节表示其他数据。
二、特点
- 可以自由适配**99%**的数据协议(例如:
modbus
,电力控制协议等)。 - 可以随意定制数据协议。
- 可以与任意语言、框架对接数据。
三、创建适配器
3.1 观察数据
一般来说,绝大多数数据协议都是固定包头长度的,例如:modbus协议,或者文本即将解析的数据格式。他们都是经典的固定包头格式,具有Header+Body的明显分割点。但有时候,也有一些数据有好几段,例如:具有Crc校验的数据,也就是Header+Body+Crc的格式,这时候,我们可以把Body+Crc看做一段数据,然后从Header解析BodyLength以后,加上Crc的长度。最后会在OnParsingBody时,将Body和Crc一起投递,届时做好数据分割即可。
所以,学会观察数据,是使用模板解析的前提。