欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種嵌入式linux設(shè)備的按鍵控制方法及裝置與流程

文檔序號(hào):11176719閱讀:509來源:國知局
一種嵌入式linux設(shè)備的按鍵控制方法及裝置與流程

本發(fā)明涉及嵌入式linux設(shè)備技術(shù)領(lǐng)域,尤其涉及一種嵌入式linux設(shè)備的按鍵控制方法及裝置。



背景技術(shù):

linux內(nèi)核有完善的input框架,可以基于usb-hid和adc采樣實(shí)現(xiàn)按鍵功能,pc用的usb鍵盤一般是采用usb-hid實(shí)現(xiàn),智能硬件上的按鍵一般采用adc實(shí)現(xiàn)。

linux內(nèi)核會(huì)為用戶空間提供按鍵事件的讀取接口,對(duì)用戶空間來說就是系統(tǒng)調(diào)用,應(yīng)用程序通過系統(tǒng)調(diào)用可以獲取到按鍵的鍵碼和鍵值。

現(xiàn)有的一種技術(shù)就是通過系統(tǒng)調(diào)用獲取到鍵碼和鍵值后直接對(duì)按鍵進(jìn)行解析然后做按鍵的響應(yīng)動(dòng)作。

但現(xiàn)有的這種技術(shù)存在很多缺點(diǎn):首先,很難適應(yīng)多按鍵,每個(gè)按鍵都有可能有多種響應(yīng)動(dòng)作的情況,對(duì)于很多智能硬件設(shè)備來說,交互簡單易用是設(shè)計(jì)考量的重要因素。按鍵過多會(huì)增加使用的復(fù)雜性,按鍵過少很難把功能覆蓋全,因此,按鍵的短按按下,短按松開,長按,長按松開都會(huì)被利用于響應(yīng)按鍵交互的動(dòng)作,現(xiàn)有的這種技術(shù)并不能解決很好的解決復(fù)雜的按鍵交互情況,而且代碼的可讀性差,按鍵擴(kuò)展性差,需要增加、減少按鍵或者按鍵功能調(diào)整時(shí)需要花費(fèi)很多時(shí)間,可維護(hù)性差;其次,不能很好地和linux線程配合起來使用,這樣,當(dāng)有些按鍵響應(yīng)比較費(fèi)時(shí),就將會(huì)影響到下一個(gè)按鍵的及時(shí)響應(yīng)。

如何針對(duì)嵌入式linux設(shè)備多按鍵和多種響應(yīng)情況的問題,提供一套簡單易用,代碼可讀性好,并且基于此方法實(shí)現(xiàn)的按鍵功能可使得用戶有更好的體驗(yàn)是目前亟待解決的技術(shù)問題。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的不足,提供一種嵌入式linux設(shè)備的按鍵控制方法及裝置,旨在解決現(xiàn)有技術(shù)針對(duì)嵌入式linux設(shè)備多按鍵和多種響應(yīng)情況的問題,無法提供一套簡單易用,代碼可讀性好,并且無法實(shí)現(xiàn)按鍵功能可使得用戶有更好體驗(yàn)的技術(shù)問題。

本發(fā)明是這樣實(shí)現(xiàn)的,一種嵌入式linux設(shè)備的按鍵控制方法,包括以下步驟:

判斷是否有按鍵事件發(fā)生;

若有,則根據(jù)所述按鍵事件調(diào)用所述按鍵事件的鍵碼和鍵值;

根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵事件的行為選項(xiàng);

根據(jù)所述按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程;

將所述按鍵事件的行為選項(xiàng)傳入所述按鍵線程內(nèi);

在所述按鍵線程內(nèi)處理所述按鍵事件的行為。

進(jìn)一步地,所述判斷是否有按鍵事件發(fā)生的步驟之前還包括:

預(yù)先定義嵌入式linux設(shè)備的鍵碼、鍵值及按鍵事件觸發(fā)的行為選項(xiàng);其中,所述鍵碼包括收藏鍵、語音鍵、英語鍵、下一曲鍵、上一曲鍵、暫停播放鍵、微信鍵、童言童語鍵、故事鍵、兒歌鍵及國學(xué)鍵;所述鍵值包括短按按下、長按及松開;所述行為選項(xiàng)為所述鍵碼和所述鍵值組合后的結(jié)果。

進(jìn)一步地,所述短按按下用于停止上一個(gè)按鍵響應(yīng)的動(dòng)作,所述長按用于觸發(fā)人機(jī)交互動(dòng)作,所述松開用于響應(yīng)當(dāng)前按鍵的事件。

進(jìn)一步地,所述根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵事件的行為選項(xiàng)的步驟包括:

根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵短按按下的行為選項(xiàng);

或者,根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵長按的行為選項(xiàng);

或者,根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵松開的行為選項(xiàng)。

進(jìn)一步地,所述根據(jù)所述按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程的步驟包括:

根據(jù)所述按鍵短按按下的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵短按按下線程;

或者,根據(jù)所述按鍵長按的行為選項(xiàng)建和啟動(dòng)按鍵長按線程;

或者,根據(jù)所述松開的行為選項(xiàng)建和啟動(dòng)按鍵松開線程。

進(jìn)一步地,所述將所述按鍵事件的行為選項(xiàng)傳入所述按鍵線程內(nèi)的步驟包括:

將所述按鍵短按按下的行為選項(xiàng)傳入所述按鍵短按按下線程內(nèi);

或者,將所述按鍵長按的行為選項(xiàng)傳入所述按鍵長按線程內(nèi);

或者,將所述按鍵松開的行為選項(xiàng)傳入所述按鍵松開線程內(nèi)。

進(jìn)一步地,所述在所述按鍵線程內(nèi)處理所述按鍵事件的行為的步驟包括:

在所述按鍵短按按下線程內(nèi)處理所述按鍵短按按下的行為;

或者,在所述按鍵長按線程內(nèi)處理所述按鍵長按的行為;

或者,在所述按鍵松開線程內(nèi)處理所述按鍵松開的行為。

進(jìn)一步地,所述判斷是否有按鍵事件發(fā)生的步驟還包括:

若判斷未有按鍵事件發(fā)生,則繼續(xù)判斷是否有按鍵事件發(fā)生的步驟。

相應(yīng)地,本發(fā)明還提供了一種嵌入式linux設(shè)備的按鍵控制裝置,包括:

預(yù)先定義模塊,用于預(yù)先定義嵌入式linux設(shè)備的鍵碼、鍵值及按鍵事件觸發(fā)的行為選項(xiàng);其中,所述鍵碼包括收藏鍵、語音鍵、英語鍵、下一曲鍵、上一曲鍵、暫停播放鍵、微信鍵、童言童語鍵、故事鍵、兒歌鍵及國學(xué)鍵;所述鍵值包括短按按下、長按及松開;所述行為選項(xiàng)為所述鍵碼和所述鍵值組合后的結(jié)果;

判斷模塊,用于判斷是否有按鍵事件發(fā)生;

調(diào)用模塊,用于在所述判斷模塊判斷有按鍵事件發(fā)生時(shí),則根據(jù)所述按鍵事件調(diào)用所述按鍵事件的鍵碼和鍵值;

標(biāo)記模塊,用于根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵事件的行為選項(xiàng);

創(chuàng)建和啟動(dòng)模塊,用于根據(jù)所述按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程;

傳入模塊,用于將所述按鍵事件的行為選項(xiàng)傳入所述按鍵線程內(nèi);

處理模塊,用于在所述按鍵線程內(nèi)處理所述按鍵事件的行為。

進(jìn)一步地,所述標(biāo)記模塊包括:

第一標(biāo)記單元,用于根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵短按按下的行為選項(xiàng);

第二標(biāo)記單元,用于根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵長按的行為選項(xiàng);

第三標(biāo)記單元,用于根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵松開的行為選項(xiàng);

所述創(chuàng)建和啟動(dòng)模塊包括:

第一創(chuàng)建和啟動(dòng)單元,用于根據(jù)所述按鍵短按按下的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵短按按下線程;

第二創(chuàng)建和啟動(dòng)單元,用于根據(jù)所述按鍵長按的行為選項(xiàng)建和啟動(dòng)按鍵長按線程;

第三創(chuàng)建和啟動(dòng)單元,用于根據(jù)所述松開的行為選項(xiàng)建和啟動(dòng)按鍵松開線程;

所述傳入模塊包括:

第一傳入單元,用于將所述按鍵短按按下的行為選項(xiàng)傳入所述按鍵短按按下線程內(nèi);

第二傳入單元,用于將所述按鍵長按的行為選項(xiàng)傳入所述按鍵長按線程內(nèi);

第三傳入單元,用于將所述按鍵松開的行為選項(xiàng)傳入所述按鍵松開線程內(nèi);

所述處理模塊包括:

第一處理單元,用于在所述按鍵短按按下線程內(nèi)處理所述按鍵短按按下的行為;

第二處理單元,用于在所述按鍵長按線程內(nèi)處理所述按鍵長按的行為;

第三處理單元,用于在所述按鍵松開線程內(nèi)處理所述按鍵松開的行為。

本發(fā)明的有益效果:本發(fā)明提供的嵌入式linux設(shè)備的按鍵控制方法,當(dāng)判斷有按鍵事件發(fā)生時(shí),則根據(jù)按鍵事件調(diào)用按鍵事件的鍵碼和鍵值;根據(jù)按鍵事件的鍵碼和鍵值標(biāo)記按鍵事件的行為選項(xiàng);根據(jù)按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程;將按鍵事件的行為選項(xiàng)傳入按鍵線程內(nèi);在按鍵線程內(nèi)處理按鍵事件的行為。本發(fā)明針對(duì)嵌入式linux設(shè)備多按鍵和多種響應(yīng)情況的問題,提供了一套簡單易用,代碼可讀性好,并且基于此方法實(shí)現(xiàn)的按鍵功能可使得用戶有更好的體驗(yàn),從而使得本發(fā)明具有以下優(yōu)點(diǎn):

第一,通過本發(fā)明實(shí)現(xiàn)的按鍵功能,代碼可讀性好,利于擴(kuò)展和維護(hù);

第二,通過本發(fā)明可以很好的處理多個(gè)按鍵和多種觸發(fā)類型的按鍵交互設(shè)計(jì),給產(chǎn)品帶來更簡潔的體驗(yàn);

第三,短按按下用于停止上一個(gè)按鍵響應(yīng)的動(dòng)作,松開時(shí)響應(yīng)當(dāng)前按鍵的事件,長按時(shí)觸發(fā)一些人機(jī)交互動(dòng)作。通過這種方式可以提高按鍵的響應(yīng)效率;

第四,行為選項(xiàng)標(biāo)記和線程結(jié)合起來可以很好的解決快速多次按鍵時(shí)按鍵如何響應(yīng)的問題。

附圖說明

圖1是本發(fā)明第一實(shí)施例提供的嵌入式linux設(shè)備的按鍵控制方法的流程示意圖。

圖2是本發(fā)明第二實(shí)施例提供的嵌入式linux設(shè)備的按鍵控制裝置的結(jié)構(gòu)示意圖。

圖3是圖2提供的嵌入式linux設(shè)備的按鍵控制裝置其標(biāo)記模塊的結(jié)構(gòu)示意圖。

圖4是圖2提供的嵌入式linux設(shè)備的按鍵控制裝置其創(chuàng)建和啟動(dòng)模塊的結(jié)構(gòu)示意圖。

圖5是圖2提供的嵌入式linux設(shè)備的按鍵控制裝置其傳入模塊的結(jié)構(gòu)示意圖。

圖6是圖2提供的嵌入式linux設(shè)備的按鍵控制裝置其處理模塊的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

請(qǐng)參閱圖1,圖1是本發(fā)明第一實(shí)施例提供的嵌入式linux設(shè)備的按鍵控制方法的流程示意圖。如圖1所示,該嵌入式linux設(shè)備的按鍵控制方法可以包括以下步驟。

s100、判斷是否有按鍵事件發(fā)生;

作為一種可選的實(shí)施方式,所述判斷是否有按鍵事件發(fā)生的步驟之前還包括:

預(yù)先定義嵌入式linux設(shè)備的鍵碼、鍵值及按鍵事件觸發(fā)的行為選項(xiàng);其中,所述鍵碼包括收藏鍵、語音鍵、英語鍵、下一曲鍵、上一曲鍵、暫停播放鍵、微信鍵、童言童語鍵、故事鍵、兒歌鍵及國學(xué)鍵;所述鍵值包括短按按下、長按及松開;所述行為選項(xiàng)為所述鍵碼和所述鍵值組合后的結(jié)果。

需要說明的是,本發(fā)明實(shí)施例中,所述短按按下用于停止上一個(gè)按鍵響應(yīng)的動(dòng)作,所述長按用于觸發(fā)人機(jī)交互動(dòng)作,所述松開用于響應(yīng)當(dāng)前按鍵的事件,例如,長按觸發(fā)語音交互開始,松開時(shí)語音交互結(jié)束。

需要說明的是,本發(fā)明實(shí)施例中,由于所述行為選項(xiàng)為所述鍵碼和所述鍵值組合后的結(jié)果,這樣,所述行為選項(xiàng)的個(gè)數(shù)為所述鍵碼的個(gè)數(shù)和所述鍵值個(gè)數(shù)的乘積,例如,所述鍵碼包括收藏鍵、語音鍵、英語鍵、下一曲鍵、上一曲鍵、暫停播放鍵、微信鍵、童言童語鍵、故事鍵、兒歌鍵及國學(xué)鍵共11個(gè),所述鍵值包括短按按下、長按及松開共3,則所述行為選項(xiàng)的個(gè)數(shù)為33個(gè)。

需要說明的是,本發(fā)明實(shí)施例中是通過宏變量定義鍵碼的,具體如下:

#definekey_love60

#definekey_voice63

#definekey_english103

#definekey_next114

#definekey_prev115

#definekey_playpause102

#definekey_wechat62

#definekey_guychat61

#definekey_story28

#definekey_song59

#definekey_sinology129

作為一種可選的實(shí)施方式,所述判斷是否有按鍵事件發(fā)生的步驟還包括:

若判斷未有按鍵事件發(fā)生,則繼續(xù)判斷是否有按鍵事件發(fā)生的步驟。

s101、若有,則根據(jù)所述按鍵事件調(diào)用所述按鍵事件的鍵碼和鍵值;

s102、根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵事件的行為選項(xiàng);

作為一種可選的實(shí)施方式,所述根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵事件的行為選項(xiàng)的步驟包括:

根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵短按按下的行為選項(xiàng);

或者,根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵長按的行為選項(xiàng);

或者,根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵松開的行為選項(xiàng)。

s103、根據(jù)所述按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程;

需要說明的是,本發(fā)明實(shí)施例中,通過linux的線程函數(shù)pthread_create(pthread_create是類unix操作系統(tǒng)(unix、linux、macosx等)的創(chuàng)建線程的函數(shù),創(chuàng)建由按鍵輪詢掃描線程去創(chuàng)建,創(chuàng)建的同時(shí)啟動(dòng)線程。

作為一種可選的實(shí)施方式,所述根據(jù)所述按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程的步驟包括:

根據(jù)所述按鍵短按按下的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵短按按下線程;

或者,根據(jù)所述按鍵長按的行為選項(xiàng)建和啟動(dòng)按鍵長按線程;

或者,根據(jù)所述松開的行為選項(xiàng)建和啟動(dòng)按鍵松開線程。

s104、將所述按鍵事件的行為選項(xiàng)傳入所述按鍵線程內(nèi);

需要說明的是,本發(fā)明實(shí)施例中,pthread_create創(chuàng)建線程的時(shí)候,把行為選項(xiàng),鍵碼和鍵值打包成結(jié)構(gòu)體參數(shù),傳給pthread_create函數(shù)。主要目的是在線程里對(duì)這些行為選項(xiàng)進(jìn)行解析,因?yàn)橐粋€(gè)線程里面不能直接獲得其他線程的局部變量,需通過傳遞線程參數(shù)的形式。通過線程來處理這些行為選項(xiàng)可以提高按鍵響應(yīng)速度和連續(xù)多次按鍵時(shí)按鍵如何過濾和響應(yīng)的問題。

作為一種可選的實(shí)施方式,所述將所述按鍵事件的行為選項(xiàng)傳入所述按鍵線程內(nèi)的步驟包括:

將所述按鍵短按按下的行為選項(xiàng)傳入所述按鍵短按按下線程內(nèi);

或者,將所述按鍵長按的行為選項(xiàng)傳入所述按鍵長按線程內(nèi);

或者,將所述按鍵松開的行為選項(xiàng)傳入所述按鍵松開線程內(nèi)。

s105、在所述按鍵線程內(nèi)處理所述按鍵事件的行為。

需要說明的是,本發(fā)明實(shí)施例中,先通過文件鎖(文件鎖是一種文件讀寫機(jī)制,在任何特定的時(shí)間只允許一個(gè)進(jìn)程訪問一個(gè)文件。通過這種鎖來保證同一時(shí)刻只能有一個(gè)按鍵在響應(yīng))判斷此按鍵是否還在響應(yīng)(可能存在之前按下過還沒響應(yīng)完,如果非??爝B續(xù)按下的話),如果是則放棄本次響應(yīng),如果不是則通過枚舉的方式,逐個(gè)判斷是哪個(gè)行為選項(xiàng),對(duì)不同的行為選項(xiàng)進(jìn)行做不同的函數(shù)調(diào)用。

作為一種可選的實(shí)施方式,所述在所述按鍵線程內(nèi)處理所述按鍵事件的行為的步驟包括:

在所述按鍵短按按下線程內(nèi)處理所述按鍵短按按下的行為;

或者,在所述按鍵長按線程內(nèi)處理所述按鍵長按的行為;

或者,在所述按鍵松開線程內(nèi)處理所述按鍵松開的行為。

本發(fā)明提供的嵌入式linux設(shè)備的按鍵控制方法,當(dāng)判斷有按鍵事件發(fā)生時(shí),則根據(jù)按鍵事件調(diào)用按鍵事件的鍵碼和鍵值;根據(jù)按鍵事件的鍵碼和鍵值標(biāo)記按鍵事件的行為選項(xiàng);根據(jù)按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程;將按鍵事件的行為選項(xiàng)傳入按鍵線程內(nèi);在按鍵線程內(nèi)處理按鍵事件的行為。本發(fā)明針對(duì)嵌入式linux設(shè)備多按鍵和多種響應(yīng)情況的問題,提供了一套簡單易用,代碼可讀性好,并且基于此方法實(shí)現(xiàn)的按鍵功能可使得用戶有更好的體驗(yàn),從而使得本發(fā)明具有以下優(yōu)點(diǎn):

第一,通過本發(fā)明實(shí)現(xiàn)的按鍵功能,代碼可讀性好,利于擴(kuò)展和維護(hù);

第二,通過本發(fā)明可以很好的處理多個(gè)按鍵和多種觸發(fā)類型的按鍵交互設(shè)計(jì),給產(chǎn)品帶來更簡潔的體驗(yàn);

第三,短按按下用于停止上一個(gè)按鍵響應(yīng)的動(dòng)作,松開時(shí)響應(yīng)當(dāng)前按鍵的事件,長按時(shí)觸發(fā)一些人機(jī)交互動(dòng)作。通過這種方式可以提高按鍵的響應(yīng)效率;

第四,行為選項(xiàng)標(biāo)記和線程結(jié)合起來可以很好的解決快速多次按鍵時(shí)按鍵如何響應(yīng)的問題。

請(qǐng)參閱圖2,圖2是本發(fā)明第二實(shí)施例提供的嵌入式linux設(shè)備的按鍵控制裝置的結(jié)構(gòu)示意圖。如圖2所示,該嵌入式linux設(shè)備的按鍵控制裝置包括:

預(yù)先定義模塊1,用于預(yù)先定義嵌入式linux設(shè)備的鍵碼、鍵值及按鍵事件觸發(fā)的行為選項(xiàng);其中,所述鍵碼包括收藏鍵、語音鍵、英語鍵、下一曲鍵、上一曲鍵、暫停播放鍵、微信鍵、童言童語鍵、故事鍵、兒歌鍵及國學(xué)鍵;所述鍵值包括短按按下、長按及松開;所述行為選項(xiàng)為所述鍵碼和所述鍵值組合后的結(jié)果;

判斷模塊2,用于判斷是否有按鍵事件發(fā)生;

調(diào)用模塊3,用于在所述判斷模塊2判斷有按鍵事件發(fā)生時(shí),則根據(jù)所述按鍵事件調(diào)用所述按鍵事件的鍵碼和鍵值;

標(biāo)記模塊4,用于根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵事件的行為選項(xiàng);

創(chuàng)建和啟動(dòng)模塊5,用于根據(jù)所述按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程;

傳入模塊6,用于將所述按鍵事件的行為選項(xiàng)傳入所述按鍵線程內(nèi);

處理模塊7,用于在所述按鍵線程內(nèi)處理所述按鍵事件的行為。

進(jìn)一步地,如圖3所示,所述標(biāo)記模塊4包括:

第一標(biāo)記單元41,用于根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵短按按下的行為選項(xiàng);

第二標(biāo)記單元42,用于根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵長按的行為選項(xiàng);

第三標(biāo)記單元43,用于根據(jù)所述按鍵事件的鍵碼和鍵值標(biāo)記所述按鍵松開的行為選項(xiàng);

進(jìn)一步地,如圖4所示,所述創(chuàng)建和啟動(dòng)模塊5包括:

第一創(chuàng)建和啟動(dòng)單元51,用于根據(jù)所述按鍵短按按下的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵短按按下線程;

第二創(chuàng)建和啟動(dòng)單元52,用于根據(jù)所述按鍵長按的行為選項(xiàng)建和啟動(dòng)按鍵長按線程;

第三創(chuàng)建和啟動(dòng)單元53,用于根據(jù)所述松開的行為選項(xiàng)建和啟動(dòng)按鍵松開線程;

進(jìn)一步地,如圖5所示,所述傳入模塊6包括:

第一傳入單元61,用于將所述按鍵短按按下的行為選項(xiàng)傳入所述按鍵短按按下線程內(nèi);

第二傳入單元62,用于將所述按鍵長按的行為選項(xiàng)傳入所述按鍵長按線程內(nèi);

第三傳入單元63,用于將所述按鍵松開的行為選項(xiàng)傳入所述按鍵松開線程內(nèi);

進(jìn)一步地,如圖6所示,所述處理模塊7包括:

第一處理單元71,用于在所述按鍵短按按下線程內(nèi)處理所述按鍵短按按下的行為;

第二處理單元72,用于在所述按鍵長按線程內(nèi)處理所述按鍵長按的行為;

第三處理單元73,用于在所述按鍵松開線程內(nèi)處理所述按鍵松開的行為。

本發(fā)明提供的嵌入式linux設(shè)備的按鍵控制裝置,當(dāng)判斷模塊2判斷有按鍵事件發(fā)生時(shí),則調(diào)用模塊3根據(jù)按鍵事件調(diào)用按鍵事件的鍵碼和鍵值;標(biāo)記模塊4根據(jù)按鍵事件的鍵碼和鍵值標(biāo)記按鍵事件的行為選項(xiàng);創(chuàng)建和啟動(dòng)模塊5根據(jù)按鍵事件的行為選項(xiàng)創(chuàng)建和啟動(dòng)按鍵線程;傳入模塊6將按鍵事件的行為選項(xiàng)傳入按鍵線程內(nèi);處理模塊7在按鍵線程內(nèi)處理按鍵事件的行為。本發(fā)明針對(duì)嵌入式linux設(shè)備多按鍵和多種響應(yīng)情況的問題,提供了一套簡單易用,代碼可讀性好,并且基于此方法實(shí)現(xiàn)的按鍵功能可使得用戶有更好的體驗(yàn),從而使得本發(fā)明具有以下優(yōu)點(diǎn):

第一,通過本發(fā)明實(shí)現(xiàn)的按鍵功能,代碼可讀性好,利于擴(kuò)展和維護(hù);

第二,通過本發(fā)明可以很好的處理多個(gè)按鍵和多種觸發(fā)類型的按鍵交互設(shè)計(jì),給產(chǎn)品帶來更簡潔的體驗(yàn);

第三,短按按下用于停止上一個(gè)按鍵響應(yīng)的動(dòng)作,松開時(shí)響應(yīng)當(dāng)前按鍵的事件,長按時(shí)觸發(fā)一些人機(jī)交互動(dòng)作。通過這種方式可以提高按鍵的響應(yīng)效率;

第四,行為選項(xiàng)標(biāo)記和線程結(jié)合起來可以很好的解決快速多次按鍵時(shí)按鍵如何響應(yīng)的問題。

以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
伊宁县| 乳源| 桃园市| 乌拉特后旗| 大余县| 澜沧| 太原市| 高清| 蓬莱市| 建平县| 武冈市| 汝阳县| 纳雍县| 康保县| 怀柔区| 体育| 宜兰市| 苍梧县| 威海市| 太仓市| 日喀则市| 台南市| 大名县| 长治市| 林口县| 福海县| 昂仁县| 德钦县| 深圳市| 平遥县| 太保市| 祁门县| 杨浦区| 克山县| 建始县| 桃源县| 十堰市| 绿春县| 博湖县| 五原县| 安福县|