node-red教程2 第一条数据流
2.1 Node-RED的結構框架
Node-Red由兩部分組成。一部分是用戶可見的數據流的編輯界面,另一部分是數據流的執行。剛剛在PowerShell中打開node-red時,我們已經見過了數據流的執行提示;打開瀏覽器訪問http://localhost:1880,就可以看到Node-Red的編輯界面。
這里寫圖片描述
數據流的編輯界面由四部分組成。最左邊是已定義的各種node的列表,我們稱之為控件區;中間是一個工作區,用戶可以拖放node到工作區來創建node的實例,Node-Red為每個node實例賦予了唯一的ID,通過雙擊node實例來編輯單個實例,通過連接node的in和out創建數據流,node實例會記錄out口連線的信息,每條線會記錄目標node實例的信息;最右邊是debug node的輸出區及node的幫助信息顯示區。右上角有‘Deploy’(或者“部署”)按鈕,用來把編寫的程序保存到本地并執行。
數據流的執行:通過讀取用戶編輯的數據流信息,可以知道node的類型及可編輯部分的值,據此來創建node的可執行實例;通過讀取編輯時連線的信息,可以得到可執行實例間的數據關系,實例間的數據發送和接受是利用Node.js的event模塊實現的。
注意:在Node-Red的根目錄下,可以通過執行‘node red.js’運行Node-RED。Node-Red編輯完成的數據流默認保存在flows_.json,可以通過執行‘node red.js flows_.json’,在不啟動瀏覽器的情況下執行已經編輯完成的程序,這個在實際部署的時候非常有用。
注意,關閉瀏覽器并不會導致已經部署好的數據流停止執行。在windows系統中,需要停止node-red中的批處理命令,可以輸入ctrl+c。在樹莓派中,可以命令行中輸入node-red-stop。
2.2 hello world
所有與編程相關的教程總是喜歡從hello world開始,node-red也不例外。作為可視化的編程工具,nod-red的hello world與其它編程語言有些不一樣。
2.2.1 拖拽輸入與輸出節點
啟動node-red以后,在瀏覽器中,將控件區內的輸入節點“inject”與輸出節點“debug”,使用鼠標左鍵拖入工作區內。
這里寫圖片描述
拖入以后發現“inject”變成了“時間戳”,“debug”變成了“msg.payload”,這是正?,F象。如果你的計算機或是樹莓派運行在英文環境下,理所當然,工作區內的節點的名字會變成英文。原因在于,節點位于控件區的時候,表明它是“某種”節點,這種節點叫做“inject”或是“debug”。拖到工作區以后,它就是“某個”節點,具體到某個節點,當然就是有名字的。前者是抽象的,后者是具體的。為了方便表述,前者可以稱之為控件,后者可以稱之為節點。如果有面向對象的編程經驗,可以很輕松的理解,“inject”與 “時間戳”的關系,其實很像類與對象的關系。
2.2.2 修改節點的配置
雙擊“時間戳”,在屏幕的右側會彈出如下窗口
這里寫圖片描述
點擊“內容”選項后邊的小三角,在下拉菜單選擇文字列,并在輸入框內輸入“hello world”,然后點擊完成。
這里寫圖片描述
可以觀察到,工作區中的“時間戳”變成了“hello world”。
這里寫圖片描述
輸出節點暫時不修改。
2.2.3 連接輸入與輸出節點
在node-red中用“flow”來表示數據的流向,中文意思是“數據流”。這其實是一個很生動的翻譯,這個“流”與小溪流的“流”是同一個含義,只不過前者流淌的是數據,而后者流淌的是水。數據要從輸入節點到達輸出節點,如何連接呢?
很簡單,用一條線連接。
Node-red總是默認數據從左流向右,所以輸入節點都有一個特點:數據接口在右側,見下圖標記1;輸出節點也有一個特點,數據的接口在左側,見2;還有一些節點是特殊的,既有輸入又有輸出,那么左右兩側都有數據的接口,見3。
這里寫圖片描述
注意,這里的輸入與輸出都是相對于“整個數據流”來說的。其實單單對于輸入節點來說,它負責向外輸出一個數據,比如“hello world”。那么為什么把它叫做輸入節點呢?因為對于整個數據流來說,輸入節點為數據流輸入了一個“hello world”信息,所以稱之為輸入節點。
使用鼠標按住左鍵,從上圖接口1連接到接口2,即可完成輸入輸出的節點連接。用一條線連接輸入輸出節點,大概是最簡單最直觀的構建數據流的方式了。
這里寫圖片描述
2.2.4 部署
我們發現節點的右上角有一個藍色的圓點,這個圓點的意思是,此節點還沒有部署和保存。部署按鈕位于工具欄,在瀏覽器的右上角。雖然名字叫做部署,但其實有部署和保存兩種功能。保存的含義相信大家都能理解,部署對于沒接觸過的人可能就比較陌生了。部署通俗來說就是“讓它們工作”,我們在工作區放置了一些節點,通過部署按鈕,可以讓它們工作起來。
其下拉菜單中還有一些別的選項如下。
這里寫圖片描述
點擊部署按鈕,如果數據流與節點都沒有問題,會有“部署成功”的彈窗提示。節點上藍色的圓點也消失了。
這里寫圖片描述
2.2.5 調試
“inject”節點可以手動輸入消息,節點左側有一個小按鈕,點擊按鈕可以手動注入消息,見按鈕1。在點擊inject節點的按鈕之前,必須確保debug節點是可用的,即按鈕必須是“伸出來”的,如按鈕2,而不是像按鈕3一樣“縮回去”,按鈕“縮回去”的debug節點不工作。點擊按鈕可以切換節點是否工作。
這里寫圖片描述
這里寫圖片描述
點擊按鈕1,屏幕上方會提示:“成功注入:hello world”
在屏幕右側有調試窗口,窗口內可以看到一條消息,且內容正好是輸入節點的信息:“hello world”
這里寫圖片描述
總結
以上是生活随笔為你收集整理的node-red教程2 第一条数据流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node-red教程 5 函数节点
- 下一篇: 2020上海学区房楼市,到底发生了什么?