欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于EsDA MPC-ZC1快速實(shí)現(xiàn)按鍵高級應(yīng)用

AGk5_ZLG_zhiyua ? 來源:ZLG致遠(yuǎn)電子 ? 作者:ZLG開發(fā)者社區(qū) ? 2022-10-21 11:55 ? 次閱讀

按鍵是嵌入式產(chǎn)品常用的人機(jī)交互方式。為了更好的結(jié)構(gòu)設(shè)計(jì)、更低的制造成本,對按鍵功能會有更高的要求,常見有單擊、雙擊和長按等需求。本文將基于 EsDA 開發(fā)套件介紹如何快速完成按鍵業(yè)務(wù)的開發(fā)。

簡介

按鍵主要是指輕觸式按鍵,一種常用的電子開關(guān),通過施加壓力,使內(nèi)部金屬彈片接觸,形成接通;撤銷壓力時(shí)接觸點(diǎn)斷開連接,從而產(chǎn)生關(guān)斷效果,其物理特性正好對應(yīng)到軟件中的二進(jìn)制狀態(tài)。 EsDA 平臺在使用按鍵功能時(shí),只需要通過拖拽節(jié)點(diǎn)、連線繪制流圖,即可實(shí)現(xiàn)按鍵信號捕獲與處理,大大地簡化了開發(fā)流程,縮短了項(xiàng)目開發(fā)周期,為客戶產(chǎn)品搶占市場提供先機(jī)。 項(xiàng)目開發(fā)過程,除去單一的識別按下、松開等單擊事件外,還經(jīng)常需要支持雙擊、三擊和長按等復(fù)雜事件。本文主要論述如何通過 EsDA 開發(fā)平臺和 MPC-ZC1 工控單板快速實(shí)現(xiàn)按鍵的多種應(yīng)用場景。

按鍵相關(guān)節(jié)點(diǎn)介紹

按鍵相關(guān)的節(jié)點(diǎn)有button和button_expand,用戶可在AWFlow Designer中查看相關(guān)介紹。button節(jié)點(diǎn)用于綁定IO,配置按鍵高、低電平觸發(fā)模式,實(shí)現(xiàn)基礎(chǔ)的按鍵功能;button_expand節(jié)點(diǎn)用于統(tǒng)計(jì)處理button節(jié)點(diǎn)的行為,并輸出給下一個(gè)消費(fèi)者,是對button按鍵節(jié)點(diǎn)功能進(jìn)行的擴(kuò)展。

1.button節(jié)點(diǎn)

button節(jié)點(diǎn)與GPIO綁定之后,即可實(shí)時(shí)讀取到按鍵的狀態(tài),當(dāng)用戶按下/松開按鍵時(shí),該節(jié)點(diǎn)即可輸出相應(yīng)的物理狀態(tài)(當(dāng)用戶按下按鍵時(shí),節(jié)點(diǎn)輸出"on",當(dāng)用戶松開按鍵時(shí),節(jié)點(diǎn)輸出"off")。其主要屬性如下:

10ba0ffc-50f3-11ed-a3b6-dac502259ad0.png

顯示名稱:在流圖顯示上所展示的名稱,用戶可自行修改;

對應(yīng)的GPIO編號:按鍵信號引腳所接的引腳編號;

觸發(fā)條件:可選擇是下降沿觸發(fā)(fall),還是上升沿觸發(fā)(up),具體模式由用戶的硬件模塊電路的實(shí)現(xiàn)方式?jīng)Q定;

輸出變量:在按鍵按下時(shí)輸出on,松開時(shí)輸出off,在初始化完成以及按鈕狀態(tài)發(fā)生改變的時(shí)候會輸出當(dāng)前狀態(tài)。

2.button_expand節(jié)點(diǎn)

2.1節(jié)點(diǎn)功能簡介


button_expand節(jié)點(diǎn)為按鍵節(jié)點(diǎn)button的擴(kuò)展信號處理節(jié)點(diǎn),主要配合button節(jié)點(diǎn)進(jìn)行使用,其主要功能為監(jiān)控button節(jié)點(diǎn)的輸出信號情況,從而判斷按鍵觸發(fā)方式如單擊、雙擊、連擊、長按等等。 該節(jié)點(diǎn)主要包含兩大類主模式,分別為觸發(fā)條件模式與行為統(tǒng)計(jì)模式。觸發(fā)條件模式,當(dāng)button的信息情況符合預(yù)先設(shè)定時(shí),節(jié)點(diǎn)將直接觸發(fā),同時(shí)不會設(shè)置payload屬性。行為統(tǒng)計(jì)模式,該模式下將對button的信息情況進(jìn)行次數(shù)統(tǒng)計(jì),同時(shí)會設(shè)置payload屬性將結(jié)果進(jìn)行輸出。


2.2八種操作模式

cycle mode(trigger):用戶在周期時(shí)間內(nèi)按下指定次數(shù)的按鍵時(shí),該節(jié)點(diǎn)將觸發(fā)輸出;

continuous mode(trigger):用戶連續(xù)按下按鍵,且每次按鍵的時(shí)間小于設(shè)定時(shí)間間隔,將進(jìn)行累加,直至超出設(shè)定間隔時(shí),統(tǒng)計(jì)按鍵次數(shù),若符合設(shè)定次數(shù),該節(jié)點(diǎn)將觸發(fā)輸出;

press-release mode(trigger):用戶按下按鍵后持續(xù)一段時(shí)間再松開,統(tǒng)計(jì)按下-松開的時(shí)間,若持續(xù)時(shí)間在設(shè)定的時(shí)間段內(nèi),該節(jié)點(diǎn)將觸發(fā)輸出;

keep press mode(trigger):用戶按下按鍵持續(xù)不放,若持續(xù)時(shí)間超過設(shè)定時(shí)間,該節(jié)點(diǎn)將觸發(fā)輸出;

cycle mode(statistical):統(tǒng)計(jì)用戶在周期時(shí)間內(nèi)按下的按鍵次數(shù),然后通過msg.payload(int)傳給后續(xù)的節(jié)點(diǎn);

continuous mode(statistical):用戶連續(xù)按下按鍵,且每次按鍵的時(shí)間小于設(shè)定時(shí)間間隔,將進(jìn)行累加,直至超出設(shè)定間隔時(shí),統(tǒng)計(jì)按鍵次數(shù)后通過msg.payload(int)傳給后續(xù)的節(jié)點(diǎn);

press-release mode(statistical):用戶按下按鍵后持續(xù)一段時(shí)間再松開,節(jié)點(diǎn)記錄按鍵持續(xù)的時(shí)間,然后通過msg.payload(int,單位ms)傳給后續(xù)的節(jié)點(diǎn);

keep press mode(statistical):用戶按下按鍵持續(xù)不放,在持續(xù)期內(nèi),每超用戶設(shè)定的周期時(shí)間將輸出一次按鍵按下至此刻的時(shí)間統(tǒng)計(jì)。

* 若論功能模式,則可分為兩大類,分別為trigger模式(四種)和statistical模式(四種)。同種操作碼類型下,trigger模式與statistical模式可以相互替換,但對流圖和數(shù)據(jù)的處理卻有一定的區(qū)別。具體區(qū)別在后續(xù)詳細(xì)講解。


2.3輸入變量


由button節(jié)點(diǎn)所輸出的信號對象。

2.4輸出變量


節(jié)點(diǎn)的主題,用戶可自行設(shè)置。

應(yīng)用案例

本應(yīng)用將通過4個(gè)應(yīng)用案例,分別講解cycle mode(trigger)、continuous mode(trigger)、press-release mode(trigger)和keep press mode(trigger)操作類型的應(yīng)用。

硬件連接

按鍵模塊引腳展示

10cd53f0-50f3-11ed-a3b6-dac502259ad0.jpg

* 該模塊為下降沿觸發(fā),故流圖中的button節(jié)點(diǎn),選擇下降沿觸發(fā)方式。

按鍵模塊與ZC1板連接情況

10ef2cdc-50f3-11ed-a3b6-dac502259ad0.png

1.cyclemode(trigger)模式實(shí)驗(yàn)

1.1實(shí)驗(yàn)簡介

本實(shí)驗(yàn)使用 MPC-ZC1 板載的紅色LED、綠色LED 作為實(shí)驗(yàn)結(jié)果指示燈。本實(shí)驗(yàn)中,通過LED的不同顯示狀態(tài)來指示不同的按鍵事件,對應(yīng)關(guān)系如下表。

操作 事件 效果
單擊 開啟紅燈 led燈中紅燈亮
雙擊 開啟綠燈 led燈中 綠燈亮
三擊 關(guān)閉所有燈光 led燈熄滅

1.2流圖設(shè)計(jì)

113a040a-50f3-11ed-a3b6-dac502259ad0.png


其中,單擊、雙擊、三擊名稱節(jié)點(diǎn),均為button_expand節(jié)點(diǎn),只是顯示名稱不同而已。同理,顯示名稱為開啟紅燈、開啟綠燈、關(guān)閉所有燈光節(jié)點(diǎn),均為fscript類型節(jié)點(diǎn)。顯示名稱為紅燈、綠燈節(jié)點(diǎn)均為led類型節(jié)點(diǎn)。

1.3button_expand節(jié)點(diǎn)

1.3.1 單擊名稱節(jié)點(diǎn)

11430d34-50f3-11ed-a3b6-dac502259ad0.png

cycle mode(trigger):用戶在周期時(shí)間內(nèi)按下指定次數(shù)的按鍵時(shí),該節(jié)點(diǎn)將觸發(fā)輸出;

周期時(shí)間為800ms:表示一次觸發(fā)實(shí)限為800ms,及800ms內(nèi)按下指定次數(shù)即可觸發(fā)該節(jié)點(diǎn);

冷卻時(shí)間為1200ms:表示該節(jié)點(diǎn)被觸發(fā)后,需要的冷卻時(shí)間1200ms,該時(shí)間內(nèi)再次按下將不會觸發(fā)節(jié)點(diǎn),且節(jié)點(diǎn)冷卻時(shí)間重新計(jì)算;

按鍵次數(shù)為1:表示在指定周期且非冷卻時(shí)間內(nèi)按下1次,即可觸發(fā)該節(jié)點(diǎn);

主題和顯示名稱:用戶可自行配置,主題為傳遞給下一個(gè)節(jié)點(diǎn)的msg.topic參數(shù),顯示名稱為在流圖上節(jié)點(diǎn)顯示的名字。

該節(jié)點(diǎn)主要實(shí)現(xiàn)功能為,在800ms周期內(nèi),按鍵被按下一次,節(jié)點(diǎn)觸發(fā),冷卻時(shí)間1200ms滿后可再次觸發(fā)。

1.3.2 雙擊節(jié)點(diǎn)

11573930-50f3-11ed-a3b6-dac502259ad0.png

* 該節(jié)點(diǎn)配置與單擊名稱節(jié)點(diǎn)同理,區(qū)別在于按鍵次數(shù)修改為2,即同一周期內(nèi)只按下兩次,即可觸發(fā),且主題配置為雙擊,周期時(shí)間配置為1200ms,冷卻時(shí)間配置為800ms。用戶可參照上一小節(jié)cycle mode(trigger)模式實(shí)驗(yàn)-單擊名稱節(jié)點(diǎn)配置講解。

1.3.3 三擊節(jié)點(diǎn)

116aab32-50f3-11ed-a3b6-dac502259ad0.png

* 該節(jié)點(diǎn)配置與單擊名稱節(jié)點(diǎn)同理,區(qū)別在于按鍵次數(shù)修改為3,即同一周期內(nèi)只按下三次,即可觸發(fā),且主題配置為三擊,周期時(shí)間配置為1600ms,冷卻時(shí)間配置為400ms。用戶可參照上一小節(jié)cycle mode(trigger)模式實(shí)驗(yàn)-單擊名稱節(jié)點(diǎn)配置講解。

1.4fscript節(jié)點(diǎn)

1.4.1 開啟紅燈節(jié)點(diǎn)

if(msg.topic == "單擊"){

output.payload = 1

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息單擊,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。 1.4.2開啟綠燈節(jié)點(diǎn)

if(msg.topic=="雙擊"){
output.payload=1

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息雙擊,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。 1.4.3關(guān)閉所有燈光節(jié)點(diǎn)

if(msg.topic=="三擊"){
output.payload=0

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息三擊,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為0。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為關(guān)燈。

1.5led節(jié)點(diǎn)

1179c5d6-50f3-11ed-a3b6-dac502259ad0.png

紅燈節(jié)點(diǎn)

1188c2ac-50f3-11ed-a3b6-dac502259ad0.png

綠燈節(jié)點(diǎn)

1.6實(shí)驗(yàn)現(xiàn)象

依次對按鍵進(jìn)行單擊、雙擊和三擊操作。

119a303c-50f3-11ed-a3b6-dac502259ad0.jpg

單擊

紅燈亮起

11a3bada-50f3-11ed-a3b6-dac502259ad0.jpg

雙擊

綠燈亮起

11c331c6-50f3-11ed-a3b6-dac502259ad0.jpg

三擊

兩燈都熄滅

2. continuous mode(trigger)模式實(shí)驗(yàn)

2.1實(shí)驗(yàn)簡介

本實(shí)驗(yàn)將與cycle mode(trigger)模式實(shí)驗(yàn)所實(shí)現(xiàn)的功能相同,不同點(diǎn)在于使用的button_expand節(jié)點(diǎn)的操作模式為continuous mode(trigger)。

2.2流圖設(shè)計(jì)

*同cycle mode(trigger)模式實(shí)驗(yàn)流圖。

2.3button_expand節(jié)點(diǎn)

2.3.1 單擊節(jié)點(diǎn)

11d19b76-50f3-11ed-a3b6-dac502259ad0.png

continuous mode(trigger)模式:用戶連續(xù)按下按鍵,且每次按鍵的時(shí)間小于設(shè)定時(shí)間間隔,將進(jìn)行累加,直至超出設(shè)定間隔時(shí),統(tǒng)計(jì)按鍵次數(shù),若符合設(shè)定次數(shù),該節(jié)點(diǎn)將觸發(fā)輸出;

動(dòng)作間隔時(shí)間為500ms:表示用戶前一次按下與后一次按下間隔時(shí)間,如果小于500ms,則進(jìn)行計(jì)數(shù)。如果大于500ms時(shí),則停止計(jì)數(shù);

按鍵次數(shù)為1:當(dāng)停止計(jì)數(shù)時(shí),計(jì)數(shù)次數(shù)為1,則觸發(fā)該節(jié)點(diǎn);

主題為單擊:表示節(jié)點(diǎn)觸發(fā)時(shí),輸出給下一個(gè)節(jié)點(diǎn)的topic信息為"單擊"。

2.3.2 雙擊節(jié)點(diǎn)

11ed3f8e-50f3-11ed-a3b6-dac502259ad0.png

* 該節(jié)點(diǎn)配置與單擊名稱節(jié)點(diǎn)同理,區(qū)別在于按鍵次數(shù)修改為2,主題配置為雙擊。用戶可參照上一小節(jié)continuous mode(trigger)模式實(shí)驗(yàn)-單擊名稱節(jié)點(diǎn)配置講解。

2.3.3三擊節(jié)點(diǎn)

11fe62c8-50f3-11ed-a3b6-dac502259ad0.png

* 該節(jié)點(diǎn)配置與單擊名稱節(jié)點(diǎn)同理,區(qū)別在于按鍵次數(shù)修改為3,主題配置為三擊。用戶可參照上一小節(jié)continuous mode(trigger)模式實(shí)驗(yàn)-單擊名稱節(jié)點(diǎn)配置講解。

2.4其余節(jié)點(diǎn)配置 * 同cycle mode(trigger)模式實(shí)驗(yàn)中其他節(jié)點(diǎn)配置。 2.5實(shí)驗(yàn)現(xiàn)象

依次對按鍵進(jìn)行單擊、雙擊和三擊操作。

led燈顯示情況

同cycle mode(trigger)模式實(shí)驗(yàn)中l(wèi)ed燈顯示情況。


3.press-releasemode(trigger)模式實(shí)驗(yàn)





3.1實(shí)驗(yàn)簡介

本實(shí)驗(yàn)主要使用板子上所焊接好的led燈模塊,該模塊一共有兩種燈顏色,分別為紅燈與綠燈。本實(shí)驗(yàn)中,主要將紅燈、綠燈模擬成兩個(gè)獨(dú)立的設(shè)備,通過一個(gè)button按鍵、button_expand按鍵實(shí)現(xiàn)長按2秒、長按3秒、長按1秒,從而控制紅燈、綠燈的開關(guān)情況。


3.2流圖設(shè)計(jì)


120f11fe-50f3-11ed-a3b6-dac502259ad0.png


其中,顯示名稱為長按2秒、長按3秒、長按1秒的節(jié)點(diǎn),均為button_expand類型節(jié)點(diǎn),只是顯示名稱不同而已。同理,顯示名稱為長按開啟紅燈、長按開啟綠燈、長按關(guān)閉所有設(shè)備的節(jié)點(diǎn),均為fscript類型節(jié)點(diǎn)。顯示名稱為紅燈、綠燈均為led類型節(jié)點(diǎn)。

3.3button_expand節(jié)點(diǎn)

3.3.1長按2s節(jié)點(diǎn)

122637b2-50f3-11ed-a3b6-dac502259ad0.png

操作模式為 press-release mode(trigger):用戶按下按鍵后持續(xù)一段時(shí)間再松開,節(jié)點(diǎn)記錄按鍵持續(xù)的時(shí)間,然后通過msg.payload(int,單位ms)傳給后續(xù)的節(jié)點(diǎn);

最短持續(xù)時(shí)間為1800ms:表示按下按鍵后,1800ms以前不松開;

最長持續(xù)時(shí)間為2500ms:表示按下按鍵后,2500ms以前必松開。

* 簡而言之,從用戶剛按下按鍵開始,如果按住的持續(xù)時(shí)間介于1800ms與2500ms之間,則該節(jié)點(diǎn)觸發(fā),輸出主題"長按2s"。

3.3.2長按4s節(jié)點(diǎn)

1230d8f2-50f3-11ed-a3b6-dac502259ad0.png

* 該節(jié)點(diǎn)配置與長按2s名稱節(jié)點(diǎn)同理,區(qū)別在于最短持續(xù)時(shí)間為3500ms,最長持續(xù)時(shí)間為4500ms,主題配置為長按4s。用戶可參照上一小節(jié)press-release mode(trigger)模式實(shí)驗(yàn)-長按2s名稱節(jié)點(diǎn)配置講解。即從用戶剛按下按鍵開始,如果按住的持續(xù)時(shí)間介于3500ms與4500ms之間,則該節(jié)點(diǎn)觸發(fā),輸出主題"長按4s"。

3.3.3長按1s節(jié)點(diǎn)

1238b022-50f3-11ed-a3b6-dac502259ad0.png

* 該節(jié)點(diǎn)配置與長按2s名稱節(jié)點(diǎn)同理,區(qū)別在于最短持續(xù)時(shí)間為500ms,最長持續(xù)時(shí)間為1200ms,主題配置為長按1s。用戶可參照上一小節(jié)press-release mode(trigger)模式實(shí)驗(yàn)-長按2s名稱節(jié)點(diǎn)配置講解。即從用戶剛按下按鍵開始,如果按住的持續(xù)時(shí)間介于500ms與1200ms之間,則該節(jié)點(diǎn)觸發(fā),輸出主題"長按1s"。

3.4fscript節(jié)點(diǎn)

3.4.1 開啟紅燈節(jié)點(diǎn)

if(msg.topic=="長按2s"){
output.payload=1

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按2s,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。

3.4.2開啟綠燈名稱節(jié)點(diǎn)

if(msg.topic=="長按4s"){
output.payload=1

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按4s,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。

3.4.3關(guān)閉所有設(shè)備名稱節(jié)點(diǎn)

if(msg.topic=="長按1s"){
output.payload=0

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按1s,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為0。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為關(guān)燈。

3.5其余節(jié)點(diǎn)配置

* 同cycle mode(trigger)模式實(shí)驗(yàn)節(jié)點(diǎn)配置。 3.6實(shí)驗(yàn)現(xiàn)象 依次對按鍵進(jìn)行長按2s、長按4s和長按1s操作。

led燈顯示情況;

長按2s-紅燈亮起;

124b10c8-50f3-11ed-a3b6-dac502259ad0.jpg

長按4s-綠燈亮起;

1254bfb0-50f3-11ed-a3b6-dac502259ad0.jpg

長按1s-兩燈都熄滅

128116be-50f3-11ed-a3b6-dac502259ad0.jpg

4.keep press mode(trigger)模式實(shí)驗(yàn)

4.1實(shí)驗(yàn)簡介 本實(shí)驗(yàn)主要使用板子上所焊接好的led燈模塊,該模塊一共有兩種燈顏色,分別為紅燈與綠燈。本實(shí)驗(yàn)中,主要將紅燈、綠燈模擬成兩個(gè)獨(dú)立的設(shè)備,通過一個(gè)button按鍵、button_expand按鍵實(shí)現(xiàn)長按超過2秒、長按超過3秒、長按超過1秒,從而控制紅燈、綠燈的開關(guān)情況。

4.2流圖設(shè)計(jì)
12a59976-50f3-11ed-a3b6-dac502259ad0.png

其中,顯示名稱為長按超過2秒、長按過時(shí)3秒、長按超過1秒的節(jié)點(diǎn),均為button_expand類型節(jié)點(diǎn),只是顯示名稱不同而已。同理,顯示名稱為長按開啟紅燈、長按開啟綠燈、長按關(guān)閉所有設(shè)備的節(jié)點(diǎn),均為fscript節(jié)點(diǎn)。顯示名稱為紅燈、綠燈均為led類型節(jié)點(diǎn)。

4.3button_expand節(jié)點(diǎn)

4.3.1 長按超過1s節(jié)點(diǎn)
12b97338-50f3-11ed-a3b6-dac502259ad0.png

操作模式為 keep press mode(trigger):用戶按下按鍵持續(xù)不放,若持續(xù)時(shí)間超過設(shè)定時(shí)間,該節(jié)點(diǎn)將觸發(fā)輸出;

超時(shí)時(shí)間為1000ms:從用戶剛按下按鍵開始,如果按住的持續(xù)時(shí)間超過1000ms,則該節(jié)點(diǎn)觸發(fā),輸出主題"長按1s"。

4.3.2長按超過2s節(jié)點(diǎn)

12c32d60-50f3-11ed-a3b6-dac502259ad0.png

* 該節(jié)點(diǎn)配置與長按超過1s名稱節(jié)點(diǎn)同理,區(qū)別在于超時(shí)時(shí)間為2000ms,主題配置為長按超過2s。用戶可參照上一小節(jié)keep press mode(trigger)模式實(shí)驗(yàn)-長按超過1s名稱節(jié)點(diǎn)配置講解。即從用戶剛按下按鍵開始,如果按住的持續(xù)時(shí)間超過2000ms,則該節(jié)點(diǎn)觸發(fā),輸出主題"長按2s"。


4.3.3 長按超過3s節(jié)點(diǎn)

12cda2f4-50f3-11ed-a3b6-dac502259ad0.png

* 該節(jié)點(diǎn)配置與長按超過3s名稱節(jié)點(diǎn)同理,區(qū)別在于超時(shí)時(shí)間為3000ms,主題配置為長按超過3s。用戶可參照上一小節(jié)keep press mode(trigger)模式實(shí)驗(yàn)-長按超過1s名稱節(jié)點(diǎn)配置講解。即從用戶剛按下按鍵開始,如果按住的持續(xù)時(shí)間超過3000ms,則該節(jié)點(diǎn)觸發(fā),輸出主題"長按3s"。

4.4fscript節(jié)點(diǎn)

4.4.1長按紅燈節(jié)點(diǎn)

if(msg.topic == "長按超過1s"){

output.payload = 1

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按超過1s,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。

4.4.2長按綠燈節(jié)點(diǎn)

if(msg.topic=="長按超過2s"){
output.payload=1

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按超過2s,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。

4.4.3長按關(guān)閉所有設(shè)備節(jié)點(diǎn)

if(msg.topic=="長按超過3s"){
output.payload=0

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按超過3s,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為0。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為關(guān)燈。

4.5其余節(jié)點(diǎn)配置

* 同keep press mode(trigger)模式實(shí)驗(yàn)節(jié)點(diǎn)配置。

4.6實(shí)驗(yàn)現(xiàn)象

4.6.1操作

一直按住按鍵,持續(xù)4s。

4.6.1 led燈顯示情況
12d8d5ac-50f3-11ed-a3b6-dac502259ad0.jpg

長按超過1s時(shí)

紅燈亮起

12f88780-50f3-11ed-a3b6-dac502259ad0.jpg

長按超過2s時(shí)

綠燈亮起

13072d1c-50f3-11ed-a3b6-dac502259ad0.jpg

長按超過3s時(shí)

兩燈熄滅

5. 同操作類型下trigger模式與statistical模式的區(qū)別

5.1主要區(qū)別

區(qū)別一

同操作類型下,兩種模式所實(shí)現(xiàn)的功能均可相互代替,但是所實(shí)現(xiàn)的fscript節(jié)點(diǎn)數(shù)據(jù)處理有所不同。trigger模式主要用于觸發(fā)它所連接的節(jié)點(diǎn)工作;statistical模式則可以輸出統(tǒng)計(jì)的信息,如連續(xù)按下按鍵的次數(shù),或者按鍵按下所持續(xù)的時(shí)間。

區(qū)別二

同操作類型下,一個(gè)statistical模式節(jié)點(diǎn)可以代替多個(gè)trigger模式節(jié)點(diǎn)所實(shí)現(xiàn)的功能(fscript節(jié)點(diǎn)處理方式也要更改),從而使我們的流圖得到大幅度簡化。

5.2模式實(shí)驗(yàn)

* 以continuous mode(trigger)模式實(shí)驗(yàn)為例,我們使用對應(yīng)的(statistical)模式來實(shí)現(xiàn),從而讓大家進(jìn)一步理解其之間的區(qū)別。

5.2.1 原trigger實(shí)驗(yàn)流圖

113a040a-50f3-11ed-a3b6-dac502259ad0.png

5.2.2 現(xiàn)statistical實(shí)驗(yàn)流圖

13583522-50f3-11ed-a3b6-dac502259ad0.png


* statistical模式流圖明顯簡化。


5.3button_expand節(jié)點(diǎn) 按下次數(shù)統(tǒng)計(jì)名稱節(jié)點(diǎn)。

136ceb20-50f3-11ed-a3b6-dac502259ad0.png

* 該實(shí)驗(yàn)下,只需要把操作模式切換到statistical模式即可。

5.4fscript節(jié)點(diǎn)

5.4.1 紅燈設(shè)備控制節(jié)點(diǎn)

if(msg.payload==1){
output.payload=1
}

if(msg.payload==3){
output.payload=0

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行數(shù)據(jù)處理。如果收到msg.payloa為1,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。如果收到msg.payloa為3,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為0。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為關(guān)燈。

5.4.2綠燈設(shè)備控制節(jié)點(diǎn)

if(msg.payload==2){
output.payload=1
}

if(msg.payload==3){
output.payload=0

}

*該內(nèi)容,主要實(shí)現(xiàn)對button_expand節(jié)點(diǎn)的消息進(jìn)行數(shù)據(jù)處理。如果收到msg.payloa為2,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。如果收到msg.payloa為3,則向下一個(gè)節(jié)點(diǎn)傳遞output對象中的payload屬性值為0。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為關(guān)燈。

5.5其余節(jié)點(diǎn)配置

* 同continuous mode(trigger)模式實(shí)驗(yàn)節(jié)點(diǎn)配置。


5.6實(shí)驗(yàn)現(xiàn)象

依次對按鍵進(jìn)行單擊、雙擊和三擊操作。

led燈顯示情況

* 同continuous mode(trigger)模式實(shí)驗(yàn)led燈顯示情況。

由此可見,使用statistical模式要比trigger模式更佳利于流圖的簡化,但是流圖的簡化,便意味著fscript節(jié)點(diǎn)中的數(shù)據(jù)處理可能會更加的復(fù)雜。兩種方式各有利弊,大家可以根據(jù)自身的處理習(xí)慣和偏好進(jìn)行選擇。

總結(jié)

button_expand擴(kuò)展節(jié)點(diǎn)很巧妙地實(shí)現(xiàn)了,在有限的按鍵資源下,完成對遠(yuǎn)大于按鍵個(gè)數(shù)的事件進(jìn)行控制。通過對button輸出信號的處理,實(shí)現(xiàn)例如單擊、n擊、長按、短按等各種組合情況的判斷。為用戶在一定程度上簡化了流圖的復(fù)雜度,節(jié)約了一定的硬件資源成本。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5096

    文章

    19192

    瀏覽量

    308070
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    223

    瀏覽量

    57675
  • ESDA
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    7543
  • Button
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7614

原文標(biāo)題:【產(chǎn)品應(yīng)用】基于EsDA MPC-ZC1快速實(shí)現(xiàn) — 按鍵高級應(yīng)用

文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    MPC-ZC1工控單板如何快速搭建出產(chǎn)線車間的智能風(fēng)機(jī)控制系統(tǒng)

    EsDA 為智慧工廠系統(tǒng)賦能,MPC-ZC1 工控單板 搭配 ZLM3100S 大功率電機(jī)驅(qū)動(dòng)器,快速搭建出產(chǎn)線車間的智能風(fēng)機(jī)控制系統(tǒng)。
    發(fā)表于 09-28 15:09 ?888次閱讀

    EsDA MPC-ZC1入門之軟件安裝

    EsDA,嵌入式系統(tǒng)設(shè)計(jì)自動(dòng)化,由多種軟件組成的軟件過程管理和開發(fā)的工具,以提高開發(fā)效率,降低軟件開發(fā)難度、開發(fā)成本為目標(biāo),為用戶帶來簡單易用的軟件設(shè)計(jì)體驗(yàn)。
    的頭像 發(fā)表于 08-10 14:24 ?1024次閱讀

    通過EsDA工具和MPC-ZC1平臺實(shí)現(xiàn)串口MQTT服務(wù)器

    本文以實(shí)現(xiàn)串口MQTT服務(wù)器為項(xiàng)目目標(biāo),展開講解,介紹如何通過EsDA工具和MPC-ZC1平臺,進(jìn)行應(yīng)用開發(fā),逐步完成項(xiàng)目需求。
    的頭像 發(fā)表于 08-25 10:03 ?1161次閱讀

    基于MPC-ZC1工控單板的物聯(lián)網(wǎng)監(jiān)測控制系統(tǒng)設(shè)計(jì)

    本文將基于 MPC-ZC1 工控單板,通過 EsDA 設(shè)計(jì)工具,分享如何搭建出一個(gè)常用的物聯(lián)網(wǎng)監(jiān)測控制系統(tǒng)。
    的頭像 發(fā)表于 09-15 12:06 ?1293次閱讀

    EsDA應(yīng)用】串口轉(zhuǎn)UDP服務(wù)器

    網(wǎng)絡(luò)化項(xiàng)目都需要用到串口服務(wù)器,本文基于EsDA開發(fā)平臺,為您介紹如何快速搭建一個(gè)串口轉(zhuǎn)UDP服務(wù)器。 基本工作原理:通過搭建UDP客戶端,實(shí)現(xiàn)串口與UDP服務(wù)器的雙向透傳通信。 本實(shí)現(xiàn)
    的頭像 發(fā)表于 02-22 13:20 ?758次閱讀

    【產(chǎn)品應(yīng)用】基于 EsDA MPC-ZC1 快速實(shí)現(xiàn) I2C采集監(jiān)測

    EsDA開發(fā)平臺為產(chǎn)品上線提供動(dòng)力。本文將基于EsDA開發(fā)平臺,通過拖拽、連線方式,10分鐘快速搭建一個(gè)I2C數(shù)據(jù)采集監(jiān)測業(yè)務(wù),為客戶產(chǎn)品開發(fā)、部署、上線縮短周期。 ?? 簡介 I2C 是一種串行
    的頭像 發(fā)表于 05-31 18:05 ?489次閱讀
    【產(chǎn)品應(yīng)用】基于 <b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> <b class='flag-5'>快速</b><b class='flag-5'>實(shí)現(xiàn)</b> I2C采集監(jiān)測

    【Z站推薦】EsDA MPC-ZC1入門(一)——軟件安裝

    EsDA,嵌入式系統(tǒng)設(shè)計(jì)自動(dòng)化,由多種軟件組成的軟件過程管理和開發(fā)的工具,以提高開發(fā)效率,降低軟件開發(fā)難度、開發(fā)成本為目標(biāo),為用戶帶來簡單易用的軟件設(shè)計(jì)體驗(yàn)。EsDA簡介EsDA,嵌入式系統(tǒng)
    的頭像 發(fā)表于 08-16 09:59 ?1222次閱讀
    【Z站推薦】<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b>入門(一)——軟件安裝

    EsDA MPC-ZC1 應(yīng)用——串口服務(wù)器(一)

    本文以實(shí)現(xiàn)串口MQTT服務(wù)器為項(xiàng)目目標(biāo),展開講解,介紹如何通過EsDA工具和MPC-ZC1平臺,進(jìn)行應(yīng)用開發(fā),逐步完成項(xiàng)目需求。簡介工業(yè)串口服務(wù)器,以提供串口與網(wǎng)絡(luò)服務(wù)器之間的雙向數(shù)據(jù)透明傳輸為核心
    的頭像 發(fā)表于 08-26 16:49 ?809次閱讀
    <b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 應(yīng)用——串口服務(wù)器(一)

    【Z站推薦】EsDA MPC-ZC1 應(yīng)用——IoT 監(jiān)測控制系統(tǒng)(一)

    本文將基于MPC-ZC1工控單板,通過EsDA設(shè)計(jì)工具,分享如何搭建出一個(gè)常用的物聯(lián)網(wǎng)監(jiān)測控制系統(tǒng)。簡介在大多數(shù)嵌入式物聯(lián)網(wǎng)應(yīng)用場景中,溫度、濕度、電壓、電流等基本數(shù)據(jù)的采集是必不可少的。且需將數(shù)據(jù)
    的頭像 發(fā)表于 09-16 10:38 ?862次閱讀
    【Z站推薦】<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 應(yīng)用——IoT 監(jiān)測控制系統(tǒng)(一)

    【Z站推薦】EsDA MPC-ZC1 應(yīng)用——IoT 監(jiān)測控制系統(tǒng)(三)

    EsDA為智慧工廠系統(tǒng)賦能,MPC-ZC1工控單板搭配ZLM3100S大功率電機(jī)驅(qū)動(dòng)器,快速搭建出產(chǎn)線車間的智能風(fēng)機(jī)控制系統(tǒng)。簡介本文基于EsDAMPC-ZC1應(yīng)用——IoT監(jiān)測控制系
    的頭像 發(fā)表于 09-29 11:11 ?970次閱讀
    【Z站推薦】<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> 應(yīng)用——IoT 監(jiān)測控制系統(tǒng)(三)

    【Z站推薦】基于 EsDA MPC-ZC1 快速實(shí)現(xiàn) I2C采集監(jiān)測

    EsDA開發(fā)平臺為產(chǎn)品上線提供動(dòng)力。本文將基于EsDA開發(fā)平臺,通過拖拽、連線方式,10分鐘快速搭建一個(gè)I2C數(shù)據(jù)采集監(jiān)測業(yè)務(wù),為客戶產(chǎn)品開發(fā)、部署、上線縮短周期。簡介I2C是一種串行通信總線,只需
    的頭像 發(fā)表于 10-18 10:11 ?1288次閱讀
    【Z站推薦】基于 <b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> <b class='flag-5'>快速</b><b class='flag-5'>實(shí)現(xiàn)</b> I2C采集監(jiān)測

    【產(chǎn)品應(yīng)用】基于EsDA MPC-ZC1快速實(shí)現(xiàn)按鍵高級應(yīng)用

    按鍵是嵌入式產(chǎn)品常用的人機(jī)交互方式。為了更好的結(jié)構(gòu)設(shè)計(jì)、更低的制造成本,對按鍵功能會有更高的要求,常見有單擊、雙擊和長按等需求。本文將基于EsDA開發(fā)套件介紹如何快速完成
    的頭像 發(fā)表于 11-02 10:01 ?705次閱讀
    【產(chǎn)品應(yīng)用】基于<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b><b class='flag-5'>快速</b><b class='flag-5'>實(shí)現(xiàn)</b> — <b class='flag-5'>按鍵</b><b class='flag-5'>高級</b>應(yīng)用

    EsDA應(yīng)用】如何讓自動(dòng)化領(lǐng)域的串口設(shè)備具備聯(lián)網(wǎng)能力?

    用戶普遍的需求之一。本章將帶大家快速實(shí)現(xiàn)如何將MPC-ZC1開發(fā)板的串口數(shù)據(jù),快速傳輸至TCP服務(wù)器,實(shí)現(xiàn)上報(bào)與下發(fā)功能,工作框架如下。本文
    的頭像 發(fā)表于 02-23 15:01 ?774次閱讀
    【<b class='flag-5'>EsDA</b>應(yīng)用】如何讓自動(dòng)化領(lǐng)域的串口設(shè)備具備聯(lián)網(wǎng)能力?

    【產(chǎn)品應(yīng)用】基于 EsDA MPC-ZC1 快速實(shí)現(xiàn) I2C采集監(jiān)測

    EsDA開發(fā)平臺為產(chǎn)品上線提供動(dòng)力。本文將基于EsDA開發(fā)平臺,通過拖拽、連線方式,10分鐘快速搭建一個(gè)I2C數(shù)據(jù)采集監(jiān)測業(yè)務(wù),為客戶產(chǎn)品開發(fā)、部署、上線縮短周期。簡介I2C是一種串行通信總線,只需
    的頭像 發(fā)表于 06-08 10:13 ?708次閱讀
    【產(chǎn)品應(yīng)用】基于 <b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> <b class='flag-5'>快速</b><b class='flag-5'>實(shí)現(xiàn)</b> I2C采集監(jiān)測

    基于EsDA MPC-ZC1 快速實(shí)現(xiàn)I2C 監(jiān)控報(bào)警

    實(shí)驗(yàn),PT100溫度傳感器的溫度采集和讀取顯示不在本文贅述,具體詳細(xì)的操作步驟可在《EsDAMPC-ZC1快速實(shí)現(xiàn)I2C采集監(jiān)控》文章中查看。實(shí)驗(yàn)基于EsDA開發(fā)平
    的頭像 發(fā)表于 08-23 15:16 ?858次閱讀
    基于<b class='flag-5'>EsDA</b> <b class='flag-5'>MPC-ZC1</b> <b class='flag-5'>快速</b><b class='flag-5'>實(shí)現(xiàn)</b>I2C 監(jiān)控報(bào)警