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

Rss & SiteMap

曙海教育集團論壇 http://www.bjzhda.cn

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

標題:WinCE中的Touch Panel驅動介紹

1樓
wangxinxin 發表于:2010-11-16 11:29:14

WinCE中的Touch Panel驅動是由GWES模塊來管理的,Touch Panel驅動接收用戶的觸摸信息,并將其轉換為屏幕上的坐標信息,傳給GWES模塊。在WinCE中,Touch Panel驅動是分層的,分為MDD層和PDD層,這和其他WinCE設備驅動是一樣的。MDD層由微軟提供,用戶只需要實現MDD和PDD層間的DDSI函數就可以了。如圖


        WinCE中的GWES模塊負責加載和管理Touch Panel驅動,Touch Panel的MDD層向上提供DDI接口,PDD層是針對硬件的實現,對MDD層提供DDSI接口。


1 Touch Panel驅動中的數據結構

(1) TOUCH_PANEL_SAMPLE_FLAGS

用于描述一個采樣點的信息,這些信息被定義在一個枚舉結構中:

               enum enumTouchPanelSampleFlags {

                 TouchSampleValidFlag = 0x01,

                 TouchSampleDownFlag = 0x02,

                 TouchSampleIsCalibratedFlag = 0x04,

                 TouchSamplePreviousDownFlag = 0x08,

                 TouchSampleIgnore = 0x10,

                 TouchSampleMouse = 0x40000000

               };

               TouchSampleValidFlag:一個有效的采樣值

               TouchSampleDownFlag:第一次按觸摸屏時,返回該flag

               TouchSampleIsCalibratedFlag:采樣的x和y坐標值不需要再被校驗了

               TouchSamplePreviousDownFlag:表示上一次采樣狀態是按在觸摸屏上

               TouchSampleIgnore:忽略這次采樣值

               TouchSampleMouse:預留


(2) TPDC_CALIBRATION_POINT

用于描述一個校驗點的相關信息,結構如下:

               struct TPDC_CALIBRATION_POINT {

                 INT PointNumber;

                 INT cDisplayWidth;

                 INT cDisplayHeight;

                 INT CalibrationX;

                 INT CalibrationY;

               };

               PointNumber:校驗點索引值,用于描述校驗點在LCD上的位置

                                                0:中間

                                                1:左上

                                                2:左下

                                                3:右下

                                                4:右上

               cDisplayWidth:顯示的寬度

               cDisplayHeight:顯示的高度

               CalibrationX:校驗點的x坐標值

               CalibrationY:校驗點的y坐標值


(3) TPDC_CALIBRATION_POINT_COUNT

用于描述需要校驗的點的個數,結構如下:

               struct TPDC_CALIBRATION_POINT_COUNT {

                  DDI_TOUCH_PANEL_CALIBRATION_FLAGS flags;

                  INT cCalibrationPoints;

               };

               flags:一般為0

               cCalibrationPoints:需要校驗的點的個數,一般是5


(4) gIntrTouch和gIntrTouchChanged

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

                        DWORD gIntrTouch        = SYSINTR_NOP;

DWORD gIntrTouchChanged = SYSINTR_NOP;

gIntrTouch用于描述觸摸屏中斷,要和硬件的觸摸屏中斷相關聯。

gIntrTouchChanged用于在觸摸屏按下后,每隔一段時間進行一次采樣,應該和硬件的一個定時器中斷相關聯。

這兩個值應該在DdsiTouchPanelEnable(..)函數中和硬件中斷關聯,并在函數DdsiTouchPanelGetPoint(..)中根據情況清除相應的中斷。


2 MDD層API

        MDD為上層導出所需的Touch Panel驅動接口函數,上層通過這些函數可以完成對Touch Panel的操作,下面會介紹這些函數的功能。

(1) BOOL TouchPanelEnable(PFN_TOUCH_PANEL_CALLBACK pfnCallback):

使能Touch Panel設備,用于初始化Touch Panel。

       pfnCallback:指向處理Touch Panel事件的回調函數


(2) Void TouchPanelDisable(void):

禁用Touch Panel設備。


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

獲得Touch Panel設備的相關信息。

       iIndex:索引值

                        TPDC_SAMPLE_RATE_ID:采樣率信息

                        TPDC_CALIBRATION_POINT_COUNT_ID:采樣點個數信息

                        TPDC_CALIBRATION_POINT_ID:采樣點坐標信息

            lpOutput:指向一個內存區域,用于存放獲得的相關信息


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

將輸入的未經過校驗的坐標信息轉換成校驗后的坐標信息。

       UncalX:輸入的X坐標

               UncalY:輸入的Y坐標

       pCalX:校驗后的X坐標

       pCalY: 校驗后的Y坐標


(5) VOID TouchPanelPowerHandler(BOOL bOff):

Touch Panel的電源控制函數。

       bOff:TRUE表示關閉電源,FALSE表示打開電源


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

獲得Touch Panel的坐標。

       pRawX:觸摸屏的X坐標

       PRawY:觸摸屏的Y坐標


(7) VOID TouchPanelReadCalibrationAbort(void):

終止當前的校驗。


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

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

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .03125 s, 2 queries.
主站蜘蛛池模板: 漂亮大学生一级毛片 | 久cao在线香蕉69影院 | 91精品天美精东蜜桃传媒免费 | 中国黄色网址大全 | 在线看片 在线播放 | 91精品国产一区二区三区左线 | 欧美日韩在线视频不卡一区二区三区 | 色图综合网| 天天看黄 | 国产综合色在线视频 | 国产精品二区高清在线 | 成人情趣视频无遮掩免费 | 国产精品亚洲综合久久小说 | 成人免费在线视频观看 | 成人 在线欧美亚洲 | 一级做a爰片 | 国产欧美日韩免费 | 国产毛片儿 | 国产精品观看在线亚洲人成网 | 97色在线视频 | 欧美性黑人巨大gaysex | 91短视频在线观看手机 | 99视频在线精品自拍 | 欧美黄一片 | 久久草在线视频国产一 | 黄色毛片电影 | 免费涩涩在线视频网 | 国产一区二区三区免费观看 | 久久国产免费福利永久 | 一级女人18毛片免费 | 黄免费在线观看 | 久热青青青在线视频精品 | 一级做a爰视频免费观看2019 | 免费一级毛片免费播放 | 99久99久6久热在线播放 | 四色婷婷婷婷色婷婷开心网 | va在线视频 | 午夜精品久久久久久久爽 | 国产亚洲欧美日本一二三本道 | 久久久久国产一级毛片高清板 | 91国内视频在线观看 |