10.13 android輸入系統_多點觸摸驅動理論與架構

來源:互聯網
上載者:User

標籤:檔案   存在   only   type   iic   自身   errors   進一步   android系統   

1、多點觸摸驅動理論

驅動程式僅上報多個觸點的位置就可以,是放大還是縮小由應用程式控制

對於多點觸摸驅動在linux系統中有個輸入子系統,其已經實現了open/read/write等介面

我們只需要實現硬體相關的升級,有資料時上報硬體相關資料給輸入子系統

input.c//輸入子系統核心檔案

  .open找到input_handler得到對應的fops,在調用真正的open

在android系統中用到evdev.c其來提供input_handler

裝置相關:

(1)構造input_device

(2設定

(3)註冊

(4)有資料時,通過input_event上報寫入buffer中,並喚醒read,在evdev.c中的read會去讀buffer中的資料

 

單點觸摸:

上報什麼資料?

按下:BTN_TOUCH,1

滑動:for(){ABS_X,x;ABS_Y,y;ABS_PRESSURE,1;BTN_TOUCH,1}

鬆開:BTN_TOUCH,0;ABS_PRESSURE,0

多點觸摸:(參考文檔multi-touch-protocol.txt多點觸摸協議)

同一時刻,上報所有觸點的位置

for(){t1時刻:上報p1、p2位置;t2時刻:上報p3、p4位置.......}

上報的資料分為AB兩類:

A類簡單,只上報觸點位置,不關心觸點關係

B類複雜,上報觸點的位置和觸點的關係,資料由多點觸摸控制IC提供(比如通過計算得到兩個點是一個滑動產生的(距離短))

觸摸控制IC提供的資料包括:觸點位置,觸點關係

 

 

 

2、多點觸摸驅動架構

參考:
drivers\input\touchscreen\ft5x06_ts.c

第一次:
git clone https://github.com/weidongshan/DRV_0005_MultiTouchPanel.git

git clone https://git.coding.net/weidongshan/DRV_0005_MultiTouchPanel.git

更新:
git pull origin

取出指定版本:
git checkout v1 // Demo driver for multi touch panel, it is only a Framework
git checkout v2 // There are some errors in v1

視頻堪誤:
a. 要設定input_dev的name, android根據這個name找到設定檔
b. 完全鬆開觸控螢幕後要上報: input_mt_sync, input_sync
c. input_set_abs_params(ts_dev, ABS_MT_TRACKING_ID, 0, 最大ID值, 0, 0);
其中的最大ID值沒有限制,是裝置自身定義的值,最大值一般由觸控螢幕控制IC決定。
一般電容屏最多支援10點觸摸,但是ID值跟"N點觸摸"無關

 

控制IC通過中斷管腳通知CPU有觸控螢幕資料了,然後CPU通過IIC或者SPI讀取資料

 

i2c_driver {

.probe

.id_table

.detect

.address_list

}

註冊i2c_driver 的時候,使用adapter遍曆address_list,如果發現裝置存在,調用detect函數做進一步判斷,會在detect函數中設定info結構體的type值並且返回0,返回0之後,會建立一個新的I2C裝置(i2c_new_device(adapter,&info)),這個裝置會使用info->type與id_table裡面的name相同的化就調用probe函數,我們在probe函數中讀取控制IC發送的資料並上報

 

 

10.13 android輸入系統_多點觸摸驅動理論與架構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.