2017-07-21 30 views
2

所以我只是要掌握節點紅色,我需要創建一個條件全局函數。節點紅 - 需要一個數字值的多輸入功能

我設置的數值兩個獨立global.payloads 0或1

我需要的是現在的情況發生,如果global.payload爲值1什麼然後按照這個流程,如果等於值0,然後按照這個。

我只是對函數語句的語法有點困惑。任何幫助感激地讚賞。

+0

也許我下面的新答案更好地反映了你想要完成的事情,因爲你的評論是你正在使用兩個獨立的全局有效載荷。 – TomServo

回答

1

既然你不接受目前的答案,以爲我會試試這個。 我認爲這是你需要處理來自兩個獨立的全球背景的輸入。我在這裏模擬他們有兩個單獨的inject節點證明:

enter image description here

checkconfinject節點發出1或0同爲meshstatus節點。用您的真實輸入替換這些注入節點。真正的工作是在函數內部完成:

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

您可以使用Switch節點來執行此操作,而不是使用Function節點。

enter image description here

+0

嗨,感謝您的反饋...我實際上有2個global.payloads ...一個叫global.payload(checkconf),另一個叫global.payload(meshstatus)我需要評估一個條件,如果全局.payload(meshstatus)設置爲1,然後檢查global.payload(checkconf)是否也等於1 ..如果是,那麼做這個,如果沒有,那麼做這個..我一直在嘗試我的大腦在結試圖解決這個問題:-S – blupacetek

相關問題