繼上一篇章 EsDA MPC-ZC1 入門(一)——軟件安裝,本章節以最簡單的 LED控制例程來介紹 AWFlow 應用流圖的基本開發過程。
整個教程通過5個步驟,演示了節點添加、配置、連線等基本開發過程,實現了LED點亮, 閃爍, 流水燈等功能。
Step.1搜索LED節點
可通過搜索框,快速定位到 LED 節點。
每一個節點都有對應的幫助文檔,詳細介紹了節點的屬性、輸入參數、輸出數據、行為特性和對應例程。
1. LED節點屬性
- 名稱(Name):節點名稱,可用于索引查找本節點;
- 顯示名稱(Display Name):用于畫布上顯示的名稱,僅做顯示;
- 設備名稱(Device Name):用于索引硬件 LED 設備,通常由目標板提供枚舉選項;
- 初始狀態(Initial State):LED 初始狀態,on(亮)或 off(滅)。
2. LED輸入參數
- payload(負載數據):指示 LED 的狀態參數,0(滅),1(亮),2(反轉);
- timer(閃爍周期):當本參數存在時,LED 進入閃爍模式,并按照參數值,周期性閃爍;
- device_name(設備名稱):通常用于多 LED 控制時,匹配指定 LED 設備;
- fast_blink(閃爍次數):當使能 timer 功能,此參數可用于設置閃爍參數。
所有節點的輸入參數皆由上級節點輸出提供,通常為 msg 對象攜帶的對應屬性參數。
3. LED輸出數據LED 為 sink 類型節點,不對外輸出。
相關的節點類型介紹可參考《AWFlow節點開發指南》
https://awstudio.zlg.cn/pro/docs/awstudio_docs/AWFlow_Node_Develop_Guide/
Step.2添加LED節點
將 LED 節點推拽至畫布上,完成節點添加。
雙擊畫布上的 LED 節點,打開節點配置界面。
此處選擇 led_red 設備,對應板載的紅色LED,并將初始狀態配置為 on,然后點擊完成。
屬性說明可以參考 LED 節點屬性章節。
Step.3 下載流圖
點擊請選擇目標板,選中目標板通信接口(AWFlow Designer 后臺會自動檢測符合AWFlow 通信標準的通信接口)。
點擊下載流圖按鈕。
下載完成。
此時可以看到板子的紅色LED已經亮起,這是因為我們配置了LED的初始狀態為on,所以當LED節點被加載時,會點亮對應的LED。
雖然LED已經成功點亮,但是僅使用 LED 節點并不能實現復雜的狀態控制功能,我們需要進一步添加其他節點來實現復雜業務。
Step.4添加業務
大多數帶有業務的數據流,都會根據系統中的一些事件來做出響應的,一般以一個 pump 類型的節點作為起始點,通過此節點接收系統事件來觸發數據流執行,這里我們以 1秒反轉一次LED狀態作為業務。我們需要添加一個 timer 節點,利用 timer 節點產生的周期事件來觸發數據流執行,同時推動一個 fscript 腳本節點來向 LED 節點輸入反轉的命令。
關于timer、fscript節點的介紹可參考《AWFlow節點使用手冊》
https://awstudio.zlg.cn/pro/docs/AWFlow/
添加timer節點
添加fscript節點
編輯fscript節點
如圖片所示:
- 添加 timer、fscript 節點,并進行連線;
編輯 fscript 節點腳本。
msg.payload = 2
- 可參考LED 輸入參數
timer節點默認以 1 秒為周期,觸發數據流運行,向fscript傳遞定時計數值,此處fscript節點并未使用timer的計數值,僅利用其周期事件來向LED節點發送反轉命令。
下載流圖
重復Step.3 下載流圖的步驟,下載最新流圖,可以看到板載紅色LED整以1秒的周期進行反轉。
Step.5擴展業務
為了更加深入的了解業務的開發過程,這里通過流水燈業務進一步擴大業務規模。
1. 添加新數據流
按照之前添加節點的方式,新增額外2路LED控制數據流,如下圖所示:
可選中畫布中的 fscript 和 led 節點通過 ctrl+c 復制,ctrl+v 粘貼來快速添加節點。
2. 配置LED節點
3路 LED 配置如下圖所示:
3. 配置業務節點
3路 fscript 節點配置如下圖所示:
前面我們了解到 timer 節點會周期性向下一節點推送一個定時器計數值(msg.payload),我們可利用這個計數值來索引不同的LED。
if (msg.payload /1000 %3 == 0) {
output.payload = 1} else {
output.payload = 0
總共有3路LED,那么我們通過msg.payload /1000 % 3計算來獲得3個索引條件。
timer 節點計數精度為1毫秒,默認計數周期為1秒,除以 1000 獲得秒計數值。
代碼 | 點亮LED |
msg.payload /1000 %3 == 0 | 紅色 |
msg.payload /1000 %3 == 1 | 藍色 |
msg.payload /1000 %3 == 2 | 綠色 |
由于timer節點的輸出數據(msg),需要被推送到多路數據流上,所以為了不影響其他數據流的使用,這里我們選擇output作為輸出數據。
關于output、msg對象的詳細描述,可參考《AWFlow節點開發指南》
https://awstudio.zlg.cn/pro/docs/awstudio_docs/AWFlow_Node_Develop_Guide/
最終流圖如下所示:4. 下載流圖重復Step.3 下載流圖的步驟,下載最新流圖,可以看到板載LED整以1秒的周期進行切換顯示。
-
led
+關注
關注
242文章
23264瀏覽量
660724
發布評論請先 登錄
相關推薦
評論