新手求教,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
搜索用js过滤数组 不太严谨地测试了一下,把TCP IN节点的输出的BUFFER改成字符串的话,应该能正常了。问题应该是出在数据类型没对上 lyg21883 发表于 2023-1-28 11:44
不太严谨地测试了一下,把TCP IN节点的输出的BUFFER改成字符串的话,应该能正常了。问题应该是出在数据类型 ...
是的,字符串形式的输出是可行的,但数据“变味了”,我是想看下TCPIN输出buffer的485十六进制数据情况下,Swicth如何直接对原buffer数据进行筛选匹配,不然后面又要做一次变换才能还原输入的数据了。 jjcs 发表于 2023-1-24 19:01
搜索用js过滤数组
感谢回复,只是看不明白,努力学习中~ :funk:没注意看楼主自己试过了那个,不知道你不同信号间的区别是哪个,如果必须用BUFFER类型的话,可以尝试在SWITCH里面,属性填msg.payload来获取第一位数进行判断,比如msg.payload == 0A,具体值可以展开下debug信息看下。当然我这个方法只能判断一位数,实际应用的话需要多些节点。我也在学习中,不清楚这样符不符合你的要求 把buffer转成数组就可以在switch中匹配了
页:
[1]