滿足以下兩個條件為多點觸控裝置:
1)輸入裝置驅動報告了abs_mt_position_x
和abs_mt_position_y存在
2)輸入裝置沒有任何手柄按鈕
滿足以下兩個條件為單點觸控裝置:
1)輸入裝置不被歸類為多點觸控裝置
2)輸入裝置報告存在abs_x和abs_y絕對軸,以及存在btn_touch按鍵碼
所有內建的觸控裝置應該有輸入裝置的配置檔案(.idc, input device configuration files).如果輸入裝置配置檔案不存在,系統將選擇乙個通用的觸控裝置配置做為預設配置。這些預設配置不是專門為內建觸控裝置設計的,有可能導致工作不正常。
當輸入裝置配置(idc)被載入之後,系統將把輸入裝置分為觸控螢幕(touch screen),觸控板(touch pad)或指標裝置(pointer device).
1)觸控螢幕:使用它,可以直接操作螢幕上的物件。
2)觸控板:它提供絕對的定位資訊給觸控區域內的應用程式。
3)指標裝置:使用它,通過游標間接操作螢幕上的物件。手指為多點觸控指標手勢,其它工具,如鐵筆,被解釋為使用絕對位置。
以上三類裝置的分類規則如下:
1)如果.idc中設定了touch.devicetype屬性,則裝置型別被設定為它所指定的裝置型別(如:touchscreen)
2)如果輸入裝置通過eviocgprop ioctl報告了存在input_prop_direct輸入屬性,則此裝置型別被設定為觸控螢幕。
3)如果輸入裝置通過eviocgprop ioctl報告了存在input_prop_pointer輸入屬性,則此裝置型別被設定為指標裝置。
4)如果輸入裝置報告了存在rel_x和rel_y相對軸,則裝置型別被設定為觸控板。
5)如果不滿足以上條件,則裝置型別被設定為指標裝置。
按鈕是可選控制,應用程式使用它執行其這功能。觸控裝置上的按鈕功能類似於滑鼠按鈕,主要被指標觸控裝置或鐵筆使用。
支援的按鈕如下:
btn_left: 被對映為: motionevent.button_primary.
btn_right: 被對映為: motionevent.button_secondary.
btn_middle: 被對映為: motionevent.button_middle.
btn_back and btn_side:被對映為:motionevent.button_back. 按此按鈕也生成乙個按鍵:keyevent.keycode_back.
btn_forward and btn_extra: 被對映為: motionevent.button_forward. 按此按鈕也生成乙個按鍵:keyevent.keycode_forward.
btn_stylus: 被對映為:motionevent.button_secondary.
btn_stylus2: 被對映為:motionevent.button_tertiary.
乙個工具是乙個用於與觸控裝置進行互動的手指、鐵筆或其它裝置。一些觸控裝置可以區別不同的觸控工具型別。android支援以下觸控工具型別:
3) 多點觸控(multi-touch)裝置支援以下linux輸入事件:
4) 如果單點觸控和多點觸控的軸都定義了,則只有多點協議的軸被使用,單點觸控的軸則被忽略。
5)abs_x
,abs_y
,abs_mt_position_x
andabs_mt_position_y
軸的最小值和最大值以裝置表面具體的單位(如畫素)定義了活動區域的邊界。對於觸控螢幕,活動區域描述了觸控裝置真正覆蓋顯示部分的區域。
6) 在android4.0中,觸控螢幕驅動需要修改以與linux輸入協議規範相容。
下列變化可能需要:
1) 當乙個工具變成不活動時(如手指抬起) ,在隨後的multi-touch sync report它不應該出現;當所有的工具不活動時(如所有的手指抬起),驅動應該傳送乙個空的sync report包,如:syn_mt_report緊跟乙個syn_report。
以前的android版本期望報告乙個up事件(通過傳送乙個pressure值為0) 。舊的操作方式與linux input協議規範不相容,所以不再使用。
2) 物理壓力或訊號強度資訊應該使用abs_mt_pressure報告。
以前的android版本從abs_mt_touch_major獲取壓力資訊。舊的操作方式與linux input協議規範不相容,所以不再使用。
3) 觸控尺寸資訊通過abs_mt_touch_major報告。
以前的android版本從abs_mt_tool_major獲取觸控尺寸資訊。舊的操作方式與linux input協議規範不相容,所以不再使用。
觸控裝置驅動不再需要android定製化。通過標準的linux input協議,android可以支援大量的觸控裝置,且不用修改驅動。
linux觸控螢幕輸入裝置,觸控螢幕校驗方法
本文拋開技術層次上來說說linux觸控螢幕裝置驅動原理 觸控螢幕,就是用一塊ad轉換晶元來將螢幕上的觸控訊號轉成數碼訊號。觸控螢幕常用的是四線電阻,ad轉換晶元 常用的是7843,7846,ts2003等。當觸控時候,這些晶元會將模擬訊號轉換成數碼訊號,就是通常說的ad轉換。在linux中,通常是通...
觸控螢幕開發 觸控螢幕甩屏互動系統
這是南京酷牛科技最新開發的一款上下屏聯動觸控螢幕軟體。比較獨特的是,玩家可以通過控制乙個下屏,與上屏五個顯示屏進行展示的互動。軟體組成 軟體特點 1 一台大的顯示器 支援led屏,投影儀,拼接屏 可以和多個觸控螢幕組成區域網實現觸屏資料飛至大屏,不限制觸控螢幕的個數。如果只有1個觸控螢幕也可以用擴充...
觸控螢幕設定
1.srcpnd,intpnd 暫存器的意義 一直不明白為什麼中斷服務程式最後要把 srcpnd,intpnd 相應位置 1,還把這個過程稱為 cleaningpend 既然叫清除為什麼不是清零呢?查了手冊 當有中斷源請求中斷服務時,srcpnd 相應位置 1,裁決 判斷是否響應中斷 時 intpn...