<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于光學(xué)感應(yīng)的大尺寸多點(diǎn)觸摸控制技術(shù)

          基于光學(xué)感應(yīng)的大尺寸多點(diǎn)觸摸控制技術(shù)

          ——
          作者:陳大煒 康佳集團(tuán)研究院 時(shí)間:2009-09-08 來源:電子產(chǎn)品世界 收藏

            TUIO協(xié)議定義了兩類主要的消息,即set消息和alive消息。其中,set消息用于目標(biāo)對(duì)象特定狀態(tài),如位置、姿態(tài)或其他任何可以識(shí)別狀態(tài)的通訊;alive消息則用于通過系列的sessionID來標(biāo)識(shí)當(dāng)前目標(biāo)對(duì)象。TUIO使用下面的格式來進(jìn)行數(shù)據(jù)通訊:

          本文引用地址:http://www.ex-cimer.com/article/97909.htm

            /tuio/[profileName] set sessionID [parameterList]

            /tuio/[profileName] alive [list of active sessionIDs]

            /tuio/[profileName] fseq int32

            其中的profileName代表定義好的常用可感知用戶界面配置,該配置定義了set消息中目標(biāo)對(duì)象的狀態(tài)數(shù)據(jù)格式,比如常用的2D Profile:

            /tuio/2Dobj set s i x y a X Y A m r

            /tuio/2Dcur set s x y X Y m

            為了更好地展現(xiàn)多點(diǎn)觸控的視覺效果,我們?cè)谏蠈討?yīng)用中選擇了基于Flash的實(shí)現(xiàn)方式。需要指出的是,TUIO原生是通過UDP進(jìn)行數(shù)據(jù)傳送的,而Flash本身只能通過TCP鏈接接收數(shù)據(jù),因此還必需通過Flosc網(wǎng)關(guān)將OSC數(shù)據(jù)轉(zhuǎn)換為為Flash可以讀取的XMLSocket數(shù)據(jù)。上述流程如圖7所示。

            通過轉(zhuǎn)換,上層的Flash應(yīng)用程序就可以接收發(fā)送的觸點(diǎn)位置、編號(hào)、觸控事件等各種數(shù)據(jù),進(jìn)而做出適當(dāng)?shù)捻憫?yīng),從而與用戶產(chǎn)生控制交互。綜合上文描述的硬件設(shè)置,我們以一臺(tái)70寸LCOS高清背投電視為基礎(chǔ),基于光學(xué)感應(yīng)開發(fā)出一套使用主動(dòng)紅外觸摸筆交互的控制應(yīng)用系統(tǒng),已經(jīng)成功應(yīng)用于某風(fēng)景區(qū)電子交互導(dǎo)覽的實(shí)際應(yīng)用中,為大尺寸控制系統(tǒng)的研究和應(yīng)用打下了一定的基礎(chǔ)。

          電容式觸摸屏相關(guān)文章:電容式觸摸屏原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();