觸摸屏驅(qū)動(dòng)程序的設(shè)計(jì)和實(shí)現(xiàn)
(4)獲得穩(wěn)定的、去抖動(dòng)的測(cè)量數(shù)據(jù)
在進(jìn)行觸摸屏程序開發(fā)時(shí),一定要注意原始的觸摸測(cè)量數(shù)據(jù)經(jīng)常會(huì)有一些噪聲和偏差,這是正常的。一般來說,只有用戶緊緊壓住電阻觸摸屏才能得到兩個(gè)連續(xù)的讀數(shù),然而我們會(huì)發(fā)現(xiàn)當(dāng)觸控筆或手指按上或離開觸摸屏時(shí),讀數(shù)的變化要比保持穩(wěn)定壓力時(shí)大得多。這是因?yàn)橛脩羰且詸C(jī)械的方式連通二個(gè)平面電阻-觸摸層,當(dāng)用戶按壓和釋放觸摸屏?xí)r,在很短的一段時(shí)間內(nèi)觸摸屏的電氣連接均處于臨界狀態(tài)。這時(shí),我們需要丟棄這些讀數(shù)直到系統(tǒng)穩(wěn)定下來,否則提交的觸摸位置讀數(shù)會(huì)產(chǎn)生大幅跳躍,導(dǎo)致嚴(yán)重的失真或觸摸位置漂移。
這時(shí)就需要進(jìn)行折衷考慮,這也是觸摸屏驅(qū)動(dòng)設(shè)計(jì)的關(guān)鍵所在。如果我們要求較窄的穩(wěn)定窗口,那么驅(qū)動(dòng)程序將無法跟蹤快速的“拖曳”操作;如果加寬穩(wěn)定窗口,就可能面臨著許多風(fēng)險(xiǎn),這些風(fēng)險(xiǎn)包括接收到不精確的觸摸數(shù)據(jù),或上面描述處于臨界狀態(tài)的層連接結(jié)果。這時(shí),就需要通過實(shí)驗(yàn)來確定適合系統(tǒng)的最佳值。
在正常情況下,當(dāng)屏幕被觸摸時(shí)驅(qū)動(dòng)程序應(yīng)會(huì)得到每個(gè)穩(wěn)定的讀數(shù),并利用簡(jiǎn)單的線性插值法將原始數(shù)據(jù)轉(zhuǎn)換成像素坐標(biāo)。讀取觸摸點(diǎn)的坐標(biāo)是由 DdsiTouchPanalGetPoint()函數(shù)實(shí)現(xiàn)的。另外,在每個(gè)轉(zhuǎn)換過程的前后,驅(qū)動(dòng)程序必須檢查并確認(rèn)屏幕仍處于被觸摸狀態(tài)。因?yàn)槲覀儾幌M杉綄?shí)際上是處于“開路狀態(tài)”的穩(wěn)定讀數(shù)。因此,在讀取觸摸數(shù)據(jù)時(shí),我們需要對(duì)原始數(shù)據(jù)進(jìn)行去抖動(dòng)處理,然后確定屏幕被觸摸時(shí)是否有穩(wěn)定的讀數(shù);如果不穩(wěn)定就要繼續(xù)讀取數(shù)據(jù)并進(jìn)行去抖動(dòng)處理,直到得到穩(wěn)定的數(shù)據(jù)為止。
最后,觸摸屏驅(qū)動(dòng)程序應(yīng)將觸摸狀態(tài)和位置變化信息發(fā)送給更高層的應(yīng)用軟件,以完成一次完整的觸摸操作。
電容式觸摸屏相關(guān)文章:電容式觸摸屏原理
評(píng)論