-
Gebiet der Erfindung
-
Die Erfindung betrifft Benutzerschnittstellen und insbesondere Benutzerschnittstellen für Vorrichtungen, die Mehrfachberührungsanzeigen aufweisen.
-
Hintergrund der Erfindung
-
Eine Maus ist ein sehr bekanntes und relativ einfaches Schnittstellengerät, das in vielen Computergeräten verwendet wird. Die durch eine Maus gelieferte Eingabe kann sehr einfach sein - eine Ortsangabe und der Status verschiedener, an der Maus verfügbarer Tasten oder Scrollräder. Viele heutige Berührungsbildschirmvorrichtungen stellen eine Funktionalität bereit, die ähnlich der einer Maus ist, indem sie es einem Benutzer ermöglichen einen einzigen bestimmten Ort durch das Drücken eines Stifts oder Fingers gegen sie zu spezifizieren. Heutige Betriebssysteme (OSs) können für darauf laufende Softwareapplikationen verschiedene Werkzeuge bereitstellen, um die Interaktion mit dem Benutzer über eine graphische Benutzerschnittstelle und eine Maus oder eine mausähnliche Eingabe zu vereinfachen. Beispielsweise kann es ein Dienstprogramm des Betriebssystems einer Softwareapplikation ermöglichen, ein Widget (zum Beispiel eine Taste oder eine Bildlaufleiste) zu definieren und zu registrieren. Das Dienstprogramm des Betriebssystems kann verfolgen, wenn ein Benutzer mit der Maus auf das Widget klickt und kann die Softwareapplikation darauf aufmerksam machen. Damit wird die Entwicklung von Softwareapplikationen erleichtert und vereinfacht, da keine Applikation mehr die Mausbewegungen verfolgen muss. Neuere Entwicklungen in der Technologie der Benutzerschnittstellen haben das Mehrfachberührungsfeld eingeführt. Ein beispielhaftes Mehrfachberührungsfeld ist in der US Patentanmeldung Nr.
11/649,998 , eingereicht am 03. Januar 2007 mit dem Titel „Proximity and Multi -Touch Sensor Detection and Demodulation“ (welches hiermit in seiner Gesamtheit durch Verweis aufgenommen wird) beschrieben.
-
-
Das dort offenbarte Verfahren beinhaltet das Erfassen einer Berührung mit anschließendem Bestimmen eines Benutzerschnittstellenmodus, wenn eine Berührung erfasst wird. Das dort offenbarte Verfahren beinhaltet weiterhin das Aktivieren eines oder mehrerer GUI Elemente basierend auf dem Benutzerschnittstellenmodus und in Antwort auf die erfasste Berührung.
-
Die Druckschrift
US 2003 / 0 193 481 A1 beschreibt ein grafisches Benutzerschnittstellensystem, das ein berührungsempfindliches Eingabe-Overlay umfasst. Das berührungsempfindliche Eingabe-Overlay ist so konfiguriert, dass es einen flexiblen ergänzenden oder ersetzenden Eingabemodus zum Eingeben und Navigieren von Text und Informationen auf einer herkömmlichen grafischen Benutzeroberfläche ohne die Hilfe einer Maus oder Tastatur ermöglicht.
-
Die Druckschrift
US 2006 / 0 097 991 A1 beschreibt ein Berührungsbedienfeld mit einem transparenten kapazitiven Erfassungsmedium, das so konfiguriert ist, dass es mehrere Berührungen oder Beinahe-Berührungen erkennt, die gleichzeitig und an unterschiedlichen Stellen in der Ebene des Berührungsbedienfelds auftreten, und um unterschiedliche Signale zu erzeugen, die die Stelle der Berührungen auf der Ebene des Berührungsfelde für jede der mehreren Berührungen darstellen.
-
Einer der Vorteile eines Mehrfachberührungsfeldes kann es sein, dass es mehrere Berührungsereignisse an mehreren Orten des Feldes zur gleichen Zeit detektiert. Ein Mehrfachberührungsfeld kann daher nicht nur einen einzigen Interaktionsort liefern (wie viele der heutigen Berührungsfelder), sondern eine Karte von allen gerade berührten Teilen des Feldes. Diese kann eine viel reichhaltigere Benutzerinteraktion als frühere Eingabevorrichtungen ermöglichen. Allerdings kann es ein Mehrfachberührungsfeld auch erfordern, dass viel mehr Daten durch verschiedene seine Vorteile benutzende Applikationen verarbeitet werden müssen. Insbesondere kann es für Applikationen, die ein Mehrfachberührungsfeld verwenden, erforderlich sein, eine gesamte die gegenwärtig berührten Orte spezifizierende Karte anstatt eines einzigen Mausklickortes zu verarbeiten. Im Ergebnis kann dies viel höhere Verarbeitungsanforderungen für laufende Applikationen auf einer mehrfachberührungsfähigen Vorrichtungen bedeuten.
-
Zusammenfassung der Erfindung
-
Die Aufgabe der Erfindung wird durch das Verfahren des unabhängigen Anspruchs 1 und die Gegenstände der weiteren unabhängigen Ansprüche gelöst. In den abhängigen Ansprüchen sind weitere vorteilhafte Verfahren angegeben.
-
Die Erfindung betrifft eine mehrfachberührungsfähige Vorrichtung, die eine Hardware- oder Softwaredienstschicht aufweisen kann, die ein applikationsbewusstes Verarbeiten von Berührungsdaten durchführen kann. Genauer gesagt, verschiedene auf der Vorrichtung ausgeführte Applikationen können an die Dienstschicht Definitionen der Typen von Berührungsdaten senden, die sie von der berührungsempfindlichen Anzeige benötigen. Die Dienstschicht kann dann die hereinkommenden Berührungsdaten im Bezug auf diese Definitionen verarbeiten und an die Applikationen Ergebnisdaten in einem von den Applikationen angeforderten Format zurücksenden. Auf diese Weise kann die mit der Verarbeitung von Berührungsdaten verbundene Rechenbelastung gesenkt werden. Außerdem können in bestimmten Fällen die Applikationen genauere Daten erhalten als in früheren Systemen verfügbar. Applikationen, die auf einer mehrfachberührungsfähigen Vorrichtung ausgeführt werden, können den Typ der Berührungsdaten, die sie anfordern in Form von Steuerinstanzen definieren. Steuerinstanzen können verschiedene Wege definieren, mit denen ein Benutzer mit auf der mehrfachberührungsfähigen Vorrichtungen laufenden Applikationen kommunizieren oder diese steuern kann. Steuerinstanzen können zum Beispiel Tasten, Schieber, Knöpfe, Navigationsfelder, usw. sein. Jede Steuerinstanz kann zusammen mit einem assoziierten Steuertyp den Typ der Ergebnisse definieren, die für diese Steuerinstanz benötigt werden und wie diese Ergebnisse zu berechnen sind. Auf diese Weise können die Applikationen eine oder mehrere Steuerinstanzen an die Dienstschicht weitergeben, und die Dienstschicht kann die hereinkommenden Berührungsdaten unter Berücksichtigung der Steuerinstanzen verarbeiten und den Applikation Ergebnisse liefern, die im Einklang mit den Steuerinstanzen berechnet wurden. Daher können Applikationen beispielsweise eine einfache Angabe erhalten, ob eine Taste berührt wurde oder ob und wieweit ein Schieber bewegt wurde. ohne geometrische Berührungsdaten prozessieren zu müssen um diese Informationen zu erhalten.
-
Kurze Beschreibung der Zeichnungen
-
- 1 ist ein Diagramm einer beispielhaften mehrfachberührungsfähigen Vorrichtung gemäß einer Ausführungsform dieser Erfindung.
- 2 ist ein Flussdiagramm, das ein beispielhaftes Verfahren zum Betrieb der Applikations- und MTL-Parserschichten gemäß einer Ausführungsform dieser Erfindung zeigt.
- 3 ist ein Diagramm, das gemäß einer Ausgestaltung dieser Erfindung verschiedene beispielhafte Steuerinstanzen verschiedener Steuertypen wie auf einem Bildschirm angezeigt zeigt,.
- 4 ist ein Diagramm, das die Transparenz und/oder Intransparenz beispielhafter Steuerelemente gemäß einer Ausführungsform dieser Erfindung zeigt.
- 5 illustriert gemäß einer Ausführungsform dieser Erfindung die Verarbeitung von Berührungsdaten für ein beispielhaftes Steuerelement eines beispielhaften Mehrfach-DOF-Steuertyps.
- 6 illustriert gemäß einer Ausfuhrungsform dieser Erfindung die Verarbeitung der Berührungsdaten aus 5 zu einem späteren Zeitpunkt für ein beispielhaftes schrittweises Steuerelement;
- 7 ist ein Diagramm, dass gemäß einer Ausführungsform dieser Erfindung eine beispielhafte schrittweise Änderung zeigt, bei der sich der Berührungsbereich bewegen und ein neuer Kontaktfleck auftreten kann.
- 8 ist ein Diagramm einer beispielhaften mehrfachberührungsfähigen Vorrichtung gemäß einer Ausführungsform dieser Erfindung.
-
Detaillierte Beschreibung der bevorzugten Ausführungsformen
-
In der folgenden Beschreibung der bevorzugten Ausführungsformen wird auf die beiliegenden Zeichnungen verwiesen, die einen Teil dieses Dokuments bilden, und in denen im Wege der Illustration spezielle Ausgestaltungen in denen die Erfindung ausgeführt werden kann, gezeigt sind. Es versteht sich, dass andere Ausfuhrungsformen verwendet und strukturelle Änderungen durchgeführt werden können, ohne von dem Inhalt der bevorzugten Ausführungsformen der vorliegenden Erfindung abzuweichen.
-
Die Erfindung betrifft die Verarbeitung von Berührungsdaten in einer niedrigeren Schicht einer mehrfachberührungsfähigen Vorrichtung (zum Beispiel im Betriebssystem OS), um relativ einfache Berührungsereignisse zu bilden, so dass die Anforderungen an die Applikationsschicht bezüglich Verarbeitung und Kommunikationsbandbreite gesenkt werden können.
-
1 ist ein Diagramm einer beispielhaften mehrfachberührungsfahigen Vorrichtung gemäß Ausführungsformen dieser Erfindung. Genauer, 1 ist ein Schichtdiagramm der Module zur Berührungsdatenverarbeitung einer mehrfachberührungsfähigen Vorrichtung. Die niedrigste Schicht kann ein physikalischer Mehrfachberührungssensor 100 sein. Der physikalische Sensor kann beispielsweise ein Mehrfachberührungsfeld sein, dass Berührungsereignisse basierend auf Messungen einer Gegenkapazität sein (zum Beispiel das Mehrfachberührungsfeld aus der U.S. Patentanmeldung Nr. 11/649,998 wie oben beschrieben). Das Mehrfachberührungsfeld kann einer Anzeige überlagert sein oder sogar innerhalb einer Anzeige integriert sein, so dass ein Benutzer mit der Vorrichtung durch Berührung einer Anzeige interagieren kann. Die U.S. Patentanmeldung 11/649.998, eingereicht am 03. Januar 2007 mit dem Titel „Proximity and Multi-Touch Sensor and Demodulation“ (welche durch Verweis in ihrer Gesamtheit hier aufgenommen ist) lehrt die Kombination eines Mehrfachberührungsfeldes mit einer Anzeige. Der physikalische Sensor kann ebenfalls Schaltungen zur Verarbeitung und/oder Digitalisierung von von dem Mehrfachberührungsfeld erhaltenen Daten aufweisen. In einigen Ausführungsformen kann der physikalische Sensor konfiguriert sein, um zu messen, ob bestimmte vordefinierte Berührungspixel berührt sind oder nicht. In anderen kann der physikalische Sensor auch den Druck oder die Intensität mit dem verschiedenen Pixels berührt werden, messen.
-
Ein Fehlerbeseitigungs- und Aktivitätsdetektiermodul 101 kann Daten von dem physikalischen Sensor empfangen und verschiedene Fehlerbeseitigungsoperationen darauf anwenden. Die Fehlerbeseitigung kann ein Entfernen von Daten, die im Normalfall nicht durch ein beabsichtigtes Berührungsereignis erzeugt worden wären, beinhalten. Außerdem kann das Modul 101 auch eine Aktivitätsdetektierung ausführen. Auf diese Weise kann es detektieren, ob irgendeine Berührungsaktivität auftritt, und falls dies nicht der Fall ist die hereinkommenden Berührungsdaten entfernen (d.h. nicht an die nächste Schicht weiterleiten). Daher kann durch die Vermeidung von unnötiger Verarbeitung von Berührungsdaten Strom gespart werden. Die Schichten 100 und 101 können Teil einer Hardwareschicht sein.
-
Die Schichten 102 und 106 können Teile einer Hardwareabstraktionsschicht sein. Die Hardwareabstraktionsschicht kann vorhanden sein, um höheren Schichten nützlichere Mehrfachberührungsdaten bereitzustellen. Die Schichten 102 und 106 können in Hardware oder Software ausgeführt sein. Eine Mehrfachberührungssprachverarbeitungsschicht 102 kann verwendet werden, um Rohdaten, die gemessene Spannungen kennzeichnen (die ihrerseits Gegenkapazitäten an verschiedenen Berührungspixel kennzeichnen) in verarbeitete Berührungsdaten zu verarbeiten. Die verarbeiteten Berührungsdaten können auf Koordinaten der Berührungspixel beruhen und einen binären Wert aufweisen, der angibt ob ein Pixel berührt ist oder nicht. In anderen Ausführungsformen können die verarbeiteten Berührungsdaten andere oder zusätzliche Daten enthalten, wie zum Beispiel einen Wert für jedes Pixel, der die Stärke mit der ein Pixel berührt wird angibt. Man kann sich die verarbeiteten Berührungsdaten als ein Bild vorstellen, wobei jedes Bildpixel angibt, ob ein korrespondierendes Pixel berührt ist (oder wie stark es berührt ist).
-
Eine Anzeigegraphik-/Eingabeoberflächenkoordinatenübersetzungsschicht 106 kann verwendet werden, um verarbeiteten Berührungsdaten von Berührungsfeldkoordinaten in Anzeigekoordinaten zu übersetzen. Für praktische Zwecke ist der kleinste Bereich, an dem ein Berührungsereignis gemessen werden kann (ein Berührungspixel), größer als ein angezeigtes Pixel. Normalerweise braucht wegen der Größe des menschlichen Fingers die Berührungsauflösung nicht so hoch sein wie die Anzeigeauflösung. Allerdings kann es nützlich sein, die Berührungsdaten auf demselben Koordinatensystem beruhen zu lassen wie die Anzeigedaten, um Berührungsereignisse mit auf dem Schirm anzeigten Elementen (zum Beispiel Knöpfe usw.) zu korrelieren. Zu diesem Zweck kann der Anzeigcgraphik-/Eingabeoberflächenkoordinatenübersetzer verwendet werden, um die Berührungsdaten in Anzeigekoordinaten zu übersetzen. Der Anzeigegraphik-/Eingabeoberflächenkoordinatenübersetzer kann die übersetzten Berührungsdaten an einen MTL-Parser 103 senden. Die durch den MTL-Parser empfangenden Daten können Rasterdaten sein. In anderen Worten, sie können ein oder mehrere Matrizen von mit den entsprechenden Berührungspixeln assoziierten Berührungswerten aufweisen.
-
Die Mehrfachberührungssprach-(MTL)-Parserschicht 103 kann die koordinatenbasierten Berührungsdaten anzeigen und sie verwenden, um auf hoher Ebene eine steucrelementbasierte Schnittstelle zu der Applikationsschicht 105 bereitzustellen. Die Applikationsschicht 105 kann eine oder mehrere Applikationen aufweisen, wie z.B. ein Telefonbuch, E-Mail, eine Kartenapplikation, einen Video- oder Bildbetrachter, usw.
-
Der Betrieb der Applikations- und MTL-Parserschichten ist in größerem Detail in 2 beschrieben. Bei Schritt 200 können eine oder mehrere Applikationen eine oder mehrere Steuerinstanzen definieren und diese an den MTL-Parser senden. Eine Steuerinstanz kann ein Element einer Benutzerinteraktion sein. Es kann sich um eine Taste, einen Knopf, einen Schieber, usw. handeln. Eine Steuerinstanz kann eine bildliche Darstellung aufweisen, und eine Berührungsfunktionalität in sich tragen, d.h. ein Benutzer kann eine auf der Anzeige erscheinende Steuerinstanz berühren, um mit der Applikation, die die Steuerinstanz erzeugt hat, zu kommunizieren. Auf diese Weise kann ein Benutzer eine Taste berühren, um sie zu betätigen, einen Schieber ziehen, um ihn zu bewegen, oder seine/ihre Finger auf einem Knopf platzieren und sie drehen, um den Knopf zu drehen.
-
Die durch die Applikation erzeugten Steuerinstanzen können Instanzen von einem oder mehreren Datentypen sein. Die Typen können zu mehreren Typen von Steuerelementen korrespondieren, wie z.B. Knöpfe, Tasten, Schieber, usw. Die Instanzen können Daten zur Identifizierung der Größe/Form der Steuerelemente, der Position der Steuerelemente, usw. aufweisen. In einigen Ausführungsformen kann die Instanz auch Daten aufweisen, zur Definition der visuellen Darstellung des Steuerelements. In anderen Ausführungsformen kann die Applikation mit anderen Modulen (wie beispielsweise Core Graphik 104) kommunizieren, um die visuelle Darstellung der Steuerelemente zu definieren. Applikationen können fortlaufend neue Steuerinstanzen definieren und ältere Steuerinstanzen durch Kommunikation mit dem MTL-Parser bewegen oder löschen.
-
Beim Schritt 202 kann der MTL-Parser alle aktuellen Steuerinstanzen speichern. Beim Schritt 204 kann der MTL-Parser verarbeitete Berührungsdaten von einer niedrigeren Schicht (wie z.B. der Anzeigegraphik/ Eingabeoberflächenübersetzer) empfangen. Beim Schritt 206 kann der MTL-Parser die empfangenen Daten auf die gespeicherten Steuerinstanzen anwenden, um Interaktionen mit den Instanzen zu bestimmen - d.h. ob Tasten gedrückt, Knöpfe gedreht wurden, usw.
-
Beispielsweise kann der MTL-Parser den durch eine Tasteninstanz definierten Bereich untersuchen und prüfen, ob die verarbeiteten Berührungsdaten irgendwelche Berührungsereignisse in diesem Bereich anzeigen. In einigen Instanzen kann es erforderlich sein, dass der MTL-Parser eine Steuerinstanz sowohl auf historische Berührungsdaten als auch auf aktuelle Berührungsdaten anwendet, um zu bestimmen, wie ein Benutzer mit dieser Instanz interagiert. Zum Beispiel kann es für einen Knopf erforderlich sein, dass der MTL-Parser sowohl frühere Berührungspositionen auf und um den Knopf herum als auch ihre aktuellen Positionen untersucht, um zu bestimmen, ob der Knopf gedreht wird. Der MTL-Parser kann dies erreichen, indem er historische verarbeitete Berührungsdaten speichert und sie während Schritt 206 verarbeitet. Alternativ kann der MTL-Parser Zwischendaten abspeichern, die für jeden Steuertyp spezifisch sind. Wenn z.B. eine einzige Steuerinstanz vom Knopftyp vorhanden ist, kann der MTL-Parser nur historische Berührungsdaten für den durch diese Instanz definierte Bereich behalten, und die historischen Daten nur für eine spezifische zurückliegende, für die Bestimmung einer Knopfdrehung erforderliche Periode behalten (z.B. kann sie nur einen früheren Abtastrahmen behalten). Einige Steuerelemente, die historische Daten verwenden, können auch als inkrementelle Steuerelemente bezeichnet werden, da sie oft nur historische Daten eines früheren Abtastrahmens verwenden und auf diese Weise schrittweise Änderungen messen.
-
Beim Schritt 208 kann der MTL-Parser verschiedene in Schritt 206 erhaltene Ergebnisdaten an verschiedene Applikationen senden. Die Ergebnisdaten können zu den Steuerinstanzen gehören, die die Applikationen dem Parser geschickt haben. Genauer, die Ergebnisdaten können mit den Steuertypen assoziiert sein, die die Steuerinstanzen definieren. Daher kann beispielsweise ein einfacher Tastentyp einen binären Wert als seine Ergebnisdaten definieren, der angibt, ob die Taste betätigt ist oder nicht. Ein Knopfsteuertyp kann eine Integerzahl als seine Ergebnisdaten definieren, die einen Drehwinkel des Knopfs angibt.
-
Ausführungsformen der Erfindung können also Applikationsprogrammierung stark erleichtern und die Datenmenge, die Applikationen zu verarbeiten haben, reduzieren, indem sie eine niedriger liegende MTL-Parserschicht bereitstellen, die kompakt und einfach zu verwendende Ergebnisdaten an die Applikationen sendet. Außerdem kann der MTL-Parser, da er Kenntnis aller Steuerinstanzen hat, die Bereiche auf der Anzeige, für die Berührungsdaten für die Applikationen relevant sind (d.h. es gibt Steuerinstanzen in diesem Bereich) sowie diejenigen, für die dies nicht gilt, verfolgen. Auf diese Weise kann der MTL-Parser die Effizienz erhöhen, indem er Berührungsdaten für irrelevante Bereiche nicht verarbeitet. Des Weiteren kann der MTL-Parser die Effizienz von unter ihm liegenden Schichten verbessein, indem er sie instruiert, irrelevante Daten nicht zu verarbeiten. In einigen Ausführungsfonnen kann der MTL-Parser sogar das Berührungsfeld selbst instruieren, Berührungsdaten aus irrelevanten Regionen des Feldes nicht zu verarbeiten. Dies kann Strom sparen, da das Berührungsfeld ein Stimulationssignal auch abschalten kann (erforderlich für Berührungsmessung gemäß einiger Ausführungsfonnen).
-
In früheren Systemen verarbeitet der MTL-Parser Berührungsdaten ohne von den verschiedenen, durch verschiedene Applikationen angezeigten Steuerelementen Kenntnis zu haben. Auf diese Weise kann der Parser Berührungsdaten in einem Standardformat verarbeiten. Beispielsweise kann der Parser Gruppen von Pixels. die berührt wurden, in Berührungsbereichen zusammen gruppieren, die Berührungsbereichen in Ellipsen (und/oder anderen einfach zu definierenden Formen) einpassen, und die verschiedenen Ellipsen oder anderen Formen definierenden Daten an die Applikationen senden. Die Applikationen würden dann diese Formen zu verarbeiten haben und sie mit den durch die Applikationen auf dem Schirm angezeigten Steuerelementen vergleichen, um zu bestimmen, ob und wie der Benutzer mit diesen Steuerelementen interagiert. Einige Ausführungsformen der Erfindung können die letztere beschriebene Funktionalität zusammen mit der oben beschriebenen auf fortgeschrittenen Steuertypen basierenden Funktionalität aufweisen, um Vorgängerapplikationen zu unterstützen und/oder einige Instanzen zu unterstützen, in der die steuertypbasierte Funktionalität nicht optimal sein kann.
-
Während es auf den ersten Blick scheinen mag, dass die Vorgängersysteme einen höheren Präzisionsgrad ermöglichen, da sie wirkliche Berührungsdaten an die Applikationen weiterleiten, muss das nicht immer der Fall sein. Zum Beispiel können in einigen Fällen die steuerinstanzbasierten Systeme der vorliegenden Erfindung die Absicht des Benutzers genauer feststellen, als Vorgängersysteme. Vorgängersysteme komprimieren normalerweise die Berührungsdaten bevor sie sie an die Applikationen weiterleiten (z.B. indem sie sie in Ellipsen oder andere Formen umwandeln, wie oben diskutiert) um zweckmäßig zu sein. Allerdings können die komprimierten Daten möglicherweise die Absichten des Benutzers nicht korrekt übermitteln. Andererseits kann, gemäß Ausführungsfonnen der Erfindung, der MTL-Parser Steuerinstanzen jedes Steuertyps unterschiedlich verarbeiten. Auf diese Weise können Steuertypen so vordefiniert werden, dass sie so korrekt wie möglich die Benutzerabsicht interpretieren. Daher können die Ausführungsformen der Erfindung, selbst wenn sie nicht tatsächlich Berührungsdaten an die Applikationen weiterleiten, es den Applikationen ermöglichen, Benutzerabsichten genauer zu interpretieren.
-
Außerdem würde der Fachmann erkennen, dass Ausführungsformen dieser Erfindung viel weniger Verarbeitung benötigen als die Vorgängersysteme. In den Vorgängersystemen kann es für den Parser erforderlich sein, alle oder fast alle hereinkommenden Berührungsdaten zu verarbeiten und an die Applikationen zu senden, da er keine Kenntnis davon hat, welche Datentypen die Applikationen benötigen. Zusätzlich würden die Applikationen die durch den Parser empfangenen Daten erneut verarbeiten müssen, um zu bestimmen, wie sie auf die bestimmten durch die Applikationen verwendeten Steuerelemente anzuwenden sind. In Ausführungsformen der vorliegenden Erfindung hat der Parser Kenntnis davon, welche Berührungsdaten die Applikationen benötigen und kann die Verarbeitung auf das beschränken, was für die Applikationen relevant ist. Außerdem sendet der Parser an die Applikationen Daten, die bereits mit den Steuerelementen der Applikationen assoziiert sind, wodurch die Bearbeitung, die die Applikationen für die hereinkommenden Berührungsdaten aufwenden müssen, minimiert oder komplett eliminiert werden.
-
3 zeigt verschiedene Steuerinstanzen verschiedener Steuertypen, wie auf einem Schirm angezeigt. Beispielsweise können eine oder mehrere Instanzen vom Tastentyp (wie z.B. Taste 300) verwendet werden. Eine Taste kann verwendet werden, um zu detektieren, ob ein Benutzer die Taste betätigt oder drückt. Schiebersteuerelemente 301 und 302 können ebenso verwendet werden. Schieber können detektieren, wenn ein Benutzer seinen/ihre Finger entlang des Steuerelements verschiebt. Ein Dreh- oder Knopfsteuerelement (wie z.B. Knopf 303) kann ebenfalls verwendet werden. Ein Knopfsteuerelement kann die Drehung von gegen den Knopf gedrückten Fingern detektieren. Schieber- und Knopfsteuerelemente können die Steuertypen sein, die historische Daten erfordern. Auf diese Weise kann der MTL-Parser frühere Berührungszustände des Schiebers oder Knopfs mit aktuellen vergleichen, um zu bestimmen, ob eine Verschiebung und/oder Drehung auftritt. Außerdem kann ein Berührungsfeldsteuerelement 304 verwendet werden. Ein Berührungsfeldsteuerelement kann vorgesehen sein, um ein Berührungsfeld eines Computernotebooks zu emulieren, und kann verwendet werden, um verschiedene Berührungsereignisse auf dem Berührungsfeld zu detektieren. Das Bercilirtingsfeldsteuerelement kann auch Funktionalität aufweisen, die zusätzlich zu der eines herkömmlichen Notebook-Computerberührungsfeldes ist, in dem komplexere Ereignisse, wie z.B. das Spreizen von Fingern usw. detektiert werden. So kann beispielsweise das Berührungsfeldsteuerelement eine Navigationsoberfläche sein, die die seitliche Bewegung der Hand, Druck der Hand gegen die Oberfläche, Spreizen und Zusammenziehen der Hand, eine Drehung der Hand auf der Oberfläche sowie die Anzahl der Kontaktflecken auf der Oberfläche detektiert.
-
4 zeigt die Transparenz- und/oder Intransparenzsoptionen für Steuerelemente entsprechend Ausführungsformen der Erfindung. Entsprechend einiger Ausführungsformen können verschiedene Steuerelemente übereinander gelagert oder so definiert werden, dass sie beide denselben Bereich abdecken. So können z.B. die Steuerelemente 400 und 401 beide den Überschneidungsbereich 403 abdecken. Einige Ausführungsformen erlauben es, dass die Steuerelemente als transparent oder intransparent definiert sind. Im Falle transparenter Steuerelemente können beide Steuerelemente Berührungsereignisse im gemeinsamen Bereich auf die gleiche Weise detektieren, als wenn es keine Überlagerung gäbe. So können für den Fall, das die Steuerelemente 400 und 401 beide Tasten sind und ein Finger auf den Bereich 402 gedrückt wird, beide Steuerelemente die Berührung des Fingers detektieren.
-
Entsprechend einiger Ausführungsformen können die Steuerelemente intransparent sein. Wenn Intransparenz verwendet wird, können verschiedene Steuerinstanzen einen Niveauparameter aufweisen. Eine intransparente Steuerinstanz kann jede unter ihr befindliche Steuerinstanz abschirmen und wenigstens einen Teil ihres Bereiches schneiden. In einigen Ausführungsformen können Instanzen mit dem niedrigsten Niveauparameter als dem höchsten Niveau zugehörig betrachtet werden (d.h. mit allen anderen Instanzen unter ihnen liegend), aber andere Anordnungen sind möglich. So kann also unter der Annahme, dass die Instanz 400 intransparent sein kann und ein höheres Niveau aufweist als Instanz 401, die Instanz 400 die Instanz 401 abschirmen (d.h. verhindern, dass Berührungsereignisse bei der Instanz 401 registriert werden). In einigen Ausführungsformen tritt Abschirmung nur in den Bereichen auf, in denen die intransparente Instanz die unter ihr liegende Instanz überlagert. So kann für das Beispiel der 4 eine Abschirmung im überlagerten Bereich 403 auftreten (und so die Berührung 402 abschirmen), aber nicht im Bereich 404, wo keine Überlagerung auftritt.
-
In einigen Ausführungsformen, die Stärke oder Druck der Berührung zusätzlich zu Berührungsereignissen messen, kann die Intransparenz von Steuerelementen nur partiell sein. Ein partiell in transparentes Steuerelement kann ein Steuerelement unter sich nicht vollständig abschirmen, sondern nur die Stärke des Berührungsereignisses für das Steuerelement unter sich reduzieren.
-
Die folgende Beschreibung diskutiert eine Reihe von Ausführungsformen der Erfindungen im Detail. Entsprechend dieser vorliegenden Ausführungsformen können die MTL-Steuerelemente die folgenden Definitionen benützen:
- - Definition für den Bereich des Steuerelements: „Steuerbereiche“;
- - Definition der Steuertypen, einschließlich welche Art von Ausgabedaten von dem Steuerelement erwünscht ist: „Steuertypdefinitionen“ (diese bezeichnen Definitionen für Steuerbereiche;
- - Definition von Steuerinstanzen, mit den X-, Y-Positionen für jedes Steuerelement: „Steuerinstanzen“ oder einfach „Steuerungen“, die Steuertypen bezeichnen.
-
Sobald Steuerinstanzen definiert sind, können Steuerausgangsdaten (oder Ergebnisdaten) durch jede Steuerinstanz, die gegenwärtig eine Benutzeraktivität erfährt, generiert werden. Normalerweise können Steuerungen, die gerade nicht aktiv verwendet werden, „ruhig“ sein und keine Daten ausgeben.
-
Die Steuerausgangsdaten können enthalten:
- - Die Anzahl der Steuerungen, die gegenwärtig aktiv sind;
- - für jede aktive Steuerung:
- - CTRLID - einen Steueridentifizierungskode, der die Ausgangsdaten mit der Steuerinstanz assoziiert
- - Datensatz - ein Satz von Daten, der zusätzliche Informationen bezüglich des Status der Steuerung oder einen inkrementellen Status der Steuerung seit dem letzten Ausgangsdatenreport liefert. Im Spezialfall einer Taste, ist ein Datensatz nicht erforderlich, weil die Anwesenheit von CTRLID ausreichend sein kann, um anzuzeigen, dass die Taste gegenwärtig betätigt ist.
-
Eine Steuerinstanz kann ein reales Steuerelement, beispielsweise eine Taste sein. Steuerinstanzen können auf Steuertypen verweisen, die vor der Definition der Steuerinstanzen definiert werden können. Beispielsweise kann ein Steuertyp die Form und das Verhalten einer Taste beschreiben. Viele Steuerinstanzen können sich auf denselben Steuertyp beziehen (beispielsweise können sich viele Steuerinstanzen auf eine Taste beziehen, um eine virtuelle Tastatur zu konstruieren).
-
Steuerelemente können sich in analoger Weise zu überlappenden graphischen Objekten auf einer Anzeige überlappen. „Order“ (in der Steuerinstanz definiert) und ein Intransparenzparameter (in dem Steuertyp definiert) können verwendet werden, um das Verhalten sich überlappender Steuerelemente wie folgt zu bestimmen:
- - Für intransparente Steuerelemente, extrahieren die Steuerelemente, die zuerst verarbeitet werden (mit den niedrigsten Order-Werten) ein Signal aus dem Rohbild entsprechend ihrer Bereichsmaske, und subtrahieren das verwendete Signal, so dass es NICHT für Steuerungen zugänglich ist, die später verarbeitet werden (höhere Order-Werte).
- - Für transparente Steuerelemente, extrahieren sie ein Signal aus dem Rohbild entsprechend der Bereichsmaske, aber sie subtrahieren das verwendete Signal nicht, so dass das verwendete Signal IS für eine Wiederverwendung durch später verarbeitete Steuerelemente zur Verfügung steht.
-
Eine Analogie zu einander überlappenden Objekten auf einer Anzeige kann erweitert werden: Intransparente Steuerelemente mit den niedrigsten Order-Werten können analog Anzeigeobjekten sein, die dem Benutzer am nächsten sind, welche die Sichtbarkeit von weiter vom Benutzer entfernten Anzeigeobjekten stören. Transparente Steuerelemente können analog zu transparenten Anzeigeobjekten sein, weil weiter vom Benutzer entfernte Anzeigeobjekte immer noch durch die transparenten Steuerelemente sichtbar sind. Tabelle 1 (Steuerinstanzparameter)
Definition Eingabeparameter für Steuerinstanz | Beschreibung | Typ | Bedeutung |
T | Alias für Steuertyp | unsigned int | Bezeichnung |
X | X Koordinate der Steuerzeichenbox untere linke Ecke | unsigned byte | Eingabepixel |
Y | Y Koordinate der Steuerzeichenbox untere linke Ecke | unsigned byte | Eingabepixel |
Order | Reihenfolge der Verarbeitung von Steuerelementen, vom ersten zum letzten. | unsigned int | 0 = zuerst zu verarbeiten, 1 = 2., 2 = 3., usw. |
Definition Ausgabeparameter für Steuerinstanz | Beschreibung | Typ | Bedeutung |
CTRLID | Steuerinstanz ID Kode, um Ausgabereportdaten mit Steuerinstanzdefinition zu assoziieren | unsigned int | Eindeutige ID für Steuerinstanz |
-
Steuerbereiche können wieder verwendbare Definitionen von Formen sein, auf die durch Steuertypen referenziert werden kann. Mehr als ein Steuertyp kann dcnselben Steuerbereich referenzieren. Koordinaten können sich auf den lokalen Ursprung beziehen, der in der Steuerinstanz festgelegt werden kann. Der lokale Ursprung kann als die untere linke Ecke der Zeichenbox definiert sein.
-
Eine Rechteckbereichsdefinition kann einen einfachen rechteckigen Bereich definieren. Der gesamte Bereich innerhalb des Rechtecks kann für Eingaben des durch den Steuertyp festgelegten Typs aktiv sein. Tabelle 2 (Rechteckiger Bereich)
Eingabeparameter | Beschreibung | Typ | Bedeutung |
M | Höhe Zeichenbox (Y Dimension) | unsigned byte | Eingabepixels |
N | Länge der Zeichenbox (X Dimension) | unsigned byte | Eingabepixels |
Ausgabeparameter | Beschreibung | Typ | Bedeutung |
R | Alias für Bereich - kann durch Steuertypdefinitionen referenziert werden | unsigned int | Bezeichnung |
-
Eine Definition eines binären Maskenbereichs kann eine beliebige Form innerhalb einer einfachen rechteckigen Zeichenbox definieren. Der gesamte mit einer „1“ assoziierte Bereich kann für Eingaben des durch den Steuertyp spezifizierten Typs aktiv sein. Der gesamte, mit einer „0“ assoziierte Bereich kann für Eingaben inaktiv sein. Tabelle 3 (Zeichenmaske)
Eingabeparameter | Beschreibung | Typ | Bedeutung |
M | Höhe Zeichenbox (Y Dimension) | unsigned byte | Eingabepixels |
N | Länge Zeichenbox (X Dimension) | unsigned byte | Eingabepixels |
Eingabeparameter | Beschreibung | Typ | Bedeutung |
Mask | Binäre Matrix, 2D-Bild, definiert aktive und inaktive Bereiche innerhalb der Zeichenbox | Matrix aus Bits der Größe MXN | 1 = aktiv, 0 = inaktiv |
Ausgabeparameter | Beschreibung | Typ | Bedeutung |
R | Alias für Bereich - kann durch Steuertypdefinitionen referenziert werden | unsigned int | Bezeichnung |
-
Ein gestaffelter Maskenbereich kann eine beliebige Form mit gestaffelter Empfindlichkeit innerhalb einer einfachen rechteckigen Zeichenbox definieren. An jedem Element kann ein skalarer Wert die relative Empfindlichkeit an diesem Punkt bestimmen. Alle Pixels mit einer „0“ können für Eingaben inaktiv sein. Pixels mit „255“ können volle Empfindlichkeit aufweisen. Pixels mit „127“ können 50% Empfindlichkeit aufweisen. Table 4 (Gestaffelte Maske)
Eingabeparameter | Beschreibung | Typ | Bedeutung |
M | Höhe Zeichenbox (Y Dimension) | unsigned byte | Eingabepixels |
N | Länge Zeichenbox (X Dimension) | unsigned byte | Eingabepixels |
Mask | Unsigned-Byte Matrix, 2D-Bild, definiert aktive und inaktive Bereiche innerhalb der Zeichenbox | Matrix aus unsigned Bytes der Größe MXN | 255 = aktiv, 0 = inaktiv |
Ausgabeparameter | Beschreibung | Typ | Bedeutung |
R | Alias für Bereich - kann durch Steuertypdefinitionen referenziert werden | unsigned int | Bezeichnung |
-
Steuertypen können Bereichsdefinitionen referenzieren und funktionale Anforderungen hinzufügen, um funktionale wiederverwendbare Steuertypen zu bilden, die verwendet werden können, um verschiedene Steuerinstanzen aufzurufen. Ein Beispiel für eine spezielle Steuertypdefinition kann die Beschreibung einer Taste einer Tastatur sein. Es kann zwei Hauptfamilien von Steuertypen geben: (i) Tastensteuertypen und (ii) Multi-DOF-Steuertypen.
-
Multi-DOF-Steuertypen beziehen sich auf Steuertypen, die mehrere Freiheitsgrade zulassen. Sie können einen konfigurierbaren Satz von Ausgangsparametern bereitstellen, die in Gruppenausgaben und Mehrfachpunktausgaben klassifiziert werden können:
- Gruppenausgaben können Parameter sein, die alle auf dem Steuerbereich gefundene Kontaktflecken verwenden. Diese Ausgaben können optimiert sein für gleichmäßiges Druckverfolgen, gleichmäßiges XY-Verfolgen, gleichmäßige Drehungsverfolgung, gleichmäßige R-Verfolgung und Verfolgung der geschätzten Anzahl von Klecksen. Sie können während Zustände des Zusammenkommens oder Trennens von Kontaktflecken auftreten, bessere Ergebnisse liefern als Mehrfachpunktausgaben.
-
Mehrfachpunktausgaben können Listen von Kontaktflecken sein, die für jeden Kontaktfleck Attribute aufweisen. Diese können gute Ergebnisse liefern, wenn Kontaktpunkte getrennt sind, aber liefern möglicherweise nicht so gute Ergebnisse als Gruppenausgaben während Zuständen des Zusammenkommens und Trennens von Kontaktflecken vorliegen.
-
Zusätzlich zu „Gruppe“ gegenüber „Mehrfach-Punkt“, können Ausgaben breit als „instantan“ oder „inkrementell“ kategorisiert werden. Instantane Ausgaben brauchen nicht von früheren Bilddaten abhängen. Einige der instantanen Ausgaben können sich abrupt ändern, wenn neue Kontaktflecken eingebunden, ausgeschlossen, in einem gemeinsamen Bereich aufgenommen oder Kontaktpunkte von einem gemeinsamen Bereich separiert werden. Inkrementelle Ausgaben können sowohl das aktuelle Bild als auch das letzte Bild verwenden. Das Ziel für inkrementelle Ausgaben kann sein, dass sie fortlaufen kontinuierliche, gleichmäßige, sinnvolle Daten, die wirklich die Absicht des Benutzers repräsentieren liefern, trotz Änderungen wegen der Addition, Subtraktion, dem Zusammenführen oder der Trennung von Kontaktflecken. Die einzelnen Ausgaben und damit assoziierten Berechnungen können durch den in der Steuertypdefinition definierten Klassenparameter aktiviert/deaktiviert werden, wie in der folgenden Tabelle illustriert. Tabelle 5 (Typen von Ausgaben)
| Instantane Ausgaben | Inkrementelle Ausgaben |
Gruppen Ausgaben | CTRLID: Steuerung Aktiv | Klasse5: XGinc, YGinc |
Klasse0: Ztot, AG | Klasse6: RGinc |
Klasse1: XG, YG | Klasse7: ThetaGinc |
Klasse2: RG | |
Klasse3: NBG |
Klasse4: ThetaG, ECG |
MehrfachpunktAusgaben | Klasse8: NPTS, für jeden Punkt: PTID, Z, A, X, Y | |
Klasse9: für jeden Punkt: R, Theta, EC |
-
Die folgende Tabelle kann beispielhafte Steuerapplikationen und die damit assoziierten Steuertypempfehlungen sowie eine beispielhafte Parameterzuordnung illustrieren. Table 6 (Beispielhafte Steuerapplikationen)
Beispiel Steuerapplikation | Beispiel Steuertyp | Beispiel Parameterzuordnung |
Bildschirmtastatur | Taste | CTRLID | Taste betätigt |
Virtuelles Gaspedal | Multi-DOF, Klasse0 | CTRLID | Gaspedal wird verwendet |
Ztot | Wie stark wird das Gaspedal getreten |
„Einfach-Berührung“ absolute Cursorsteuerung | Multi-DOF, Klasse0, Klasse1 | CTRLID | Cursor wird bewegt |
Ztot | Verwendet, um zu bestimmen, ob Taste betätigt ist oder nicht |
XG, YG | Absolute Koordinatensteuerung Cursor |
Trackpad mit inkremeteller Cursorbewegung und Scroll-/Schwenkausgaben | Multi-DOF, Klasse0, Klasse3, Klasse5 | CTRLID | Trackpad wird verwendet |
Ztot | Verwendet, um zu bestimmen, ob während des Zeigens Taste betätigt ist oder nicht |
NBG | Wenn NBG = 1, dann Zeigemodus. Wenn NBG>1 dann Navigationsmodus |
XGinc, YGinc | Für Zeigemodus, verwendet für relative (inkrementelle) Koordinatensteuerung Cursor. Für Navigationsmodus, dann für Scrollen/Schwenken verwendet |
Inkrementelle Navigationssteuerung im Trackpad-Stil mit inkrementeller Cursorbewegung und Scroll-/ Schwenk-/Zoom-/ | Multi-DOF, Klasse0, Klasse 3, Klasse 5. Klasse 6, | CTRLID | NavPad wird verwendet |
Ztot | Verwendet, um zu bestimmen, ob während des Zeigens Taste betätigt oder nicht |
Drehausgaben | Klasse 7 | NBG | Wenn NBG = 1, dann Zeigemodus. Wenn NBG>1 dann Navigationsmodus |
XGinc, YGinc | Im Zeigemodus verwendet für relative (inkrementelle) Koordinatensteuerung Cursor. Im Navigationsmodus verwendet für Scrollen/Schwenken |
RGinc | Im Navigationsmodus verwendet als Zoomsteucrung |
ThetaGinc | Im Navigationsmodus verwendet für Drehsteuerung |
Fenster für absolute Manipulationsinteraktion | Multi-DOF, Klasse 1, Klasse5, Klasse6, Klasse7 | CTRLID | Steuerung wird verwendet |
XG, YG | Verwendet, um den absoluten Mittelpunkt für Drehung eines manipulierten graphischen Objekts zu bestimmen |
XGinc, YGinc | Seitliche Bewegung eines manipulierten graphischen Objekts |
RGinc | Skalierung (oder Zoomfaktor) des manipulierten Objekts |
ThetaGinc | Drehung des manipulierten Objekts |
Gesteninterpretation Beispiel: Lege Hände auf die Oberfläche, um amorphe Tastatur nach oben zu bringen | Multi-DOF, Klasse8, kann transparent sein, niedrigste Order, koexistierfähig mit anderen Steuerungen | CTRLID | Steuerung wird verwendet |
NPTS, PTID. X, Y | Wenn NPTS>8 und die Liste von Punkten annährend dem Kontaktmuster einer Tastatur entspricht, bringe die virtuelle Tastatur herauf |
Fingermalen. Manipulation des iTunes-Visualisierers usw. | Multi-DOF, Klasse8, Klasse9 | CTRLID | Steuerung wird verwendet |
NPTS, PTID, Z, A, X, Y, R, Theta, EC | Jeder Punkt kann durch eine äquivalente Ellipse angenähert werden, die dann verwendet werden könnte zum Fingernialen oder irgendetwas anderem. |
-
Ein Tastensteuertyp kann ein relativ einfaches Steuerelement sein, das für Bildschirmtastaturen gedacht ist. Tabelle 7 (Tasten steuer typ)
Definition Eingabeparameter für Tastensteuertyp | Beschreibung | Typ | Bedeutung |
H | Alias für Bereichsdefinition | unsigned int | Bezeichnung |
ZDIV | Steuert die Skalierung von Ztot | unsigned byte | Anzahl von Rechtsverschiebungen, die auf Summe anzuwenden sind, bei Berechnung von Ztot |
Zon | Schwelle für Taste betätigt | unsigned int | Wenn Ztot Zon überschreitet, Taste ist betätigt |
Zoff | Schwelle für Taste nicht betätigt | unsigned int | Wenn Ztot Zoff unterschreitet, ist Taste nicht betätigt |
Opc | Intransparenzsteuerung - bestimmt, ob durch diesen Steuerbereich verwendetes Signal für nachfolgende überlappende Steuerelemente mit höheren Order-Werten verfügbar ist | Binary | 1 = intransparent, 0 = transparent |
Definition Ausgabeparameter für Tastensteuertyp | Beschreibung | Typ | Bedeutung |
T | Alias für Steuertyp - kann durch Steuerinstanz referenziert werden | unsigned int | Bezeichnung |
Reportausgabeparameter für Tastensteuerelement | Beschreibung | Typ | Bedeutung |
CTRLID | Steuerinstanz ID Kode, um Ausgabereportdaten mit Steuerinstanzdefinition zu assoziieren | unsigned int | Eindeutige ID für Steuerinstanz |
-
Für den Spezialfall einer Taste kann „Dataset“ nicht erforderlich sein, da das Vorhandensein von CTRLID in der Ausgabereportliste ausreichend sein kann, um anzuzeigen, dass die Taste gegenwärtig betätigt ist.
-
Im Folgenden werden einige beispielhafte Algorithmen zur Verarbeitung von Berührungsdaten für Tastensteuertypen beschrieben. Bilddaten in einem Bereich können nach Fehlerbeseitigung durch eine Unsigned Byte Matrix D(p,q) repräsentiert werden, wobei p die Zeilennummer repräsentieren kann von 0 (unten) bis M - 1 (oben), und q kann die Spaltennummer repräsentieren von 0 (links) bis N - 1 (rechts). Wenn D(p,q) = 0, kann kein Eingangssignal an diesem Pixel gemessen werden. Wenn D(p,q) = 255, kann ein Maximalsignal an diesem Pixel gemessen werden. Für eine rechteckige Maske:
-
Binäre Maskendaten können in einer Bitmatrix M(ii) gespeichert werden wobei i die Zeilennummer von 0 (unten) bis Ylen - 1 (oben) und j die Spaltennummer von 0 (links) bis Xlen - 1 (rechts) repräsentieren kann. Daher gilt für eine binäre Maske:
-
Gestaffelte Maskendaten können in einer Matrix G(ij) aus unsigned Bytes gespeichert werden, wobei i die Zeilennummer von 0 (unten) bis Ylen - 1 (oben) repräsentieren kann und j die Spaltennummer von 0 (links) bis Xlen - 1 (rechts) repräsentieren kann.
-
Ztot kann wie folgt berechnet werden:
-
Eine Tastenschwellenerfassung kann wie folgt durchgeführt werden:
-
Ein Multi-DOF Steuertyp kann wie folgt definiert werden: Tabelle 8 (Multi-DOF Steuertyp)
Definition Eingabeparameter für Multi-DOF Steuertyp | Beschreibung | Typ | Bedeutung |
H | Alias zur Bereichsdefinition | unsigned int | Bezeichnung |
ZDIV | Steuert die Skalierung von Ztot | unsigned byte | Anzahl von auf Summe anzuwendender Rechtsverschiebungen bei der Berechnung von Ztot |
Zon | Schwelle für Aktivierung des Steuerelements | unsigned int | Wenn Ztot Zon überschreitet, ist Steuerelement aktiv (Ausgabedaten werden ausgegeben) |
Zoff | Schwelle für Deaktivierung des Steuerelements | unsigned int | Wenn Ztot Zoff unterschreitet, ist Steuerelement inaktiv (keine Ausgabedaten) |
Opc | Intransparenzsteuerung - bestimmt, ob das durch diesen Steuerbereich verwendete Signal für nachfolgende, überlappende Steuerelemente mit höheren Order-Werten verfügbar ist | Binary | 1 = intransparent, 0 = transparent |
Klasse0 | Aktiviere Klasse 0 Parameter | Binary | 1 = ein, 0 = aus |
Klasse1 | Aktiviere Klasse 1 Parameter | Binary | 1 = ein, 0 = aus |
Klasse2 | Aktiviere Klasse 2 Parameter | Binary | 1 = ein, 0 = aus |
Klasse3 | Aktiviere Klasse 3 Parameter | Binary | 1 = ein, 0 = aus |
Klasse4 | Aktiviere Klasse 4 Parameter | Binary | 1 = ein, 0 = aus |
Klasse5 | Aktiviere Klasse 5 Parameter | Binary | 1 = ein. 0 = aus |
Definition Eingabeparameter für Multi-DOF Steuertyp | Beschreibung | Typ | Bedeutung |
Klasse6 | Aktiviere Klasse 6 Parameter | Binary | 1 = ein, 0 = aus |
Klasse7 | Aktiviere Klasse 7 Parameter | Binary | 1 = ein, 0 = aus |
Klasse8 | Aktiviere Klasse 8 Parameter | Binary | 1 = ein, 0 = aus |
Klasse9 | Aktiviere Klasse 9 Parameter | Binary | 1 = ein, 0 = aus |
Definition Ausgabeparameter für Multi-DOF Steuertyp | Beschreibung | Typ | Bedeutung |
T | Alias für Steuertyp - kann durch Steuerinstanz referenziert werden | unsigned int | Bezeichnung |
Reportausgabe Parameter für Multi-DOF Steuerelement | Beschreibung | Typ | Bedeutung |
CTRLID | Steuerinstanz ID Kode zur Assoziierung von Ausgabereportdaten mit Steuerinstanzdefinition | unsigned int | Eindeutige ID für Steuerinstanz |
Ausgabeparameter, nur verfügbar, wenn Klasse0 = 1 |
Ztot | Integriertes Gesamtsignal für die Gruppe | unsigned int | |
AG | Gesamtbereich von Inputpixels, die Werte höher als 50 % der Spitze für die Gruppe aufweisen | unsigned int | Eingabepixels |
Reportausgabe Parameter für Multi-DOF Steuerelement | Beschreibung | Typ | Bedeutung |
Ausgabeparameter, nur verfügbar, wenn Klasse2 = 1 |
XG | X Koordinate des Schwerpunkts für Gruppe | unsigned int | 1/64 Eingabepixels, relativ zu lokaler Zeichenbox |
YG | Y Koordinate des Schwerpunkts für Gruppe | unsigned int | 1/64 Eingabepixels, relativ zu lokaler Zeichenbox |
Ausgabeparameter, nur verfügbar, wenn Klasse2 = 1 |
RG | Maß für den durchschnittlichen Radius vom Schwerpunkt zum Signal im Kontaktfleck. Analog zum Radius der Drehbewegung | Integer | 1/64 Eingabepixels |
Ausgabeparameter, nur verfügbar, wenn Klasse3 =1 |
NBG | Schätzwert für Anzahl von „Stößen“ in der Gruppe | unsigned byte | Anzahl der Stöße |
Ausgabeparameter, nur verfügbar, wenn Klasse4 = 1 |
ThetaG | Winkel der ersten Trägheitshauptachse relativ zur X Achse der Vorrichtung. Die zweite Hauptachse ist um 90 Grad gegenüber der ersten Hauptachse gedreht | signed int | 1/10 Grad Schritte... -900 = -90.0 Grad, +900 = 90.0 Grad |
ECG | Exzentrizität: Verhältnis der Hauptträgheitsmomente: erstes Hauptmoment geteilt durch zweites Hauptmoment | unsigned byte | Gültigkeitsbereich: 1 = 0.1 bis 10 = 1.0 bis 255 = 25.5 |
Reportausgabe Parameter für Multi-DOF Steuerelement | Beschreibung | Typ | Bedeutung |
Ausgabeparameter, nur verfügbar, wenn Klasse5 = 1 |
XGinc | Änderung in XG Parameter, enthält keine Änderungen des Parameters wegen Änderungen im Merkmalssatz | signed int | 1/64 Eingabepixels |
YGinc | Änderung in YG Parameter, enthält keine Änderungen des Parameters wegen Änderungen im Merkmalssatz | signed int | 1/64 Eingabepixels |
Ausgabeparameter, nur verfügbar, wenn Klasse6 = 1 |
RGinc | Anderung in RG Parameter, enthält keine Änderungen des Parameters wegen Änderungen im Merkmalssatz | signed int | 1/64 Eingabepixels |
Ausgabeparameter, nur verfügbar, wenn Klasse7 = 1 |
ThetaGinc | Änderungen in ThetaG Parameter, ohne Parameteränderung wegen Änderungen im Merkmalssatz | signed int | 1/10 Grad Schritte |
Ausgabeparameter, nur verfügbar, wenn Klasse8 = 1 |
NPTS | Anzahl zu meldender Kontaktflecken | unsigned byte | # von Flecken |
Für jeden angezeigten Kontaktfleck werden die folgenden Daten ausgegeben... |
PTID | Punkt ID, ermöglicht das Verfolgen von Kontaktflecken über mehrere Reports hinweg | unsigned byte | ID Bezeichnung |
Reportausgabe Parameter für Multi-DOF Steuerelement | Beschreibung | Typ | Bedeutung |
Z | Integriertes Gesamtsignal für den Kontaktfleck | unsigned int | |
A | Gesamtbereich von Eingabepixels, die Werte höher als 50 % der Spitze für den Kontaktfleck aufweisen | unsigned int | Eingabepixels |
X | X Koordinate des Schwerpunkts für den Kontaktfleck | unsigned int | 1/64 Eingabepixels, relativ zum lokalen Ursprung des Steuerelements |
Y | Y Koordinate des Schwerpunkts für den Kontaktfleck | unsigned int | 1/64 Eingabepixels, relativ zum lokalen Ursprung des Steuerelements |
Ausgabeparameter, nur verfügbar wenn Klasse9 = 1 |
R | Maß für die durchschnittliche Entfernung vom Schwerpunkt zum Signal in Kontaktfleck(en). Analog zum Radius der Drehbewegung | unsigned int | 1/64 Eingabepixels |
Theta | Winkel zwischen minimaler Trägheitshauptachse und X Achse der Vorrichtung. Die minimale Hauptachse korrespondiert zu der langen Achse für eine repräsentative Kontaktfleckellipse | signed int | 1/10 Grad Schritte... -900 = -90.0 Grad, +900 = 90.0 Grad. |
EC | Exzentrizität: Verhältnis der Hauptträgheitsmomente: erstes Hauptmoment geteilt durch zweites Hauptmoment | unsigned byte | Gültigkeitsbereich: 1 = 0.1 bis 10 = 1.0 bis 255 = 25.5 |
-
Im Folgenden sind einige Algorithmen für die Verarbeitung von Berührungsdaten von Multi-DOF Steuertypen beschrieben. Bilddaten eines Bereichs können nach Fehlerbeseitigung durch eine Matrix D(p,q) repräsentiert werden, wobei p die Zeilennummer von 0 (unten) bis M - 1 (oben) repräsentiert, und q die Spaltennummer von 0 (links) bis N - 1 (rechts) repräsentieren kann.
-
Algorithmen für Klasse0 und Klassel Ausgabeparameter: Ztot, XG, YG, AG werden im Folgenden diskutiert. Für eine rechteckige Maske:
-
Binäre Maskendaten können in einer Bitmatrix M(i,j) gespeichert werden, wobei i die Zeilennummer von 0 (unten) bis Ylen - 1 (oben) repräsentieren kann und j die Spaltennummer von 0 (links) bis Xlen - 1 (rechts) repräsentieren kann. Also für eine binäre Maske:
-
Gestaffelte Maskendaten können in einer Matrix G(ij) aus unsigned Bytes vorliegen, wobei i die Zeilennummer von 0 (unten) bis Ylen - 1 (oben) repräsentieren kann und j die Spaltennummer von 0 (links) bis Xlen - 1 (rechts) repräsentieren kann. Also für eine gestaffelte Maske:
-
Ztot kann wie folgt berechnet werden:
-
Eine Schwellenbestimmung für die Aktivierung von Steuerelementen kann gemäß dem folgenden Kode ausgeführt werden:
-
AG kann wie folgt berechnet werden:
-
5 illustriert die Verarbeitung von Berührungsdaten für ein beispielhaftes Steuerelement eines beispielhaften Multi-DOF Steuertyps. Zum Beispiel, kann sich 5 auf einen Knopfsteuertyp beziehen. Der Bereich 500 kann ein Bereich sein, der als erstmals berührt gemessen wurde. Der Bereich 500 kann sich ergeben aus der Detektierung von Berührungen an jedem einzelnen Pixel innerhalb des Bereiches oder durch Detektierung von Berührungen an einigen Pixels des Bereichs und Verbindung dieser Pixel um einen kontinuierlichen Bereich zu bilden.
-
Die Parameter XG und YG können die X und Y Koordinaten eines Schwerpunkts 501 des Berührungsbereichs 500 sein. Der Schwerpunkt kann als der Punkt mit den mittleren X und Y Koordinaten des Bereichs 500 definiert werden. RG kann als durchschnittlicher Radius 502 des Bereichs 500 definiert werden. ThetaG kann als ein Winkel 503 zwischen einer ersten Hauptträgheitsachse 504 und der X Achse der Vorrichtung definiert werden. Die zweite Trägheitshauptachse kann senkrecht zu der ersten verlaufen.
-
Die Schwerpunktsberechnungen für XG, YG können wie folgt lauten:
-
Der Klasse2 Ausgabeparameter RG kann wie im Folgenden gezeigt abgeleitet werden. Es ist anzumerken, dass Klasse 1 Parameter von Klasse 0 Parametern abhängen. Das Trägheitsmoment für Gruppe 500 um die x-Achse durch den Schwerpunkt kann sein:
-
Das Trägheitsmoment für die Gruppe, um die y-Achse durch den Schwerpunkt kann sein:
-
Das polare Trägheitsmoment für die Gruppe, um den Schwerpunkt kann sein:
-
Der polare Radius der Drehbewegung um den Schwerpunkt kann sein:
-
Der Ausgabeparameter NBG kann ein Schätzwert für die Anzahl von „Stößen“ in der Gruppe sein. Er kann durch räumliche Frequenzanalyse, wie z.B. diskrete Kosinus-Transformationsalgorithmen bestimmt werden. Er kann gleich der Anzahl getrennter Kontaktflecken sein, oder auch nicht.
-
Algorithmen zur Berechnung der Klasse4 Ausgabe Parameter ThetaG, ECG sind im Folgenden gezeigt. Es ist anzumerken, dass Klasse3 Parameter von Klasse1 Parametern abhängen. Das Trägheitsprodukt um den Schwerpunkt kann wie folgt berechnet werden:
-
Die erste Hauptachse kann berechnet werden als:
-
Anmerkung: Theta1 weist einen Bereich von -90 Grad bis +90 Grad auf.
-
Die zweite Hauptachse kann berechnet werden als:
-
Anmerkung: Theta2 hat einen Bereich von 0 Grad bis 180 Grad.
-
Das erste Hauptträgheitsmoment kann berechnet werden als:
-
Das zweite Hauptträgheitsmoment kann berechnet werden als:
-
Das Verhältnis der Hauptträgheitsmomente (erstes /zweites) kann sein:
-
Klasse5, Klasse6 und Klasse7 Ausgabeparameter: XGinc, YGinc, Ztotinc, AGinc, RGinc, ThetaGinc können inkrementelle Parameter sein, in anderen Worten, sie können vorgesehen sein, um inkrementelle Änderungen von Berührungsdaten zu messen. Zum Beispiel verwendet 6 inkrementelle Parameter zur Illustration. Genauer illustriert 6 eine Verarbeitung von Berührungsdaten gemäß 5 zu einem späteren Zeitpunkt, für ein beispielhaftes inkrementelles Steuerelement. Der ursprüngliche Berührungsbereich 500 von 5 kann zu einem späteren Zeitpunkt in einen Berührungsbereich 600 geändert werden. Der neue Berührungsbereich 600 kann einen neuen Schwerpunkt 601 mit neuen Koordinaten XG und YG, einen neuen mittleren Radius 602 (RG) und einen neuen Winkel der ersten Trägheitshauptachse 603 (ThetaG) aufweisen.
-
Die inkrementellen Parameter XGinc, YGinc, RGinc, ThetaGinc können wie folgt berechnet werden, wenn sich der Merkmalssatz (Anzahl von Kontaktflecken/ungefähre Position der Kontaktflächen) nicht ändert:
wobei XG_old, YG_old, RG_old und ThetaG_old Ausgabeparameter aus der vorherigen Stufe sein können (siehe
5). Anmerkung: ThetaGinc kann angepasst werden, um abrupte Änderungen durch Überlauf/Unterlauf von ThetaG jenseits von +90 Grad oder -90 Grad zu berücksichtigen.
-
7 ist ein Diagramm, das eine inkrementelle Änderung zeigt, bei der sich der Berührungsbereich bewegen und ein neuer Kontaktfleck auftreten kann. Die Berechnung der inkrementellen Parameter kann sich ändern, immer wenn sich der Merkmalssatz (z.B. die Anzahl und die relative Position der Kontaktflecken) durch Addition, Subtraktion, Zusammenführung oder Trennung von Kontaktilecken ändert.
7 zeigt ein Beispiel dafür, wie inkrementelle Parameter in dem ersten Abtastrahmen berechnet werden können, nachdem ein neuer Kontaktfleck auftritt. In
7 wurden die Position und der Winkel des Bildes 500 geändert, um ein Bild 700 mit Schwerpunkt 701 zu erzeugen, und ein neuer Kontaktfleck 702 ist aufgetreten. Unter der Annahme, dass XG_old, YG_old, RG_old. ThetaG_old Ausgaben des letzten Bildes 500 mit altem Merkmalssatz sind. und dass XG2, YG2, ThetaG2 berechnete Ausgaben des NEUEN Bildes, basierend auf dem ALTEN Merkmalssatz sind (d.h. ignorieren des neuen Fleckens 702), können die inkrementellen Werte XGinc, YGinc, Rginc und ThetaGinc wie folgt erhalten werden:
-
Anmerkung: ThetaGinc sollte angepasst werden, um abrupte Änderungen wegen Überlauf/Unterlauf von ThetaG jenseits von +90 Grad oder -90 Grad zu berücksichtigen.
-
Dieses Verfahren zur Berechnung von inkrementellen Parametern kann trotz der Addition, Subtraktion, dem Zusammenführen und Trennen von Kontaktflecken Kontinuität herstellen.
-
Die Berechnung der inkrementellen Parameter in dem ersten Bild nach einer Subtraktion von Kontaktflecken kann auf ähnliche Weise funktionieren. Daher können unter der Annahme, dass XG_old, YG_old, RG_old, ThetaG_old Ausgaben des NEUEN Bildes mit dem ALTEN Merkmalssatz und XG3, YG3, RG3, ThetaG3 berechnete Ausgaben, des ALTEN Bildes basierend auf dem NEUEN Merkmalssatz sind, die inkrementellen Werte wie folgt erhalten werden:
-
Anmerkung: ThetaGinc kann angepasst werden, um abrupte Änderungen durch Überlauf/Unterlauf von ThetaG jenseits von +90 Grad oder -90 Grad zu berücksichtigen.
-
Algorithmen für Klasse8 Ausgabe Parameter: NPTS, PTID, Z, X, Y, A, R, Theta, EC werden im Folgenden diskutiert.
-
NPTS repräsentiert die Anzahl von Kontaktflecken in dem Steuerbereich. Auf hoher Ebene betrachtet kann ein allgemeiner Ansatz wie das folgende Verfahren verwendet werden:
- - Leite Berührungsdaten durch Tiefpassraumfilter;
- - Filtere Rauschen durch Schwellen aus;
- - Teile Bereiche ein; und
- - Limitiere die Größe jedes Bereichs auf Pixels überhalb von 50 % der Spitze des Bereichs.
-
Nachdem die Kontaktfleckenbereiche definiert sind, können die einzelnen Kontaktfleckenparameter für jeden Kontaktfleck mit Algorithmen verarbeitet werden, die denen bereits oben im Detail für die Gruppenparameter beschriebenen entsprechen: Tabelle 9 (Berechnung einzelner Kontaktfleckenparameter Klasse 8)
Einzelner Kontaktfleckenparameter | Verwende gleichen Algorithmus wie bei... |
7 | ZG |
A | AG |
X | XG |
Y | YG |
-
Sobald die einzelnen Kontaktfleckenparameter, wie oben gezeigt etabliert sind, kann PTID für jeden Kontakt gefunden werden, indem die neuen X, Y, Z und A Parameter sowohl mit ihren letzten Werten als auch mit früheren Zeitableitungen dieser Parameter verglichen werden.
-
Algorithmen für Klasse9 Ausgabeparameter: R, Theta, EC werden im Folgenden gezeigt. Die einzelnen Kontaktfleckenparameter für jeden Kontaktfleck können mit Algorithmen verarbeitet werden, die denen bereits oben im Detail für die Gruppenparameter beschriebenen entsprechen: Tabelle 10 (Berechnung einzelner Kontaktfleckenparameter - Klasse 9)
Einzelner Kontaktfleckenparameter | Verwende gleichen Algorithmus wie bei... |
R | RG |
Theta | ThetaG |
EC | ECG |
-
Die oben diskutierten Ausführungsformen können die Bereitstellung eines Softwareentwicklungsbaukastens SDK ermöglichen, um die Entwicklung für Software für Mehrfachberührungsvorrichtungen zu erleichtern. Genauer, das SDK kann es Entwicklern ermöglichen, Klassen und Instanzen von Steuertypen unter Verwendung einer intuitiven graphischen Umgebung zu erzeugen und sie in Applikationen einzubetten. Daher können Entwickler, die nicht sehr gut mit den Einzelheiten von Mehrfachberührungsdatenverarbeitung vertraut sind, trotzdem Applikationen entwickeln, die die Vorteile einer Mehrfachberührungsanzeige nutzen.
-
Eine mehrfachberührungsfahige Anzeige kann in verschiedenen Vorrichtungen verwendet werden. Daher erfassen Ausführungsformen der Erfindung, ohne darauf beschränkt zu sein, Vorrichtungen, wie z.B. Mobiltelefone, tragbare Musikspieler, GPS Vorrichtungen, PDAs, tragbare E-Mailgeräte, elektronische Kioske, Computer, und andere Mehrfachberührungsanzeigen verwendende Vorrichtungen.
-
8 ist ein Diagramm einer mehrfachberührungsfähigen Vorrichtung gemäß einer Ausführungsform dieser Erfindung. Eine melirfachberülirungsfähige Vorrichtung 800 kann ein Feld 801 aufweisen, das sowohl Anzeige- als auch Mehrfachberührungsfunktionalität aufweist. Die Vorrichtung kann ebenfalls einen Mehrfachberührungsverarbeitungsschaltkreis 802 zur Verarbeitung von Mehrfachberührungsdaten, Speicher 803 zum Speichern von Anweisungen und/oder Daten (der Speicher kann RAM oder ein anderer Speichertyp einschließlich nichtflüchtigen Speichers sein), einen Prozessor 804 und einen Bus 806 zur Verbindung verschiedener Elemente aufweisen. Die in 1 gezeigten Module können beim Feld 801, der Schaltung 802 und/oder durch im Speicher gespeicherte und durch den Prozessor ausführbare Anweisungen implementiert werden.
-
Wenngleich Ausführungsformen der vorliegenden Erfindungen hier mittels eines gegenkapazitätsbasierten Mehrfachberührungsfeldes beschrieben sind, versteht es sich, dass die vorliegende Erfindung nicht auf solche Ausführungsfonnen limitiert ist, sondern allgemein auf alle Mehrfachberührungsvorrichtungen, sowie auf andere Vorrichtungen, die ähnliche pixelbasierte Eingaben empfangen, bei denen verschiedene Pixels zur selben Zeit aktiv sein können, sowie z.B. Näherungssensorvorrichtungen, Kameravorrichtungen, usw. anwendbar ist.
-
Wenngleich die vorliegende Erfindung vollumfänglich in Verbindung mit ihren Ausführungsformen unter Verweis auf die beiliegenden Zeichnungen beschrieben ist, ist anzumerken, dass verschiedene Änderungen und Modifikationen für den Fachmann offensichtlich werden. Es versteht sich, dass solche Änderungen und Modifikationen innerhalb des Umfangs der vorliegenden Erfindung, wie durch die angehängten Ansprüche definiert, enthalten sind.