<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團(tuán)論壇Win CE 專區(qū)Wince技術(shù)討論區(qū) → WinCE中的Touch Panel驅(qū)動(dòng)介紹


      共有9043人關(guān)注過本帖樹形打印

    主題:WinCE中的Touch Panel驅(qū)動(dòng)介紹

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個(gè)性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    WinCE中的Touch Panel驅(qū)動(dòng)介紹  發(fā)帖心情 Post By:2010-11-16 11:29:14

    WinCE中的Touch Panel驅(qū)動(dòng)是由GWES模塊來管理的,Touch Panel驅(qū)動(dòng)接收用戶的觸摸信息,并將其轉(zhuǎn)換為屏幕上的坐標(biāo)信息,傳給GWES模塊。在WinCE中,Touch Panel驅(qū)動(dòng)是分層的,分為MDD層和PDD層,這和其他WinCE設(shè)備驅(qū)動(dòng)是一樣的。MDD層由微軟提供,用戶只需要實(shí)現(xiàn)MDD和PDD層間的DDSI函數(shù)就可以了。如圖


            WinCE中的GWES模塊負(fù)責(zé)加載和管理Touch Panel驅(qū)動(dòng),Touch Panel的MDD層向上提供DDI接口,PDD層是針對(duì)硬件的實(shí)現(xiàn),對(duì)MDD層提供DDSI接口。


    1 Touch Panel驅(qū)動(dòng)中的數(shù)據(jù)結(jié)構(gòu)

    (1) TOUCH_PANEL_SAMPLE_FLAGS

    用于描述一個(gè)采樣點(diǎn)的信息,這些信息被定義在一個(gè)枚舉結(jié)構(gòu)中:

                   enum enumTouchPanelSampleFlags {

                     TouchSampleValidFlag = 0x01,

                     TouchSampleDownFlag = 0x02,

                     TouchSampleIsCalibratedFlag = 0x04,

                     TouchSamplePreviousDownFlag = 0x08,

                     TouchSampleIgnore = 0x10,

                     TouchSampleMouse = 0x40000000

                   };

                   TouchSampleValidFlag:一個(gè)有效的采樣值

                   TouchSampleDownFlag:第一次按觸摸屏?xí)r,返回該flag

                   TouchSampleIsCalibratedFlag:采樣的x和y坐標(biāo)值不需要再被校驗(yàn)了

                   TouchSamplePreviousDownFlag:表示上一次采樣狀態(tài)是按在觸摸屏上

                   TouchSampleIgnore:忽略這次采樣值

                   TouchSampleMouse:預(yù)留


    (2) TPDC_CALIBRATION_POINT

    用于描述一個(gè)校驗(yàn)點(diǎn)的相關(guān)信息,結(jié)構(gòu)如下:

                   struct TPDC_CALIBRATION_POINT {

                     INT PointNumber;

                     INT cDisplayWidth;

                     INT cDisplayHeight;

                     INT CalibrationX;

                     INT CalibrationY;

                   };

                   PointNumber:校驗(yàn)點(diǎn)索引值,用于描述校驗(yàn)點(diǎn)在LCD上的位置

                                                    0:中間

                                                    1:左上

                                                    2:左下

                                                    3:右下

                                                    4:右上

                   cDisplayWidth:顯示的寬度

                   cDisplayHeight:顯示的高度

                   CalibrationX:校驗(yàn)點(diǎn)的x坐標(biāo)值

                   CalibrationY:校驗(yàn)點(diǎn)的y坐標(biāo)值


    (3) TPDC_CALIBRATION_POINT_COUNT

    用于描述需要校驗(yàn)的點(diǎn)的個(gè)數(shù),結(jié)構(gòu)如下:

                   struct TPDC_CALIBRATION_POINT_COUNT {

                      DDI_TOUCH_PANEL_CALIBRATION_FLAGS flags;

                      INT cCalibrationPoints;

                   };

                   flags:一般為0

                   cCalibrationPoints:需要校驗(yàn)的點(diǎn)的個(gè)數(shù),一般是5


    (4) gIntrTouch和gIntrTouchChanged

    這是兩個(gè)被MDD層用到的中斷,需要在PDD層中定義,如下:

                            DWORD gIntrTouch        = SYSINTR_NOP;

    DWORD gIntrTouchChanged = SYSINTR_NOP;

    gIntrTouch用于描述觸摸屏中斷,要和硬件的觸摸屏中斷相關(guān)聯(lián)。

    gIntrTouchChanged用于在觸摸屏按下后,每隔一段時(shí)間進(jìn)行一次采樣,應(yīng)該和硬件的一個(gè)定時(shí)器中斷相關(guān)聯(lián)。

    這兩個(gè)值應(yīng)該在DdsiTouchPanelEnable(..)函數(shù)中和硬件中斷關(guān)聯(lián),并在函數(shù)DdsiTouchPanelGetPoint(..)中根據(jù)情況清除相應(yīng)的中斷。


    2 MDD層API

            MDD為上層導(dǎo)出所需的Touch Panel驅(qū)動(dòng)接口函數(shù),上層通過這些函數(shù)可以完成對(duì)Touch Panel的操作,下面會(huì)介紹這些函數(shù)的功能。

    (1) BOOL TouchPanelEnable(PFN_TOUCH_PANEL_CALLBACK pfnCallback):

    使能Touch Panel設(shè)備,用于初始化Touch Panel。

           pfnCallback:指向處理Touch Panel事件的回調(diào)函數(shù)


    (2) Void TouchPanelDisable(void):

    禁用Touch Panel設(shè)備。


    (3) BOOL TouchPanelGetDeviceCaps(INT iIndex, LPVOID lpOutput ):

    獲得Touch Panel設(shè)備的相關(guān)信息。

           iIndex:索引值

                            TPDC_SAMPLE_RATE_ID:采樣率信息

                            TPDC_CALIBRATION_POINT_COUNT_ID:采樣點(diǎn)個(gè)數(shù)信息

                            TPDC_CALIBRATION_POINT_ID:采樣點(diǎn)坐標(biāo)信息

                lpOutput:指向一個(gè)內(nèi)存區(qū)域,用于存放獲得的相關(guān)信息


    (4) VOID TouchPanelCalibrateAPoint(INT32 UncalX, INT32 UncalY, INT32* pCalX, INT32* pCalY):

    將輸入的未經(jīng)過校驗(yàn)的坐標(biāo)信息轉(zhuǎn)換成校驗(yàn)后的坐標(biāo)信息。

           UncalX:輸入的X坐標(biāo)

                   UncalY:輸入的Y坐標(biāo)

           pCalX:校驗(yàn)后的X坐標(biāo)

           pCalY: 校驗(yàn)后的Y坐標(biāo)


    (5) VOID TouchPanelPowerHandler(BOOL bOff):

    Touch Panel的電源控制函數(shù)。

           bOff:TRUE表示關(guān)閉電源,F(xiàn)ALSE表示打開電源


    (6) BOOL TouchPanelReadCalibrationPoint(INT* pRawX, INT* pRawY):

    獲得Touch Panel的坐標(biāo)。

           pRawX:觸摸屏的X坐標(biāo)

           PRawY:觸摸屏的Y坐標(biāo)


    (7) VOID TouchPanelReadCalibrationAbort(void):

    終止當(dāng)前的校驗(yàn)。


    (8) VOID TouchPanelSetCalibration(INT32 cCalibrationPoints, INT32* pScreenXBuffer, INT32* pScreenYBuffer, INT32* pUncalXBuffer, INT32* pUncalYBuffer):


    支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

    返回版面帖子列表

    WinCE中的Touch Panel驅(qū)動(dòng)介紹








    簽名
    主站蜘蛛池模板: 波多野结衣被绝伦在线观看| freesexvideos糟蹋hd| 欧美性a欧美在线| 啊灬老师灬老师灬别停灬用力| 91av福利视频| 天天影院成人免费观看| 久久精品欧美日韩精品| 欧美成人免费全部观看天天性色| 啊灬啊别停灬用力啊岳| 顶级欧美妇高清xxxxx| 国农村精品国产自线拍| 中文字幕日韩精品麻豆系列| 日韩国产免费一区二区三区| 亚洲精品乱码久久久久久蜜桃| 精品亚洲一区二区三区在线观看| 国产成人不卡亚洲精品91| 99久久精品国产一区二区蜜芽| 婷婷丁香六月天| 久久人妻av无码中文专区| 杨幂13分20秒未删减bt| 人妻少妇中文字幕乱码| 精品久久久无码人妻中文字幕| 国产噜噜在线视频观看| 97久久精品无码一区二区| 天天摸天天摸天天躁| 久9久9精品免费观看| 日本牲交大片免费观看| 亚洲国产欧美另类va在线观看| 污视频网站免费在线观看| 午夜国产在线视频| 羞羞社区在线观看视频| 国产无遮挡又黄又爽在线视频| 99re热这里只有精品| 天堂资源wwww在线看| 中文字幕精品一区二区2021年| 日本不卡高字幕在线2019| 亚洲人和日本人jizz| 欧美成人午夜影院| 伊人色综合久久天天网| 男女超爽视频免费播放| 四虎国产成人永久精品免费|