午夜伦理在线-午夜伦理在线观看-午夜毛片免费看-午夜美女久久久久爽久久-午夜免费

Rss & SiteMap

曙海教育集團(tuán)論壇 http://www.bjzhda.cn

曙海教育集團(tuán)論壇
共3 條記錄, 每頁(yè)顯示 10 條, 頁(yè)簽: [1]
[瀏覽完整版]

標(biāo)題:WinCE中的Touch Panel驅(qū)動(dòng)介紹

1樓
wangxinxin 發(fā)表于:2010-11-16 11:29:14

WinCE中的Touch Panel驅(qū)動(dòng)是由GWES模塊來(lái)管理的,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ù),上層通過(guò)這些函數(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)過(guò)校驗(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表示打開(kāi)電源


(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):

共3 條記錄, 每頁(yè)顯示 10 條, 頁(yè)簽: [1]

Copyright © 2000 - 2009 曙海教育集團(tuán)
Powered By 曙海教育集團(tuán) Version 2.2
Processed in .03125 s, 2 queries.
主站蜘蛛池模板: 日韩精品永久免费播放平台 | 在线 | 一区二区三区 | 国产精品亚洲视频 | 精品牛牛影视久久精品 | 成年看片永远免费 | a毛片免费观看 | 亚洲欧美一区二区三区国产精品 | 色婷婷国产 | 国产美女久久久亚洲 | 国产91视频免费 | 草草影院地址ccyycom浮力影院37 草草影院欧美 | 爱爱视频在线免费观看 | 有色影院 | 免费一级毛片 | 亚洲国产综合第一精品小说 | 97久久久久国产精品嫩草影院 | 亚洲欧美日韩综合一区 | 国产成+人+亚洲+欧美+日韩 | 精品一区二区三区视频在线观看 | 日韩中文字幕网 | 青草久久精品亚洲综合专区 | 国产美女一区二区三区 | 九九久久国产精品免费热6 九九天天影视 | 亚洲国产高清在线 | 国内视频精品 | 色综合天天综合中文网 | 亚洲a级| 性大片免费视频观看 | 一级特黄aaa大片在线观看视频 | 青青青久热国产精品视频 | 欧美精品免费看 | 国产老肥妇视频 | 国产乱偷国产偷高清 | 成人国产精品一级毛片天堂 | 亚洲精品区在线播放一区二区 | 日本一级二级三级久久 | 成年人黄色一级片 | 国产精品福利资源在线 | 天堂影院jav成人天堂免费观看 | 久久精品成人一区二区三区 | 成人精品区|