所以我只是掌握了node-red,我需要创建一个条件全局函数。
我有两个单独的global.payloads设置为0或1的数字值。
我现在需要做的是,如果global.payload等于值1,则遵循此流程,如果它等于值0,则遵循此流程。
我只是对函数语句的语法有点困惑。任何帮助感激不尽。
答案 0 :(得分:2)
由于您还没有接受当前的答案,我想我一试。
我认为这是处理来自两个独立全局上下文的输入所需要的。我在这里用两个独立的inject
节点模拟它们来演示:
checkconf
inject
节点为meshstatus
节点发出1或0.替换那些注入节点的实际输入。真正的工作是在函数内部完成的:
var c = context.get('c') || 0; // initialize variables
var m = context.get('m') || 0;
if (msg.topic == "checkconf") // update context based on topic of input
{
c = {payload: msg.payload};
context.set("c", c); // save last value in local context
}
if (msg.topic == 'meshstatus') // same here
{
m = {payload: msg.payload};
context.set('m', m); // save last value in local context
}
// now do the test to see if both inputs are triggered...
if (m.payload == 1) // check last value of meshstatus first
{
if (c.payload == 1) // now check last value of checkconf
return {topic:'value', payload: "YES"};
}
else
return {topic:'value', payload: "NO"};
务必设置"主题"您用作输入的任何属性,因此if
语句可以区分两个输入。祝你好运!
答案 1 :(得分:1)