babojoe 发表于 2023-1-24 16:25:36

新手求教,switch节点规则配置

本帖最后由 babojoe 于 2023-1-24 17:58 编辑

小白学习NR,想用485设备通过NR流程控制一盏灯,如下图所示,485设备发送“0A 0A 0A 00”至tcp in节点,debug1可以收到“10,10,10,0”,求教Swicth应该如何配置筛选规则才能只允许“0A 0A 0A 00”或“10,10,10,0”信息送至debug2呢?另外测试,如果tcp in的输出由buffer改成字符串形式是可以实现规则筛选,但数据变成“CgoKAA==”之类的字符了。
https://bbs.hassbian.com/forum.php?mod=image&aid=44850&size=300x300&key=456c069bffa2b826&nocache=yes&type=fixnone

https://bbs.hassbian.com/forum.php?mod=image&aid=44851&size=300x300&key=3343f5baa4c37b4d&nocache=yes&type=fixnone

https://bbs.hassbian.com/forum.php?mod=image&aid=44852&size=300x300&key=4ffbd6e3ac08c026&nocache=yes&type=fixnone

jjcs 发表于 2023-1-24 19:01:27

搜索用js过滤数组

lyg21883 发表于 2023-1-28 11:44:52

不太严谨地测试了一下,把TCP IN节点的输出的BUFFER改成字符串的话,应该能正常了。问题应该是出在数据类型没对上

babojoe 发表于 2023-1-28 14:37:21

lyg21883 发表于 2023-1-28 11:44
不太严谨地测试了一下,把TCP IN节点的输出的BUFFER改成字符串的话,应该能正常了。问题应该是出在数据类型 ...

是的,字符串形式的输出是可行的,但数据“变味了”,我是想看下TCPIN输出buffer的485十六进制数据情况下,Swicth如何直接对原buffer数据进行筛选匹配,不然后面又要做一次变换才能还原输入的数据了。

babojoe 发表于 2023-1-28 14:38:45

jjcs 发表于 2023-1-24 19:01
搜索用js过滤数组

感谢回复,只是看不明白,努力学习中~

lyg21883 发表于 2023-1-28 15:11:35

:funk:没注意看楼主自己试过了那个,不知道你不同信号间的区别是哪个,如果必须用BUFFER类型的话,可以尝试在SWITCH里面,属性填msg.payload来获取第一位数进行判断,比如msg.payload == 0A,具体值可以展开下debug信息看下。当然我这个方法只能判断一位数,实际应用的话需要多些节点。我也在学习中,不清楚这样符不符合你的要求

nisofer 发表于 2023-2-26 23:17:08

把buffer转成数组就可以在switch中匹配了
页: [1]
查看完整版本: 新手求教,switch节点规则配置