日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

利用觸摸屏獲取事件坐標(biāo)

 驛落黃昏525 2012-05-02
近段時(shí)間一直在做SDL方面的東西,利用五一小假,做了幾個(gè)小游戲....,在這給大家說(shuō)說(shuō)心得吧
以為做出來(lái)的東西是要在開(kāi)發(fā)板上工作的...所以也就對(duì)觸摸屏這塊下了點(diǎn)功夫...
首先就說(shuō)說(shuō)如何讓我們自己的程序也享受觸摸屏帶來(lái)的樂(lè)趣.
我用的是S3C6410開(kāi)發(fā)板,在/dev下有觸摸屏設(shè)備event1或者是event0這個(gè)是是具體情況而定的。
我們都知道在linux下,一切設(shè)備皆文件,當(dāng)我們明白了這點(diǎn)的時(shí)候,你就會(huì)發(fā)現(xiàn)問(wèn)題并不像我們想象中的那么
復(fù)雜...我們可以查看我們的觸摸屏頭文件tslib.h;這個(gè)里面有很詳細(xì)的內(nèi)容,里面有兩個(gè)結(jié)構(gòu)體是我們?cè)诔绦蛑?BR>要用到的..關(guān)于其具體介紹在我的另一篇文章中有詳細(xì)的介紹,http://3417300.blog.51cto.com/3407300/837248
感興趣的可以看看,我就不再在這里累贅了。
當(dāng)然了,我們要操作這個(gè)設(shè)備,那我們自然是要以文件方式打開(kāi)嘍..
在tslib.h中有函數(shù)ts_open;如果成功打開(kāi)后就返回一個(gè)句柄,當(dāng)然了這是我的理解了。
進(jìn)而進(jìn)行配置,ts_config函數(shù);
剩下的工作就是我們讀取觸摸屏信息樓。自然我們會(huì)想到要
ts_read。這樣一切都搞定了,但程序在我們的開(kāi)發(fā)板上運(yùn)行以后,我們發(fā)現(xiàn)其結(jié)果并不是我們想要的。
因?yàn)槲覀儾](méi)有消抖,我們自己感覺(jué)按下了一次,但在程序中出來(lái)了很多次..這個(gè)屬正?,F(xiàn)象,可是在我們的程序中是不需要這種正?,F(xiàn)象的
,那該怎么辦呢?
你可以自己設(shè)計(jì)一個(gè)新算法,,來(lái)獲取一個(gè)適當(dāng)?shù)念~值,我的方法是只取第一個(gè)值,將其余的值都舍棄,,
二這種辦法最好的實(shí)現(xiàn)方法就是標(biāo)記了,下面就以程序來(lái)說(shuō)明具體問(wèn)題...
void *getCtrlMessage(void *junk)
{
 int Flag = 1; 
    ts = ts_open("/dev/event1", 0);
 ts_config(ts) 
 for(;;)
 {
  if(ts_read(ts , &sample, 1))
  {
   if((sample.pressure) && (Flag == 1))
   {
    comparison(sample, RectArray, &virtualValue);
       Flag = 0; //防止處理那些由于抖動(dòng)所產(chǎn)生觸摸點(diǎn)信息   
   }
   if(sample.pressure == 0)
    Flag = 1;
  }           
 }
 ts_close(ts);       
}
在最后的最后要提醒一點(diǎn)就是,當(dāng)程序結(jié)束以后一定要記著close喲....

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多