專利名稱::對來自輸入裝置的寬帶數(shù)據(jù)進(jìn)行緩存的方法一般地說,本發(fā)明是關(guān)于數(shù)據(jù)處理系統(tǒng)的輸入設(shè)備。更具體地說,是關(guān)于保存來自輸入裝置,特別是觸屏(touchscreen)的寬帶(highbandwidth)數(shù)據(jù)使之能完成多個(gè)任務(wù)而不丟失數(shù)據(jù)的方法。在當(dāng)今技術(shù)中,利用裝在計(jì)算機(jī)顯示器可視表面上的接觸式輸入裝置提供一個(gè)“用戶友好”(“userfriendly”)的手段來控制數(shù)據(jù)處理系統(tǒng)已是一種眾所周知的技術(shù)。這些裝置被設(shè)計(jì)成允許一個(gè)不熟練的用戶在計(jì)算機(jī)系統(tǒng)上完成預(yù)期任務(wù)而不需進(jìn)行太多的訓(xùn)練。人為因素研究表明,允許用戶在計(jì)算機(jī)顯示屏上直接輸入數(shù)據(jù)的裝置(在當(dāng)今技術(shù)中一般為接觸式輸入裝置(touchinputdevice)實(shí)現(xiàn)了人與機(jī)器之間作用的最大的及時(shí)性和準(zhǔn)確性。在當(dāng)前已發(fā)展的輔助人機(jī)交互圖形用戶介面中。有許多能由用戶用手指進(jìn)行最方便選擇的項(xiàng)目,例如菜單選擇、圖標(biāo)(icon)或窗口等。在其他能完成徒手畫畫、手勢識別或手寫字母的高級軟件應(yīng)用中,指示筆(stylus)更加有效,因?yàn)樗_。這樣,利用一種既能檢測指示筆又能檢測手指接觸的接觸式輸入裝置是方便的。這樣一種系統(tǒng)在共同受讓的美國專利4,686,332號中描述過。該專利屬于E.Greanias等人,題為“用于可見顯示裝置視屏上的指觸與指示筆檢測組合系統(tǒng)”,它于1986年6月26日提交,在這里將作為參考引證。計(jì)算機(jī)操作系統(tǒng)軟件通常把鼠標(biāo)器之類指點(diǎn)裝置(pointingdevice)作為定位器裝置(locatordevice)而不是作為數(shù)據(jù)裝置來對待。其假定是,作為一個(gè)定位裝置,重要事件是鼠標(biāo)器按鈕的單次扣動。對于大多數(shù)應(yīng)用而言,最重要的點(diǎn)是鼠標(biāo)移動的起點(diǎn)和終點(diǎn)(這是通常發(fā)生在按鈕按下/抬起事件的地方)以及鼠標(biāo)指示器的當(dāng)前位置。鼠標(biāo)指示器的實(shí)際路徑往往沒關(guān)系。其結(jié)果是由操作系統(tǒng)對鼠標(biāo)產(chǎn)生的事件(具體地說,是報(bào)告鼠標(biāo)運(yùn)動的鼠標(biāo)運(yùn)動事件)作有限的緩存。而鼠標(biāo)的運(yùn)動或走過的路徑則作為鼠標(biāo)運(yùn)動事件報(bào)告給應(yīng)用程序,當(dāng)產(chǎn)生這些事件時(shí)(典型情況是每秒40次運(yùn)動)便可以得到它們。然而,如果應(yīng)用程序正忙于執(zhí)行一個(gè)有較高級優(yōu)先權(quán)的任務(wù)時(shí),操作系統(tǒng)則合并(coalesce)鼠標(biāo)的這些運(yùn)動,只保留所報(bào)告的最后一次運(yùn)動。當(dāng)應(yīng)用軟件提取鼠標(biāo)運(yùn)動的速度低于鼠標(biāo)運(yùn)動的產(chǎn)生速度時(shí),也就是在高CPU使用期間,這些鼠標(biāo)運(yùn)動便被操作系統(tǒng)丟棄。這就造成了數(shù)據(jù)丟失。然而,在過去,對于大多數(shù)應(yīng)用而言,數(shù)據(jù)丟失并未造成問題。在共同受讓的一個(gè)共同未決申請(系列號344,879,題目是“高級用戶接口(AdvancedUserInterfaee)”,1989年4月28日提交,在此引入作為參考)中提出了一種操作系統(tǒng)增強(qiáng),它允許已存在的應(yīng)用程序理解新的輸入裝置,特別是它允許從接觸傳感器(如在專利4,686,332號中描述的那種)的輸入被映射(map)到應(yīng)用程序或操作系統(tǒng)能理解的鼠標(biāo)或鍵盤信息上。然而,本發(fā)明者近來發(fā)現(xiàn),移植了AUI系統(tǒng)(由344,879號申請公開的操作系統(tǒng)存在許多嚴(yán)重的限制。第一,在高級用戶接口(AUI)中,支持指觸和/或指示筆輸入的觸屏裝置有兩種工作方式它們可以可靠地仿真一個(gè)鼠標(biāo)裝置,包括鼠標(biāo)“按鈕上”和“按鈕下”命令,或者它們可以用于完成手勢或手寫輸入。手勢輸入被系統(tǒng)映射成能被系統(tǒng)上運(yùn)行的計(jì)算機(jī)模塊理解的命令。由于高CPU使用造成的鼠標(biāo)運(yùn)動事件丟失嚴(yán)重地阻礙了使用指示筆或手指輸入進(jìn)行手寫、手勢或計(jì)算機(jī)繪圖的能力。再有,數(shù)據(jù)丟失阻礙了系統(tǒng)在這兩種輸入類型之間進(jìn)行鑒別的能力。用觸屏來仿真一個(gè)鼠標(biāo)的第二個(gè)限制是操作系統(tǒng)不提供將觸屏產(chǎn)生的額外數(shù)據(jù)傳送給應(yīng)用程序的手段。產(chǎn)生指點(diǎn)裝置事件的系統(tǒng)機(jī)制是以鼠標(biāo)為基礎(chǔ)的,所以所報(bào)告的數(shù)據(jù)局限于按顯示分辨率生成的一對X/Y座標(biāo)以及分辨率不精確的記時(shí)標(biāo)記(timestamp)。當(dāng)前的觸屏顯示器及裝置能夠報(bào)告大量的事件及高度確定的傳感器數(shù)據(jù)。此外,觸屏的點(diǎn)產(chǎn)生速率可達(dá)每秒200點(diǎn),是每點(diǎn)報(bào)告過多(plethora)數(shù)據(jù)的鼠標(biāo)速率的2至5倍。這樣,當(dāng)使用觸屏?xí)r,由于應(yīng)用程序必須以快2至5倍的速度來提取各點(diǎn)才能避免點(diǎn)數(shù)據(jù)不協(xié)調(diào),所以“鼠標(biāo)運(yùn)動”合并問題加重了。專為使用這些傳感器產(chǎn)生的坐標(biāo)及伴隨的筆畫數(shù)據(jù)而設(shè)計(jì)的未來的應(yīng)用軟件可能需要實(shí)時(shí)地在產(chǎn)生這些數(shù)據(jù)時(shí)處理它們,又需要在完成一條筆畫后抬起(liftoff)時(shí)處理這此數(shù)據(jù)。然而,用目前的操作系統(tǒng),這一信息是得不到的,因?yàn)檫@些系統(tǒng)被設(shè)計(jì)成只接收鍵盤或鼠標(biāo)數(shù)據(jù)。對于大多數(shù)操作系統(tǒng)而言,對觸屏使用鼠標(biāo)事件報(bào)告的方式的另一個(gè)固有限制是仿真一個(gè)鼠標(biāo)的觸屏裝置必須以顯示分辨率來報(bào)告坐標(biāo),而且在每個(gè)軸向其坐標(biāo)值必須以至少是顯示象素(pel)來改變才能作為有效鼠標(biāo)運(yùn)動來接受。對于高分辨率傳感器,可能在一個(gè)顯示象素距離內(nèi)檢測到許多次運(yùn)動。這樣,便損失了指點(diǎn)信息的分辨力。本發(fā)明的一個(gè)目的是提供足夠的存儲區(qū)以緩存任何類型或來源的多達(dá)1000個(gè)輸入事件而不丟失數(shù)據(jù)。本發(fā)明的一個(gè)目的是允許多人同時(shí)運(yùn)行的輸入裝置向數(shù)據(jù)處理系統(tǒng)寫入輸入的事件。本發(fā)明的一個(gè)目的是當(dāng)多個(gè)輸入設(shè)備同時(shí)運(yùn)行時(shí)能提供設(shè)備仲裁(arbitration)。本發(fā)明的一個(gè)目的是使所有輸入事件能為應(yīng)用軟件所得到,并在保證保持所有輸入事件(包括鼠標(biāo)和鍵盤)時(shí)間順序的情況下分發(fā)這些事件。本發(fā)明的一個(gè)目的是在處理每個(gè)輸入事件時(shí)使應(yīng)用軟件能夠得到伴隨每個(gè)輸入事件的全部有關(guān)數(shù)據(jù)。本發(fā)明的一個(gè)目的是使接觸傳感器輸入裝置每一筆畫中的每一點(diǎn)所伴隨的全部相關(guān)數(shù)據(jù)能在抬起時(shí)被應(yīng)用程序得到。本發(fā)明的一個(gè)目的是除了當(dāng)前提供的鼠標(biāo)超前和打字超前能力外,還實(shí)現(xiàn)“筆畫超前(stroke-ahead)”能力。本發(fā)明的一個(gè)目的是在輸入過程中緩存一次接觸筆畫的點(diǎn),使得即使在延長時(shí)間的占先(pre-emption)中也不會造成手勢輸入超時(shí)(timeout)。本發(fā)明的一個(gè)目的是使應(yīng)用軟件能根據(jù)輸入裝置類型、事件類型、或時(shí)間標(biāo)記范圍來對單個(gè)輸入事件進(jìn)行分類,從而解開單個(gè)輸入事件隊(duì)列。本發(fā)明的一個(gè)目的是使應(yīng)用軟件能夠停止執(zhí)行以等待一個(gè)特定的輸入事件。本發(fā)明的這些目的以及其他目的和特點(diǎn)是由擴(kuò)充信息隊(duì)列(ExtendedInformationQueue)來實(shí)現(xiàn)的,這是一種將數(shù)據(jù)排入這一隊(duì)列的方法及從這一隊(duì)列中分離出數(shù)據(jù)的方法。它提供足夠的緩存機(jī)制用于訪問和檢索所存儲的寬帶數(shù)據(jù),還提供了足夠的存儲區(qū)來緩存持續(xù)數(shù)秒的觸屏接觸筆畫。在一典型的操作系統(tǒng)中,在輸入裝置和運(yùn)行的應(yīng)用程序之間由操作系統(tǒng)提供一個(gè)含有有限緩存區(qū)的通道。本發(fā)明提供一個(gè)具有更寬帶寬的并行通道,它帶有優(yōu)越得多的緩存能力以補(bǔ)充操作系統(tǒng)的緩存能力,這就是EIQ。當(dāng)系統(tǒng)收到一個(gè)事件(例如接觸傳感器上的一次指示筆下觸時(shí),其信息以兼容格式送到操作系統(tǒng)通道和寬帶通道。送到操作系統(tǒng)通道的信息只含有有限數(shù)據(jù),該數(shù)據(jù)被翻譯成鼠標(biāo)產(chǎn)生的那種格式。送到寬帶通道的信息含有由輸入設(shè)備產(chǎn)生的全部數(shù)據(jù)。如果在高CPU使用期間應(yīng)用程序不能足夠快地提取“鼠標(biāo)運(yùn)動”,則操作系統(tǒng)通道的緩存區(qū)將放棄這些“鼠標(biāo)運(yùn)動”。在寬帶通道中的EIQ緩存器保持多達(dá)1000個(gè)輸入事件的全部數(shù)據(jù),或者對于計(jì)算機(jī)系統(tǒng)而言認(rèn)為是足夠數(shù)量的數(shù)據(jù),而與CPU使用無關(guān)。響應(yīng)一個(gè)“鼠標(biāo)”事件對系統(tǒng)中應(yīng)用程序之一的攔截時(shí),本發(fā)明的方法將檢驗(yàn)在EIQ中是否存在任何事件。如果存在,則系統(tǒng)使所有事件離隊(duì),并將它們送到預(yù)期的應(yīng)用程序中。如果在檢查EIQ隊(duì)列中的事件時(shí),系統(tǒng)監(jiān)測到任務(wù)占先,則設(shè)置各種標(biāo)記。例如,由于最佳實(shí)施例使用了延時(shí)計(jì)時(shí)器將預(yù)期作為一個(gè)手勢的接觸輸入與預(yù)期作為鼠標(biāo)仿真的接觸輸入?yún)^(qū)別開,設(shè)置了“手勢超時(shí)終止與忽略”標(biāo)志,以保證任務(wù)占先不會影響預(yù)期結(jié)果。再有,某些事件可能會從各個(gè)輸入裝置異步地單獨(dú)送到EIQ緩存區(qū)。本發(fā)明提供了一個(gè)單獨(dú)的調(diào)度單位(thread)來產(chǎn)生一個(gè)偽“鼠標(biāo)”信息送到操作系統(tǒng)隊(duì)列,使系統(tǒng)去檢驗(yàn)EIQ緩存中的真正輸入事件。圖1是用于檢測指觸和指示筆位置的復(fù)蓋單元(overlayunit)的前視圖。該單元放置在平面顯示面板上構(gòu)成所謂“接觸工作板”(touchworkpad)。圖2是指觸與指示筆組合檢測的體系結(jié)構(gòu)示意圖。圖3描繪出一個(gè)數(shù)據(jù)處理系統(tǒng)中運(yùn)行的一組應(yīng)用程序。該數(shù)據(jù)處理系統(tǒng)中裝備了根據(jù)本發(fā)明構(gòu)成的操作系統(tǒng)增強(qiáng)。圖4中的流程圖說明了根據(jù)本發(fā)明來操作數(shù)據(jù)處理系統(tǒng)的最佳實(shí)施例。圖5是說明擴(kuò)展信息隊(duì)列子例程(subroutine)的流程圖。圖6A的流程圖說明用于對來自接觸傳感器的輸入進(jìn)行鼠標(biāo)命令仿真的延時(shí)計(jì)時(shí)器例行程序。圖6B是終止手勢識別例行程序的流程圖。圖7是手勢識別例行程序流程圖。圖8是延時(shí)計(jì)時(shí)器處理的流程圖。圖9表示出操作系統(tǒng)通道隊(duì)列和EIQ緩存區(qū)中的數(shù)據(jù)塊。圖10是接觸傳感器按鈕事件處理的流程圖。將參考圖1和圖2來描述實(shí)現(xiàn)本發(fā)明最佳實(shí)施例的環(huán)境。參考圖1,圖中給出一個(gè)接觸工作板,它基本上與Arbeitman等人的共同未決申請(系號351,227,題為“數(shù)據(jù)處理系統(tǒng)用平面觸屏工作板”,1989年5月15日提交,這里引入作為參考)中描述的那種類似。該工作板包括一個(gè)外罩12,它有一矩形凹入窗口14,包圍在矩形接觸復(fù)蓋板16的邊緣。接觸復(fù)蓋板16是透明的,放在液晶顯示(LCD)屏18上面。復(fù)蓋板16是一個(gè)疊層結(jié)構(gòu),包括幾個(gè)塑料基底層利用粘著層疊壓在一起。復(fù)蓋板16還包括第一組透明導(dǎo)體16A沿垂直方向放置及第二組透明導(dǎo)體16B沿水平方向放置。在超出凹入窗口14之外還放置了若干垂直向和水平向?qū)w,以便對于在顯示窗口14邊緣接觸或接近復(fù)蓋板16的指示筆20或手指能夠精確地確定其位置。指示筆20經(jīng)電纜22與接觸工作板相連,指示筆20的作用猶如一根天線去拾取復(fù)蓋板16發(fā)射出的信號,并提供比手指接觸高得多的分辨率。在外罩的邊框上有四個(gè)按鈕開關(guān)24-27,它們能用于改變來自工作板10的數(shù)據(jù)的接收方式。工作板電纜28將工作板同用戶與之通信的計(jì)算機(jī)連接起來。工作板電纜28向工作板10提供電源與操作LCD18的顯示信號以及以指觸和指示筆兩種方式操作復(fù)蓋板的接觸信號。此外,電纜28還是通向計(jì)算機(jī)的管道,向計(jì)算機(jī)提供由指示筆20接收的信號強(qiáng)度測量值及由于手指接觸造成的電容變化所引起的頻率變化。圖2是指觸和指示筆檢測系統(tǒng)的體系結(jié)構(gòu)示意圖。圖2中描繪的系統(tǒng)正是美國專利4,686,332中的圖9所揭示的那個(gè)系統(tǒng)。接觸控制處理器30、隨機(jī)存取存儲器32、只讀存儲器及I/O控制器36也是在個(gè)人計(jì)算機(jī)中的接觸面板適配器卡上,而接觸電路的其余部分集成在接觸工作板10上。正如結(jié)合圖1所描述的那樣,接觸工作板10通過電纜28與個(gè)人計(jì)算機(jī)及接觸面板適配器卡37進(jìn)行通信。垂直向X導(dǎo)體及水平向Y導(dǎo)體分別通過X總線38及Y總線40與接線選擇多路轉(zhuǎn)換器42相連。幅射拾取指示筆20通過門電路44與幅射拾取測量裝置46相連。接線選擇多路轉(zhuǎn)換器42通過方式多路轉(zhuǎn)換器50與電容測量裝置52相連,后者用于電容指觸檢測。接線選擇多路轉(zhuǎn)換器42還通過方式多路轉(zhuǎn)換器50與40千赫茲振蕩器驅(qū)動器54相連,后者用于為了指示筆檢測操作而驅(qū)動X總線38及Y總線40。方式多路轉(zhuǎn)換器50還向門44提供一個(gè)啟動輸出,以便將指示筆20的輸出有選擇地連接到幅射拾取測量裝置46,用于指示筆檢測操作。電容測量裝置52的輸出通過模擬-數(shù)字轉(zhuǎn)換器56與工作板總線58相連。幅射拾取測量裝置46通過模擬-數(shù)字轉(zhuǎn)換器48與總線58相連。接線選擇多路轉(zhuǎn)換器42的一個(gè)控制輸入60與總線58相連。控制輸入62從總線58連到方式多路轉(zhuǎn)換器50。工作板總線58通過工作板接口64與電纜28相連,而電纜28又連到個(gè)人計(jì)算機(jī)中的接觸面板適配器卡37的PC接口66。PC接口66與主系統(tǒng)總線68通信,也與適配器卡總線70通信。I/O控制器36有一I/O總線72與個(gè)人計(jì)算機(jī)的主總線68相連。I/O控制器36還與適配器卡總線70相連。適配器總線70還用于控制處理器30。與只讀存儲器(ROM)34及隨機(jī)存取存儲器(RAM)32的相互連接。該個(gè)人計(jì)算機(jī)包括CPU74、ROM76、磁盤存儲器78、存儲操作系統(tǒng)81和應(yīng)用程序82的存儲器80、標(biāo)準(zhǔn)鍵盤84以及標(biāo)準(zhǔn)顯示器86等標(biāo)準(zhǔn)設(shè)備。標(biāo)準(zhǔn)顯示器86通常是一個(gè)CRT(陰極射線管),在最佳實(shí)施例中它是對工作板10中的LCD的補(bǔ)充。接線選擇多路轉(zhuǎn)換器42及方式多路轉(zhuǎn)換器50響應(yīng)由控制處理器30經(jīng)總線58加到控制輸入端60和62的控制信號,將復(fù)蓋板16中一組水平與垂直導(dǎo)體選出的模式(pattern)連接到或者電容測量裝置52或者40千赫茲振蕩器驅(qū)動器54。在指觸操作過程中,電容測量裝置52響應(yīng)來自控制處理器30的控制信號,將其輸入端通過方式多路轉(zhuǎn)換器50及接線選擇多路轉(zhuǎn)換器42耦合到復(fù)蓋板16中水平與垂直導(dǎo)體陣列中被選定的單個(gè)導(dǎo)體上。電容測量裝置52的輸出被A/D轉(zhuǎn)換器56轉(zhuǎn)換成數(shù)字值并通過總線58提供給控制處理器30??刂铺幚砥?0執(zhí)行一系列所存儲的程序指令,來檢測被操作員手指接觸的復(fù)蓋板16中水平陣列導(dǎo)體對及垂直陣列導(dǎo)體對。指觸傳感方式與指示筆傳感方式被此獨(dú)立地運(yùn)行,檢測系統(tǒng)在這兩種方式之間往復(fù),直至檢測到一次指觸或指示筆接觸。題為“高級用戶接口”或AUI的共同未決申請(系號344,879)描述了一個(gè)操作系統(tǒng)的擴(kuò)展,它允許新形式的輸入能被當(dāng)初寫成時(shí)不理解那類輸入的應(yīng)用程序來處理。在題為“在多應(yīng)用環(huán)境中具有手勢識別功能的圖形用戶接口”的共同未決申請(序號779,702,1991年10月21日提交,這里引入作為參考)中描述了對那個(gè)操作系統(tǒng)擴(kuò)展的某些改進(jìn)。例如,迄今為止所寫的大多數(shù)應(yīng)用程序只接受鍵盤和鼠標(biāo)輸入。一個(gè)用戶能使用高級用戶接口(AUI)來應(yīng)用接觸傳感器,不需要對寫成時(shí)只接收鼠標(biāo)和鍵盤輸入的應(yīng)用程序代碼作任何修改。在一個(gè)最佳實(shí)施例中,AUI與操作系統(tǒng)81及應(yīng)用程序82一起存儲于RAM80中。圖3中描繪了幾種外部輸入設(shè)備130-138以及適當(dāng)?shù)脑O(shè)備專用代碼模塊141-145。鍵盤130由鍵盤設(shè)備驅(qū)動模塊140來處理,指點(diǎn)裝置132和134由統(tǒng)一的指點(diǎn)裝置驅(qū)動模塊143來處理。EIQ驅(qū)動模塊150接收的輸入信息來自指點(diǎn)裝置驅(qū)動模塊143以及聲音與圖象傳感器136與138的設(shè)備專用代碼模塊144與145。在操作系統(tǒng)中裝入的任何驅(qū)動程序或者說設(shè)備專用代碼都可以用EIQ設(shè)備驅(qū)動模塊150予以登錄,此時(shí)登錄EIQ驅(qū)動模塊150便知道了該設(shè)備的能力及其登錄的條目類型。一旦設(shè)備已經(jīng)登錄,它可以將設(shè)備專用條目寫入EIQ緩存區(qū)160,以便其后能通過EIQ子系統(tǒng)185的請求被AUI環(huán)境鏈路層180或應(yīng)用程序190-193檢索。EIQ驅(qū)動程序150、EIQ緩存區(qū)160有EIQ子系統(tǒng)185相應(yīng)于344,879號申請中的“代用輸入子系統(tǒng)(AIS)”的一個(gè)改進(jìn)版。AIS的某些方面也是由指點(diǎn)裝置143完成的。鍵盤和指點(diǎn)裝置事件也被傳送到OS/2操作系統(tǒng)170,以便在被預(yù)期的應(yīng)用程序接收之前列入其輸入隊(duì)列。由于操作系統(tǒng)將只接收鼠標(biāo)或鍵盤數(shù)據(jù),所有來自接觸傳感器134的數(shù)據(jù)在被送入操作系統(tǒng)輸入通道之前由指點(diǎn)裝置驅(qū)動程序143翻譯的“鼠標(biāo)”信息。接觸數(shù)據(jù)連同其數(shù)據(jù)類型的全部補(bǔ)充說明一起送到EIQ通道。能被存入EIQ緩存區(qū)160的數(shù)據(jù)中包括下列數(shù)據(jù)按顯示分辨率表示的X/Y坐標(biāo),傳感器分辨率比顯示分辨率高得多,產(chǎn)生從標(biāo)的指點(diǎn)裝置(例如手指、指示筆)的標(biāo)識碼,高分辨率時(shí)間標(biāo)記,來自安裝在顯示器邊框的按鈕的事件,指示進(jìn)入或離開鄰近區(qū)的檢測信息,來自安裝在指示筆上的按鈕的事件,指示筆的傾斜、旋轉(zhuǎn)與抬高,Z-軸或壓力數(shù)據(jù),加速度數(shù)據(jù),在個(gè)人指示筆中存儲的數(shù)據(jù),顯示狀態(tài),例如背景光狀態(tài)及灰度映象,視頻狀態(tài),如當(dāng)前的視頻方式。當(dāng)應(yīng)用程序190-193使“鼠標(biāo)”信息離開PM輸入隊(duì)列時(shí),在應(yīng)用程序190-193收到這些信息之前,AUI180要攔截它們,并請求EIQ子系統(tǒng)185提取相應(yīng)于當(dāng)前信息的所有EIQ事件。這使AUI層180能得到指點(diǎn)裝置報(bào)告的全部指點(diǎn)事件,這些事件可能已經(jīng)由于鼠標(biāo)事件的合并而被PM172拋棄。當(dāng)EIQ事件離隊(duì)時(shí),其坐標(biāo)和全部伴隨數(shù)據(jù)被送到筆畫緩存區(qū)188,并在提起或鼠標(biāo)按鈕抬起時(shí)使應(yīng)用程序190-193能得到整個(gè)筆畫。AUI環(huán)境鏈路180子層也與字符/手勢識別子單元194耦合,該子單元194向不能處理一個(gè)特定筆畫的應(yīng)用程序提供識別工具;它還與接口簡要表(profile)196耦合,該接口簡要表196針對應(yīng)用程序190-193、操作系統(tǒng)170及顯示管理程序172當(dāng)初所寫的對應(yīng)命令映射新的輸入。EIQ緩存區(qū)160有足夠大的存儲器來緩存1024個(gè)事件。當(dāng)各條目被寫入EIQ緩存區(qū)160時(shí),每個(gè)事件被賦予一個(gè)唯一的時(shí)間標(biāo)記。時(shí)間標(biāo)記的精細(xì)度(granularity)是一毫秒,它使能每秒緩存多達(dá)1000個(gè)事件。與由EIQ驅(qū)動程序150賦予的時(shí)間標(biāo)記和送到PM輸入隊(duì)列的PM信息所得到的時(shí)間標(biāo)記相同。這是至關(guān)重要的,因?yàn)閺腜M隊(duì)列離隊(duì)的信息必須與其在EIQ緩存區(qū)160中的相應(yīng)條目匹配。時(shí)間標(biāo)記還保留了所有輸入事件的時(shí)間順序。利用與操作系統(tǒng)170相連的多個(gè)輸入裝置130、132、134、136及138,便有可能同時(shí)接收來自多個(gè)裝置的輸入事件。EIQ驅(qū)動程序的作用是一個(gè)仲裁器(arbitrator),并賦予每個(gè)指點(diǎn)裝置一個(gè)優(yōu)先級。當(dāng)由二個(gè)或更多個(gè)裝置造成同時(shí)條目的情況時(shí),EIQ驅(qū)動程序150對較低優(yōu)先級裝置的條目加一標(biāo)記,該標(biāo)記將通知AUI180該裝置經(jīng)仲裁被排出,且不應(yīng)該作為有效輸入來接收。由于EIQ緩存區(qū)160將包含所有輸入事件,如果用戶同時(shí)移動鼠標(biāo)和指示筆,則能包括鼠標(biāo)和指示筆兩種事件。這樣,為了防止混淆,該最佳實(shí)施例包括將指點(diǎn)裝置之一仲裁排出的可選功能,從而使來自該額外指示器的指點(diǎn)事件不與有效指示器的事件,一起傳送給應(yīng)用程序。多任務(wù)操作系統(tǒng)的另一個(gè)限制是“任務(wù)占先”,這時(shí)有較高優(yōu)先級的任務(wù)暫時(shí)中斷了當(dāng)前正在執(zhí)行的程序。任務(wù)占先對筆畫輸入特別有破壞性,因?yàn)槟E(inkingtrail)暫時(shí)中止了,而用戶必須用指示筆繼續(xù)書寫都沒有可見的墨跡反饋。當(dāng)用戶在書寫一個(gè)手勢時(shí)還會在無意中發(fā)生超時(shí),因?yàn)锳UI維持一個(gè)延時(shí)計(jì)時(shí)器來等待用戶或者完成一個(gè)手勢或者停止移動指示筆以便區(qū)分預(yù)期作為鼠標(biāo)命令的輸入和作為手勢的輸入。因?yàn)檎枷鹊男Ч且餉UI停止處理點(diǎn),故延時(shí)計(jì)時(shí)器永遠(yuǎn)不會復(fù)位,從而引起超時(shí)。對于AUI軟件,這種情況看起來好象用戶握住指示筆不動去迫使超時(shí)并進(jìn)入鼠標(biāo)仿真方式。在長時(shí)間占先的情況里,有可能在控制返回原始程序并處理點(diǎn)之前寫入幾個(gè)筆畫。至關(guān)重要的是將這種中斷過程中所有筆畫數(shù)據(jù)保留下來并提供給被中斷的應(yīng)用程序,做到中斷對應(yīng)用程序而言成為透明的。圖4是AUI子系統(tǒng)的主例行程序,這里所有PM信息在步驟206被攔截。圖4還描繪出三個(gè)初始步驟,這里,來自輸入裝置的電信號被裝置專用代碼141-145在步驟200進(jìn)行處理,變成指點(diǎn)裝置驅(qū)動程序143能理解的輸入信息,驅(qū)動程序143又將所有點(diǎn)信息轉(zhuǎn)換成鼠標(biāo)信息,因?yàn)楹笳吣鼙籓S/2170及PM172理解?!笆髽?biāo)”信息被送到步驟204并通過操作系統(tǒng)170和集成操作環(huán)境172進(jìn)行處理。在一個(gè)最佳實(shí)施例中,只有“鼠標(biāo)”信息被用本發(fā)明的方法處理,它假定需要時(shí)間標(biāo)記來保持其時(shí)間順序的所有數(shù)據(jù)被轉(zhuǎn)換成鼠標(biāo)信息傳送到OS/2170及PM172。所有其他PM信息(例如鍵盤)被直接地以最小延時(shí)傳送到應(yīng)用程序。在正常操作方式中,當(dāng)事件發(fā)生時(shí)應(yīng)用程序使鼠標(biāo)信息從PM輸入隊(duì)列中脫離。然后,AUI環(huán)境鏈路180得到控制權(quán)并使同一事件脫離EIQ緩存區(qū)160再存入筆畫緩存區(qū)188。在理想狀況下,在PM輸入隊(duì)列和EIQ事件之間有一對一的關(guān)系。然而,如果一個(gè)應(yīng)用程序提取信息較慢,一些信息可能會被拋棄,這就意味著將有不只一個(gè)也可能有幾個(gè)EIQ事件要離隊(duì)。下面將討論幾個(gè)事例來幫助理解。例1圖4-8說明了處理接觸傳感器134上一個(gè)單一筆畫的正常情況。在這一例子中,用戶在接觸傳感器134上用手指或指示筆做了一個(gè)手勢,例如一個(gè)右箭頭手勢,計(jì)算機(jī)系統(tǒng)或AUI或應(yīng)用程序把手指和指示筆看作是等同的,它們把接觸輸入“理解”為要完成某一特定活動的命令。在208截獲了一個(gè)“鼠標(biāo)按鈕下”的信息。因?yàn)樵撓到y(tǒng)初始時(shí)不處在手勢方式,所以在205它被作為一個(gè)新筆畫的起始來對待。在254裝入信息時(shí)間標(biāo)記,并把該事件從EIQ緩存區(qū)256取出。然后AUI進(jìn)入手勢方式狀態(tài)258并啟動延時(shí)計(jì)時(shí)器260來檢測運(yùn)動的終止。如果用戶希望用鼠標(biāo)仿真來代替手勢,用戶將停止指點(diǎn)裝置的運(yùn)動達(dá)200毫秒。由于系統(tǒng)在手勢方式時(shí)鼠標(biāo)仿真被延遲,故“鼠標(biāo)按鈕下”未被傳送給應(yīng)用程序262。當(dāng)用戶移動指點(diǎn)裝置時(shí),接觸運(yùn)動作為一系列PM鼠標(biāo)運(yùn)動信息報(bào)告給操作系統(tǒng)170。由于這些運(yùn)動信息在210被過濾,在270該“鼠標(biāo)”運(yùn)動信息被加上時(shí)間標(biāo)記,在272取得最后一個(gè)EIQ事件的EIQ時(shí)間標(biāo)記,在274取得相應(yīng)的EIQ事件。圖5說明EIQ處理例行程序。當(dāng)鼠標(biāo)運(yùn)動被離隊(duì)時(shí),它們在300按時(shí)間標(biāo)記范圍被提取。開始時(shí)間標(biāo)記是最后一次提取時(shí)的時(shí)間加1毫秒,結(jié)束時(shí)間是當(dāng)前PM“鼠標(biāo)”運(yùn)動信息的時(shí)間標(biāo)記。這保證了當(dāng)提取連續(xù)條目時(shí),各條目只離隊(duì)一次,而且沒有條目會被跳過。由于一個(gè)條目能來自多個(gè)裝置,該事件要通過過濾器304-310,以保證它是一個(gè)沒有被仲裁掉的定位器(locator)事件。這樣,在304檢驗(yàn)該事件是否是指示筆或邊框按鈕事件,在306檢驗(yàn)它是否是顯示事件,在308檢驗(yàn)它是否是定位器事件,在310檢驗(yàn)它是否是一個(gè)已被仲裁掉的定位裝置。在這些過濾之后,在314檢驗(yàn)這一條目以區(qū)分是一個(gè)鼠標(biāo)裝置還是一個(gè)指觸或指示筆之類高帶寬裝置。根據(jù)它是鼠標(biāo)還是手指/指示筆分別在步驟364或316從EIQ條目中取出全部裝置數(shù)據(jù)。在手指/指示筆的情況中,該條目包含以傳感器分辨率表示的坐標(biāo),如果在318應(yīng)用程序提出請求,則在320立即將這些坐標(biāo)傳送給應(yīng)用程序。類似地,一個(gè)應(yīng)用程序可以在322請求以鼠標(biāo)分辨率來接收指示器的全部運(yùn)動,在這種情況下,在324送出以顯示器分辨率表示的坐標(biāo)。如果需要實(shí)時(shí)處理指示器運(yùn)動,那么該應(yīng)用程序通常請求接收全部點(diǎn)。這種情況的一例是一個(gè)完成自己的筆繪任務(wù)的應(yīng)用程序。對于一個(gè)未知的應(yīng)用程序,用戶可以通過應(yīng)用簡要表向AUI這個(gè)應(yīng)用程序要實(shí)時(shí)接收全部點(diǎn)。除了實(shí)時(shí)接收點(diǎn)外,該應(yīng)用程序被保證接收該筆畫中的全部點(diǎn)。這是一個(gè)應(yīng)用程序能恢復(fù)被PM172放棄的鼠標(biāo)運(yùn)動的最佳方式。否則,一個(gè)應(yīng)用程序必須等到“抬起”或“按鈕抬起”的時(shí)刻來讀取含有全部鼠標(biāo)運(yùn)動地筆畫緩存區(qū)188。這樣做的好處在于用戶能指定一個(gè)已存在的應(yīng)用程序去接收全部點(diǎn)而不必修改該應(yīng)用軟件。在圖5中,一旦設(shè)備專用數(shù)據(jù)已被處理完,便在326進(jìn)行一次檢測以確定AUI是否處于鼠標(biāo)仿真方式。如果是,則不再作進(jìn)一步處理并轉(zhuǎn)去處理下一個(gè)EIQ事件。如果不是,則AUI是處于手勢方式,它在328要求用當(dāng)前點(diǎn)來更新動作緩存區(qū)188。在332完成終止手勢方式的快速檢查,在336完成延時(shí)計(jì)時(shí)器處理,在340完成當(dāng)前點(diǎn)的著墨。圖6B中詳細(xì)說明了終止手勢方式檢查。在450加載最后一次延時(shí)計(jì)時(shí)器復(fù)位的時(shí)間標(biāo)記之后,在452從當(dāng)前時(shí)刻中減去當(dāng)前EIQ條目的時(shí)間標(biāo)記。這一結(jié)果揭示出系統(tǒng)處理EIQ事件在時(shí)間上落后多久。通常EIQ事件是準(zhǔn)實(shí)時(shí)地被讀取的,所以,大的時(shí)間差表明系統(tǒng)落后了,因?yàn)樵谌舾墒录慌帕械紼IQ緩存區(qū)160期間系統(tǒng)一直在忙于執(zhí)行較高優(yōu)先級的程序。在這種情況中,沒有發(fā)生占先,所以在454的檢驗(yàn)失敗,例行程序在470返回。圖8中描繪了延時(shí)計(jì)時(shí)器處理。首先,在600完成“忽略超時(shí)”標(biāo)志是否置位的檢驗(yàn)。在602檢驗(yàn)當(dāng)前EIQ條目中的坐標(biāo)是否移動。如果在604需要重新啟動延時(shí)計(jì)時(shí)器,則在606它被重新啟動,并進(jìn)行一次檢驗(yàn)以保證在608計(jì)時(shí)器并沒有已經(jīng)終止。如果計(jì)時(shí)器被成功地重新啟動,則在610存儲當(dāng)前條目的計(jì)時(shí)標(biāo)記作為最后一次計(jì)時(shí)器重新啟動的時(shí)刻,例行程序在620退出。再回來參考圖5,在340著墨當(dāng)前點(diǎn)之后,在302處持續(xù)循環(huán),直至所有離開EIQ隊(duì)列的條目都被處理了為止。當(dāng)退出該循環(huán)時(shí),在342保存所處理的最后一個(gè)條目的時(shí)間標(biāo)記,供其后的占先檢測之用。然后EIQ例行程序退出,回到圖4中的276,在那里進(jìn)行一次檢驗(yàn),看在EIQ例行程序中是否將鼠標(biāo)運(yùn)動傳送給了應(yīng)用程序。如果是,則在278不將當(dāng)前PM鼠標(biāo)信息傳送給應(yīng)用程序,因?yàn)樗呀?jīng)接受了這一信息。最后,在242返回到PM。終于,在212截獲了一個(gè)“鼠標(biāo)按鈕抬起”信息,表明是該筆畫的結(jié)尾。指點(diǎn)裝置驅(qū)動程序143將指示筆從接觸傳感器抬起仿真成一個(gè)“鼠標(biāo)按鈕抬起”信息。在214加載了該信息的時(shí)間標(biāo)記之后,在216讀取最后一個(gè)EIQ事件的時(shí)間標(biāo)記,在218對EIQ例行程序進(jìn)行調(diào)用,以讀取最后一次鼠標(biāo)事件直至并包括本次按鈕抬起事件。由于AUI已確定接觸輸入是一個(gè)手勢,在222去掉該筆畫的著墨(deinking),在226停止延時(shí)計(jì)時(shí)器,應(yīng)用程序得到機(jī)會在228去訪問動作緩存區(qū)。將該筆畫“去掉(deinking)”是抹去由于指示筆或手指穿過接觸傳感器運(yùn)動時(shí)為向用戶提供可見反饋而顯示的“筆跡”。如果該應(yīng)用程序不處理筆畫緩存區(qū)188中的筆畫,則在238完成手勢識別。如果該動作被識別為一個(gè)有效手勢,則在236將該手勢映射成接口簡要表196中一個(gè)用戶指定的動作,如果該筆畫不是一個(gè)能識別出的手勢,則在238完成鼠標(biāo)仿真,在筆畫“鼠標(biāo)”的最后位置產(chǎn)生一個(gè)“鼠標(biāo)”按鈕按下信息并將其送給應(yīng)用程序。然后在240允許將當(dāng)前的按鈕抬起信息傳送給應(yīng)用程序。在236有效手勢的情況中,不做鼠標(biāo)仿真,并在278放棄按鈕抬起信息。這樣就完成了一個(gè)標(biāo)準(zhǔn)的手勢輸入情況的描述。例2下一個(gè)重要情況是用戶以手指或指示筆接觸該接觸傳感器134并在給定位置保持不動,以進(jìn)入鼠標(biāo)仿真方式。與第一種情況類似,一個(gè)鼠標(biāo)按鈕按下事件和鼠標(biāo)運(yùn)動被接收并被添加到筆畫緩存區(qū)188,并啟動延時(shí)計(jì)時(shí)器。然而,用戶握住點(diǎn)指示裝置不動導(dǎo)致停止產(chǎn)生鼠標(biāo)運(yùn)動。在200毫秒不運(yùn)動之后,延時(shí)計(jì)時(shí)器停止了。參考圖6A,在400查詢了當(dāng)前鼠標(biāo)位置,并在402查詢PM172從而確定了目的應(yīng)用程序。在404產(chǎn)生一個(gè)PM鼠標(biāo)按鈕按下信息并在406傳送給該應(yīng)用程序。當(dāng)應(yīng)用程序使傳送來的按鈕按下信息離隊(duì)時(shí),它在208被AUI攔截,此時(shí)AUI已經(jīng)在250處于手勢方式,并在252調(diào)用按鈕按下處理程序。參考圖7,在500檢驗(yàn)被傳送的按鈕按下信息,以保證它是由計(jì)時(shí)器例行程序傳送的。然后進(jìn)行一系列的占先檢驗(yàn)。在502完成是否同時(shí)設(shè)置了“忽略延時(shí)計(jì)時(shí)器超時(shí)”及“手勢終止”標(biāo)志的檢驗(yàn);在504進(jìn)行檢驗(yàn)是否設(shè)置了“忽略超時(shí)”標(biāo)記。在506,進(jìn)行手勢終止標(biāo)志是否設(shè)置的檢測。下面將結(jié)合進(jìn)一步的舉例來討論這些標(biāo)志的用途。在本情況中沒有發(fā)生占先,所以在502、504及506對占先標(biāo)志的檢驗(yàn)均失敗,于是執(zhí)行進(jìn)入508,在那里從當(dāng)前時(shí)間中減去最后一個(gè)EIQ事件的時(shí)間。由于用戶保持靜止因而無鼠標(biāo)運(yùn)動,故最后一次EIQ提取信息時(shí)間大于70毫秒。這一點(diǎn)看起來應(yīng)用程序可能已被占先,然而,在520檢驗(yàn)了PM輸入隊(duì)列并且沒有發(fā)現(xiàn)鼠標(biāo)事件。PM鼠標(biāo)事件不存在乃是在最近未發(fā)生EIQ提取信息的原因。如果在PM輸入隊(duì)列中存在事件,那么系統(tǒng)沒有使它們離隊(duì)的原因便會被認(rèn)為是任務(wù)占先。因?yàn)闆]有發(fā)生任務(wù)占先,故在520的檢驗(yàn)失敗并在512進(jìn)入鼠標(biāo)仿真方式。在514抹去該筆畫的筆跡,并允許被傳送的按鈕按下信息傳遞給應(yīng)用程序。下面的幾個(gè)例子全都是以上述例1和例2中的兩種情況為基礎(chǔ),其不同之處在于發(fā)生了占先,從而破壞了處理的正常方式。占先的嚴(yán)重性不同,從幾十毫秒的短暫無后果的中斷到持續(xù)幾秒鐘的整個(gè)系統(tǒng)死鎖。應(yīng)當(dāng)指出的是,在圖7中的510及圖8中的614所進(jìn)行的占先檢驗(yàn)是要確定在70毫秒內(nèi)未曾提取EIQ事件。采用70毫秒這個(gè)值是因?yàn)镺S/2系統(tǒng)計(jì)時(shí)器的精細(xì)度是32毫秒。由于計(jì)時(shí)器只在每過32毫秒增量一次,所以檢驗(yàn)一個(gè)70毫秒的變化可以保證已經(jīng)過去了至少64毫秒而最多95毫秒。換句話說,給定指示筆點(diǎn)產(chǎn)生速率為每秒125點(diǎn),這相當(dāng)于在EIQ緩存區(qū)160已緩存了8-12個(gè)指示器運(yùn)動,而它們卻被PM172拋棄。例3用戶接觸傳感器134并在傳感器上移動指示筆幾秒鐘之后才抬筆。在這一筆畫中間,應(yīng)用程序被占先達(dá)150毫秒。用戶所看到的是筆跡出現(xiàn)短暫的中斷,這里指示筆暫時(shí)超前筆跡2-3英寸,然后筆跡再次追趕上指示筆的筆尖。象這樣的短時(shí)間占先是無害的,不會對AUI或應(yīng)用處理產(chǎn)生有害的影響。發(fā)生占先的唯一指示是筆跡中斷。這一例與例1很相似,其不同在于,當(dāng)在210攔截到占先之后的第一個(gè)“鼠標(biāo)”運(yùn)動時(shí),在EIQ緩存區(qū)188中有18次接觸運(yùn)動(150毫秒/每次鼠標(biāo)運(yùn)動8毫秒=18)。這只是意味著EIQ例行程序的主循環(huán)302要重復(fù)18次并在328將所有這些點(diǎn)加到筆畫緩存區(qū),在336根據(jù)需要重新啟動延時(shí)計(jì)時(shí)器,在340畫出這些點(diǎn)的筆跡。在302的這個(gè)循環(huán)中處理所有這些點(diǎn)所用的時(shí)間是很短的,對用戶而言,明顯看到的只是迅速地畫出那些未解決的點(diǎn)的墨跡。例4用戶觸下并移動指示筆達(dá)幾秒鐘然后抬起。在這一筆畫中間,應(yīng)用程序被占先達(dá)300毫秒。用戶看到筆跡出現(xiàn)長得多的中斷,在筆跡重新追上觸筆筆尖之前觸筆超前墨跡達(dá)4-6英寸。象這樣的長時(shí)間占先會引起問題,因?yàn)殚L達(dá)300毫秒沒有任何點(diǎn)被處理,延時(shí)計(jì)時(shí)器不能被重新啟動,發(fā)生了超時(shí)。這個(gè)超時(shí)會使AUI進(jìn)入鼠標(biāo)仿真。對用戶介面的影響是出現(xiàn)一個(gè)在筆畫中途終止的手勢。參考圖6A和圖4,由計(jì)時(shí)器例行程序在406產(chǎn)生的“鼠標(biāo)”按鈕按下信息被AUI在208截獲。由于發(fā)生占先之前在進(jìn)行一個(gè)手勢,所以AUI是在手勢方式,于是在250的檢驗(yàn)是肯定的,因而在252該信息被送到按鈕按下處理程序。這個(gè)按鈕按下看起來是正常的,又由于沒有設(shè)置占先標(biāo)志,于是過程進(jìn)入502、504和506檢驗(yàn),并在508AUI從當(dāng)前時(shí)間減去最后一次EIQ時(shí)間。其結(jié)果是300毫秒,這引起AUI在520檢驗(yàn)PM輸入隊(duì)列。由于用戶從未停止運(yùn)動,事實(shí)上“鼠標(biāo)”運(yùn)動被加入到PM輸入隊(duì)列,表明已經(jīng)發(fā)生了占先。在522重新啟動延時(shí)計(jì)時(shí)器,在524放棄了按鈕按下信息,這使AUI保持其手勢輸入方式?;氐綀D5中的EIQ例行程序,應(yīng)用程序于是使一個(gè)“鼠標(biāo)”運(yùn)動從PM輸入隊(duì)列中脫離,而在此時(shí)由AUI在300提取暫存在EIQ緩存區(qū)160中的37個(gè)指示器運(yùn)動(300毫秒/每個(gè)鼠標(biāo)運(yùn)動8毫秒=37)。這些接觸運(yùn)動象前例那樣被迅速處理并使筆跡再次追上指示筆。例5這一情況與例4中的情況相同,只是占先發(fā)生在AUI處理鼠標(biāo)運(yùn)動的過程中間。同樣,在這一中斷期間延時(shí)計(jì)時(shí)器停止了。為了清楚,假定處理過程在圖5中302的EIQ循環(huán)頂部被占先。當(dāng)執(zhí)行恢復(fù)時(shí),AUI繼續(xù)處理從EIQ緩存區(qū)160脫離的鼠標(biāo)運(yùn)動。這一處理象正常情況那樣繼續(xù)下去,直到在336完成了延時(shí)計(jì)時(shí)器處理。如圖8所示,在602檢驗(yàn)該點(diǎn)是否移動并在604再啟動計(jì)時(shí)器。然而,延時(shí)計(jì)時(shí)器沒能再啟動,因?yàn)樗呀?jīng)停止了,而且在608它不再工作。一旦失敗,便在614將最后一次EIQ事件的時(shí)間與當(dāng)前時(shí)間比較,以檢驗(yàn)是否出現(xiàn)占先。其結(jié)果是300毫秒,它引起在618設(shè)置“忽略超時(shí)”標(biāo)志。其余的EIQ事件被處理。在再次調(diào)用延時(shí)計(jì)時(shí)器例行程序時(shí),在600設(shè)置“忽略超時(shí)”標(biāo)志,它引起該例行程序在620退出而不試圖使延時(shí)計(jì)時(shí)器復(fù)位。最后AUI處理最后一次EIQ事件并在240將信息送給應(yīng)用程序。在這時(shí),在PM隊(duì)列中有兩個(gè)“鼠標(biāo)”信息,一個(gè)“鼠標(biāo)”運(yùn)動(代表37個(gè)接觸運(yùn)動)以及一個(gè)被傳送來的“鼠標(biāo)”按鈕按下。盡管“鼠標(biāo)”運(yùn)動發(fā)生于鼠標(biāo)按鈕按下之前,但被傳送來的信息有較高優(yōu)先級,所以按鈕按下是被PM172解除隊(duì)列的第一個(gè)信息。該按鈕按下信息在208被攔截并在252被處理。在按鈕按下例行程序中,在502“忽略超時(shí)”和“手勢中止”兩個(gè)標(biāo)志均被檢驗(yàn),看它們是否都被設(shè)置。因?yàn)橹挥小昂雎猿瑫r(shí)”標(biāo)志被設(shè)置則使代碼向下走并在504對下一個(gè)檢驗(yàn)判其真?zhèn)巍_@里,標(biāo)志被設(shè)置表明AUI本身被中斷而且延時(shí)超時(shí)是虛假的。在505“忽視超時(shí)”標(biāo)志被復(fù)位,在522延時(shí)計(jì)時(shí)器被重新啟動。然后在524放棄按鈕按下信息從而使AUI保持其手勢方式。如上面描述的那樣,AUI容易受到占先的時(shí)間間隔似乎是相當(dāng)短暫的,然而在實(shí)踐中它頻繁發(fā)生。這是因?yàn)檎枷韧砸幌盗斜l(fā)的形式發(fā)生。在第一次爆發(fā)期間,有若干指示器運(yùn)動累積在EIQ緩存區(qū)160中。當(dāng)它們被解除排隊(duì)時(shí),AUI處理被局限于圖5中302處的EIQ主循環(huán),持續(xù)一個(gè)拉長的時(shí)間周期來處理每一個(gè)運(yùn)動。正是在這個(gè)拉長的EIQ處理過程中經(jīng)常發(fā)生第二或第三占先爆發(fā)。每次搶占都使EIQ緩存區(qū)160中增加指示器運(yùn)動,所以發(fā)生兩次事件重合只是個(gè)時(shí)間問題。例6在這一例,用戶用指示筆觸在接觸傳感器134上并暫停一會以進(jìn)入鼠標(biāo)仿真方式。然后用戶移動指示筆在顯示屏上拖(drag)動一個(gè)選定的圖形目標(biāo),最后抬筆使目標(biāo)定位。當(dāng)用戶暫停在圖形目標(biāo)時(shí)占先中斷應(yīng)用程序達(dá)500毫秒。這造成一個(gè)問題。當(dāng)AUI使全部60個(gè)緩存指示器運(yùn)動脫離隊(duì)列時(shí),它要用大約60毫秒去處理它們。在這60個(gè)指示器運(yùn)動中間,對其中的30個(gè)用戶保持不動,這應(yīng)該已經(jīng)引起延時(shí)計(jì)時(shí)器停止。然而,由于在60毫秒內(nèi)處理全部指示器運(yùn)動,延時(shí)計(jì)時(shí)器沒有機(jī)會象通常那樣停止。在通常情況下如果指示器運(yùn)動在500毫秒時(shí)間內(nèi)被處理,那么計(jì)時(shí)器應(yīng)該有機(jī)會停止。所以看不到穩(wěn)定時(shí)期,而且再次檢測到會重新啟動計(jì)時(shí)器的運(yùn)動。AUI保持在手勢方式而不象用戶預(yù)期的那樣進(jìn)入鼠標(biāo)仿真方式。下述事實(shí)使這一問題更加嚴(yán)重了在這500毫秒占先時(shí)間里,延時(shí)計(jì)時(shí)器停止了,所以在PM輸入隊(duì)列中還有一個(gè)被傳送來的“鼠標(biāo)”按鈕按下信息必須要處理。當(dāng)控制返回時(shí),離隊(duì)的第一個(gè)PM信息是這個(gè)被傳遞來的“鼠標(biāo)”按鈕按下。如例4中概述的那樣,占先被檢測到,計(jì)時(shí)器被再啟動,而按鈕按下信息被拋棄。在圖4中,在210PM“鼠標(biāo)”運(yùn)動信息被處理并被AUI攔截。在圖5中302處的EIQ主循環(huán)中,60個(gè)指示器運(yùn)動被從EIQ緩存區(qū)160取出,并在330對每一條目進(jìn)行一次調(diào)用來檢驗(yàn)手勢終止標(biāo)志。在450加載最后一次有效計(jì)時(shí)器再啟動(圖8中框610)的時(shí)間標(biāo)記,并在452從當(dāng)前EIQ條目的時(shí)間標(biāo)記中減去。在454將其結(jié)果與延時(shí)計(jì)時(shí)器值做比較,它是200毫秒。除非發(fā)生了占先,否則其結(jié)果決不應(yīng)大于延時(shí)計(jì)時(shí)器,于是數(shù)值EIQ條目被處理。由于在筆畫中間用戶曾停止200毫秒,計(jì)時(shí)器再啟動時(shí)間沒有增量。最后,在458將檢驗(yàn)再啟動時(shí)間的真?zhèn)?。如果不曾發(fā)生占先,那么在這一刻應(yīng)是AUI已進(jìn)入鼠標(biāo)仿真方式,當(dāng)在458處理大量指示器運(yùn)動時(shí)計(jì)時(shí)器也可能會停止。如果是這樣,則在460設(shè)置“忽略超時(shí)”標(biāo)志以放棄PM輸入隊(duì)列中的由計(jì)時(shí)器傳送的按鈕按下信息。然后在462設(shè)置“手勢終止”標(biāo)志,并在466利用當(dāng)前EIQ條目的X/Y坐標(biāo)建立起一個(gè)鼠標(biāo)按鈕按下信息。在468處這條信息被送到對應(yīng)的應(yīng)用程序,并在470返回到圖5所示EIQ例行程序。當(dāng)在332判定“手勢終止”檢驗(yàn)為真時(shí),其余EIQ條目不再被處理,并在334返回到圖4中的主線AUI代碼。在這一點(diǎn),PM輸入隊(duì)列中可能有兩個(gè)“鼠標(biāo)”按鈕按下信息。一個(gè)是在406由計(jì)時(shí)器發(fā)出的,一個(gè)是由手勢終止例行程序在468發(fā)出的。如果在隊(duì)列中有一個(gè)由計(jì)時(shí)器產(chǎn)生的按鈕按下信息,則它被首先處理,因?yàn)樗窍犬a(chǎn)生的。當(dāng)由圖7的手勢方式處理中的鼠標(biāo)按鈕按下處理進(jìn)程來處理時(shí),在502設(shè)置“忽略超時(shí)”及“手勢終止”兩個(gè)標(biāo)志,于是在524使“忽略超時(shí)”標(biāo)志復(fù)位并放棄按鈕按下信息。計(jì)時(shí)器不被再啟動。返回到圖4,現(xiàn)在在208截獲第二個(gè)按鈕按下信息,由于在252AUI仍在手勢方式,該第二按鈕被處理。再看圖7,只在506設(shè)置“手勢終止”標(biāo)志,在512分支進(jìn)入鼠標(biāo)仿真方式并在514抹去該筆畫的筆跡。在516該信息被送到應(yīng)用程序,并在用戶停止不動200毫秒的地方發(fā)生了一個(gè)鼠標(biāo)按鈕按下。支持鍵盤和/或鼠標(biāo)的操作系統(tǒng)的一個(gè)共同特點(diǎn)是“打字超前(type-ahead)”和“鼠標(biāo)超前(mouse-ahead)”。這些能力使得即使是在運(yùn)行的應(yīng)用程序可能處于被占先或忙狀態(tài)因而不能處理用戶輸入的情況下也允許用戶開始在鍵盤上打字和/或按動鼠標(biāo)。系統(tǒng)保持鍵盤和鼠標(biāo)事件的順序,從而當(dāng)應(yīng)用程序準(zhǔn)備好再次接收用戶輸入時(shí),這些事件能按原來的順序被接收并送到適當(dāng)?shù)娜萜?。這一能力允許在系統(tǒng)過載期間用戶繼續(xù)輸入,并有效地使系統(tǒng)的不可獲得性(unavailability)在一定程序上變成透明。這一能力還允許專家或“強(qiáng)有力的”用戶一個(gè)容器或文本區(qū)域的活動并在該窗口或區(qū)域能接收輸入之前便開始打字。鼠標(biāo)超前特性的主要缺陷在于鼠標(biāo)是一個(gè)嚴(yán)格的定位器裝置,系統(tǒng)只緩存鼠標(biāo)按鈕的上下動作及再次動作之間的一次單一鼠標(biāo)運(yùn)動。如果應(yīng)用程序忙則在鼠標(biāo)運(yùn)動期間接收的所有點(diǎn)均被合并,當(dāng)它重又開始接收用戶輸入時(shí)只有最后接收的那個(gè)點(diǎn)被送到該應(yīng)用程序。這就排除了在后臺(background)占先線索活動時(shí)筆畫一次手勢的能力。需要一種方法防止這類數(shù)據(jù)的丟失。對于觸屏裝置,這表明丟失了具有豐富的信息的筆畫數(shù)據(jù),它嚴(yán)重降低了手指或指示筆作為輸入裝置的性能。利用全部上述技術(shù),AUI實(shí)現(xiàn)了稱為“筆畫超前(stroke-ahead)”的第三種能力,這里在占先期間所有手指、指示筆和/或鼠標(biāo)的動作和運(yùn)動都被緩存起來,然后再回放給應(yīng)用程序,就好象不曾有任何延遲。當(dāng)前的存儲區(qū)足以在很長的占先時(shí)間里存儲8個(gè)手勢或10秒手書。此外,這個(gè)筆畫超前能力允許通用圖形用戶介面技術(shù)(例如點(diǎn)和拖動、窗口的重定大小及移動、選擇、以及重復(fù)按動(clicking)等)被執(zhí)行,而不管應(yīng)用程序是否已經(jīng)準(zhǔn)備好。圖9比較了EIQ緩存區(qū)中的EIQ數(shù)據(jù)塊與操作系統(tǒng)輸入緩存區(qū)中的相應(yīng)條目。PM“鼠標(biāo)”信息中只含有有限的信息。它包含信息標(biāo)識碼和目標(biāo)窗口標(biāo)識碼,以及“鼠標(biāo)”信息在目標(biāo)窗內(nèi)被指定的X/Y坐標(biāo)。再有,它還包括鼠標(biāo)指示器將要映射的顯示屏上的X/Y坐標(biāo)以及指示何時(shí)“鼠標(biāo)”事件被送到操作系統(tǒng)的PM時(shí)間標(biāo)記。操作系統(tǒng)(PM)時(shí)間標(biāo)記用于將EIQ數(shù)據(jù)塊與其相應(yīng)的PM“鼠標(biāo)”信息關(guān)聯(lián)起來。由于“鼠標(biāo)”信息中已包含窗口信息,故在EIQ數(shù)據(jù)塊中不需包括,盡管如果希望的話它也能被包括。在EIQ數(shù)據(jù)塊中的數(shù)據(jù)希望是說明性的,而不是完全無遺的或排它的。在所包括的數(shù)據(jù)中有設(shè)備標(biāo)識碼、能由知道的(aware)應(yīng)用程序處理的設(shè)備專用信息、指出EIQ緩存區(qū)狀態(tài)的標(biāo)志、顯示器坐標(biāo)、高分辨率接觸傳感坐標(biāo)、指示筆旋轉(zhuǎn)及角度、以及高分辨率設(shè)備時(shí)間標(biāo)記。取決于不同的輸入裝置,某些條目可能得不到,因而在EIQ數(shù)據(jù)塊中會留下空白。按鈕和其他輸入裝置事件當(dāng)把圖1描繪的工作板、按鈕、邊框和指示筆等引入到圖形輸入板(tablet)時(shí),便顯著增強(qiáng)了人的因素和圖形輸入板的可用性。這些事件由適當(dāng)?shù)脑O(shè)備驅(qū)動程序?qū)懭隕IQ緩存區(qū)160,然而,由于這些事件不是指示器事件,而且不能由指點(diǎn)裝置驅(qū)動程序翻譯成偽“鼠標(biāo)”事件,所以它們不能被編入PM輸入隊(duì)列,結(jié)果,應(yīng)用程序不能被告知這些事件的發(fā)生。AUI子系統(tǒng)180在圖10中的700建立一個(gè)單獨(dú)的任務(wù)或執(zhí)行調(diào)度單,它的唯一功能是監(jiān)視EIQ緩存區(qū)160中的按鈕事件,從而回避了操作系統(tǒng)的這一限制。當(dāng)發(fā)生按鈕事件時(shí),該調(diào)度單位被分派去處理該事件,在此時(shí)一個(gè)含有該事件信息的PM信息被送到應(yīng)用程序。單獨(dú)調(diào)度單位被同樣地寫入來提供來自聲音傳感器136的聲音事件的通知及來自圖象傳感器138的圖象事件的通知。參考圖10,在系統(tǒng)初始化時(shí),該調(diào)度單位被建立并進(jìn)入700的永久循環(huán)以監(jiān)視EIQ按鈕事件。該循環(huán)在702開始,調(diào)用EIQ子系統(tǒng)180使一個(gè)按鈕事件離隊(duì)。在這一功能調(diào)用中隱含一個(gè)請求,即在EIQ緩存區(qū)160中無按鈕事件時(shí)請求停止該調(diào)度單位的執(zhí)行。只有當(dāng)一個(gè)按鈕事件被列入EIQ緩存區(qū)160隊(duì)列,這種“等待狀態(tài)”才得以滿足。于是,當(dāng)一個(gè)按鈕事件被設(shè)備驅(qū)動程序列入EIQ緩存區(qū)160時(shí),該調(diào)度單位立即被重新分派并恢復(fù)執(zhí)行。一旦確定在EIQ緩存區(qū)160中存在一個(gè)按鈕事件,該按鈕必須以適當(dāng)順序來處理。該按鈕事件可能是EIQ緩存區(qū)160中的唯一事件,但是,如果用戶在一個(gè)筆畫的中間按動按鈕,那么該按鈕事件也可能在一長列指示器運(yùn)動中間。如果在筆畫中間按動按鈕,它必須按時(shí)間順序處理,保持指示器運(yùn)動和按鈕事件的嚴(yán)格順序。當(dāng)在圖4的210PM“鼠標(biāo)”運(yùn)動被攔截并由AUI主線例行程序處理時(shí),該按鈕事件將最終在圖5的EIQ例行程序304處被辨識并在360和362處被處理。然而,如果該按鈕事件是一個(gè)獨(dú)一無二的EIQ條目,便不會有PM輸入隊(duì)列信息去觸發(fā)AUI,于是該事件將永遠(yuǎn)不會被從隊(duì)列中解脫。所以,一旦重新分派了按鈕監(jiān)視調(diào)度單位該調(diào)度單位立即在704處向EIQ子系統(tǒng)180發(fā)出請求提取發(fā)生的下一個(gè)指示器事件。在這一功能調(diào)用中有一個(gè)顯示請求,要求中止執(zhí)行直至發(fā)生一個(gè)指示器事件或者過了64毫秒。如果在706并未發(fā)生時(shí)間超時(shí),那么該按鈕事件與一個(gè)指示器事件重合,它將最終離隊(duì)并在302被EIQ主循環(huán)處理。不再進(jìn)行進(jìn)一步處理,該循環(huán)重新開始。然而,如果在706未發(fā)生超時(shí),在708詢問當(dāng)前指示器的位置,并在710使用同一坐標(biāo)進(jìn)行修改。每當(dāng)指點(diǎn)裝置的位置被軟件更新時(shí),PM將一個(gè)“啞”鼠標(biāo)運(yùn)動信息編入PM輸入隊(duì)列。當(dāng)應(yīng)用程序使這一“啞”運(yùn)動離隊(duì)時(shí),AUI在210攔截它,于是在302的EIQ例行程序中該按鈕事件得到處理。因?yàn)橹更c(diǎn)裝置的位置未改變,由PM產(chǎn)生的這個(gè)額外的“鼠標(biāo)”運(yùn)動信息對應(yīng)用程序處理沒有影響。盡管已經(jīng)參考具體實(shí)施例描述了本發(fā)明,精通本門技術(shù)的人們將會理解,可以在形式和細(xì)節(jié)方面加以改變而不偏離本發(fā)明的精神和范圍。所提供的實(shí)施例只用于舉例和說明的目的,不是用來將本發(fā)明的范圍限制得窄于所附權(quán)利要求的范圍。權(quán)利要求1.在一個(gè)具有中央處理器的數(shù)據(jù)處理系統(tǒng)中,對來自輸入裝置的寬帶數(shù)據(jù)進(jìn)行緩存的方法,其特征在于下述步驟在一個(gè)第一緩存區(qū)中緩存來自該輸入裝置的輸入數(shù)據(jù),該第一緩存區(qū)的特性是在高中央處理器使用期間至少放棄一些輸入數(shù)據(jù);在一個(gè)第二緩存區(qū)中緩存輸入數(shù)據(jù),該第二緩存區(qū)存儲全部輸入數(shù)據(jù),與中央處理器使用無關(guān);判定是否從第一緩存區(qū)放棄過輸入數(shù)據(jù);以及作為對判定已從第一緩存區(qū)放棄過輸入數(shù)據(jù)的反應(yīng),從第二緩存區(qū)中提取輸入數(shù)據(jù)。2.如在權(quán)利要求1中敘述的方法,其特征在于輸入數(shù)據(jù)是代表穿過接觸傳感器表面的一個(gè)指點(diǎn)裝置移動路徑的坐標(biāo)點(diǎn)。3.如權(quán)利要求2中敘述的方法,其特征在于所述判定步驟是通過比較第一和第二緩存區(qū)中坐標(biāo)點(diǎn)的數(shù)目來實(shí)現(xiàn)的。4.如權(quán)利要求1中所敘述的方法,其特征在于該判定步驟是通過伴隨該數(shù)據(jù)處理系統(tǒng)所處理的最后一個(gè)輸入數(shù)據(jù)的最后一個(gè)時(shí)間標(biāo)記與當(dāng)前時(shí)刻的比較來實(shí)現(xiàn)的。5.如權(quán)利要求2中敘述的方法,其特征在于下述步驟判定指點(diǎn)裝置是否已經(jīng)在一個(gè)給定的坐標(biāo)點(diǎn)上停止穿過接觸傳感器的運(yùn)動長達(dá)一個(gè)預(yù)先確定的時(shí)間間隔;對于指點(diǎn)裝置已經(jīng)停止運(yùn)動達(dá)預(yù)定時(shí)間的判定作出反應(yīng)進(jìn)入鼠標(biāo)仿真方式。6.如權(quán)利要求2敘述的方法,其特征在于下述步驟判定指點(diǎn)裝置是否已經(jīng)在一個(gè)給定的坐標(biāo)點(diǎn)上停止穿過接觸傳感器的運(yùn)動長達(dá)一個(gè)預(yù)先確定的時(shí)間間隔;對于在指點(diǎn)裝置從觸屏抬起之前未發(fā)現(xiàn)運(yùn)動停止的判定作出反應(yīng)將該坐標(biāo)點(diǎn)歸因于一個(gè)手勢;將坐標(biāo)點(diǎn)映射成代表數(shù)據(jù)處理系統(tǒng)認(rèn)識的一個(gè)手勢的點(diǎn);以及響應(yīng)坐標(biāo)點(diǎn)與一已知手勢的匹配,向一個(gè)適當(dāng)?shù)挠?jì)算機(jī)模塊發(fā)出信息,指明做成了哪一條信息。7.在一個(gè)具有中央處理器的數(shù)據(jù)處理系統(tǒng)中,一種對來自觸屏的寬帶數(shù)據(jù)進(jìn)行緩存的方法,其特征在于下述步驟將代表一個(gè)指點(diǎn)裝置穿過觸屏路徑的坐標(biāo)點(diǎn)和相關(guān)數(shù)據(jù)以第一種格式緩存于第一緩存區(qū),該第一緩存區(qū)的特性是在高中央處理器使用期間放棄至少某些坐標(biāo)點(diǎn);將坐標(biāo)點(diǎn)和相關(guān)數(shù)據(jù)以第二種格式緩存于第二緩存區(qū),這第二種格式包括在第一種格式中未包括的數(shù)據(jù)類型,第二緩存區(qū)存儲所有坐標(biāo)點(diǎn)而與中央處理器使用無關(guān);使第一種格式的一個(gè)第一坐標(biāo)點(diǎn)從第一緩存區(qū)離隊(duì);以及使第二種格式的該第一坐標(biāo)點(diǎn)從第二緩存區(qū)離隊(duì)。8.如權(quán)利要求7敘述的方法,其特征在于判定坐標(biāo)點(diǎn)是否已被第一緩存區(qū)拋棄的步驟。9.如權(quán)利要求8敘述的方法,其特征在于這個(gè)判定步驟是通過伴隨該數(shù)據(jù)處理系統(tǒng)所處理的最后一個(gè)輸入數(shù)據(jù)事件的最后一個(gè)時(shí)間標(biāo)記與當(dāng)前時(shí)間的比較來實(shí)現(xiàn)的。10.如權(quán)利要求8敘述的方法,其特征在于下述步驟判定指點(diǎn)裝置是否已經(jīng)在一個(gè)給定的坐標(biāo)點(diǎn)上停止穿過觸屏的運(yùn)動長達(dá)一個(gè)預(yù)先確定的時(shí)間間隔;對于指點(diǎn)裝置已經(jīng)停止運(yùn)動達(dá)預(yù)定時(shí)間的判定作出反應(yīng)進(jìn)入鼠標(biāo)仿真方式。11.如權(quán)利要求7敘述的方法,其特征在于下列步驟判定指點(diǎn)裝置是否已經(jīng)在一個(gè)給定的坐標(biāo)點(diǎn)上停止穿過觸屏的運(yùn)動長達(dá)一個(gè)預(yù)先確定的時(shí)間間隔;對于在指點(diǎn)裝置從觸屏抬起之前未發(fā)現(xiàn)運(yùn)動停止的判定作出反應(yīng)將該坐標(biāo)點(diǎn)歸因于一個(gè)手勢;將坐標(biāo)點(diǎn)映射成代表數(shù)據(jù)處理系統(tǒng)認(rèn)識的一個(gè)手勢的點(diǎn);以及響應(yīng)坐標(biāo)點(diǎn)與一已知手勢的匹配,向一個(gè)適當(dāng)?shù)挠?jì)算機(jī)模塊發(fā)出信息,指明做成了哪一條信息。12.對來自一個(gè)輸入裝置的寬帶數(shù)據(jù)進(jìn)行緩存的一個(gè)數(shù)據(jù)處理系統(tǒng),該系統(tǒng)具有一個(gè)中央處理器和一個(gè)存儲器,其特征在于在存儲器中的第一緩存區(qū)用于緩存來自輸入裝置的數(shù)據(jù),該第一緩存區(qū)的特點(diǎn)是在高中央處理器使用期間會放棄至少某些輸入數(shù)據(jù);以及在存儲器中的第二緩存區(qū)用于緩存來自輸入裝置的數(shù)據(jù),該第二緩存區(qū)存儲全部輸入數(shù)據(jù)而與中央處理器使用無關(guān);以及判定輸入數(shù)據(jù)是否已從第一緩存區(qū)拋棄掉的裝置;借此,如果坐標(biāo)點(diǎn)已從第一緩存區(qū)拋棄掉,則從第二緩存區(qū)提取坐標(biāo)點(diǎn)。13.如權(quán)利要求12敘述的系統(tǒng),其特征在于輸入數(shù)據(jù)是代表一個(gè)指點(diǎn)裝置穿過接觸傳感器表面的路徑的坐標(biāo)點(diǎn)。14.如權(quán)利要求12敘述的系統(tǒng),其特征在于其判定裝置將第一和第二緩存區(qū)中坐標(biāo)點(diǎn)數(shù)進(jìn)行比較。15.如權(quán)利要求12敘述的系統(tǒng),其特征在于其判定裝置將數(shù)據(jù)處理系統(tǒng)處理的最后一個(gè)輸入數(shù)據(jù)事件所伴隨的最后一個(gè)時(shí)間標(biāo)記與當(dāng)前時(shí)間進(jìn)行比較。16.如權(quán)利要求13中敘述的系統(tǒng),其特征在于判定指點(diǎn)裝置是否已經(jīng)在一個(gè)給定的坐標(biāo)點(diǎn)上停止其穿過接觸傳感器的運(yùn)動長達(dá)一個(gè)預(yù)先確定時(shí)間間隔的裝置;對于指點(diǎn)裝置已經(jīng)停止運(yùn)動達(dá)預(yù)定時(shí)間的判定作出反應(yīng)進(jìn)入鼠標(biāo)仿真方式。17.如權(quán)利要求13中敘述的系統(tǒng),其特征在于判定指點(diǎn)裝置是否已經(jīng)在一個(gè)給定的坐標(biāo)點(diǎn)上停止其穿過接觸傳感器的運(yùn)動長達(dá)一個(gè)預(yù)先確定的時(shí)間間隔的裝置;對于指點(diǎn)裝置從觸屏抬起之前未發(fā)現(xiàn)運(yùn)動停止的判定作出反應(yīng)將該坐標(biāo)點(diǎn)歸因于一個(gè)手勢;將坐標(biāo)點(diǎn)映射成代表數(shù)據(jù)處理系統(tǒng)認(rèn)識的一個(gè)手勢的點(diǎn)的裝置;響應(yīng)坐標(biāo)點(diǎn)與一已知手勢的匹配,向一個(gè)適當(dāng)?shù)挠?jì)算機(jī)模塊發(fā)出信息指明做成了哪一條信息的裝置。18.一個(gè)對來自接觸傳感器的高寬帶數(shù)據(jù)進(jìn)行緩存的數(shù)據(jù)處理系統(tǒng),具有中央處理器和存儲器,其特征在于存儲器中的第一緩存區(qū),用于以第一種格式緩存代表一個(gè)指點(diǎn)裝置穿過觸屏路徑的坐標(biāo)點(diǎn)及相關(guān)數(shù)據(jù),該第一緩存區(qū)的特性是在高中央處理器使用期間放棄至少某些坐標(biāo)點(diǎn);存儲器中的第二緩存區(qū),用于以第二種格式緩存坐標(biāo)點(diǎn)及相關(guān)數(shù)據(jù),第二種格式包括第一種格式中未包括的數(shù)據(jù)類型,第二緩存區(qū)存儲全部坐標(biāo)點(diǎn)而與中央處理器使用無關(guān);使第一種格式的一個(gè)第一坐標(biāo)點(diǎn)從第一緩存區(qū)離隊(duì)的裝置;以及使第二種格式的該第一坐標(biāo)點(diǎn)從第二緩存區(qū)離隊(duì)的裝置。19.如權(quán)利要求18中敘述的系統(tǒng),其特征在于判定坐標(biāo)點(diǎn)是否已被第一緩存區(qū)拋棄的裝置,它比較第一和第二緩存區(qū)中坐標(biāo)點(diǎn)的數(shù)目。20.如權(quán)利要求18中敘述的系統(tǒng),其特征在于判定坐標(biāo)點(diǎn)是否已被第一緩存區(qū)拋棄的裝置,它將數(shù)據(jù)處理系統(tǒng)處理的最后一個(gè)輸入數(shù)據(jù)事件所伴隨的最后一個(gè)時(shí)間標(biāo)記與當(dāng)前時(shí)間進(jìn)行比較。21.如權(quán)利要求18中敘述的系統(tǒng),其特征在于判定點(diǎn)指示裝置是否已經(jīng)在一個(gè)給定的坐標(biāo)點(diǎn)上停止其穿過接觸傳感器的運(yùn)動長達(dá)一個(gè)預(yù)先確定的時(shí)間間隔的裝置;對于指點(diǎn)裝置已經(jīng)停止其運(yùn)動達(dá)到預(yù)定時(shí)間的判定作出反應(yīng)進(jìn)入鼠標(biāo)仿真方式。22.如權(quán)利要求18中敘述的系統(tǒng),其特征在于判定指點(diǎn)裝置是否已經(jīng)在一個(gè)給定的坐標(biāo)點(diǎn)上停止其穿過接觸傳感器的運(yùn)動長達(dá)一個(gè)預(yù)定的時(shí)間間隔的裝置;對于在指點(diǎn)裝置從觸屏抬起之前未發(fā)現(xiàn)運(yùn)動停止的判定作出反應(yīng)將該坐標(biāo)點(diǎn)歸因于一個(gè)手勢;將坐標(biāo)點(diǎn)映射成代表數(shù)據(jù)處理系統(tǒng)認(rèn)識的一個(gè)手勢的點(diǎn)的裝置;以及響應(yīng)坐標(biāo)點(diǎn)與一已知手勢的匹配,向一個(gè)適當(dāng)?shù)挠?jì)算機(jī)模塊發(fā)出信息以指明做成了哪一條信息的裝置。23.對來自接觸傳感器的高帶寬數(shù)據(jù)進(jìn)行緩存的數(shù)據(jù)處理系統(tǒng),該系統(tǒng)具有一個(gè)中央處理器和一個(gè)存儲器,其特征在于存儲器中的一個(gè)擴(kuò)展緩存區(qū),用于以一種擴(kuò)展格式緩存代表指點(diǎn)裝置穿過接觸傳感器路徑的坐標(biāo)點(diǎn)及相關(guān)數(shù)據(jù),該緩存區(qū)的特性是存儲全部坐標(biāo)點(diǎn)而與中央處理器使用無關(guān)。24.如權(quán)利要求23中敘述的系統(tǒng),其特征在于一個(gè)以有限格式緩存坐標(biāo)點(diǎn)的有限緩存區(qū),其特征是在高中央處理器使用期間放棄至少某些坐標(biāo)點(diǎn);將來自接觸傳感器的數(shù)據(jù)翻譯成擴(kuò)展格式和有限格式的裝置;將輸入數(shù)據(jù)列入擴(kuò)展緩存區(qū)和有限緩存區(qū)的裝置;使擴(kuò)展和有限緩存區(qū)中的輸入數(shù)據(jù)脫離隊(duì)列的裝置,使其離隊(duì)的裝置對在有限緩存區(qū)中發(fā)現(xiàn)以有限格式緩存的輸入數(shù)據(jù)作出反應(yīng),在擴(kuò)展緩存區(qū)中尋找擴(kuò)展格式的輸入數(shù)據(jù);以及響應(yīng)擴(kuò)展緩存區(qū)中一般不被翻譯裝置譯成有限格式的一類特殊輸入數(shù)據(jù),產(chǎn)生一個(gè)偽輸入送入有限緩存區(qū)的裝置,用以使離隊(duì)裝置在擴(kuò)展緩存區(qū)中尋找這種特殊的輸入數(shù)據(jù)。全文摘要本發(fā)明提供了一個(gè)有較高帶寬的并行通道,具有優(yōu)越得多的緩存能力以補(bǔ)充操作系統(tǒng)能力。當(dāng)來自高帶寬輸入裝置的輸入事件被系統(tǒng)接收時(shí),信息以對每個(gè)通道兼容的格式送到操作系統(tǒng)通道和高帶寬通道。送到操作系統(tǒng)通道的信息一般只包含有限數(shù)據(jù),它們可以是已從實(shí)際輸入數(shù)據(jù)翻譯過來的數(shù)據(jù),以使操作系統(tǒng)能接受它們。送到寬帶通道的信息包含輸入裝置產(chǎn)生數(shù)據(jù)的全部。在操作系統(tǒng)通道中的緩存區(qū)還有一種性質(zhì),即在高CPU使用期間如果應(yīng)用程序不能足夠快地提取數(shù)據(jù),這些數(shù)據(jù)便被拋棄。文檔編號G06F3/041GK1074768SQ9211214公開日1993年7月28日申請日期1992年10月9日優(yōu)先權(quán)日1991年10月21日發(fā)明者阿蘭·R·塔納伯姆,約翰·M·塞茲,邁克爾·N·格雷,特里薩·格萊納多斯,威廉姆·A·米爾斯申請人:國際商業(yè)機(jī)器公司