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

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

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

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

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

ZLG致遠(yuǎn)電子 ? 2022-11-02 10:01 ? 次閱讀

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

5641e9ac-5790-11ed-b116-dac502259ad0.jpg ?簡介

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


5641e9ac-5790-11ed-b116-dac502259ad0.jpg ?按鍵相關(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)者,是對(duì)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")。其主要屬性如下:564e730c-5790-11ed-b116-dac502259ad0.png

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

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

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

輸出變量:在按鍵按下時(shí)輸出on,松開時(shí)輸出off,在初始化完成以及按鈕狀態(tài)發(fā)生改變的時(shí)候會(huì)輸出當(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ò)展信號(hào)處理節(jié)點(diǎn),主要配合button節(jié)點(diǎn)進(jìn)行使用,其主要功能為監(jiān)控button節(jié)點(diǎn)的輸出信號(hào)情況,從而判斷按鍵觸發(fā)方式如單擊、雙擊、連擊、長按等等。該節(jié)點(diǎn)主要包含兩大類主模式,分別為觸發(fā)條件模式與行為統(tǒng)計(jì)模式。觸發(fā)條件模式,當(dāng)button的信息情況符合預(yù)先設(shè)定時(shí),節(jié)點(diǎn)將直接觸發(fā),同時(shí)不會(huì)設(shè)置payload屬性。行為統(tǒng)計(jì)模式,該模式下將對(duì)button的信息情況進(jìn)行次數(shù)統(tǒng)計(jì),同時(shí)會(huì)設(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模式可以相互替換,但對(duì)流圖和數(shù)據(jù)的處理卻有一定的區(qū)別。具體區(qū)別在后續(xù)詳細(xì)講解。2.3輸入變量
由button節(jié)點(diǎn)所輸出的信號(hào)對(duì)象。2.4輸出變量
節(jié)點(diǎn)的主題,用戶可自行設(shè)置。

565e31b6-5790-11ed-b116-dac502259ad0.jpg 應(yīng)用案例

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

硬件連接

  • 按鍵模塊引腳展示

56637d4c-5790-11ed-b116-dac502259ad0.jpg

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

  • 按鍵模塊與ZC1板連接情況

5689af12-5790-11ed-b116-dac502259ad0.png1.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)來指示不同的按鍵事件,對(duì)應(yīng)關(guān)系如下表。

操作

事件

效果

單擊

開啟紅燈

led燈中紅燈亮

雙擊

開啟綠燈

led燈中 綠燈亮

三擊

關(guān)閉所有燈光

led燈熄滅

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

57598a0c-5790-11ed-b116-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.3?button_expand節(jié)點(diǎn)

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

577f5e44-5790-11ed-b116-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)再次按下將不會(huì)觸發(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)

57b749da-5790-11ed-b116-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)

57d417ae-5790-11ed-b116-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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息單擊,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息雙擊,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息三擊,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的payload屬性值為0。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為關(guān)燈。1.5led節(jié)點(diǎn)580b215e-5790-11ed-b116-dac502259ad0.png

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

58115aba-5790-11ed-b116-dac502259ad0.png

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

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

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

581ff340-5790-11ed-b116-dac502259ad0.jpg

單擊

紅燈亮起

583402ea-5790-11ed-b116-dac502259ad0.jpg

雙擊

綠燈亮起

589bdf14-5790-11ed-b116-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)

58cce7ee-5790-11ed-b116-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)

58dae718-5790-11ed-b116-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)

58f4848e-5790-11ed-b116-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)象

依次對(duì)按鍵進(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ì)59033c0e-5790-11ed-b116-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.3?button_expand節(jié)點(diǎn)3.3.1?長按2s節(jié)點(diǎn)
5917caa2-5790-11ed-b116-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)

59259da8-5790-11ed-b116-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)

592eb118-5790-11ed-b116-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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按2s,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按4s,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按1s,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)象依次對(duì)按鍵進(jìn)行長按2s、長按4s和長按1s操作。

led燈顯示情況;

長按2s-紅燈亮起;

595b7f04-5790-11ed-b116-dac502259ad0.jpg

長按4s-綠燈亮起;

5981f166-5790-11ed-b116-dac502259ad0.jpg

長按1s-兩燈都熄滅

59a0ec4c-5790-11ed-b116-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ì)59c2f7ec-5790-11ed-b116-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)5abf24fe-5790-11ed-b116-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)

5aea7d0c-5790-11ed-b116-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)

5b065b6c-5790-11ed-b116-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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按超過1s,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按超過2s,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行判斷,如果收到主題信息是長按超過3s,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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燈顯示情況5b2ba2aa-5790-11ed-b116-dac502259ad0.jpg

長按超過1s時(shí)

紅燈亮起

5b6b969e-5790-11ed-b116-dac502259ad0.jpg

長按超過2s時(shí)

綠燈亮起

5ba8980a-5790-11ed-b116-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)為例,我們使用對(duì)應(yīng)的(statistical)模式來實(shí)現(xiàn),從而讓大家進(jìn)一步理解其之間的區(qū)別。

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

57598a0c-5790-11ed-b116-dac502259ad0.png

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

5bcef694-5790-11ed-b116-dac502259ad0.png* statistical模式流圖明顯簡化。5.3button_expand節(jié)點(diǎn)按下次數(shù)統(tǒng)計(jì)名稱節(jié)點(diǎn)。

5bf3acd2-5790-11ed-b116-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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行數(shù)據(jù)處理。如果收到msg.payloa為1,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。如果收到msg.payloa為3,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)對(duì)button_expand節(jié)點(diǎn)的消息進(jìn)行數(shù)據(jù)處理。如果收到msg.payloa為2,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的payload屬性值為1。由于下一個(gè)節(jié)點(diǎn),連接了led節(jié)點(diǎn),即為開燈。如果收到msg.payloa為3,則向下一個(gè)節(jié)點(diǎn)傳遞output對(duì)象中的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)象依次對(duì)按鍵進(jìn)行單擊、雙擊和三擊操作。

  • led燈顯示情況

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

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


565e31b6-5790-11ed-b116-dac502259ad0.jpg 總結(jié)

button_expand擴(kuò)展節(jié)點(diǎn)很巧妙地實(shí)現(xiàn)了,在有限的按鍵資源下,完成對(duì)遠(yuǎn)大于按鍵個(gè)數(shù)的事件進(jìn)行控制。通過對(duì)button輸出信號(hào)的處理,實(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ī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5096

    文章

    19192

    瀏覽量

    308079
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    用ADS7830做一個(gè)按鍵檢測,做3KV ESD測試時(shí),ESD信號(hào)打到外殼的地時(shí),ADS7830會(huì)鎖死,怎么解決?

    我在用ADS7830做一個(gè)按鍵檢測,在做3KV ESD測試時(shí),ESD信號(hào)打到外殼的地時(shí),ADS7830會(huì)鎖死。當(dāng)ESD信號(hào)撤銷后,改變ADC的輸入信號(hào),輸出都是干擾前的數(shù)據(jù)。以下是我
    發(fā)表于 01-16 07:55

    開發(fā)第1個(gè)LVGL程序與實(shí)現(xiàn)按鍵操作

    開發(fā)第1個(gè)LVGL程序與實(shí)現(xiàn)按鍵操作
    的頭像 發(fā)表于 01-07 13:49 ?898次閱讀
    開發(fā)第<b class='flag-5'>1</b>個(gè)LVGL程序與<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>按鍵</b>操作

    ROHM支持“CAN FD”的TVS二極管“ESDCANxx系列”

    Data rate)*1總線端口保護(hù)的雙向TVS(ESD保護(hù))二極管*2“ESDCANxx系列”。CAN FD是車載ECU(電子控制單元)之間實(shí)時(shí)且安全的數(shù)據(jù)收發(fā)所必需的通信技術(shù)。新產(chǎn)品
    的頭像 發(fā)表于 12-25 14:40 ?227次閱讀
    ROHM支持“CAN FD”的TVS二極管“<b class='flag-5'>ESD</b>CANxx系列”

    顯示視頻接口的ESD保護(hù)方案應(yīng)用——VGA接口保護(hù)方案

    1 晶揚(yáng)產(chǎn)品應(yīng)用圖 視頻接口時(shí)常會(huì)受到ESD/EOS靜電的干擾,比如雷電天氣原因等造成靜電浪涌情況發(fā)生或在進(jìn)行熱插拔的過程中發(fā)生靜電事件,接口沒有做ESD/EOS防護(hù),將會(huì)造成視頻輸
    的頭像 發(fā)表于 12-24 16:23 ?230次閱讀
    顯示視頻接口的<b class='flag-5'>ESD</b>保護(hù)方案應(yīng)用——VGA接口保護(hù)方案

    【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】使用按鍵SW1實(shí)現(xiàn)單擊,雙擊,長按等多種按鍵功能

    在我們平時(shí)的嵌入式開發(fā)應(yīng)用中,有時(shí)候需要使用單個(gè)按鍵實(shí)現(xiàn)單擊,雙擊,長按等多種功能,這樣可以在資源緊缺的開發(fā)板上用單個(gè)按鍵實(shí)現(xiàn)多種功能,比如GUI 圖像的切換,音量的
    發(fā)表于 12-17 22:17

    將ADC32RF42 EVM與xilinx ZC706開發(fā)板直接相連,JESD204B時(shí)鐘無法建鏈成功,為什么?

    您好,我將ADC32RF42 EVM與xilinx ZC706開發(fā)板直接相連,由LMK04828提供時(shí)鐘(ADC32RF42 EVM上的C409,C410被焊下,C431,C432用焊錫連接
    發(fā)表于 11-20 06:23

    基于FPGA實(shí)現(xiàn)按鍵消抖處理

    引言: 按鍵在電子產(chǎn)品中經(jīng)常用到,由于按鍵的機(jī)械特性,按鍵在閉合或松開的瞬間伴隨著一連串的抖動(dòng),這樣的抖動(dòng)將直接影響設(shè)計(jì)系統(tǒng)的穩(wěn)定性。因此,必須對(duì)抖動(dòng)進(jìn)行處理。本文介紹如何在FPGA中
    的頭像 發(fā)表于 10-24 14:54 ?341次閱讀
    基于FPGA<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>按鍵</b>消抖處理

    ST NPI 新上架產(chǎn)品ESDA5WY】Datasheet

    ESDAxxWY系列:汽車應(yīng)用中的ESD保護(hù)。在確保汽車應(yīng)用安全性的同時(shí)縮減PCB尺寸對(duì)于需要穩(wěn)健保護(hù)功能的系統(tǒng),選擇ESDAxxWY可確保實(shí)現(xiàn)高可靠性和高質(zhì)量。這類器件用于防止敏感電
    發(fā)表于 10-21 10:46 ?0次下載

    EsDA,一站式嵌入式軟件

    EsDA是一套面向工業(yè)智能物聯(lián)領(lǐng)域的嵌入式系統(tǒng)設(shè)計(jì)自動(dòng)化工具集,包含實(shí)時(shí)操作系統(tǒng)AWorksLP、低代碼開發(fā)平臺(tái)AWStudio、資源管理平臺(tái)AXPI、跨平臺(tái)GUI引擎AWTK和云服務(wù)平臺(tái)ZWS
    的頭像 發(fā)表于 09-15 08:10 ?372次閱讀
    <b class='flag-5'>EsDA</b>,一站式嵌入式軟件

    如何在FPGA中實(shí)現(xiàn)按鍵消抖

    在FPGA(現(xiàn)場可編程門陣列)中實(shí)現(xiàn)按鍵消抖是一個(gè)重要的設(shè)計(jì)環(huán)節(jié),特別是在處理用戶輸入時(shí),由于物理按鍵的機(jī)械特性和電氣特性,按鍵在按下和釋放的瞬間會(huì)產(chǎn)生抖動(dòng)現(xiàn)象,這種抖動(dòng)可能導(dǎo)致系統(tǒng)錯(cuò)
    的頭像 發(fā)表于 08-19 18:15 ?2261次閱讀

    IEC ESD性能的ESD401 1通道ESD保護(hù)二極管數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《IEC ESD性能的ESD401 1通道ESD保護(hù)二極管數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-29 09:20 ?0次下載
    IEC <b class='flag-5'>ESD</b>性能的<b class='flag-5'>ESD</b>401 <b class='flag-5'>1</b>通道<b class='flag-5'>ESD</b>保護(hù)二極管數(shù)據(jù)表

    ESD1LIN24-Q1ESD751-Q1ESD761-Q1汽車類24V單通道ESD保護(hù)二極管數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《ESD1LIN24-Q1、ESD751-Q1ESD761-Q1汽車類24V單通道ESD保護(hù)二極管數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 06-22 09:33 ?0次下載
    <b class='flag-5'>ESD1LIN24-Q1</b>、<b class='flag-5'>ESD751-Q1</b>和<b class='flag-5'>ESD761-Q1</b>汽車類24V單通道<b class='flag-5'>ESD</b>保護(hù)二極管數(shù)據(jù)表

    ESD管 AZ5825-01F型號(hào)ESDA05CPX參數(shù)對(duì)比

    ESD管 AZ5825-01F型號(hào)ESDA05CPX參數(shù)對(duì)比
    的頭像 發(fā)表于 05-11 08:03 ?970次閱讀
    <b class='flag-5'>ESD</b>管 AZ5825-01F型號(hào)<b class='flag-5'>ESDA</b>05CPX參數(shù)對(duì)比

    AI時(shí)代下的場效應(yīng)管功能運(yùn)用與產(chǎn)品應(yīng)用

    AI時(shí)代下的場效應(yīng)管功能運(yùn)用與產(chǎn)品應(yīng)用
    的頭像 發(fā)表于 03-25 15:07 ?730次閱讀
    AI時(shí)代下的場效應(yīng)管功能運(yùn)用與<b class='flag-5'>產(chǎn)品應(yīng)用</b>

    靜電ESD整改實(shí)踐:從基礎(chǔ)到高級(jí)的應(yīng)對(duì)策略?

    靜電ESD整改實(shí)踐:從基礎(chǔ)到高級(jí)的應(yīng)對(duì)策略?|深圳比創(chuàng)達(dá)電子EMC
    的頭像 發(fā)表于 02-19 14:41 ?907次閱讀
    靜電<b class='flag-5'>ESD</b>整改實(shí)踐:從基礎(chǔ)到<b class='flag-5'>高級(jí)</b>的應(yīng)對(duì)策略?