亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種“道”系統(tǒng)下多點(diǎn)觸控的實(shí)現(xiàn)方法與流程

文檔序號:12732758閱讀:308來源:國知局

本發(fā)明涉及一種“道”系統(tǒng)下多點(diǎn)觸控的實(shí)現(xiàn)方法。



背景技術(shù):

多點(diǎn)觸控技術(shù)自1982年至今,已經(jīng)發(fā)展成為了一個(gè)主流的應(yīng)用領(lǐng)域,在各種指揮控制、展會等領(lǐng)域上得到了廣泛的應(yīng)用。蘋果公司的ioS、微軟公司的Windows7/8等操作系統(tǒng),均提供了支持多點(diǎn)觸控屏的驅(qū)動。

近年來,為實(shí)現(xiàn)軟件國產(chǎn)化,北京科銀京成技術(shù)有限公司提供了嵌入式實(shí)時(shí)操作系統(tǒng)“道”系統(tǒng),并已經(jīng)在艦船/航空/航天等高可靠性設(shè)備中得到了應(yīng)用?!暗馈毕到y(tǒng)板級支持包提供了如USB、串口、鼠標(biāo)、鍵盤等設(shè)備驅(qū)動,但未提供支持多點(diǎn)觸控屏的驅(qū)動。按照多點(diǎn)觸控屏相應(yīng)數(shù)據(jù)接口設(shè)備驅(qū)動架構(gòu)編寫的驅(qū)動程序,操作系統(tǒng)加載后,可將觸控屏獲取到的觸控操作的單個(gè)數(shù)據(jù)分別進(jìn)行上傳,應(yīng)用程序接收到的是一些分離的數(shù)據(jù),應(yīng)用程序僅可將其當(dāng)做單點(diǎn)觸控操作來響應(yīng)。

因此,有必要設(shè)計(jì)一種“道”系統(tǒng)下多點(diǎn)觸控的實(shí)現(xiàn)方法。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明所解決的技術(shù)問題是,針對現(xiàn)有技術(shù)的不足,提供一種“道”系統(tǒng)下多點(diǎn)觸控的實(shí)現(xiàn)方法,使得“道”系統(tǒng)下的GUI層界面用戶程序可以響應(yīng)多點(diǎn)觸控操作。

一種“道”系統(tǒng)下多點(diǎn)觸控的實(shí)現(xiàn)方法,多點(diǎn)觸控屏采用數(shù)據(jù)傳輸模塊,通過通用接口和主板通訊,“道”系統(tǒng)運(yùn)行在主板上;在“道”系統(tǒng)的多點(diǎn)觸控屏驅(qū)動程序之上提供一個(gè)數(shù)據(jù)處理中間層,用于完成以下工作:1)向操作系統(tǒng)I/O子系統(tǒng)注冊一個(gè)虛擬設(shè)備,將該虛擬設(shè)備注冊為“道”系統(tǒng)下的標(biāo)準(zhǔn)設(shè)備,以使應(yīng)用層能調(diào)用通用接口read函數(shù)對其進(jìn)行訪問,對該虛擬設(shè)備的打開、讀數(shù)據(jù)、關(guān)閉的操作均鏈接至實(shí)際的多點(diǎn)觸控屏;2)創(chuàng)建數(shù)據(jù)接收線程,等待多點(diǎn)觸控操作,將接收到的多點(diǎn)觸控操作產(chǎn)生的數(shù)據(jù)進(jìn)行解析;3)根據(jù)數(shù)據(jù)處理中間層提供的通訊協(xié)議,將解析后的數(shù)據(jù)重新封裝上報(bào)至應(yīng)用層,供GUI層用戶程序讀取、解析和處理。

多點(diǎn)觸控屏和GUI層用戶程序通訊流程如下:

A、操作系統(tǒng)啟動完成后,加載多點(diǎn)觸控屏驅(qū)動程序;

B、多點(diǎn)觸控屏驅(qū)動程序獲取數(shù)據(jù),基于數(shù)據(jù)處理中間層提供的通訊協(xié)議(借鑒linux 下的MTP協(xié)議),首先將一次多點(diǎn)觸控操作產(chǎn)生的多個(gè)數(shù)據(jù),按照多點(diǎn)觸控屏驅(qū)動程序接收到的順序、以輸入事件結(jié)構(gòu)體為基本的數(shù)據(jù)單元打包成多個(gè)事件包,然后將一次多點(diǎn)觸控操作中所有數(shù)據(jù)包進(jìn)行組合,并存入內(nèi)存環(huán)形緩沖區(qū)中;然后調(diào)用input_event函數(shù)來產(chǎn)生相應(yīng)的事件上報(bào)至應(yīng)用層;

C、應(yīng)用層調(diào)用通用接口read函數(shù)從內(nèi)存環(huán)形緩沖區(qū)中取出打包的事件包數(shù)據(jù)(即讀取上報(bào)的數(shù)據(jù)),置于消息隊(duì)列中;

D、GUI層用戶程序從消息隊(duì)列中取出觸控事件,基于數(shù)據(jù)處理中間層提供的通訊協(xié)議進(jìn)行解析,并執(zhí)行相應(yīng)的操作。

所述步驟B中,將一次多點(diǎn)觸控操作產(chǎn)生的多個(gè)數(shù)據(jù)(包括多點(diǎn)觸控操作中各個(gè)單點(diǎn)對應(yīng)的數(shù)據(jù)),按照多點(diǎn)觸控屏驅(qū)動程序接收到的順序、以輸入事件結(jié)構(gòu)體為基本的數(shù)據(jù)單元打包成多個(gè)事件包,然后將一次多點(diǎn)觸控操作中所有數(shù)據(jù)包進(jìn)行組合的方法為:

1)在每個(gè)事件包開始,產(chǎn)生第一標(biāo)志來標(biāo)識當(dāng)前事件包開始,并攜帶參數(shù)標(biāo)識當(dāng)前觸點(diǎn)槽;在每個(gè)事件包結(jié)束,產(chǎn)生一個(gè)第二結(jié)束標(biāo)志來標(biāo)識當(dāng)前事件包結(jié)束;開始標(biāo)志和結(jié)束標(biāo)志之間,傳遞觸點(diǎn)的詳細(xì)信息,包括觸點(diǎn)ID、X坐標(biāo)和Y坐標(biāo);

2)產(chǎn)生一個(gè)第三標(biāo)志來標(biāo)識一次多點(diǎn)觸控操作產(chǎn)生的多個(gè)事件包傳送結(jié)束,以通知GUI層用戶程序?qū)ι弦粋€(gè)第三標(biāo)志以來所有累積的事件包進(jìn)行響應(yīng),并準(zhǔn)備接收新的數(shù)據(jù)。

有益效果:

本申請?zhí)岢龅囊环N“道”系統(tǒng)下多點(diǎn)觸控實(shí)現(xiàn)方法,在觸控屏設(shè)備驅(qū)動層之上,提供一個(gè)數(shù)據(jù)處理中間層,對觸控屏獲取的多點(diǎn)觸控操作進(jìn)行解析,并基于約定的協(xié)議重新封裝上報(bào),將多點(diǎn)觸控屏獲取到的一次觸控操作的所有觸點(diǎn)的數(shù)據(jù)進(jìn)行打包、組合,一次性上傳;GUI層用戶程序基于該協(xié)議,對數(shù)據(jù)進(jìn)行解析和處理,實(shí)現(xiàn)多點(diǎn)觸控操作的響應(yīng)。數(shù)據(jù)處理中間層向操作系統(tǒng)I/O子系統(tǒng)注冊一個(gè)虛擬設(shè)備,注冊為“道”系統(tǒng)下的標(biāo)準(zhǔn)設(shè)備,應(yīng)用層可以調(diào)用通用接口read函數(shù)對其進(jìn)行訪問,無需多點(diǎn)觸控屏驅(qū)動程序另外提供API函數(shù)供應(yīng)用層操作,應(yīng)用層亦無需通過直接操作驅(qū)動多點(diǎn)觸控屏驅(qū)動程序中的緩沖區(qū)來獲取數(shù)據(jù)。采用這種方法,實(shí)現(xiàn)了“道”系統(tǒng)下的多點(diǎn)觸控,同時(shí)可以適用于各種接口類型的多點(diǎn)觸控屏,且對于各種GUI層界面用戶程序均可用。對于任意數(shù)據(jù)接口的多點(diǎn)觸控屏,操作系統(tǒng)啟動完成后,加載多點(diǎn)觸控屏驅(qū)動程序,即可按照本發(fā)明提出的方法和GUI層用戶程序進(jìn)行通訊,從而該方法不受限于多點(diǎn)觸控屏的類型。任意GUI層用戶程序,按照約定的協(xié)議,可對多點(diǎn)觸控?cái)?shù)據(jù)進(jìn)行解析。

附圖說明

圖1為“道”系統(tǒng)下多點(diǎn)觸控實(shí)現(xiàn)流程。

具體實(shí)施方式

下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步說明。

本發(fā)明公開了一種“道”系統(tǒng)下多點(diǎn)觸控的實(shí)現(xiàn)方法,多點(diǎn)觸控屏采用數(shù)據(jù)傳輸模塊,通過通用接口和主板通訊,“道”系統(tǒng)運(yùn)行在主板上。該方法包括如下步驟:A、系統(tǒng)啟動完成后,加載多點(diǎn)觸控屏驅(qū)動程序;B、在多點(diǎn)觸控屏驅(qū)動程序之上提供一個(gè)數(shù)據(jù)處理中間層,該層完成以下工作:1)向操作系統(tǒng)I/O子系統(tǒng)注冊一個(gè)虛擬設(shè)備,對該虛擬設(shè)備的打開、讀數(shù)據(jù)、關(guān)閉的操作均鏈接至實(shí)際的觸控屏設(shè)備;2)創(chuàng)建數(shù)據(jù)接收線程,等待多點(diǎn)觸控操作,將接收到的多個(gè)觸點(diǎn)的數(shù)據(jù)進(jìn)行解析;3)根據(jù)該層提供的通訊協(xié)議,將解析后的數(shù)據(jù)重新封裝上報(bào)至應(yīng)用層;C、應(yīng)用層調(diào)用通用接口read函數(shù)讀取上報(bào)的數(shù)據(jù),存入消息隊(duì)列;D、GUI層用戶程序從消息隊(duì)列中取出數(shù)據(jù),基于約定的協(xié)議進(jìn)行解析,并執(zhí)行相應(yīng)的操作。

多點(diǎn)觸控屏和GUI層用戶程序通訊流程如下:

(1)多點(diǎn)觸控屏驅(qū)動程序獲取數(shù)據(jù),經(jīng)數(shù)據(jù)處理中間層解析,基于中間層提供的通訊協(xié)議(借鑒linux下的MTP協(xié)議),將一次多點(diǎn)觸控操作產(chǎn)生的多個(gè)數(shù)據(jù),按照多點(diǎn)觸控屏驅(qū)動程序接收到的順序以輸入事件結(jié)構(gòu)體為基本的數(shù)據(jù)單元打包成多個(gè)事件包,打包后的數(shù)據(jù)存入內(nèi)存環(huán)形緩沖區(qū)中;然后調(diào)用input_event函數(shù)來產(chǎn)生相應(yīng)的事件上報(bào)。

其中,輸入事件結(jié)構(gòu)體定義如下:

其中,time記錄事件發(fā)生的時(shí)間;type代表事件類型,分為同步事件EV_SVN和觸點(diǎn)信息事件EV_INFO;code代表事件編碼,編碼包括同步類事件的編碼MT_REPORT、SYN_REPORT和信息類事件的編碼MT_SLOT、MT_TRACKING_ID、MT_POSITION_X、MT_POSITION_Y;value代表事件值,傳遞事件參數(shù)。

input_event函數(shù)原型如下:

void input_event(MTP_PDEV pDev,UINT16type,UINT16code,INT32value);

具體步驟為:

1)在每個(gè)事件包開始,產(chǎn)生一個(gè)MT_SLOT事件(第一標(biāo)志)標(biāo)識當(dāng)前事件包開始,并攜帶slot參數(shù)標(biāo)識當(dāng)前觸點(diǎn)槽。在每個(gè)事件包結(jié)束,產(chǎn)生MT_REPORT事件(第二標(biāo)志)標(biāo)識當(dāng)前事件包結(jié)束,通知當(dāng)前事件包接收完畢,并準(zhǔn)備接收下一個(gè)事件包。MT_SLOT事件和MT_REPORT事件之間,傳遞觸點(diǎn)詳細(xì)的信息,包括MT_TRACKING_ID(觸點(diǎn)ID)、MT_POSITION_X(X坐標(biāo))、MT_POSITION_Y(Y坐標(biāo));

2)通過產(chǎn)生EV_SYN/SYN_REPORT事件((第三標(biāo)志))標(biāo)識一個(gè)多點(diǎn)觸控操作產(chǎn)生的多個(gè)事件包數(shù)據(jù)傳送的結(jié)束,通知接收者對上一個(gè)EV_SYN/SYN_REPORT事件以來所有累積的事件包進(jìn)行響應(yīng),并準(zhǔn)備接收新的數(shù)據(jù);

以一組兩點(diǎn)觸控按下為例,上報(bào)的事件序列如下:

MT_SLOT 0

MT_TRACKING_ID id[0]

MT_POSITION_X x[0]

MT_POSITION_Y y[0]

MT_REPORT

MT_SLOT 1

MT_TRACKING_ID id[1]

MT_POSITION_X x[1]

MT_POSITION_Y y[1]

MT_REPORT

SYN_REPORT

第一個(gè)觸點(diǎn)抬起,上報(bào)事件序列如下:

MT_SLOT 0

MT_TRACKING_ID-1

MT_REPORT

SYN_REPORT

(2)應(yīng)用層調(diào)用通用接口read函數(shù)從環(huán)形緩沖區(qū)中取出打包的事件包數(shù)據(jù),置于消息隊(duì)列中;

(3)GUI層用戶程序從消息隊(duì)列中取出觸控事件,進(jìn)行解析和處理。

該方法可以實(shí)現(xiàn)“道”系統(tǒng)下對任意數(shù)據(jù)接口的觸控屏的多點(diǎn)觸控,通過這種方法,

任意GUI用戶程序(如QT等)僅需遵守約定的協(xié)議,即可對多點(diǎn)觸控操作進(jìn)行響應(yīng)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1