欧美群妇大交群的观看方式_久久机这里只有精品_国产suv精品一区_美国一区二区_欧洲乱码伦视频免费_日韩精品一级二级_另类综合日韩欧美亚洲_黑人巨大精品欧美黑白配亚洲

Linux與Android 多點觸摸協(xié)議

作者: TouchScreen     時間:2012-06-28     源于:未知    總點擊:
【導(dǎo)讀】:單點觸摸信息是以ABS承載并按一定順序發(fā)送,多點觸摸信息則是以ABS_MT承載并按一定順序發(fā)送,然后通過調(diào)用input_mt_sync()產(chǎn)生一個 SYN_MT_REPORT event來標(biāo)記一個點的結(jié)束,告訴接收方接收當(dāng)前手指的信息并準(zhǔn)備接收其它手指的觸控信息。

    為了使用功能強大的多點觸控設(shè)備,就需要一種方案去上報用戶層所需的詳細(xì)的手指觸摸數(shù)據(jù)。這個文檔所描述的多點觸控協(xié)議可以讓內(nèi)核驅(qū)動程序向用戶層上報任意多指的數(shù)據(jù)信息。

    使用說明

    單點觸摸信息是以ABS承載并按一定順序發(fā)送,如BTN_TOUCH、ABS_X、ABS_Y、SYNC。而多點觸摸信息則是以ABS_MT承載并按一定順序發(fā)送,如ABS_MT_POSITION_X、ABS_MT_POSITION_Y,然后通過調(diào)用input_mt_sync()產(chǎn)生一個 SYN_MT_REPORT event來標(biāo)記一個點的結(jié)束,告訴接收方接收當(dāng)前手指的信息并準(zhǔn)備接收其它手指的觸控信息。最后調(diào)用 input_sync()函數(shù)上報觸摸信息開始動作并告訴接收方開始接收下一系列多點觸摸信息。

    協(xié)議定義了一系列ABS_MT事件,這些事件被分為幾大類,充許只應(yīng)用其中的一部份,多點觸摸最小的事件集中應(yīng)包括ABS_MT_TOUCH_MAJOR、ABS_MT_POSITION_X和 ABS_MT_POSITION_Y,以此來實現(xiàn)多點觸摸。如果設(shè)備支持ABS_MT_WIDTH_MAJOR這個事件,那么此事件可以提供手指觸摸接觸面積大小。觸摸方向等信息可以由ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION提供。ABS_MT_TOOL_TYPE提供觸摸設(shè)備的類別,如手或是筆或是其它。最后有些設(shè)備可能會支持ABS_MT_TRACKING_ID,用來支持硬件跟蹤多點信息,即該點屬于哪一條線等。

    下面是兩點觸摸支持的最小事件集序列:

    ABS_MT_TOUCH_MAJOR

    ABS_MT_POSITION_X

    ABS_MT_POSITION_Y

    SYN_MT_REPORT      //上報第一個點

    ABS_MT_TOUCH_MAJOR

    ABS_MT_POSITION_X

    ABS_MT_POSITION_Y

    SYN_MT_REPORT      //上報第二個點

    SYN_REPORT         //開始動作

    Event 原語

    “接觸”一詞用來描述一個物體直接碰到另一個物體的表面。

    ABS_MT_TOUCH_MAJOR描述了主接觸面的長軸,它和X,Y同一個單位,如果一個面的分辨率為X*Y,則ABS_MT_TOUCH_MAJOR的最大值為sqrt(X^2+Y^2)

    ABS_MT_TOUCH_MINOR描述了接觸面的短軸,如果接觸面是圓形,它可以不用。

    ABS_MT_WIDTH_MAJOR描述了接觸工具的長軸

    ABS_MT_WIDTH_MINOR描述了接觸工具的短軸

    ABS_MT_TOUCH_MAJOR := max(X, Y)

    ABS_MT_TOUCH_MINOR := min(X, Y)

    ABS_MT_ORIENTATION := bool(X > Y)

    以上四個參數(shù)可以用來生成額外的觸摸信息,如ABS_MT_TOUCH_MAJOR/ABS_MT_WIDTH_MAJOR的比率可以用來描述壓力。

    ABS_MT_ORIENTATION

    ABS_MT_POSITION_X接觸面的中心點X坐標(biāo)

    ABS_MT_POSITION_Y接觸面的中心點Y坐標(biāo)

    ABS_MT_TOOL_TYPE描述接觸工具類型,很多內(nèi)核驅(qū)動無法區(qū)分此參數(shù)如手指及筆,如果是這樣,該參數(shù)可以不用,協(xié)議目前支持MT_TOOL_FINGER和MT_TOOL_PEN兩種類型。

    ABS_MT_BLOB_ID形狀集ID,集合幾個點以描述一個形狀,很多驅(qū)動沒有形狀屬性,此參數(shù)可以不用。

    ABS_MT_TRACKING_ID描述了從接觸開始到釋放的整個過程的集合,如果設(shè)備不支持,此參數(shù)可是不用。

    觸摸軌跡

    僅有少數(shù)設(shè)備可以明觸的標(biāo)識真實的 trackingID,多數(shù)情況下 trackingID只能來標(biāo)識一次觸摸動作的過程。

    手勢

    多點觸摸指定的應(yīng)用是創(chuàng)建手勢動作, TOUCH和 WIDTH參數(shù)經(jīng)常用來區(qū)別手指的壓力和手指間的距離,另外 MINOR類的參數(shù)可以用來區(qū)別設(shè)備的接觸面的大小(點接觸還是面接觸),ORIENTATION可以產(chǎn)生旋轉(zhuǎn)事件。

    在Linux內(nèi)核支持的基礎(chǔ)上,Android在其2.0源碼中加入多點觸摸功能。由此觸摸屏在Android的frameworks被完全分為2種實現(xiàn)途徑:單點觸摸屏的單點方式,多點觸摸屏的單點和多點方式。

    在Linux的input.h中,多點觸摸功能依賴于以下幾個主要的軟件位:

    ……

    #define SYN_REPORT0

    #define SYN_CONFIG1

    #define SYN_MT_REPORT2

    ……

    #define ABS_MT_TOUCH_MAJOR0x30

    #define ABS_MT_TOUCH_MINOR0x31

    #define ABS_MT_WIDTH_MAJOR0x32

    #define ABS_MT_WIDTH_MINOR0x33

    #define ABS_MT_ORIENTATION0x34

    #define ABS_MT_POSITION_X0x35

    #define ABS_MT_POSITION_Y0x36

    #define ABS_MT_TOOL_TYPE0x37

    #define ABS_MT_BLOB_ID0x38

    ……

    在Android中對應(yīng)的軟件位定義在RawInputEvent.java中:

    ……

    public class RawInputEvent {

    ……

 public static final int CLASS_TOUCHSCREEN_MT = 0x00000010;

    ……

    public static final int ABS_MT_TOUCH_MAJOR = 0x30;

    public static final int ABS_MT_TOUCH_MINOR = 0x31;

    public static final int ABS_MT_WIDTH_MAJOR = 0x32;

    public static final int ABS_MT_WIDTH_MINOR = 0x33;

    public static final int ABS_MT_ORIENTATION = 0x34;

    public static final int ABS_MT_POSITION_X = 0x35;

    public static final int ABS_MT_POSITION_Y = 0x36;

    public static final int ABS_MT_TOOL_TYPE = 0x37;

    public static final int ABS_MT_BLOB_ID = 0x38;

    ……

    public static final int SYN_REPORT = 0;

    public static final int SYN_CONFIG = 1;

    public static final int SYN_MT_REPORT = 2;

    ……

    在Android中,多點觸摸的實現(xiàn)方法在具體的代碼實現(xiàn)中和單點是完全區(qū)分開的。在Android代碼的EventHub.cpp中,單點屏和多點屏由如下代碼段來判定:

    int EventHub::open_device(const char *deviceName)

    {

    ……

    if (test_bit(ABS_MT_TOUCH_MAJOR, abs_bitmask)

    && test_bit(ABS_MT_POSITION_X, abs_bitmask)

    && test_bit(ABS_MT_POSITION_Y, abs_bitmask)) {

    device->classes |= CLASS_TOUCHSCREEN | CLASS_TOUCHSCREEN_MT;

    //LOGI("It is a multi-touch screen!");

    }

    //single-touch?

    else if (test_bit(BTN_TOUCH, key_bitmask)

    && test_bit(ABS_X, abs_bitmask)

    && test_bit(ABS_Y, abs_bitmask)) {

    device->classes |= CLASS_TOUCHSCREEN;

    //LOGI("It is a single-touch screen!");

    }

    ……

    }

    我們知道,在觸摸屏驅(qū)動中,通常在probe函數(shù)中會調(diào)用input_set_abs_params給設(shè)備的input_dev結(jié)構(gòu)體初始化,這些input_dev的參數(shù)會在Android的EventHub.cpp中被讀取。如上可知,如果我們的觸摸屏想被當(dāng)成多點屏被處理,只需要在驅(qū)動中給input_dev額外增加以下幾個參數(shù)即可:

    input_set_abs_params(mcs_data.input, ABS_MT_POSITION_X, pdata->abs_x_min,  pdata->abs_x_max, 0, 0);

    input_set_abs_params(mcs_data.input, ABS_MT_POSITION_Y, pdata->abs_y_min,  pdata->abs_y_max, 0, 0);

    input_set_abs_params(mcs_data.input, ABS_MT_TOUCH_MAJOR, 0, 15, 0, 0);

    //相當(dāng)于單點屏的ABX_PRESSURE

    input_set_abs_params(mcs_data.input, ABS_MT_WIDTH_MAJOR, 0, 15, 0, 0);

    //相當(dāng)于單點屏的ABS_TOOL_WIDTH

    由于多點觸摸技術(shù)需要采集到多個點,然后再一起處理這些點,所以在軟件實現(xiàn)中需要保證每一波點的準(zhǔn)確性和完整性。因此,Linux內(nèi)核提供了input_mt_sync(struct input_dev * input)函數(shù)。在每波的每個點上報后需要緊跟一句input_mt_sync(), 當(dāng)這波所有點上報后再使用input_sync()進(jìn)行同步。

    例如一波要上報3個點:

    ……

    input_mt_sync(input);

    ……

    input_mt_sync(input);

    ……

    input_mt_sync(input);

    input_sync(input);

    注:即使是僅上報一個點的單點事件,也需要一次input_my_sync。


相關(guān)閱讀:3D打印    模具產(chǎn)業(yè)    微鑄鍛技術(shù)    石墨烯    OLED面板    夏普    iPhone 8    半導(dǎo)體    蘋果    
關(guān)于我們 | 廣告服務(wù) | 聯(lián)系我們 | 版權(quán)聲明 | 隱私政策 | 網(wǎng)站地圖 | 友情鏈接 | 歡迎投稿 | 加入收藏 | 意見反饋 | 經(jīng)銷商加入
網(wǎng)站廣告、經(jīng)銷商加盟、觸摸屏軟件銷售: 028-85108892 13183843395 028-66219290 聯(lián)系人: 張小姐 產(chǎn)品購買聯(lián)系方式如下:
地址:成都市高升橋東路2號高盛中心1109室 電話: 028-85108892 13183843395 028-66219290
版權(quán)所有 Copyright(C) 2003-2015 All rights reserved 中國觸摸屏網(wǎng) 電子郵件: 51touch@126.com touch8@gmail.com
業(yè)務(wù)合作QQ:觸摸屏技術(shù),觸摸屏報價,觸摸屏軟件咨詢 43361182 觸摸屏軟件制作與技術(shù)支持:觸摸屏軟件,觸摸查詢系統(tǒng),觸摸查詢軟件 893008608 媒體合作QQ: 893008608

2000人超級QQ觸摸屏群:59897879 171220106


分享到
欧美日韩另类字幕中文| 伊人亚洲精品| 日韩欧美在线字幕| 暴力调教一区二区三区| 中文字幕午夜精品一区二区三区| 午夜影院在线观看国产主播| 免费观看的av网站| 欧美日韩一级二级三级| 亚洲欧洲精品一区二区三区不卡| 另类小说一区二区三区| 欧美国产91| 欧美日中文字幕| 日韩精品一页| 国产精品字幕| 国产一二在线播放| 麻豆传媒在线免费看| 日韩国产高清视频在线| 日本中文在线观看| 中文字幕国产精品一区二区| 日本成人超碰在线观看| 国产精品久久久久久久久久妞妞| 欧美激情视频一区二区三区免费| 精品美女久久| 日韩专区精品| 99久久婷婷| 亚洲大胆在线| 亚洲综合激情| 国产在线精品视频| 久久www免费人成看片高清| 日本不卡123| 蜜桃视频一区二区三区在线观看| 美腿丝袜亚洲一区| 成人app下载| 亚洲视频精选在线| 日韩欧美国产黄色| 日韩免费电影一区| 亚洲国产欧美一区| 992tv在线观看| yes4444视频在线观看| 91一区在线| 久久综合九色综合欧美狠狠| 国产一区二区网址| 丁香激情综合五月| 日本一区二区动态图| 一区二区三区四区蜜桃| 一本色道久久综合亚洲精品按摩| 91精品国产综合久久久久久| 亚洲二区在线播放视频| 久久久资源网| 亚洲青青久久| 激情综合亚洲| 99在线热播精品免费| 亚洲欧洲国产日本综合| 国产精品乱人伦| 亚洲素人一区二区| 久久一卡二卡| 欧美日韩色图| 国产色综合久久| 欧美色视频一区| 福利视频在线看| 在线精品视频一区| 亚洲综合不卡| 粉嫩嫩av羞羞动漫久久久| 最新国产精品久久精品| 欧美日韩一二三区| 亚洲热线99精品视频| 国产欧美大片| 高清美女视频一区| 99在线精品一区二区三区| 久草中文在线观看| 午夜电影福利| 97成人超碰| 99精品网站| 国产中文字幕一区二区三区| 性欧美videos另类喷潮| 2020日本不卡一区二区视频| 欧美性xxxx| 91看片在线观看| 美腿丝袜亚洲图片| 久久国产剧场电影| 日本高清不卡视频| 国产精品一区二区婷婷| 国产精品.xx视频.xxtv| 日韩不卡手机在线v区| 亚洲精品电影在线| 在线日韩三级| 国内久久精品视频| 日韩精品专区在线影院观看| 国内精彩免费自拍视频在线观看网址 | 草莓福利社区在线| 一区二区三区午夜视频| 欧美色视频一区| 成年人黄色大片在线| 国产精品1区二区.| 精品国产露脸精彩对白| 成人av综合网| 一区二区三区免费| 午夜精品成人av| 成人精品免费网站| 飘雪影院手机免费高清版在线观看 | 欧美不卡高清一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 秋霞成人影院| 欧美3p视频| 伊人一区二区三区| 18av在线播放| 国产精品一二三四五| 日韩毛片高清在线播放| 日本中文字幕在线视频| 中文一区二区在线观看| 日韩精品视频中文字幕| 亚洲成人久久电影| 韩国一区二区在线观看| 成人免费看黄| 欧美一区二区三区视频免费| 亚洲自啪免费| 欧美色成人综合| 精品麻豆剧传媒av国产九九九| 亚洲欧洲中文日韩久久av乱码| 免费成人在线电影| 日韩一区有码在线| 伊人国产精品| 在线电影国产精品| 欧美日本一区二区高清播放视频| 亚洲人成电影在线播放| 久久久久久一区二区| 成年人视频在线看| 国产精品久久久久aaaa樱花| 色综合一区二区日本韩国亚洲| 在线视频综合导航| 亚洲视频一二| 在线观看免费网站黄| 久操视频在线免费播放| 久久国产成人精品| 国产精品一二三区视频| 欧美韩国日本不卡| 久久狠狠久久| 国产超碰在线观看| 国产色产综合产在线视频| **日韩最新| 亚洲免费电影在线观看| 91丨九色丨蝌蚪丨老版| 日韩精品一区二区三区中文在线| 精品国产青草久久久久福利| 国产成人午夜精品5599| 日本免费成人| 亚洲美女主播视频免费观看| 国产欧美一区二区在线观看| 亚洲另类春色校园小说| 黄页网站在线播放| 精品欧美国产一区二区三区| 日韩一区二区久久| 巨茎人妖videos另类| 亚洲精品一区久久久久久| 中文字幕+乱码+中文字幕一区| 超碰成人久久| 一区二区精品伦理...| 日韩大片免费观看视频播放| 国产无人区一区二区三区| 亚洲人metart人体| 欧美一级免费| 国产视频精品久久| 欧美久久高跟鞋激| 欧美极品另类videosde| 国产欧美日本| 欧美丝袜足交| 精品三级久久| 亚洲精品视频在线观看视频| 亚洲综合999| 久草在现在线| 亚洲欧美日韩一区二区三区在线观看 | 中文不卡在线| 日韩在线精品强乱中文字幕| 欧美午夜电影一区二区三区| 亚洲国产日韩欧美在线99| 亚洲一区二区三区四区不卡| 国产毛片一区二区| 亚洲少妇诱惑| 91精品推荐| 99久久人爽人人添人人澡| av影院在线免费观看| 最新国产在线观看| 在线观看国产v片| 亚洲欧美国产精品| 日韩欧美视频在线| 欧美日韩亚洲综合一区| 亚洲国产精品欧美一二99| 日本一区二区免费在线| www.久久精品| 成人av在线一区二区| 捆绑调教一区二区三区| 欧美一级二区| 91色porny| 成人中文字幕电影| 亚洲视频精品| 夜间精品视频| 7m精品国产导航在线| huan性巨大欧美| 精品欧美不卡一区二区在线观看| 日韩精品一区二区三区在线观看|