繼上一篇章 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 類型節點,不對外輸出。
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 節點
編輯 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 作為輸出數據。
最終流圖如下所示:
4. 下載流圖重復Step.3 下載流圖 的步驟,下載最新流圖,可以看到板載LED整以1秒的周期進行切換顯示。
審核編輯:湯梓紅
評論
查看更多