午夜av网址在线观看免费,欧洲久久久久久免费免费,欧美午夜一区二区福利视频,肥婆老熟妇精品视频在线

當(dāng)前位置:首頁(yè) > 觸控技術(shù) > 觸摸屏論文
觸摸屏論文

嵌入式Linux系統(tǒng)基于MiniGUl的觸摸屏多點(diǎn)采集校準(zhǔn)算法

基于MiniGUI的觸摸屏多點(diǎn)采集校準(zhǔn)算法
向昱丞1,高潔2
(1.中國(guó)兵器工業(yè)第58研究所軍電部,四J|I綿陽(yáng)621000;2.中國(guó)兵器工業(yè)第58研究所軍品部,四川綿陽(yáng)621000)

摘要:為實(shí)現(xiàn)觸摸屏的精確校準(zhǔn),提出一種在嵌入式Linux系統(tǒng)下基于MiniGUl的觸摸屏多點(diǎn)采集校準(zhǔn)算法.該方法利用MiniGUI定時(shí)器消息和鼠標(biāo)消息,在一般校屏程序中只需采集5個(gè)基本目標(biāo)點(diǎn),將每個(gè)目標(biāo)點(diǎn)的取值都細(xì)化為多個(gè)光標(biāo)點(diǎn)運(yùn)算處理。通過(guò)多點(diǎn)數(shù)據(jù)的采集、比較及處理,能夠較精確地校準(zhǔn)觸摸屏。結(jié)果表明,該算法能提高取值的準(zhǔn)確性,減少取值過(guò)程中的誤操作。

關(guān)鍵詞:嵌入式Linux系統(tǒng);MiniGUI;觸摸屏多點(diǎn)采集

中圖分類號(hào):TP301.6;TP311.52 文獻(xiàn)標(biāo)志碼:A

O 引言

    觸摸屏處理的數(shù)據(jù)是點(diǎn)的物理坐標(biāo),通過(guò)觸摸屏控制器采集得來(lái),而LCD顯示屏則處理像素。同時(shí),在安裝觸摸屏的過(guò)程中,也存在一定的誤差,所以需要校準(zhǔn)。

    嵌入式Linux是一種可以進(jìn)行裁減、修改使之能在嵌入式計(jì)算機(jī)系統(tǒng)上運(yùn)行的操作系統(tǒng)。具有較高的穩(wěn)定性和安全性,以及具有良好的硬件支持、標(biāo)準(zhǔn)兼容性和資源豐富等特點(diǎn)Ilj。而MiniGUI是基于Linux實(shí)時(shí)嵌入式系統(tǒng)的一個(gè)輕量級(jí)圖形用戶界面支持系統(tǒng),具有如下優(yōu)點(diǎn):節(jié)省資源,提供了完備的多窗口機(jī)制,可根據(jù)項(xiàng)目需求進(jìn)行定制配置和編譯,獨(dú)立進(jìn)程的GUI模擬器,不依賴任何操作系統(tǒng)及硬件平臺(tái)和可移植性好。

    由于傳統(tǒng)的5點(diǎn)校準(zhǔn)法在通過(guò)觸摸屏取點(diǎn)的操作過(guò)程中,只一次性取5個(gè)目標(biāo)點(diǎn),很容易因?yàn)槭只](méi)看清楚等原因造成取點(diǎn)不準(zhǔn)確,從而影響校準(zhǔn)精度,故提出一種基于MiniGUI的觸摸屏多點(diǎn)采集校準(zhǔn)算法,以較精確地校準(zhǔn)觸摸屏。

1 觸摸屏多點(diǎn)采集校準(zhǔn)

    常用的5點(diǎn)校準(zhǔn)法是先預(yù)設(shè)5個(gè)屏幕坐標(biāo)點(diǎn)(原始點(diǎn)),通常5個(gè)點(diǎn)分別在左上、右上、右下、左下和屏幕正中,再通過(guò)觸摸屏獲取的5個(gè)目標(biāo)坐標(biāo)點(diǎn)(目標(biāo)點(diǎn))調(diào)用MiniGUI下特定函數(shù)對(duì)2組坐標(biāo)數(shù)據(jù)進(jìn)行處理,達(dá)到屏幕校準(zhǔn)目的,校準(zhǔn)函數(shù)為SetMouseCalibrationParameters。(觸摸屏取點(diǎn)時(shí),預(yù)設(shè)的5個(gè)屏幕坐標(biāo)點(diǎn)分別標(biāo)記在屏幕上的“+”正中,每采集一個(gè)目標(biāo)點(diǎn),“+”變到下一個(gè)預(yù)設(shè)采點(diǎn)位置,并附帶操作文字提示),如圖l。

 

圖1觸摸屏取點(diǎn)
圖1觸摸屏取點(diǎn)
 

    而多點(diǎn)采集校準(zhǔn)是指在5個(gè)目標(biāo)點(diǎn)的采點(diǎn)過(guò)程中,對(duì)每個(gè)點(diǎn)都多次采集、比較,使所采集的每個(gè)點(diǎn)更加準(zhǔn)確,或使誤操作對(duì)采點(diǎn)結(jié)果的準(zhǔn)確度影響較小。

2 多點(diǎn)采集校準(zhǔn)算法及校屏程序

    多點(diǎn)采集校準(zhǔn)算法基本公式為:

圖2 多點(diǎn)采集屏幕校準(zhǔn)程序流程圖
 

    式中,Pi為每一次取點(diǎn)的x坐標(biāo)值;Pj為每一次取點(diǎn)的Y坐標(biāo)值;為n次取點(diǎn)x坐標(biāo)相加值;為n次取點(diǎn)Y坐標(biāo)相加值;Px為x坐標(biāo)最終值;Py為Y坐標(biāo)最終值。

    利用MiniGUI消息循環(huán)機(jī)制,編寫(xiě)觸摸屏多點(diǎn)采集校屏程序。把MiniGUI消息機(jī)制中的鼠標(biāo)消息,即用戶在操作鼠標(biāo)時(shí)產(chǎn)生的鼠標(biāo)事件,投遞到相應(yīng)的應(yīng)用程序消息隊(duì)列中。本程序采用鼠標(biāo)消息中的MSG HITTEST,如果發(fā)生鼠標(biāo)事件,系統(tǒng)會(huì)向含有光標(biāo)熱點(diǎn)的窗口或捕捉鼠標(biāo)的窗口發(fā)送一條消息。其wParam參數(shù)即為光標(biāo)熱點(diǎn)的x坐標(biāo),IParam參數(shù)為光標(biāo)熱點(diǎn)的y坐標(biāo)。結(jié)合MSG TIMER消息,進(jìn)行循環(huán)采集多點(diǎn)坐標(biāo)。當(dāng)用戶點(diǎn)擊觸摸屏某一“+”,則進(jìn)入MSG TIMER消息計(jì)時(shí)采集數(shù)據(jù)點(diǎn),開(kāi)始采集即時(shí)接觸點(diǎn)對(duì)應(yīng)光標(biāo)的x、Y坐標(biāo)點(diǎn)。在此期間,保持接觸點(diǎn)按下?tīng)顟B(tài)則可一直獲取接觸點(diǎn)即時(shí)坐標(biāo),若取點(diǎn)完成之前松開(kāi),則會(huì)提示重新取點(diǎn)。在MSG TIMER時(shí)間周期內(nèi),本稃宇設(shè)置每一次按下鼠標(biāo)期間都取十個(gè)坐標(biāo)點(diǎn),然后取相加值的平均數(shù)。這樣,可以保證取值更加準(zhǔn)確。多點(diǎn)采集程序段流程如圖2。

 

圖2 多點(diǎn)采集屏幕校準(zhǔn)程序流程圖
圖2 多點(diǎn)采集屏幕校準(zhǔn)程序流程圖
 

   在程序初始化時(shí),設(shè)置左上、右上、右下、左下、中心位置5個(gè)原始點(diǎn)相對(duì)于640×480大小屏幕的坐標(biāo)分別為(10,10)、(630,10)、(630,470)、(10,470),(320.240),存入自定義結(jié)構(gòu)數(shù)組dst中,程序段如下:

case MSG——CREATE:
dst[0],x=10;dst[0].y=10;
dst[l].x=630;dst[1].y=10;
dst[2].x=630;dst[2].y=470;
dst[3].x=lO;dst[3].Y=470;
dst[4].x=320;dst[4].Y=240;

    取值完成后,把5個(gè)目標(biāo)點(diǎn)坐標(biāo)(£,只,)分別存入結(jié)構(gòu)體src中。然后調(diào)用屏幕校準(zhǔn)函數(shù)SetMouseCalibrationParameters(src,dst),即完成屏幕校準(zhǔn)。最后,生成一個(gè)xp.txt文件,把最終目標(biāo)點(diǎn)和原始點(diǎn)取值寫(xiě)入該文件,程序如下:

fp=fopen(”./xp.txt”,”w+It);
if(fp==NULL)
exit(O);
fwrite(dst pts,sizeof(struct_POINT),5,fp);
fwrite(src pts,sizeof(struct—POINT),5,fp);
fclose(fp);

    在下一次進(jìn)入嵌入式計(jì)算機(jī)系統(tǒng)時(shí),無(wú)需再進(jìn)行屏幕校準(zhǔn)操作。在系統(tǒng)總程序初始化時(shí)打開(kāi)xp.txt文件,讀出其中保存的原始點(diǎn)與目標(biāo)點(diǎn)值,再直接調(diào)用屏幕校準(zhǔn)函數(shù)即可。程序如下:

fp=fopen(“xp.txt”,“rb”);
i“fp>0)
fread(dst,sizeof(POINT),5,fp);
fread(src,sizeof(POINT),5,fp);
SetMouseCalibrationParameters(src,dst);
fclose(fp);

3 結(jié)束語(yǔ)

    結(jié)果證明,該方法可以較精確地校準(zhǔn)觸摸屏,減小了取值過(guò)程中誤操作的可能,大大提高了取值的準(zhǔn)確性。且界面程序中的人性化設(shè)計(jì),使得校準(zhǔn)操作更加方便有效。

參考文獻(xiàn)

【l】張斌.基于PXA270板開(kāi)發(fā)Qt/Embedded的觸摸屏驅(qū)動(dòng)【J】.兵工自動(dòng)化,2009,28(9):82—84.
【2】劉錟.觸摸屏校準(zhǔn)程序設(shè)計(jì)[J】.計(jì)算機(jī)世界.技術(shù)與應(yīng)用.2006(13):25—27.
【3】張斌.Linux2.6.16在嵌入式模塊X—Board(GP8)上的移植(J】.兵工自動(dòng)化,2009,28(10):94—96.


相關(guān)文章
精彩評(píng)論:
0  相關(guān)評(píng)論
吉水县| 化德县| 兴文县| 荆州市| 壤塘县| 乐安县| 陕西省| 浦城县| 南雄市| 得荣县| 南岸区| 芷江| 清河县| 康平县| 杨浦区| 瓮安县| 保靖县| 奉新县| 社旗县| 忻城县| 方山县| 洪雅县| 龙井市| 普洱| 鹤岗市| 凯里市| 喀什市| 满洲里市| 广昌县| 自贡市| 靖边县| 城口县| 宜黄县| 滨海县| 教育| 红安县| 霍州市| 宾阳县| 卢湾区| 永城市| 广平县|