本發(fā)明屬于計算機,人機交互,智能外設(shè),增強現(xiàn)實,電子裝置等技術(shù)領(lǐng)域,尤其適用于需要復(fù)雜觸屏交互的應(yīng)用場景。
背景技術(shù):
當今社會配備電容式觸摸屏的智能設(shè)備已經(jīng)相當普及,諸如智能手機、平板電腦、觸摸屏電視機等。絕大多數(shù)情況下,電容式觸摸屏設(shè)備的交互手段主要是用戶手指觸摸的方式。還有一些輔助設(shè)備通過模擬用戶的手指觸摸點,來達到交互的目的,例如觸摸筆等。此類交互方式中,觸摸屏設(shè)備僅僅識別觸摸者(手指或模擬設(shè)備)的接觸點位置,但并不能識別觸摸者的身份,以及朝向(轉(zhuǎn)角)等。另有一些輔助裝置,按照一定的規(guī)則排布多個觸摸點(通常是三個以上),通過配套應(yīng)用程序解析這些觸摸點的坐標及相對位置,計算出該裝置的身份、位置及朝向。然而此類裝置的觸摸點依然基于模擬手指觸摸的方式,觸摸點通常占用較大體積及接觸面積,導(dǎo)致裝置體積笨重。不僅如此,由于受到觸摸屏智能設(shè)備本身對觸摸點并發(fā)數(shù)量的限制(通常為10個觸摸點以內(nèi)),以及相鄰較近的此類輔助裝置之間容易造成觸摸點排布歧義和干擾等原因,此類輔助往往只能支持獨占式交互場景(即:一次僅允許有一個裝置與觸摸屏交互)。另外,由于此類裝置在生產(chǎn)制造時即被固定了其觸摸點的排布情況,因此只能用于被動識別身份、方位等有限的信息,而無法向系統(tǒng)主動傳輸多種動態(tài)信息。
鑒于此,對于有復(fù)雜觸屏交互的應(yīng)用場景,迫切的需要有一種觸摸屏交互的方法及裝置來解決現(xiàn)有技術(shù)存在的問題和風(fēng)險。本發(fā)明就是用來解決此類問題的,本發(fā)明提出的一種觸摸屏交互的方法及裝置,其每個裝置上都配備有兩個體積微小(約2毫米見方)的主動式觸摸點,并且可以動態(tài)定制編碼,通過發(fā)送頻閃式觸摸信號序列,實現(xiàn)了向系統(tǒng)報告身份、位置、朝向、控制指令等多種動態(tài)信息的功能。在此基礎(chǔ)上,結(jié)合配套系統(tǒng)的單總線協(xié)議輪詢機制,突破觸摸屏設(shè)備對觸摸點并發(fā)數(shù)量的限制,允許多個交互裝置同時進行交互,極大地豐富了應(yīng)用場景。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的就是提供一種觸摸屏交互的方法及裝置,來解決現(xiàn)有技術(shù)中存在的諸多問題。
本發(fā)明包括了實現(xiàn)本發(fā)明目的的方法和裝置,其中所述的裝置是由封裝內(nèi)部元器件的外殼,用戶交互接口,供電裝置,計算單元及控制電路,電容觸摸端和感光接收器等元器件組成的。
所述的用戶交互接口用以接收用戶的輸入操作。此交互接口可采用多種實現(xiàn)方式,包括但不限于物理按鍵、電容觸摸鍵、感光組件等。
所述的供電裝置為各內(nèi)部元器件提供收發(fā)信號,處理信息,芯片運算等需要的電能。實現(xiàn)方式包括但不限于可置換的堿性干電池、紐扣電池、可充電鋰電池等。
所述的計算單元及控制電路用以處理信號收發(fā)、信號處理、邏輯運算、流程控制、存儲數(shù)據(jù)等任務(wù)。
所述的電容觸摸端為該裝置的信號輸出接口。該接口采用主動式電容觸發(fā)方式,當該裝置置于電容屏之上時,與電容屏相接觸,并由計算處理單元控制,向電容屏輸出觸摸信號。每一個裝置的兩個觸摸端都分為主、副兩個觸摸點,其輸出的觸摸信息分別代表數(shù)字信號0和1,通過間歇性地發(fā)送不同組合序列的0、1信號,向配套應(yīng)用程序傳遞動態(tài)的二進制指令信息。
所述的感光接收器為該裝置的信號輸入接口。用以接收電容屏傳遞的光信號。該接收器可以采用多種實現(xiàn)方式,包括但不限于單色閾值識別(強光與弱光的交替序列構(gòu)成信號),多色光敏信號識別(不同顏色的組合序列構(gòu)成不同信號)等。
本發(fā)名提供一種觸摸屏交互的方法及裝置,其方法實現(xiàn)的步驟又包括了初始化過程和具體交互兩種場景。其中初始化的過程具體步驟如下:
步驟s101:應(yīng)用程序進入初始化模式。在該模式下,應(yīng)用程序等待本發(fā)明所述的裝置依次放置于觸摸屏上,對其進行逐一識別,以供后續(xù)場景中持續(xù)跟蹤各個裝置。
步驟s102:用戶啟動一個本發(fā)明所述裝置,并使其進入“報到”模式。在該模式下,裝置周期性地不斷向外發(fā)出代表“報到”的觸摸指令。
步驟s103:當處于“報到模式”的裝置置于觸摸屏上,其發(fā)出的“報到”信號即刻被應(yīng)用程序所捕獲。應(yīng)用程序立即在獲得該信息的坐標位置生成一個光斑,該光斑由應(yīng)用程序及裝置雙方協(xié)議所預(yù)定義的特殊顏色填充,用以跟蹤該裝置,并向裝置傳遞信號。在該步驟中,應(yīng)用程序通過光斑向裝置發(fā)出指令,詢問其編碼及朝向。
步驟s104:處于“報到模式”的裝置,通過感光接收器接收到光斑所傳遞的“詢問編碼及方位”信號,立即停止循環(huán)發(fā)送“報到信號”的行為,并發(fā)送自身的編碼及朝向信息。裝置的編碼信息即可以是裝置的出廠設(shè)置,也可以由應(yīng)用程序重新自定義,存儲于裝置內(nèi)芯片中的可擦寫存儲單元中。以上兩種方式,只要滿足其編碼在配套的一組裝置中具有唯一性即可。裝置的方位信息,則只需通過裝置的主、副觸摸端依次閃爍一次即可,具體識別方法在下一步驟詳述。
步驟s105:應(yīng)用程序接收到裝置發(fā)出的編碼及方位信息,將其與對應(yīng)的光斑坐標綁定,存儲于內(nèi)存變量中,供后續(xù)場景使用。對裝置方位信息的識別方法為:當接收到裝置的主、副觸摸端閃爍信號后,先解析出主、副觸摸端的坐標,對其進行求和平均,得到棋子的坐標。再根據(jù)主、副端坐標進行向量計算,得到一個起點為主端坐標、方向指向副端坐標的角向量,從而獲得棋子的朝向。
類似地,針對每一個裝置,依次進行步驟s102至步驟s105的操作步驟,從而獲得全部裝置及其對應(yīng)光斑的狀態(tài)信息。
在完成場景初始化后,在具體的交互場景進行過程中,其具體步驟如下:
步驟s201:經(jīng)過初始化步驟,應(yīng)用程序已存儲了所有裝置及對應(yīng)的光斑的狀態(tài)信息,稱之為狀態(tài)隊列。在接下來的周期性同步過程中的每一次循環(huán)開始時,應(yīng)用程序從狀態(tài)隊列中選取下一個裝置,以對其進行狀態(tài)同步與更新。當同步更新至隊列中最后一個裝置后,則又跳至隊列第一個裝置,開始新一輪循環(huán)。
步驟s202:應(yīng)用程序?qū)x取的裝置狀態(tài)信息進行判斷,若該裝置標記為“在盤”(即:裝置處于觸摸屏之上且保持接觸,其對應(yīng)光斑位置與裝置保持同步),則應(yīng)用程序通過光斑向該裝置傳遞“詢問方位”的指令。
步驟s203:應(yīng)用程序?qū)x取的裝置狀態(tài)信息進行判斷,若該裝置標記為“已脫離”,則本次循環(huán)跳過該裝置。
步驟s204:應(yīng)用程序通過光斑發(fā)出的“詢問方位”指令時,若裝置的物理狀態(tài)為保持與觸摸屏接觸良好,且與光斑重疊位置充足,則該指令將被裝置接收,經(jīng)裝置內(nèi)部運算處理單元計算后,通過觸摸端向應(yīng)用程序反饋其方位信息。輸出和解析方位信息的具體方法參考圖1中的步驟s105。
步驟s205:應(yīng)用程序通過光斑發(fā)出的“詢問方位”指令時,若裝置因移動太快或被用戶移出觸摸屏,致使裝置與光斑位置重疊不夠充分甚至錯位,都會導(dǎo)致裝置接收不到該指令。此時,裝置對指令無響應(yīng)。
步驟s206:針對步驟s204、步驟s205兩種情況下裝置的反饋,應(yīng)用程序?qū)⒆钚聽顟B(tài)信息進行同步與更新。如果是步驟s204所述情況,則應(yīng)用程序?qū)⒔邮盏降难b置方位信息更新至隊列中該裝置的方位變量中,并將屏幕中光斑的位置移動至該位置,使其與裝置在物理空間上重新保持完全重疊。如果是步驟s205所述情況,應(yīng)用程序在等待響應(yīng)的時間片段中得不到裝置的應(yīng)答,則在隊列中將該裝置的狀態(tài)從“在盤”變更為“已脫離”,并將對應(yīng)光斑隱藏。
至此,針對一個裝置的一次同步更新過程完成。類似地,應(yīng)用程序針對隊列中的每一個裝置循環(huán)地進行步驟s201至步驟s206的操作,從而實現(xiàn)對裝置及其光斑狀態(tài)的同步跟蹤。
步驟s207:一個已經(jīng)脫離的裝置重新穩(wěn)定地放置于觸摸屏之上時,應(yīng)用程序需對其進行識別及歸隊的操作。為了觸發(fā)這一過程,裝置在某一限定的時間閾值內(nèi)未接收到來自光斑的任何信息,則進入周期性循環(huán)輸出“復(fù)位請求”信息的狀態(tài)。
步驟s208:當一個循環(huán)發(fā)送“復(fù)位”信息的裝置接觸到觸摸屏?xí)r,應(yīng)用程序接收到該信息,通過“復(fù)位”信息中包含的主、副坐標計算出裝置的位置(過程參考圖1中步驟105),在該坐標位置生成一個對應(yīng)的光斑,并通過該光斑向裝置發(fā)送詢問方位信息的指令。
步驟s209:裝置接收到光斑詢問方位的指令,對其進行響應(yīng),反饋當前的方位信息。過程參考步驟s204。在接下來的步驟s206中,該裝置在對了中的狀態(tài)信息從“已脫離”恢復(fù)為“在盤”。
類似地,經(jīng)過步驟s207至步驟s209,一個脫離的裝置即可重新回歸到同步更新的循環(huán)隊列當中。
本發(fā)明,通過所述裝置及輪詢機制,在毫秒級時間片段內(nèi),依次對所記錄的交互裝置進行同步更新,系統(tǒng)能識別裝置身份和跟蹤其坐標及朝向。與現(xiàn)有技術(shù)相比,具有以下有益效果:
1、大幅提升交互裝置的并行數(shù)量。
本發(fā)明所描述的交互方法采用單總線輪詢機制,在每個時間片段內(nèi)僅有一部裝置與觸摸屏進行信息交互,從而避免了相鄰交互裝置之間可能發(fā)生的信息干擾或歧義,也避免了與電容觸摸屏設(shè)備對觸摸點并發(fā)數(shù)量上限的沖突。通過這些手段,為并行多個交互裝置提供了算法基礎(chǔ)。
2、提升了交互裝置的交互性,支持更豐富的應(yīng)用場景。
本發(fā)明所描述的交互裝置及其配套應(yīng)用程序,構(gòu)建了一套雙向、動態(tài)的交互方法,允許用戶通過交互裝置上的觸摸鍵、物理按鍵等多種方式,向應(yīng)用程序輸入指令,從而能夠?qū)崿F(xiàn)更豐富的應(yīng)用場景。
3、大幅減少交互裝置的體積。
本發(fā)明所描述的交互裝置由于采用了主動式電容觸摸點,大幅縮小了每個觸摸點所占體積。通過主、副兩個觸摸點傳遞二進制編碼信息,進一步降低了每個裝置所需配備的觸摸點個數(shù)。通過這兩個手段,交互裝置整體體積大幅降低。
附圖說明:
圖1、2是本發(fā)明的方法流程圖。
圖3、4、5、6是本發(fā)明實例1示意圖。
圖7是本發(fā)明實例2示意圖。
具體實施方式
為了使本發(fā)明的目的,技術(shù)方案及有益效果更加清楚明白,以下結(jié)合實例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解為此處所描述的具體實例僅用以解釋本發(fā)明,并不用于限制本發(fā)明的保護范圍。
實例1:
如圖1所示,本例假設(shè)使用場景為一個塔防游戲,包含配備電容式觸摸屏的智能設(shè)備101、運行在智能設(shè)備上的應(yīng)用程序102、觸摸屏交互裝置(本例中以下統(tǒng)稱為“棋子”)103、104、105、106。需要指出的是,在本發(fā)明所述方法中,棋子的并行數(shù)量理論上并無上限,可根據(jù)具體使用場景的業(yè)務(wù)邏輯規(guī)則進行動態(tài)配置。放置于觸摸屏上的若干棋子,與配套應(yīng)用程序102進行實時信息同步,從而實現(xiàn)了針對每一個棋子的身份識別、方位識別、及交互指令識別。如圖3所示,應(yīng)用程序時刻知曉每一顆棋子是誰,朝向哪個方向,發(fā)出何種指令等?;诖?,業(yè)務(wù)邏輯層的開發(fā)者可以定制出獨特而豐富的交互場景。
如圖4所示,為一顆棋子的結(jié)構(gòu)圖。每一顆棋子包含:外殼201:用以封裝棋子的各項內(nèi)部結(jié)構(gòu)。用戶交互接口202:此為棋子與用戶的交互接口,用以接收用戶的輸入操作。此交互接口可采用多種實現(xiàn)方式,本例假設(shè)為電容觸摸鍵。電源203:用以提供棋子收發(fā)信號、處理信息、芯片運算等所需的電能。本例假設(shè)為紐扣電池。計算單元及其控制電路204:該單元用以處理信號收發(fā)、信號處理、邏輯運算、流程控制、存儲數(shù)據(jù)等任務(wù)。電容觸摸端205、206:此為棋子的信號輸出接口。該接口采用主動式電容觸發(fā)方式,當棋子置于電容屏之上時,與電容屏相接觸,并由計算處理單元204控制,向電容屏輸出觸摸信號。每一顆棋子的兩個觸摸端都分為主、副兩個觸摸點,其輸出的觸摸信息分別代表數(shù)字信號0和1,通過間歇性地發(fā)送不同組合序列的0、1信號,向配套應(yīng)用程序傳遞動態(tài)的二進制指令信息。感光接收器207:此為棋子的信號輸入接口。用以接收電容屏傳遞的光信號。該接收器可以采用多種實現(xiàn)方式,本例假設(shè)為多色光敏信號識別(不同顏色的組合序列構(gòu)成不同信號)。
開始本例的塔防游戲前需要先對組棋子與配套應(yīng)用程序的場景初始化,如圖5所示,其過程包括以下步驟:按著步驟s301:應(yīng)用程序進入初始化模式。在該模式下,應(yīng)用程序等待棋子依次放置于觸摸屏上,對其進行逐一識別,以供后續(xù)場景中持續(xù)跟蹤各個棋子。按著步驟s302:用戶啟動一顆棋子(本例中可以是用戶按下棋子上202的電容觸摸按鍵),并使其進入“報到”模式。在該模式下,棋子周期性地不斷向外發(fā)出代表“報到”的觸摸指令。按著步驟s303:當處于“報到模式”的棋子置于觸摸屏上,其發(fā)出的“報到”信號即刻被應(yīng)用程序所捕獲。應(yīng)用程序立即在獲得該信息的坐標位置生成一個光斑,該光斑由應(yīng)用程序及棋子雙方協(xié)議所預(yù)定義的特殊顏色填充,用以跟蹤棋子,并向棋子傳遞信號。在該步驟中,應(yīng)用程序通過光斑向棋子發(fā)出指令,詢問其編碼(識別棋子身份)及朝向(如炮塔的朝向等)。按著步驟s304:處于“報到模式”的棋子,通過感光接收器接收到光斑所傳遞的“詢問編碼及方位”信號,立即停止循環(huán)發(fā)送“報到信號”的行為,并發(fā)送自身的編碼及朝向信息。棋子的編碼信息即可以是棋子的出廠設(shè)置,也可以由應(yīng)用程序重新自定義,存儲于棋子芯片中的可擦寫存儲單元中。以上兩種方式,只要滿足其編碼在配套的一組棋子中具有唯一性即可。棋子的方位信息,則只需通過棋子的主、副觸摸端(參考圖4中205、206)依次閃爍一次即可,具體識別方法在下一步驟詳述。按著步驟s305:應(yīng)用程序接收到棋子發(fā)出的編碼及方位信息,將其與對應(yīng)的光斑坐標綁定,存儲于內(nèi)存變量中,供后續(xù)場景使用。對棋子方位信息的識別方法為:當接收到棋子的主、副觸摸端閃爍信號后,先解析出主、副觸摸端的坐標,對其進行求和平均,得到棋子的坐標。再根據(jù)主、副端坐標進行向量計算,得到一個起點為主端坐標、方向指向副端坐標的角向量,從而獲得棋子的朝向。類似地,針對每一顆棋子,依次進行步驟s302至步驟s305的操作步驟,從而獲得全部棋子及其對應(yīng)光斑的狀態(tài)信息。
在完成初始化過程后,即可開始塔防游戲了,游戲的過程中,為確保時刻跟蹤到每一顆棋子的狀態(tài),應(yīng)用程序周期性地進行信息同步,如圖6所示,其過程包括以下步驟:按著步驟s401:經(jīng)過初始化步驟,應(yīng)用程序已存儲了所有棋子及對應(yīng)的光斑的狀態(tài)信息,稱之為狀態(tài)隊列。在接下來的周期性同步過程中的每一次循環(huán)開始時,應(yīng)用程序從狀態(tài)隊列中選取下一個棋子,以對其進行狀態(tài)同步與更新。當同步更新至隊列中最后一顆棋子后,則又跳至隊列第一顆棋子,開始新一輪循環(huán)。按著步驟s402:應(yīng)用程序?qū)x取的棋子狀態(tài)信息進行判斷,若該棋子標記為“在盤”(即:棋子處于觸摸屏之上且保持接觸,其對應(yīng)光斑位置與棋子保持同步),則應(yīng)用程序通過光斑向該棋子傳遞“詢問方位”的指令。按著步驟s403:應(yīng)用程序?qū)x取的棋子狀態(tài)信息進行判斷,若該棋子標記為“已脫離”(如棋子被吃掉),則本次循環(huán)跳過該棋子。按著步驟s404:應(yīng)用程序通過光斑發(fā)出的“詢問方位”指令時,若棋子的物理狀態(tài)為保持與觸摸屏接觸良好,且與光斑重疊位置充足,則該指令將被棋子接收,經(jīng)棋子內(nèi)部運算處理單元計算后,通過觸摸端向應(yīng)用程序反饋其方位信息。輸出和解析方位信息的具體方法參考圖5中的步驟s305。按著步驟s405:應(yīng)用程序通過光斑發(fā)出的“詢問方位”指令時,若棋子因移動太快或被用戶移出觸摸屏,致使棋子與光斑位置重疊不夠充分甚至錯位,都會導(dǎo)致棋子接收不到該指令。此時,棋子對指令無響應(yīng)。按著步驟s406:針對步驟s404、步驟s405兩種情況下棋子的反饋,應(yīng)用程序?qū)⒆钚聽顟B(tài)信息進行同步與更新。如果是步驟s404所述情況,則應(yīng)用程序?qū)⒔邮盏降钠遄臃轿恍畔⒏轮陵犃兄性撈遄拥姆轿蛔兞恐?,并將屏幕中光斑的位置移動至該位置,使其與棋子在物理空間上重新保持完全重疊。如果是步驟s405所述情況,應(yīng)用程序在等待響應(yīng)的時間片段中得不到棋子的應(yīng)答,則在隊列中將該棋子的狀態(tài)從“在盤”變更為“已脫離”,并將對應(yīng)光斑隱藏。至此,針對一顆棋子的一次同步更新過程完成。類似地,應(yīng)用程序針對隊列中的每一顆棋子循環(huán)地進行步驟s401至步驟s406的操作,從而實現(xiàn)對棋子及其光斑狀態(tài)的同步跟蹤。按著步驟s407:一顆已經(jīng)脫離的棋子重新穩(wěn)定地放置于觸摸屏之上時(如拿起棋子將其移動到新的位置),應(yīng)用程序需對其進行識別及歸隊的操作。為了觸發(fā)這一過程,棋子在某一限定的時間閾值內(nèi)未接收到來自光斑的任何信息,則進入周期性循環(huán)輸出“復(fù)位請求”信息的狀態(tài)。按著步驟s408:當一顆循環(huán)發(fā)送“復(fù)位”信息的棋子接觸到觸摸屏?xí)r,應(yīng)用程序接收到該信息,通過“復(fù)位”信息中包含的主、副坐標計算出棋子的位置(過程參考圖5中步驟305),在該坐標位置生成一個對應(yīng)的光斑,并通過該光斑向棋子發(fā)送詢問方位信息的指令。按著步驟s409:棋子接收到光斑詢問方位的指令,對其進行響應(yīng),反饋當前的方位信息。過程參考步驟s404。在接下來的步驟s406中,該棋子在對了中的狀態(tài)信息從“已脫離”恢復(fù)為“在盤”。類似地,經(jīng)過步驟s407至步驟s409,一顆脫離的棋子即可重新回歸到同步更新的循環(huán)隊列當中。通過這樣的步驟,可以完全實現(xiàn)塔防游戲的全部過程,如新建炮塔(增加棋子到觸摸屏上),設(shè)置炮塔方向(詢問計算棋子朝向),移除炮塔(將棋子離開觸摸屏)等游戲相關(guān)的各個步驟,并且對于炮塔(棋子)的數(shù)量沒有上限要求,從而極大的豐富了類似觸屏類游戲的應(yīng)用場景。
實例2:
本實例假設(shè)為一個音樂控制的應(yīng)用場景,如圖7所示,包含配備電容式觸摸屏的智能設(shè)備501、運行在智能設(shè)備上的應(yīng)用程序502、觸摸屏交互裝置,如旋鈕503,開關(guān)504。整個觸摸屏設(shè)備展現(xiàn)為一個音響控制臺,本發(fā)明所述裝置展現(xiàn)為控制臺上的推動開關(guān)和旋鈕,開始音樂控制應(yīng)用場景時,先對其開關(guān)和旋鈕及配套應(yīng)用程序初始化,其過程包括以下步驟:按著步驟s301:應(yīng)用程序進入初始化模式。在該模式下,應(yīng)用程序等待開關(guān)和旋鈕依次放置于觸摸屏上,對其進行逐一識別,以供后續(xù)場景中持續(xù)跟蹤各個裝置。按著步驟s302:用戶啟動一個開關(guān)或旋鈕(本例中可以是用戶按下開關(guān)上的物理按鍵),并使其進入“報到”模式。在該模式下,開關(guān)或旋鈕周期性地不斷向外發(fā)出代表“報到”的觸摸指令。按著步驟s303:當處于“報到模式”的開關(guān)或旋鈕置于觸摸屏上,其發(fā)出的“報到”信號即刻被應(yīng)用程序所捕獲。應(yīng)用程序立即在獲得該信息的坐標位置生成一個光斑,該光斑由應(yīng)用程序及開關(guān)或旋鈕雙方協(xié)議所預(yù)定義的特殊顏色填充,用以跟蹤該裝置,并向裝置傳遞信號。在該步驟中,應(yīng)用程序通過光斑向開關(guān)或者旋鈕發(fā)出指令,詢問其編碼(識別是開關(guān)還是旋鈕)及朝向(如旋鈕的旋轉(zhuǎn)角度等)。按著步驟s304:處于“報到模式”的裝置,通過感光接收器接收到光斑所傳遞的“詢問編碼及方位”信號,立即停止循環(huán)發(fā)送“報到信號”的行為,并發(fā)送自身的編碼及朝向信息。按著步驟s305:應(yīng)用程序接收到開關(guān)或者旋鈕發(fā)出的編碼及方位信息,將其與對應(yīng)的光斑坐標綁定,存儲于內(nèi)存變量中,供后續(xù)場景使用。類似地,依次進行步驟s302至步驟s305的操作步驟,從而獲得全部開關(guān)和旋鈕及其對應(yīng)光斑的狀態(tài)信息。
在完成初始化過程后,即可開始音樂的應(yīng)用程序了,為確保時刻跟蹤到每一個開關(guān)或旋鈕的狀態(tài),應(yīng)用程序周期性地進行信息同步,其過程包括以下步驟:按著步驟s401:經(jīng)過初始化步驟,應(yīng)用程序已存儲了所有開關(guān)或旋鈕及對應(yīng)的光斑的狀態(tài)信息,稱之為狀態(tài)隊列。在接下來的周期性同步過程中的每一次循環(huán)開始時,應(yīng)用程序從狀態(tài)隊列中選取下一個開關(guān)或旋鈕,以對其進行狀態(tài)同步與更新。當同步更新至隊列中最后一個開關(guān)或旋鈕后,則又跳至隊列第一開關(guān)或旋鈕,開始新一輪循環(huán)。按著步驟s402:應(yīng)用程序?qū)x取的開關(guān)或旋鈕狀態(tài)信息進行判斷,若該裝置標記為“在盤”(即:開關(guān)或旋鈕處于觸摸屏之上且保持接觸,其對應(yīng)光斑位置與裝置保持同步),則應(yīng)用程序通過光斑向該開關(guān)或旋鈕傳遞“詢問方位”的指令。按著步驟s403:應(yīng)用程序?qū)x取的開關(guān)或旋鈕狀態(tài)信息進行判斷,若該裝置標記為“已脫離”(如開關(guān)被關(guān)閉或旋鈕被拿開),則本次循環(huán)跳過該開關(guān)或者旋鈕。按著步驟s404:應(yīng)用程序通過光斑發(fā)出的“詢問方位”指令時,若開關(guān)或旋鈕的物理狀態(tài)為保持與觸摸屏接觸良好,且與光斑重疊位置充足,則該指令將被開關(guān)或旋鈕接收,經(jīng)開關(guān)或旋鈕內(nèi)部運算處理單元計算后,通過觸摸端向應(yīng)用程序反饋其方位信息,如開關(guān)調(diào)節(jié)的大小或者旋鈕旋轉(zhuǎn)的角度。按著步驟s405:應(yīng)用程序通過光斑發(fā)出的“詢問方位”指令時,若開關(guān)或旋鈕因移動太快或被用戶移出觸摸屏,致使開關(guān)或旋鈕與光斑位置重疊不夠充分甚至錯位,都會導(dǎo)致該裝置接收不到該指令。此時,開關(guān)或者旋鈕對指令無響應(yīng)。按著步驟s406:針對步驟s404、步驟s405兩種情況下開關(guān)或旋鈕的反饋,應(yīng)用程序?qū)⒆钚聽顟B(tài)信息進行同步與更新。如果是步驟s404所述情況,則應(yīng)用程序?qū)⒔邮盏降拈_關(guān)或旋鈕方位信息更新至隊列中該裝置的方位變量中,并將屏幕中光斑的位置移動至該位置,使其與開關(guān)或旋鈕在物理空間上重新保持完全重疊。如果是步驟s405所述情況,應(yīng)用程序在等待響應(yīng)的時間片段中得不到開關(guān)或旋鈕的應(yīng)答,則在隊列中將該裝置的狀態(tài)從“在盤”變更為“已脫離”,并將對應(yīng)光斑隱藏。至此,針對一個開關(guān)或旋鈕的一次同步更新過程完成。類似地,應(yīng)用程序針對隊列中的每一個開關(guān)或旋鈕循環(huán)地進行步驟s401至步驟s406的操作,從而實現(xiàn)對開關(guān)或旋鈕及其光斑狀態(tài)的同步跟蹤。按著步驟s407:一個已經(jīng)脫離的開關(guān)或旋鈕重新穩(wěn)定地放置于觸摸屏之上時,應(yīng)用程序需對其進行識別及歸隊的操作。為了觸發(fā)這一過程,開關(guān)或旋鈕在某一限定的時間閾值內(nèi)未接收到來自光斑的任何信息,則進入周期性循環(huán)輸出“復(fù)位請求”信息的狀態(tài)。按著步驟s408:當一個循環(huán)發(fā)送“復(fù)位”信息的開關(guān)或旋鈕接觸到觸摸屏?xí)r,應(yīng)用程序接收到該信息,通過“復(fù)位”信息中包含的主、副坐標計算出開關(guān)或旋鈕的位置,在該坐標位置生成一個對應(yīng)的光斑,并通過該光斑向開關(guān)或旋鈕發(fā)送詢問方位信息的指令。按著步驟s409:開關(guān)或旋鈕接收到光斑詢問方位的指令,對其進行響應(yīng),反饋當前的方位信息。類似地,經(jīng)過步驟s407至步驟s409,一個脫離的開關(guān)或旋鈕即可重新回歸到同步更新的循環(huán)隊列當中。通過這樣的步驟,可以實現(xiàn)一些音樂控制場景的應(yīng)用開發(fā)。
總之,本發(fā)明通過一種觸摸屏交互的方法及裝置,因其開放性,可編程性,極大的方便了開發(fā)者進行新的觸摸屏類應(yīng)用的開發(fā),同時因為本發(fā)明所述的裝置在觸摸屏上的數(shù)量又沒有理論上的上限,又進一步的減少了對于應(yīng)用開發(fā)的限制。能夠最大限度上激發(fā)開發(fā)者的創(chuàng)意,并最終為客戶帶來更好,更真實的應(yīng)用體驗。