999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

HAODE基于Android平臺的鍵盤輸入技術研究

2013-01-26 04:24:50天地常州自動化股份有限公司
電子世界 2013年5期
關鍵詞:智能系統(tǒng)

天地(常州)自動化股份有限公司 蔣 華

1.引言

近年來,伴隨著云計算的飛速發(fā)展,物聯(lián)網(wǎng)技術的革新,智能終端以一種前所未有的速度在鋪開;在軟件層面,Android、iOS、Win8等智能終端操作系統(tǒng)三分天下,代表了智能終端操作系統(tǒng)的發(fā)展趨勢;而在硬件層面,以ARM架構為代表的高速、多核CPU,在智能終端平臺占據(jù)了統(tǒng)治地位。

雖然煤礦生產(chǎn)作為一個特殊領域,有其安全性、防爆、防潮等特殊的工藝要求,但并不妨礙在煤礦生產(chǎn)領域引進智能終端平臺,不但可以跟隨技術趨勢,實現(xiàn)礦業(yè)生產(chǎn)的技術升級;而且可以用更先進的平臺、技術來為礦業(yè)生產(chǎn)服務。

然而,在煤礦生產(chǎn)領域引進先進的智能終端平臺,有一個明顯的缺陷性,即智能終端的代表性技術——觸摸屏技術在礦業(yè)作業(yè)區(qū)域的使用,尚無法達標。礦場作業(yè)區(qū)域的濕度、粉塵等外界環(huán)境制約了觸摸屏在礦場環(huán)境的長時間使用。因此,在引進智能終端技術的同時,我們需要作出適當?shù)娜∩幔诜艞壥褂糜|摸屏技術的前提下,采用隔爆、防塵、防水的屏幕,同時結合傳統(tǒng)的鍵盤輸入技術,以滿足礦場的環(huán)境技術需求,使得智能終端平臺在礦場環(huán)境中得到新的發(fā)展。

2.Android輸入系統(tǒng)解析

Android中,主要的輸入硬件設備是鍵盤、觸摸屏、軌跡球等。輸入系統(tǒng)的結構也比較簡單,自下而上包含了驅(qū)動程序、本地庫處理部分、硬件抽象層、Java框架層、Android應用程序?qū)印ndroid用戶輸入系統(tǒng)的結構如圖1所示,此處不做詳細介紹,將在下文作具體講解。

3.Linux內(nèi)核驅(qū)動層分析

在工作生活中,接觸最多的就是全鍵盤,通過USB接口就能連接上主機進行使用;我們的平臺初期也實現(xiàn)了USB全鍵盤和USB鼠標的驅(qū)動,在沒有觸摸屏的情況下,它們是輸入系統(tǒng)的重要實現(xiàn)方式,但是,全鍵盤的體型、安全性限制,無法在井下環(huán)境中使用。

此處,我們所要介紹的鍵盤是兩種非常規(guī)的鍵盤:矩陣鍵盤和按鍵鍵盤。兩者各有優(yōu)缺點,矩陣鍵盤具有使用CPIO接口少,實現(xiàn)按鍵多的優(yōu)點,缺點卻是驅(qū)動實現(xiàn)方式較復雜,并且需要CPU不停地掃描鍵值,消耗有限的CPU資源;按鍵鍵盤占有GPIO接口較多,一個接口一個按鍵,對物理資源GPIO口消耗較多,優(yōu)點在于驅(qū)動實現(xiàn)簡單,且增加按鍵方便。

在Android平臺上,我們所要引進的鍵盤是要能夠在Android應用中替代button控件,實現(xiàn)按鍵控制;并且要通過有限的按鍵數(shù)目實現(xiàn)數(shù)字、字母、中文的輸入,符合這些要求的,只有傳統(tǒng)鍵盤符合,只是它的接口方式可以有矩陣和按鍵兩種,此處主要以按鍵鍵盤為例來介紹。

Linux從2.6版本開始引入了platform這個概念,將設備驅(qū)動的開發(fā)工作主要分為兩塊:platform_device和platform_driver。前者主要完成板級的硬件設備資源的添加;后者負責實現(xiàn)具體的設備驅(qū)動程序。

在開發(fā)底層驅(qū)動程序時,首先要確認的就是設備的資源信息,在2.6內(nèi)核中將每個設備的資源用結構platform_device來描述。該結構體定義在/include/linux/platform_device.h中。具體實現(xiàn)如下步驟:

1)定義按鍵屬性,如下文本框中GPIO_BUTTON的宏定義,此處重點關注兩個參數(shù):gpio_num和evc_code。前者需要根據(jù)芯片手冊選擇所需要與按鍵相連的GPIO接口的序號,后者代表了按鍵在Linux內(nèi)核系統(tǒng)中的鍵值,詳見include/linux.h.

2)將所需使用的按鍵構成一個GPIO鍵盤結構體數(shù)組smd_buttons,并以數(shù)組名稱和數(shù)組大小添加到GPIO按鍵驅(qū)動平臺gpio_keys_platform_data中。

3)將GPIO按鍵添加至設備平臺驅(qū)動類型platform_device中,并實現(xiàn)設備平臺驅(qū)動類型的注冊platform_device_register(&smd_button_device);

4)在完成platform_device的注冊之后,就需要在內(nèi)核驅(qū)動層進行具體設備的驅(qū)動移植開發(fā),驅(qū)動程序需要實現(xiàn)結構體platform_driver,也定義在/include/linux/platform_device.h中。鍵盤驅(qū)動的實現(xiàn)可見driver/input/gpio_keys.c文件。根據(jù)platform_driver提供的接口函數(shù),完成具體的probe、remove等函數(shù)的實現(xiàn),即可完成按鍵鍵盤驅(qū)動的實現(xiàn)。

至此,即完成了按鍵鍵盤的驅(qū)動移植工作。在完成按鍵鍵盤驅(qū)動的移植之后,為了避免再次移植矩陣鍵盤驅(qū)動的麻煩,我們可以使用一個單片機完成矩陣鍵盤接口電平到按鍵電平的轉(zhuǎn)換,通過硬件的轉(zhuǎn)接,即能在按鍵鍵盤驅(qū)動的基礎上實現(xiàn)對矩陣鍵盤的驅(qū)動。具體的實現(xiàn)電路就不再列舉。

4.本地庫處理系統(tǒng)

本地庫處理系統(tǒng)主要負責對Linux內(nèi)核層上報的按鍵鍵值進行二次轉(zhuǎn)換,并進行封裝上報至Java框架層。簡而言之,android按鍵消息通過二次轉(zhuǎn)換:

1)將驅(qū)動report上來的SCANCODE,通過文件qwerty.kl的映射,得到KEYCODE字串;

2)通過二維表static const KeycodeLabel KEYCODES[],將上面的字符串轉(zhuǎn)換成android需要的鍵值信息。如果是輸入鍵,還需要查詢keymap,得到相應的字符。

圖1 Android輸入系統(tǒng)框圖

5.Java框架層

如圖2所示,由KeyInputDevice等類來處理EventHub傳遞上來的信息,通過RawInputEvent和KeyEvent來表示。按鍵事件,以KeyEvent的形式傳送給應用程序;而觸摸屏和軌跡球事件以RawInputEvent的形式轉(zhuǎn)換形成MotionEvent事件傳送給Android應用程序。

在這個層面,Google已經(jīng)完成了相應機制的開發(fā)工作,不需要我們進行額外的開發(fā),我們只需要了解按鍵事件在這一層的處理即可。

6.Android應用層

在Android應用層中,對于按鍵事件的控制可以通過重寫onKeyDown、onKeyUp函數(shù)來實現(xiàn)類似Button控件的Listener的監(jiān)測功能;當按鍵按下或者回復時,會觸發(fā)相應鍵值多對應的Android應用層的操作。

最簡單的例子就是,Android手機通常都有的Home鍵,即是典型的按鍵功能的實現(xiàn),當然,我們也能夠通過重寫Home鍵的功能,使之實現(xiàn)不同的效果。如下框圖中的代碼所示,通過判斷鍵值是否為1、2、3,我們來使文本輸出不同的打印信息。在此處,賦予鍵值1、2、3的按鍵,它的功能類似于觸摸屏中的Button控件。

@Override

public boolean onKeyDown(int keyCode,KeyEvent event)

{

if (keyCode==KeyEvent.KEYCODE_1)

{

mTextView1.setText(“事件1”);

}

else if(keyCode==KeyEvent.KEYCODE_2)

{

mTextView1.setText(“事件2”);

}

else if(keyCode==KeyEvent.KEYCODE_3)

{

mTextView1.setText(“事件3”);

}

}

7.與Android Button事件比較

在android應用中,組件button的作用與實體按鍵作用類似,但也有較大差別;兩者之間的差別有二:

1)對于組件button的響應有對應的Listener,會監(jiān)測組件button事件;對于實體按鍵,是通過按鍵鍵值的轉(zhuǎn)換響應來判斷的,主要通過對按鍵重寫onKeyDown、onKeyUp來實現(xiàn)對按鍵事件的響應;

2)組件button的按下只會有一次響應;而對于實體按鍵的按下,android系統(tǒng)會定時查詢按鍵狀態(tài),可能在用戶看來只按下一次按鍵,但反映到android系統(tǒng)層面卻有若干次響應。

8.結語

本文就礦業(yè)領域引進智能終端技術遇到的觸摸屏技術瓶頸,提出了結合傳統(tǒng)鍵盤輸入技術,實現(xiàn)在礦業(yè)生產(chǎn)領域的智能終端的輸入系統(tǒng)的實現(xiàn)。在智能終端的基礎上,我們可以實現(xiàn)語音通話、視頻監(jiān)控、安全宣傳等各項功能,并能逐步引入地面成功使用的各種技術,為井下作業(yè)提供幫助。

[1]韓超,梁泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010.

[2]田澤.嵌入式系統(tǒng)開發(fā)與應用[M].北京:北京航空航天大學出版社,2005.

[3]高春生,紀永剛,王維,宋銳.Amigobot移動機器人上位控制[J]工礦自動化,2012(4):104-108.

[4]Chunduru V,Subramanian N.Effects of Power Lines on Performance of home control system.International Conference on Power Electronics,Drives and Energy Systems,New Delhi,India,2006:1-6.

猜你喜歡
智能系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
智能制造 反思與期望
半沸制皂系統(tǒng)(下)
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
主站蜘蛛池模板: 一本久道久久综合多人| 福利小视频在线播放| 992tv国产人成在线观看| 亚洲天堂视频网站| 在线中文字幕日韩| 亚洲中文在线看视频一区| 色婷婷狠狠干| 亚洲精品片911| 日本成人精品视频| 一区二区在线视频免费观看| 亚洲91在线精品| 国产午夜不卡| 制服丝袜一区| 国产美女视频黄a视频全免费网站| 亚洲a级毛片| 色噜噜中文网| 四虎国产精品永久在线网址| 亚洲大学生视频在线播放| 国产色爱av资源综合区| 99r在线精品视频在线播放| 亚洲三级片在线看| 免费一极毛片| 51国产偷自视频区视频手机观看| 波多野结衣在线se| 国产在线视频自拍| 99在线观看国产| 亚洲高清国产拍精品26u| 久久激情影院| 国产色网站| 国产一级在线播放| 婷婷综合缴情亚洲五月伊| 大陆国产精品视频| h网站在线播放| 91久久夜色精品国产网站 | 日韩欧美91| 国内精品免费| 97国产一区二区精品久久呦| 四虎综合网| 香蕉综合在线视频91| 毛片久久久| 国产日韩欧美黄色片免费观看| 99久久精品视香蕉蕉| 成人午夜视频在线| 国产免费a级片| 综合久久五月天| 四虎国产精品永久一区| 国产麻豆aⅴ精品无码| 日韩精品一区二区三区免费| 国产一线在线| 色香蕉网站| 全部免费特黄特色大片视频| 久久中文字幕2021精品| 91精品国产一区自在线拍| 国产视频久久久久| 亚洲第一综合天堂另类专| 最新精品国偷自产在线| 四虎成人精品| 超碰91免费人妻| 日韩欧美视频第一区在线观看| 成人国产一区二区三区| 欧美一级专区免费大片| 中国成人在线视频| 成年人国产网站| 日本不卡在线| 亚洲午夜18| 一区二区影院| 不卡视频国产| 国产浮力第一页永久地址| 国产九九精品视频| 人妻丝袜无码视频| 亚洲不卡影院| 婷婷伊人五月| 看av免费毛片手机播放| 九九九久久国产精品| 日韩东京热无码人妻| 天堂网国产| 久久国产精品娇妻素人| 久久久精品无码一二三区| 欧美一级在线| 亚洲婷婷六月| 尤物视频一区| 日韩毛片视频|