<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)介紹


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

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

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


    加好友 發(fā)短信
    等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):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)介紹








    簽名
    主站蜘蛛池模板: 无码国产精品一区二区免费模式| 美女视频黄频a免费观看| 成人毛片免费视频| 亚洲国产日韩女人aaaaaa毛片在线| 精品久久洲久久久久护士| 国产极品大学生酒店| videos性欧美| 成人精品视频一区二区三区尤物| 亚洲国产成AV人天堂无码| 爽新片xxxxxxx| 国产三级毛片视频| 18禁裸男晨勃露j毛免费观看| 天天摸天天做天天爽水多| 久久久噜噜噜久久中文字幕色伊伊 | 毛片让我看一下毛片| 国产一区二区在线观看app| 51妺嘿嘿午夜福利| 在线观看日韩电影| 中文字幕一级片| 日本a中文字幕| 亚洲一区二区视频在线观看| 欧美激情一区二区三区中文字幕| 又大又粗又爽的三级小视频| 色妞www精品视频观看软件| 国产精品亚洲а∨无码播放不卡| runaway韩国动漫全集在线| 成人一级片在线观看| 久久精品国产亚洲av四虎| 最近日本中文字幕免费完整| 亚洲精品国产高清在线观看| 男人进的越深越爽动态图| 国产一区二区三精品久久久无广告| 麻豆工作室传媒| 国产精品成人免费福利| mm131美女爱做视频在线看| 很狠干线观看2021| 久久免费公开视频| 日韩中文字幕亚洲无线码| 亚洲午夜成人片| 欧美国产一区二区三区激情无套| 做a的视频免费|