Skip to content

20210429关于baitsfilter所需要具备的功能 哪些river会使用它

zqy edited this page Apr 29, 2021 · 1 revision

1.tcpusrio808_writer:需要用它过滤出属于自己的modbus码,也就是说:

对于192.168.195.249而言{0x49,0x4f,0x30,0x31}是属于他的,那么他就必须把{0x49,0x4f,0x30,0x32},{0x49,0x4f,0x30,0x33}扔掉
假如对于192.168.195.239而言{0x49,0x4f,0x30,0x32}是属于他的,那么他就必须把{0x49,0x4f,0x30,0x31},{0x49,0x4f,0x30,0x33}扔掉
后期的开门,开天窗逻辑其实也是一样的,只要设定让header在册的逻辑

2.tcpflutterui_writer:如modbus码会发送至所有的writer,因此至少modbus码是一定需要被过滤掉的,同时autocode也是拥有固定长度的baits,因此也可以使用len来过滤

3.tcpusrio808_reader:目前的版本第一个就采用了usrio808_firstconnectfilter这也必然是有原因的,虽然唯一的数据源只有usrio808这一物理设备
但是无法排除他给你发送莫名其妙无法识别的baits的可能性,因此需要用baitsfilter实现预过滤:

需验证头部包含在册header(0x49,0x4f,0x30,0x31)
需验证长度在某个范围之内(太长的丢弃)

4.tcpflutterui_reader:很可能读取的会是authcode码(有固定长度),以及心跳包(有固定长度或头),因此依然需要baitsfilter
但是他需要先实现一个flutterui模拟器再去考虑具体的形式,因此目前看来只需要完成前三个
更主要的是,似乎无论是前三个还是所有,他们都需要baitsfilter
同时对于Events与Modbus模块:
Modbus作为数据源可以直接无差别发送给writer
而Events虽然作为实体可以直接json化,但是还是需要进行一次authcode才能无差别发送给writer,因此tcpflutterui_writer是需要配置authcode的 这就好比说,如果modbus模块的码都是没有添加crc尾的,那么tcpusrio808_writer就需要配置crc一样

Clone this wiki locally