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