首先说明一下,在本文里,流=flow=tab=规则,以下会混用这几个名词。
需求
基于Node-red的某工程,有规则1,规则2,规则3。
工程有个前端画面名为“配置画面”,使用者在配置画面里,使用3个0-1开关控件,分别控制规则1、规则2、规则3的启用/禁用。
技术路线
技术路线有三条,一是通过全局变量,控制所有流内的数据流向,二是在Node-red runtime里修改工程的流数据文件(如myFlow.json),然后重启Node-red,三是使用外部配置软件修改工程的流数据文件,然后重启Node-red。这三条技术路线,以下分别说明:
路线1:全局变量
首先,在Node-red里实现一个“配置画面”的UI,在该UI对应的流里,让0-1开关控件的数值直接控制global里的变量数值(如enable_r1=1);再在规则1的入口,通过switch节点判断enable_r1是否等于1,来决定是否激活后续节点。如果规则1有多个入口,就在每个入口都放个switch节点。
规则2、3同理。
这是个最基本的技术路线。优点是糙快猛,可以实时启用/禁用规则。缺点是实现起来略麻烦,要设置全局变量,还得放(可能很多个