DE112018002527T5 - Techniken zur identifizierung von benutzeroberflächenelementen und systeme und vorrichtungen, die diese verwenden - Google Patents

Techniken zur identifizierung von benutzeroberflächenelementen und systeme und vorrichtungen, die diese verwenden Download PDF

Info

Publication number
DE112018002527T5
DE112018002527T5 DE112018002527.6T DE112018002527T DE112018002527T5 DE 112018002527 T5 DE112018002527 T5 DE 112018002527T5 DE 112018002527 T DE112018002527 T DE 112018002527T DE 112018002527 T5 DE112018002527 T5 DE 112018002527T5
Authority
DE
Germany
Prior art keywords
search
response
gui
touch
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018002527.6T
Other languages
English (en)
Inventor
William Liddell
Paul Clements
Thomas Souche
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atmel Corp
Original Assignee
Atmel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of DE112018002527T5 publication Critical patent/DE112018002527T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/014Force feedback applied to GUI

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Die Ausführungsformen der vorliegenden Offenbarung beziehen sich allgemein auf Techniken zum Identifizieren von Elementen in einer Benutzeroberfläche (engl. user interface -UI) und insbesondere Techniken zum Bestimmen von UI-Elementen, die auf einer kontaktempfindlichen Benutzerschnittstelle ausgewählt werden, und auf das Verwenden dieser Techniken, um eine oder mehrere haptische Antworten bereitzustellen.

Description

  • PRIORITÄTSANSPRUCH
  • Diese Anmeldung beansprucht den Nutzen unter 35 U.S.C. §119(e) der vorläufigen US-Patentanmeldung mit der Seriennummer 62/507,902, eingereicht am 18. Mai 2017, deren Offenbarung hiermit durch Bezugnahme in ihrer Gesamtheit hierin aufgenommen wird.
  • TECHNISCHES GEBIET
  • Die Ausführungsformen der vorliegenden Offenbarung beziehen sich allgemein auf Techniken zum Identifizieren von Elementen in einer Benutzeroberfläche (engl. user interface -UI) und insbesondere Techniken zum Bestimmen von UI-Elementen, die auf einer kontaktempfindlichen Benutzerschnittstelle ausgewählt werden, und auf das Verwenden dieser Techniken, um eine oder mehrere haptische Antworten bereitzustellen.
  • STAND DER TECHNIK
  • Touch-Schnittstellen, die Berührungstechnologie verwenden, werden für eine Vielzahl von Anwendungen eingesetzt, z. B. in Tablet-Computern, PCs, Smartphones und anderen Konsumgütern. Sie werden auch als Bedienfelder für Kraftfahrzeuge, Haushaltsgeräte (z. B. Kühlschränke, Öfen, Waschmaschinen/Trockner usw.), Heizungs- und Klimaanlagen, Sicherheitssysteme und Geldautomaten verwendet. Eine Berührungsschnittstelle in diesen Anwendungen kann z. B. ein Touchpad sein oder kann einen Bildschirm und eine graphische Benutzeroberfläche (engl. graphical user interface - GUI) einschließen.
  • Generell besteht ein Bedarf an Touch-Schnittstellen, die eine ausreichende Ansprechempfindlichkeit und Genauigkeit aufweisen, um bei vielen Anwendungen verwendet zu werden.
  • Figurenliste
  • Der Zweck und die Vorteile der Ausführungsformen der Offenbarung werden Fachleuten aus der detaillierten Beschreibung in Verbindung mit den folgenden beigefügten Zeichnungen ersichtlich. Die Patent- oder Anmeldedatei enthält mindestens eine Zeichnung, die in Farbe ausgeführt ist. Kopien dieses Patents oder dieser Veröffentlichung der Patentanmeldung mit Farbzeichnung(en) werden vom Amt auf Anfrage und gegen Zahlung der erforderlichen Gebühr zur Verfügung gestellt.
    • 1 ist ein Schwimmbahndiagramm, das den Prozess der Generierung und Verwendung einer Suchauftragsliste zur Identifizierung kontaktierter UI-Elemente in einer GUI veranschaulicht.
    • 2 ist ein Flussdiagramm eines Prozesses zum Generieren einer Suchauftragsliste gemäß einer Ausführungsform der Offenbarung.
    • 3 ist ein Flussdiagramm eines Prozesses zum Extrahieren der UI-Elemente aus einer UI-Strukturdefinition gemäß einer Ausführungsform der Offenbarung.
    • 4 ist ein Flussdiagramm eines Prozesses, um einen Zwischensuchbaum zu erzeugen, gemäß einer Ausführungsform der Offenbarung.
    • 5 ist ein Flussdiagramm eines Prozesses zum Generieren eines Suchauftrag-Baumes gemäß einer Ausführungsform der Offenbarung.
    • 6 ist ein Flussdiagramm eines Prozesses, um eine Suchauftragsliste zu generieren, gemäß einer Ausführungsform der Offenbarung.
    • 7 ist ein Flussdiagramm eines Prozesses zum Bestimmen, ob eine Berührung innerhalb eines UI-Elements aufgetreten ist, gemäß einer Ausführungsform der Offenbarung.
    • 8 zeigt eine Ausführungsform einer Radio-GUI, die aus UI-Elementen besteht.
    • 9 zeigt die UI-Elemente der Radio-GUI von 8 gruppiert gemäß den Ausführungsformen der Offenbarung.
    • 10 zeigt UI-Elemente in einer baumartigen Struktur, die gemäß den Ausführungsformen der Offenbarung gebildet wurde.
    • 11 zeigt eine Ausführungsform eines Systems mit Suchauftragslisten.
    • 12 zeigt eine Ausführungsform einer Radio-GUI mit Merkmalen und Parametern, die mindestens einigen der UI-Elemente der Radio-GUI zugeordnet sind.
    • 13 veranschaulicht eine Ausführungsform des Systems von 11, das in eine Haupteinheit eines Automobils als Subsystem integriert ist.
  • OFFENBARUNG
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Verfahren zum Erzeugen von Anweisungen zum Suchen nach einem Element einer grafischen Benutzeroberfläche (GUI), die auf einem kontaktempfindlichen Bildschirm angezeigt wird. Das Verfahren schließt das Analysieren einer GUI-Definition und das Identifizieren von Elementen der GUI als Reaktion auf das Analysieren ein; das Erzeugen eines Datensatzes, der Einträge identifizierter Elemente umfasst; das Zuordnen der identifizierten Elemente zu Gruppen von ähnlich platzierten Elementen; das Anordnen des Datensatzes der identifizierten Elemente in einer baumartigen Struktur; das Zusammenlegen identifizierter Elemente in gleichen Gruppen zu einem einzelnen Blatt in der baumartigen Struktur; das Optimieren der baumartigen Struktur; und das Erzeugen einer Suchanweisungsliste als Reaktion auf die baumartige Struktur.
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Computerprogrammprodukt zum Ermöglichen, dass ein Computer ausführbare Anweisungen zum Suchen nach einem Element einer graphischen Benutzeroberfläche (GUI) erzeugt. Das Computerprogrammprodukt kann ein computerlesbares Medium und Softwarebefehle auf dem von einem Computer lesbaren Medium einschließen. Die Softwareanweisungen auf dem computerlesbaren Medium sind angepasst, um es dem Computer zu ermöglichen, die folgenden Vorgänge auszuführen: das Analysieren einer GUI-Definition und das Identifizieren von Elementen der GUI als Reaktion auf die geparste GUI-Definition, das Erzeugen eines Datensatzes, der Einträge der identifizierten Elemente umfasst; das Zuordnen der identifizierten Elemente zu Gruppen von ähnlich platzierten Elementen; das Anordnen des Datensatzes der identifizierten Elemente in einer baumartigen Struktur; das Zusammenlegen identifizierter Elemente in gleichen Gruppen zu einem einzelnen Blatt in der baumartigen Struktur; das Optimieren der baumartigen Struktur; und das Erzeugen einer Liste von Suchanweisungen als Reaktion auf die baumartige Struktur.
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf einen Mikrocontroller, der funktionsfähig mit einem Touchscreen gekoppelt ist, der zum Anzeigen einer grafischen Benutzeroberfläche (GUI) konfiguriert ist. Der Mikrocontroller schließt mindestens einen Prozessor und eine oder mehrere ausführbare Anweisungen ein, die auf einem nicht flüchtigen Speichermedium gespeichert sind. Die Anweisungen, wenn sie vom Prozessor ausgeführt werden, sind so angepasst, dass der Prozessor: eine Position einer erfassten Berührung an einem Touchscreen bestimmen kann; und ein GUI-Element identifizieren kann, das dem Berührungspunkt zugeordnet ist, welcher der erfassten Berührung entspricht.
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Verfahren zur Identifizierung eines Elements einer grafischen Benutzeroberfläche (GUI), das auf einem Touchscreen angezeigt wird. Das Verfahren schließt das Bestimmen einer Position einer erfassten Berührung an einem Touchscreen ein; das Ausführen einer oder mehrerer Suchanweisungen, als Reaktion auf die Position, wobei jede Suchanweisung der einen oder der mehreren Suchanweisungen einem GUI-Element entspricht, und, wenn sie ausgeführt wird, angepasst ist, um ein Suchergebnis zurückzugeben; und das Identifizieren eines GUI-Elements als Reaktion auf das Suchergebnis.
  • Einige Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf ein System. Das System schließt ein Anzeigesubsystem und ein Berührungssubsystem ein. Das Anzeigesubsystem ist konfiguriert, um eine Anzeige zu steuern. Das Berührungssubsystem schließt einen Berührungssensor und eine Berührungssteuerung ein. Die Berührungssteuerung ist konfiguriert, um einen Ort einer erfassten Berührung an dem Berührungssensor zu bestimmen; um eine oder mehrere Suchanweisungen, als Reaktion auf die Position und einen Suchbaum auszuführen, wobei jede Suchanweisung der einen oder der mehreren Suchanweisungen einem GUI-Element entspricht, und, wenn sie ausgeführt wird, angepasst ist, um ein Suchergebnis zurückzugeben; um ein GUI-Element als Reaktion auf das Suchergebnis zu identifizieren, und eine haptische Steuernachricht als Reaktion auf das identifizierte GUI-Element zu erzeugen.
  • ART(EN) DER AUSFÜHRUNG DER ERFINDUNG
  • In der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen zur Veranschaulichung spezifische Beispiele für Ausführungsformen gezeigt sind, in denen die vorliegende Offenbarung ausgeführt werden kann. Diese Ausführungsformen werden ausreichend detailliert beschrieben, um es einem Durchschnittsfachmann zu ermöglichen, die vorliegende Offenbarung auszuführen. Es können jedoch auch andere Ausführungsformen verwendet werden und Änderungen der Struktur, des Materials und des Prozesses können vorgenommen werden, ohne vom Umfang der Offenbarung abzuweichen. Die hierin dargestellten Veranschaulichungen sollen keine tatsächlichen Ansichten eines bestimmten Verfahrens oder Systems oder einer bestimmten Vorrichtung oder Struktur sein, sondern sind lediglich idealisierte Darstellungen, die zur Beschreibung der Ausführungsformen der vorliegenden Offenbarung verwendet werden. Die hierin dargestellten Zeichnungen sind nicht notwendigerweise maßstabsgetreu. Ähnliche Strukturen oder Komponenten in den verschiedenen Zeichnungen können zur Vereinfachung für den Leser die gleiche oder eine ähnliche Nummerierung beibehalten; die Ähnlichkeit in der Nummerierung bedeutet jedoch nicht, dass die Strukturen oder Komponenten notwendigerweise in Größe, Zusammensetzung, Konfiguration oder einer anderen Eigenschaft identisch sind.
  • Es versteht sich von selbst, dass die Komponenten der Ausführungsformen, wie sie hierin allgemein beschrieben und in den Zeichnungen veranschaulicht sind, in einer Vielzahl unterschiedlicher Konfigurationen angeordnet und gestaltet werden können. Somit soll die folgende Beschreibung verschiedener Ausführungsformen den Umfang der vorliegenden Offenbarung nicht einschränken, sondern lediglich repräsentativ für verschiedene Ausführungsformen sein. Während die verschiedenen Aspekte der Ausführungsformen in Zeichnungen dargestellt werden können, sind die Zeichnungen nicht notwendigerweise maßstabsgetreu gezeichnet, sofern nicht ausdrücklich angegeben.
  • Die folgende Beschreibung kann Beispiele einschließen, um einem Durchschnittsfachmann zu ermöglichen, die offenbarten Ausführungsformen zu praktizieren. Die Verwendung der Begriffe „beispielhaft“, „als Beispiel“ und „zum Beispiel“ bedeutet, dass die zugehörige Beschreibung erläuternd ist, und obwohl der Umfang der Offenbarung die Beispiele und ihre rechtlichen Entsprechungen umfassen soll, ist die Verwendung solcher Begriffe nicht dazu bestimmt, den Umfang einer Ausführungsform oder dieser Offenbarung auf die spezifizierten Komponenten, Schritte, Merkmale, Funktionen oder dergleichen zu beschränken.
  • Darüber hinaus sind die gezeigten und beschriebenen spezifischen Implementierungen nur Beispiele und sollten nicht als der einzige Weg zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Elemente, Schaltungen und Funktionen können in Blockdiagrammform gezeigt werden, um die vorliegende Offenbarung nicht durch unnötige Einzelheiten undeutlich werden zu lassen. Umgekehrt sind gezeigte und beschriebene spezifische Implementierungen nur beispielhaft und sollten nicht als die einzige Möglichkeit zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Außerdem sind Blockdefinitionen und die Aufteilung von Logik zwischen verschiedenen Blöcken beispielhaft für eine spezifische Implementierung. Es ist für Fachleute ohne weiteres ersichtlich, dass die vorliegende Offenbarung durch zahlreiche andere Partitionierungslösungen ausgeführt werden kann. Details bezüglich Zeitüberlegungen und dergleichen wurden größtenteils weggelassen, wenn solche Details nicht notwendig sind, um ein vollständiges Verständnis der vorliegenden Offenbarung zu erhalten und diese innerhalb der Fähigkeiten von Durchschnittsfachleuten in dem relevanten Fachgebiet liegen.
  • Durchschnittsfachleute werden verstehen, dass Informationen und Signale unter Verwendung einer Vielzahl verschiedener Technologien und Techniken dargestellt werden können. Zum Beispiel können Daten, Anweisungen, Befehle, Informationen, Signale, Bits, Symbole und Chips, auf die in dieser Beschreibung Bezug genommen werden kann, durch Spannungen, Ströme, elektromagnetische Wellen, Magnetfelder oder -partikel, optische Felder oder Partikel oder eine beliebige Kombination davon dargestellt werden. Einige Zeichnungen können Signale zur Übersichtlichkeit der Darstellung und Beschreibung als ein einzelnes Signal veranschaulichen. Es ist für einen Durchschnittsfachmann ersichtlich, dass das Signal einen Bus von Signalen darstellen kann, wobei der Bus eine Vielfalt von Bitbreiten aufweisen kann und die vorliegende Offenbarung auf einer beliebigen Anzahl von Datensignalen, einschließlich eines einzelnen Datensignals, implementiert werden kann.
  • Die verschiedenen veranschaulichenden logischen Blöcke, Module und Schaltungen, die in Verbindung mit den hierin offenbarten Ausführungsformen beschrieben werden, können mit einem Allzweckprozessor, einem Spezialprozessor, einem digitalen Signalprozessor (DSP), einer anwendungsspezifischen integrierten Schaltung (ASIC), einem Field Programmable Gate Array (FPGA) oder einer anderen programmierbare Logikvorrichtung, einer diskreten Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon, die zum Ausführen der hierin beschriebenen Funktionen ausgelegt sind, implementiert oder ausgeführt werden. Ein Allzweckprozessor (der hierin auch als Host-Prozessor oder einfach als Host bezeichnet werden kann) kann ein Mikroprozessor sein, alternativ kann der Prozessor jedoch ein beliebiger herkömmlicher Prozessor, Controller, Mikrocontroller oder Zustandsautomat sein. Ein Prozessor kann auch als eine Kombination von Rechenvorrichtungen, wie etwa eine Kombination aus einem DSP und einem Mikroprozessor, eine Vielzahl von Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder irgendeine andere derartige Konfiguration implementiert sein. Ein Universalcomputer mit einem Prozessor wird als Spezialcomputer angesehen, während der Universalcomputer so konfiguriert ist, dass er Rechenanweisungen (z. B. Softwarecode) ausführt, die sich auf Ausführungsformen der vorliegenden Offenbarung beziehen.
  • Die Ausführungsformen können in Bezug auf einen Prozess beschrieben werden, der als ein Flussdiagramm, ein Fließschema, ein Strukturdiagramm oder ein Blockdiagramm dargestellt ist. Obwohl ein Flussdiagramm Betriebsvorgänge als einen sequentiellen Prozess beschreiben kann, können viele dieser Vorgänge in einer anderen Reihenfolge, parallel oder im Wesentlichen gleichzeitig durchgeführt werden. Außerdem kann die Reihenfolge der Vorgänge neu geordnet werden. Ein Prozess kann einem Verfahren, einem Thread, einer Funktion, einer Prozedur, einer Unterroutine, einem Unterprogramm usw. entsprechen. Weiterhin können die hierin offenbarten Verfahren in Hardware, Software oder beiden implementiert sein. Bei Implementierung in Software können die Funktionen als eine oder mehrere Anweisungen oder Code auf computerlesbaren Medien gespeichert oder übertragen werden. Computerlesbare Medien schließen sowohl Computerspeichermedien als auch Kommunikationsmedien, einschließlich aller Medien, die die Übertragung eines Computerprogramms von einem Ort zu einem anderen erleichtern, ein.
  • Jede Bezugnahme auf ein Element hierin unter Verwendung einer Bezeichnung, wie „erste/r/s“, „zweite/r/s“ usw. schränkt die Menge oder Reihenfolge dieser Elemente nicht ein, es sei denn, eine solche Einschränkung wird ausdrücklich angegeben. Vielmehr können diese Bezeichnungen hierin als ein zweckmäßiges Verfahren zum Unterscheiden zwischen zwei oder mehr Elementen oder Instanzen eines Elements verwendet werden. Ein Verweis auf erste und zweite Elemente bedeutet also nicht, dass dort nur zwei Elemente eingesetzt werden dürfen oder dass das erste Element dem zweiten Element in irgendeiner Weise vorhergehen muss. Darüber hinaus kann ein Satz von Elementen, sofern nicht anders angegeben, ein oder mehrere Elemente umfassen.
  • Wie hierin verwendet, bedeutet der Begriff „im Wesentlichen“ in Bezug auf einen gegebenen Parameter, eine Eigenschaft oder eine Bedingung und schließt in einem für Fachleute verständlichen Ausmaß ein, dass der gegebene Parameter, die gegebene Eigenschaft oder die gegebene Bedingung mit einem kleinen Grad an Varianz erfüllt ist, wie beispielsweise innerhalb akzeptabler Fertigungstoleranzen. Beispielsweise kann in Abhängigkeit von dem bestimmten Parameter, der Eigenschaft oder der Bedingung, der bzw. die im Wesentlichen erfüllt ist, der Parameter, die Eigenschaft oder die Bedingung zu mindestens 90 % erfüllt, zu mindestens 95 % erfüllt oder sogar zu mindestens 99 % erfüllt sein.
  • Die verschiedenen in dieser Offenbarung beschriebenen Ausführungsformen beziehen sich im Allgemeinen auf Techniken zum Bestimmen von UI-Elementen, die auf einer kontaktempfindlichen Benutzeroberfläche ausgewählt werden, und zum Verwenden dieser Techniken, um eine oder mehrere haptische Antworten bereitzustellen. Wie für die Zwecke der hierin beschriebenen Ausführungsformen zu verstehen ist, kann ein Kontaktsensor auf den Kontakt eines Objekts (z. B. eines Fingers oder Stifts) mit oder auf die Nähe des Objekts zu einem kontaktempfindlichen Bereich der Berührungsschnittstelle reagieren. In dieser Offenbarung bezieht sich „Kontakt“ im Allgemeinen auf den physischen Kontakt eines Objekts mit einem kontaktempfindlichen Bereich, kann aber auch die unmittelbare Nähe eines Objekts umfassen, welche eine messbare Reaktion des Kontaktsensors erzeugt. Ferner bezieht sich ein kontaktempfindlicher Bereich auf den physischen Bereich auf einer Berührungsschnittstelle, in dem ein Kontaktsensor auf den Kontakt eines Objekts reagieren kann.
  • Eine kontaktempfindliche GUI, wie sie hier verwendet wird, bezieht sich auf eine Berührungsschnittstelle, die mit einer GUI integriert ist. Zum Beispiel schließt eine GUI üblicherweise einen oder mehrere Anzeigebereiche und aktiven/aktivierbaren Bereiche ein. In dieser Offenbarung ist ein Anzeigebereich ein Bereich einer Benutzeroberfläche, der Informationen für den Benutzer anzeigt. Ein aktivierbarer Bereich ist ein Bereich einer GUI, wie zum Beispiel eine Taste, ein Schieberegler oder ein Menü, der es dem Benutzer ermöglicht, eine bestimmte Maßnahmen in Bezug auf die Benutzeroberfläche durchzuführen. Einige Anzeigebereiche sind auch aktivierbare Bereiche insofern, als sie Informationen anzeigen und das Durchführen einiger Maßnahmen ermöglichen. In einer kontaktempfindlichen GUI kann das Kontaktieren eines berührungsempfindlichen Bereichs, auf dem ein aktiver Bereich angezeigt wird, diesen Bereich aktivieren (z. B. Tippen auf eine GUI-Taste auf einem Touchscreen).
  • Aktive Bereiche können als GUI-Elemente/Objekte angezeigt werden, z. B. Tasten, Schieberegler, wählbare Bereiche, Menüs usw. in verschiedenen Formen und Größen.
  • Im Allgemeinen wird, wenn ein Kontakt an einem kontaktempfindlichen Bereich erfasst wird, ein Verfahren verwendet, um die aktiven Bereiche der GUI zu bestimmen, denen der Kontakt entspricht, falls zutreffend. Wenn beispielsweise eine „EINGABE“-Taste angetippt wird, wird der Kontakt gemessen und als Reaktion auf den gemessenen Kontakt bestimmt ein Prozess, dass der Kontakt auf der EINGABE-Taste war. Die EINGABE-Taste ist ein aktiver Bereich, so dass Ereignisse in der berührungsempfindlichen GUI und/oder dem zugrunde liegenden Anwendungsprogramm, das die GUI aufgerufen hat, erzeugt werden.
  • Ferner, wenn ein bestimmtes GUI-Element dem aktiven Bereich zugeordnet ist, können die mit der Berührungsschnittstelle integrierten Aktoren eine oder mehrere physische Reaktionen liefern, die allgemein als haptische Reaktionen bezeichnet werden. Diese können in Form von Kräften, Vibrationen oder Bewegungen auftreten und Oberflächentexturen, Grate, Kanten, Interaktionen wie Drücken/Klicken einer Taste sowie andere simulierte Empfindungen und Reaktionen nachahmen. Im Falle einer GUI kann die haptische Antwort auf dem GUI-Element lokalisiert werden, mit dem ein Benutzer interagiert. Wenn ein Benutzer beispielsweise eine GUI-Taste berührt, kann die haptische Reaktion dazu führen, dass sich die Taste so anfühlt, als hätte sie eine Kante und wäre angehoben, als ob sie gedrückt wäre oder als ob sie eine raue Textur hätte.
  • Die verschiedenen hier beschriebenen Ausführungsformen können sich manchmal auf das Erzeugen und Aktualisieren elektronischer Datensätze beziehen. Die elektronischen Datensätze können in Form einer Datei vorliegen, und die Aktualisierung eines elektronischen Datensatzes kann das Einfügen oder Löschen von Dateneinträgen in einem oder mehreren Feldern des Datensatzes einschließen. Alternativ kann es sich während der Laufzeit auf ein Klassenobjekt und instanziierte Objekte mit Zustandsinformationen und Variablen beziehen, die mit dem beschriebenen Datensatz übereinstimmen. Beide Situationen werden in den verschiedenen hierin beschriebenen Ausführungsformen betrachtet.
  • Die verschiedenen Ausführungsformen dieser Offenbarung beziehen sich auf Techniken zum Identifizieren derjenigen GUI-Elemente, die auf einer kontaktempfindlichen Schnittstelle kontaktiert wurden. Diese Techniken und zugeordnete Strukturen sind besonders effizient, was die Speicherverwendung und das Ansprechverhalten betrifft. Ferner sind die Anforderungen an die Schnittstellendatenspeicherung gering, und die Anzahl von Tasks, die zur Ausführungszeit ausgeführt werden, um ein UI-Element zu identifizieren, ist im Vergleich zu anderen Techniken gering.
  • Einige Ausführungsformen der Offenbarung beziehen sich auf einen Prozess zur Erstellung einer Liste von optimierten Suchaufträgen, die ausgeführt werden können, um die GUI-Elemente zu identifizieren, die über die kontaktempfindliche Schnittstelle kontaktiert wurden. Die Suchaufträge können ausführbare Anweisungen des Prozessors sein, die beim Ausführen eine Erfolgs- oder Fehlermeldung an das Subsystem zurückgeben, das nach dem Element der GUI sucht, das kontaktiert wurde, falls vorhanden. In einer Ausführungsform werden die Suchaufträge basierend auf einer Definitionsdatei erstellt, die die verschiedenen Elemente und deren Positionen in einer GUI darstellt. Die Suchaufträge sind für verschiedene Effizienzparameter optimiert.
  • In einer Ausführungsform kann die Suchauftragsliste von einer eingebetteten Vorrichtung ausgeführt werden, z. B. einer Berührungssteuerung im Vergleich zu herkömmlichen kontaktempfindlichen GUIs, die den Erfindern dieser Offenbarung bekannt sind und die die Suche in einem Anzeige-Subsystem (z. B. einer Fahrzeug-Haupteinheit) durchführen können. Die Durchführung einer Suche nach einem GUI-Element in einer Berührungssteuerung spart Zeit bei der Kommunikation mit dem Anzeige-Subsystem und Zeit, die das Subsystem benötigt, um zu reagieren und z. B. mit einem haptischen Feedback-Subsystem zu kommunizieren. Die eingesparte Zeit verbessert die Reaktionsfähigkeit von kontaktempfindlichen GUIs im Vergleich zu den herkömmlichen kontaktempfindlichen GUIs und verkürzt aus der Sicht eines Benutzers die Zeit vom Berühren eines Bildschirms bis zum Empfangen des auf die Berührung reagierenden Feedbacks.
  • Darüber hinaus ist die Erstellung der Suchauftragsliste konfigurierbar, und je nach GUI können für eine Implementierung gemeinsame Funktionen ausgewählt werden, die für die spezifische Anwendung optimiert sind. In einigen Ausführungsformen kann der Erstellungsprozess beispielsweise für eine GUI optimiert werden, die Paging, Dropdown-Menüs und Popup-Fenster einschließt, die andere GUI-Elemente, Elemente bestimmter Formen oder Elemente, die sich bewegen oder verformen, wenn sie kontaktiert werden, verdecken.
  • 1 veranschaulicht einen Gesamtbetrieb eines Systems gemäß verschiedenen Ausführungsformen der Offenbarung. In Vorgang 112 ist ein Software-Anwendungstool 102 konfiguriert, um eine UI-Definitionsdatei zu verarbeiten, um eine Suchauftragsliste (Vorgang 108) mit konditionierten ausführbaren Anweisungen zu erstellen, die ausgeführt werden können, um ein eventuell vorhandenes UI-Element zu identifizieren, das auf einem kontaktempfindlichen Bildschirm kontaktiert wurde.
  • Die Suchauftragsliste kann in einem nicht flüchtigen Speicher abgelegt werden (Vorgang 110), auf den ein oder mehrere Prozessoren, die Teil eines Touch-Systems sind, zugreifen können. Wenn ein Kontaktereignis an einer Berührungsschnittstelle eintritt, kann ein Berührungssensor 106 die Berührung erfassen (Vorgang 118) und ein oder mehrere die Berührung anzeigende Signale an die Touchprozessoren liefern. Die Touchprozessoren 104 bestimmen (Vorgang 112) eine Stelle auf der Berührungsschnittstelle, an der der Kontakt aufgetreten ist und, als Reaktion auf diese Bestimmung, suchen (Vorgang 114) und identifizieren sie ein eventuelles UI-Element, das kontaktiert wurde. In einer Ausführungsform kann der Touchprozessor 104 die Suchergebnisse einem Subsystem der grafischen Benutzeroberfläche bereitstellen (Vorgang 116).
  • Eine Ausführungsform eines Prozesses zur Erstellung einer Suchauftragsliste wird mit Bezug auf die 2, 3, 4, 5, 6 und 7 beschrieben. Die Ausführungsformen der Offenbarung verwenden eine Suchbaumstruktur, die UI-Elemente gemäß einer Baum- und Raster-Technik organisiert. Die verschiedenen UI-Elemente werden in verwandte Gruppen unterteilt, die wie Raster behandelt und in einem Suchbaum organisiert werden, woraufhin dann verschiedene Suchaufträge generiert werden. Die Suchaufträge werden so konditioniert, dass sie die Ausführung einer Suche anhand der Anweisungen optimieren. Ein Durchschnittsfachmann wird verstehen, dass andere Algorithmen verwendet werden könnten, um den/die Bildschirm(e) in durchsuchbare Bereiche zu unterteilen, zum Beispiel ein „Divide-and-Conquer-Ansatz“.
  • 2 veranschaulicht eine Ausführungsform eines Prozesses zum Erzeugen einer Suchauftragsliste. In Vorgang 202 wird eine Strukturdefinition für das UI geladen und analysiert, um Bildschirme, Unterbildschirme und UI-Elemente auf diesen Bildschirmen und Unterbildschirmen zu identifizieren. Die UI-Strukturdefinition kann eine elektronische Datei, eine Datenbank, Rohdaten oder dergleichen sein. In Vorgang 204 werden die Elemente gruppiert und der durchsuchbare Bereich wird in einen oder mehrere durchsuchbare Regionen mit Elementgruppen unterteilt. In Vorgang 206 werden die Gruppen zu einer Baumstruktur verknüpft, die auf den durchsuchbaren Regionen basiert. In Vorgang 208 werden Suchaufträge den Zweigen und Knoten des Suchbaums zugeordnet, um einen Suchbaum zu bilden, und der Suchbaum wird optimiert. In Vorgang 210 werden die konditionierten Aufträge des Suchbaums in einer Liste gespeichert, die die Auftragsliste ist, die von einem Prozessor ausgeführt werden kann.
  • In einer Ausführungsform kann das Software-Anwendungstool 102, das die Suchauftragsliste erzeugt, konfiguriert werden, um die Ergebnisse eines oder mehrerer der Vorgänge 202, 204, 206, 208 und 210 in eine Ausgabedatei zu schreiben. Diese kann durch ein Debugging-Tool verwendet werden, um die Ergebnisse des Prozesses zu überprüfen. Das gleiche Debugging-Tool kann konfiguriert werden, um eine Textversion einer Suchauftragsliste zu verwenden und sie in einer virtuellen Testumgebung (wie z. B. einer ausführbaren .dos-Datei) auszuführen, um sicherzustellen, dass die Suchauftragsliste betriebsbereit ist.
  • 3 veranschaulicht eine Ausführungsform eines Prozesses 300 zum Extrahieren der UI-Elemente aus UI-Strukturdefinitionen. In einer Ausführungsform ist die UI-Strukturdefinition eine xml-Definition der Teile einer Anzeige, die durch die Konfigurationserzeugungsfunktionen des Anwendungstools umgewandelt werden sollen. Das Anwendungstool analysiert die Strukturdefinitionen und greift auf die in der Definitionsstruktur definierten Elemente zu. In Vorgang 302 wird jedes UI-Element geladen und in Vorgang 304 wird bestimmt, ob es sich um ein bekanntes UI-Element handelt. Wenn es sich nicht um ein bekanntes UI-Element handelt (d. h. es ist das erste Mal, dass dieses Element in den Strukturdefinitionen identifiziert wurde), dann erstellt der Prozess in Vorgang 306 eine neue Elementdefinition für diesen Typ von UI-Element (z. B. Taste, Drehknopf, Schieberegler, usw.). Nach dem Erzeugen der neuen Definition oder wenn es sich bei dem Element um ein bekanntes UI-Element handelt, wird in Vorgang 308 bestimmt, ob das Element einer vorhandenen Gruppe zugeordnet werden soll. In einer Ausführungsform basiert die Bestimmung, ob das Element einer bestehenden Gruppe zugeordnet werden soll, auf verschiedenen vorher festgelegten Parametern, z. B. gemeinsamen Merkmalen von Elementen, wie der Art des Elements, dem Bildschirm, auf dem das UI-Element angezeigt wird, einer Schicht-Position, einer dem Element zugeordneten Reaktionsart (z. B. visuell, haptisch, Audio usw.) und dergleichen. Wenn die Entscheidung getroffen wird, das Element einer neuen Gruppe zuzuordnen, wird in Vorgang 310 ein neuer Gruppendatensatz mit Parametern angelegt, die sich auf das Element beziehen. Nachdem ein neuer Gruppendatensatz angelegt wurde oder wenn bestimmt wurde, das Element einer bestehenden Gruppe zuzuordnen, wird in Vorgang 312 ein neuer Elementeintrag in den Gruppendatensatz für dieses neue Element eingefügt. In einer Ausführungsform schließt der Eintrag Felder für die Element-ID und die Position des Elements (d. h. die Koordinaten des Elements auf dem Bildschirm) ein. In Vorgang 314 wird bestimmt, ob es mehr UI-Elemente gibt, und wenn es mehr UI-Elemente gibt, dann wird der Prozess für jedes verbleibende UI-Element durchgeführt, das in der Definition der Ul-Struktur identifiziert wurde. In Vorgang 316 gibt der Prozess das/die Element(e), die Elementdefinition(en) und die Gruppe(n) zurück.
  • Wenn die Definition der UI-Struktur mehr als eine Bildschirmdefinition einschließt, wird in einer Ausführungsform, die in 3 nicht veranschaulicht ist, jedem dieser Bildschirme eine Bildschirm-ID zugewiesen, die ein Parameter des UI-Elements ist. Sie kann auch als Parameter für jede Gruppe integriert werden. Jeder Bildschirm kann auch Unterbildschirme einschließen, d. h. definierte Bereiche einer angezeigten GUI, in denen sich einige UI-Elemente dynamisch ändern, während UI-Elemente außerhalb dieser Bereiche statisch bleiben. Als nicht einschränkendes Beispiel können Bereiche mit dynamischen Elementen austauschbare Bereiche, scrollbare Menüs, aktivierbare Informationsbereiche, Navigationstasten und dergleichen einschließen.
  • 4 veranschaulicht einen Prozess 400 zum Erzeugen eines Suchbaums gemäß einer Ausführungsform der Offenbarung. In diesem Prozess wird bestimmt, wie jeder in der UI-Definition identifizierte Bildschirm in durchsuchbare Bereiche unterteilt werden kann, wobei jeder durchsuchbare Bereich eine oder mehrere Gruppen von Elementen einschließt. In der Ausführungsform des in 4 dargestellten Prozesses wird eine Trennlinie (x-, y-Koordinaten) gewählt, die Gruppen von Elementen so teilt, dass sich mindestens eine Gruppe auf einer Seite der Trennlinie und mindestens eine weitere Gruppe auf der anderen Seite der Trennlinie befindet. Tatsächlich ist der Bildschirm nun in zwei durchsuchbare Bereiche mit einer gemeinsamen Grenze entlang der Trennlinie unterteilt. Die Gruppen werden rekursiv aufgeteilt, bis die Gruppen nicht mehr weiter aufgeteilt werden können.
  • In einer weiteren Ausführungsform werden der Bildschirm oder die durchsuchbaren Bereiche gleichzeitig in den Richtungen der x- und y-Koordinaten unterteilt, was zu bis zu vier Unterteilungen der Gruppen führen kann. Diese Technik könnte auch zu weniger als vier Unterteilungen führen, beispielsweise drei Unterteilungen von Gruppen und einer leeren durchsuchbaren Region.
  • In noch weiteren Ausführungsformen können Kreise, Quadrate und/oder Polygone verwendet werden, um einen Teil des Bildschirms zu definieren, der von den durchsuchbaren Bereichen ausgeschlossen wird, so dass er nicht in durchsuchbare Bereiche unterteilt ist.
  • Beim Durchlaufen des in 4 dargestellten Prozesses wird in Vorgang 402 der erste durchsuchbare Bereich mit zwei oder mehr Gruppen geladen. Für die erste Iteration sollte dies der gesamte Bildschirm einschließlich aller Gruppen sein. In dieser Ausführungsform existiert ein erster Datensatz einer durchsuchbaren Region mit einem Bereich, der so definiert ist, dass er den gesamten Bildschirm einschließlich aller Elemente und Gruppen umfasst. In Vorgang 404 wird eine Gitterlinie ausgewählt, die die ursprüngliche durchsuchbare Region in zwei durchsuchbare Regionen mit jeweils einigen der Gruppen unterteilt. In Vorgang 406 wird ein neuer Datensatz erstellt, die Gruppen werden zwischen dem anfänglichen Datensatz und dem neuen Datensatz sortiert, und die Datensätze werden mit ihren jeweiligen durchsuchbaren Bereichen aktualisiert. Die Teilungslinie wird als eine Aufteilung/Teilung zwischen den beiden durchsuchbaren Bereichen aufgezeichnet. Der erste durchsuchbare Bereich und die darin enthaltenen Gruppen und Elemente sind mit der Teilung verknüpft, die wiederum mit dem neuen durchsuchbaren Bereich und den darin enthaltenen Gruppen und Elementen verknüpf ist. Zur Laufzeit gibt es Klassenobjekte von Elementen, Klassenobjekte von Gruppen und Klassenobjekte von Aufteilungen/Teilungen.
  • Für jeden durchsuchbaren Bereich, der mehr als eine Gruppe von Elementen enthält, wird der Prozess rekursiv ausgeführt (Vorgang 408), um die durchsuchbaren Bereiche zu teilen.
  • Insbesondere werden in einer Ausführungsform die Elemente durch einen Verweis auf eine Elementdefinition (z. B. eine Elementnummer) und eine Verschiebung zum Ursprung eines Elements in dieser Ausführungsform definiert, der Speicherbedarf der Schnittstelle wird reduziert, da nicht jedes Element einzeln definiert werden muss.
  • Sobald ein Bildschirm vollständig aufgeteilt ist, existiert nun ein Zwischensuchbaum, der Teilungen/Aufteilungen, UI-Elemente und Gruppen von UI-Elementen und Verknüpfungen dazwischen umfasst.
  • In Vorgang 410 werden für jede Gruppe Suchaufträge auf Gruppenebene erzeugt. Ein Auftrag auf Gruppenebene ist ein Prozessschritt oder eine Reihe von Prozessschritten. Die Aufträge können einschließen: (i) Aufträge zum Bestimmen, ob ein Berührungs- oder Kontaktereignis innerhalb eines UI-Elements (oder ohne ein Element) aufgetreten ist; (ii) Aufträge zum Modifizieren der Suchregion in irgendeiner Weise; und (iii) Aufträge zum Vorbereiten für den nächsten Auftrag.
  • Jeder Auftrag auf Gruppenebene kann einen Hinweis auf den nächsten Auftrag enthalten, der im Falle von Erfolg oder Misserfolg ausgeführt werden soll. So kann beispielsweise jeder Auftrag ein Bit mit einem „Offset“ zur nächsten Aufgabenadresse einschließen. Darüber hinaus kann jeder Auftrag auf Gruppenebene Argumente akzeptieren, wenn er ausgeführt wird. In einigen Ausführungsformen kann der vorherige Auftrag die Argumente liefern oder ein Umgebungsbit/Flag setzen, um anzuzeigen, welche Argumente für den nächsten Auftrag verfügbar sind.
  • In einer Ausführungsform kann der Offset in den Gruppenkoordinaten (Positionswinkel) zum Erzeugen eines Index verwendet werden. Jedem Element in einem durchsuchbaren Bereich kann, wenn konfiguriert, eine andere ID zugewiesen werden, die um den Index von der Basis-ID des durchsuchbaren Bereichs versetzt ist. Das Ergebnis ist eine Element-ID und ein Offsetwert. Es gibt separate Bestimmungen für die Modifikation entweder der Antwort- (z. B. haptisch) oder der Element-ID - so dass ein Gruppenelement eine einzelne Element-ID, aber mehrere Antwort-IDs zurückgeben kann, und ein anderes eine Antwort-ID für eine Reihe von verschiedenen Elementen zurückgeben kann.
  • Die Suchaufträge auf Gruppenebene können in die Gruppendatensätze eingefügt, in eine Suchauftragsliste eingefügt oder in einen Zwischendatensatz eingefügt werden. Sobald die Suchaufträge auf Gruppenebene abgeschlossen sind, wird in Vorgang 412 der Zwischensuchbaum zurückgegeben.
  • Obwohl nicht in 4 veranschaulicht, können in einer Ausführungsform Umgebungsvariablen für jeden Auftrag festgelegt werden, die gegebenenfalls angeben, was zurückgegeben wird, wenn der Auftrag ausgeführt wird, ein Erfolg ist und der letzte Auftrag ist. Als nicht einschränkendes Beispiel kann eine Umgebungsvariable eine haptische ID sein, Werte, die steuern, wie die Element-ID und die haptische ID für ein Element innerhalb einer Gruppenform geändert werden, usw. Es können auch Umweltmerker gesetzt werden, die die Daten angeben, die zusammen mit der nächsten Auftragsbeschreibung gesendet werden sollen. Durch die Verwendung bestimmter Einschränkungen und der richtigen Umgebungsvariablen kann eine Definition, z. B. eines Kreises, von 7 auf 2 Bytes reduziert werden.
  • 5 veranschaulicht eine Ausführungsform eines Optimierungsprozesses 500, der am Zwischensuchbaum durchgeführt wird. In Vorgang 504 sind alle Elemente nach gemeinsamen Merkmalen gruppiert. Beispiele für gemeinsame Merkmale sind der Elementtyp, die Position in einer Schicht, die Position relativ zu einem anderen Element in einem anderen Schicht (z. B. alle hinter dem gleichen Element), eine Anzeigegruppe, eine Form oder mehr. In einer Ausführungsform können gemeinsame Merkmale ausgewählt werden, um einen Suchprozess zu optimieren. Wenn beispielsweise Elemente nach Schicht-Position gruppiert werden, wobei die Elemente auf der obersten Schicht oben im Suchbaum stehen, werden diese zuerst durchsucht. Als ein weiteres Beispiel ermöglicht die Gruppierung nach Anzeigegruppe in einer Anwendung, in der es ein „Paging“ gibt (d. h. Schichten einer Benutzeroberfläche können durchsucht werden, um Schichten darunter freizulegen oder eine Schicht über eine anderen Schicht zu ziehen), die Steuerung aller angezeigten Elemente mit einem einzigen Steuerelement - z. B. Suche nach allen Elementen in einer Anzeigegruppe, Änderungen an den Elementen, die auf die Steuereinstellungen reagieren, Ein- und Ausschalten aller Elemente in einer Anzeigegruppe, usw. In verschiedenen Ausführungsformen können Kennungen verwendet werden, um Gruppen zu identifizieren, die nach gemeinsamen Merkmalen organisiert sind, z.B. Schicht-IDs, Positions-IDs, Form-IDs, usw.
  • In Vorgang 506 werden Suchaufträge für jedes Element in den Suchbaum eingefügt und in einen Zwischenbaum für Suchaufträge aufgeteilt. In Vorgang 508 wird der Zwischenbaum der Suchaufträge neu geordnet, um sicherzustellen, dass für jeden Auftrag ein einziger Durchlauf durchgeführt wird. In Vorgang 510 werden redundante oder ineffiziente Suchaufträge eliminiert. In Vorgang 512 wird der optimierte Suchauftragsbaum zurückgegeben.
  • 6 veranschaulicht eine Ausführungsform eines Prozesses 600 zum Erzeugen einer Suchauftragsliste. In Vorgang 602 werden die Klassenobjekte im Suchauftragsbaum geladen und in Vorgang 604 aus den Klassenobjekten Anweisungswörter (d. h. Suchaufträge) erstellt und die Anweisungswörter (d. h. Suchaufträge) in eine Suchauftragsliste eingefügt. In der in 6 dargestellten Ausführungsform schließt das Anweisungswort ein Auftragscodefeld und ein Sprungfeld ein. In einer Ausführungsform schließt das Anweisungswort ein Datenfeld ein. Jeder Fehler (d. h. das Element ist anders) und jede Aufteilung erfordert einen Sprung zu einer anderen Anweisung, es sei denn, der nächste Auftrag folgt unmittelbar auf den aktuellen Auftrag im Speicher. In Vorgang 606 werden die Auftragscodes in das Auftragscodefeld und in Vorgang 608 die Sprungwerte in das Sprungfeld eingefügt.
  • In einigen Ausführungsformen werden einige oder alle der Sprungwerte nicht eingefügt, bis alle Aufträge in die Suchauftragsliste eingefügt sind. In weiteren Ausführungsformen können Sprungwerte aus dem Suchauftragsbaum abgeleitet werden.
  • In Vorgang 610 werden die verschiedenen Aufträge der Suchauftragsliste im Speicher zu einer konditionierten Suchauftragsliste verknüpft, die, wenn sich alle Objekte in der Liste befinden (Vorgang 612), vom Prozess in Vorgang 614 zurückgegeben wird. Die Suchauftragsliste und der Suchbaum können im Speicher gespeichert werden.
  • Die Auftragsanweisungen können nach Containergrößenbeschränkungen (d. h. Bytebeschränkungen) variieren, die in der jeweiligen Umgebung, in der die Suchauftragsliste implementiert wird, verfügbar sind. In einer Ausführungsform können die Daten, die jeder Auftragsanweisung zugeordnet sind, je nach Systemanforderungen variieren, einschließlich der Anforderungen an die Anweisungsschnittstelle (8-Bit, 12-Bit, 16-Bit, usw.), den verfügbaren Speicher usw. Als nicht einschränkendes Beispiel kann eine Anweisung zur Suche innerhalb eines 8-seitigen polygonförmigen UI-Elements mit nur x- und y-Koordinatendaten und der Anzahl der Seiten ausgeführt werden. Es können jedoch zusätzliche Daten hinzugefügt werden, wenn die Anweisungsschnittstelle und andere Speicheranforderungen dies zulassen.
  • 7 veranschaulicht einen Suchprozess zum Bestimmen, ob eine Berührung innerhalb eines UI-Elements aufgetreten ist, gemäß einer Ausführungsform der Offenbarung. Die Suche im Suchbaum erfolgt über die bereitgestellten Daten und die Suchauftragsliste. In Vorgang 702 wird die ausführbare Anweisung für jeden Auftrag auf der Schnittstelle des Prozessors sequentiell mit den Nutzlastdaten für jeden Auftrag bereitgestellt und in Vorgang 704 ausgeführt. Während der Suche im Suchbaum wird in Vorgang 706 bestimmt, ob die Berührung innerhalb eines UI-Elements erfolgte, und das Ergebnis jedes Auftrags ist ein wahr/falsch, Erfolg/Fehler, das anzeigt, ob die Berührung innerhalb eines UI-Elements erfolgte. In Vorgang 708 werden die nächste Auftragsanweisung und die zugehörigen Daten geladen und vom Prozessor empfangen, als Reaktion darauf, dass das Ergebnis des aktuellen Auftrags ein Erfolg ist. Das heißt, wenn das Ergebnis von Vorgang 706 ein Erfolg ist, wird der nächste Auftrag in der Auftragsliste ausgeführt.
  • Wenn das Ergebnis ein Fehler ist, werden eine alternative Auftragsanweisung und die zugehörigen Daten geladen und vom Prozessor als Reaktion auf das Ergebnis empfangen. Wenn es einen alternativen Auftrag gibt (Vorgang 714), dann wird der alternative Auftragsort in Vorgang 716 bereitgestellt und der Prozess kehrt zu Vorgang 702 zurück, und der Auftrag wird von dem alternativen Standort für den Prozessor geladen.
  • Wenn die Suche abgeschlossen ist, wird das UI-Element entweder gefunden oder nicht gefunden. Wird das UI-Element gefunden, wird in Vorgang 710 ein Ergebnis „gefunden“ zurückgegeben, und in Vorgang 712 werden die ID für dieses Element sowie alle Umgebungseinstellungen/ Ansprechverhaltensparameter zurückgegeben. Wird der Vorgang nicht gefunden, wird in Vorgang 720 ein Ergebnis „nicht gefunden“ zurückgegeben.
  • In einer Ausführungsform kann der in 7 dargestellte Suchprozess eine Firmware-Anwendung sein, die an einem Touchprozessor (Mikrocontroller) ausgeführt wird. Der Touchprozessor kann einen oder mehrere Suchaufträge, die durch den Suchprozess ausgeführt werden, in einem Flash-Speicher speichern. In einer Ausführungsform können Suchaufträge in einem RAM gespeichert werden, das einer Anzeigesteuerung zugeordnet ist, und die Suchaufträge können dem Touchprozessor während eines Einrichtungs- oder Bereitstellungsprozesses bereitgestellt und für den Suchprozess zugänglich gehalten werden.
  • Die Erfinder verstehen nun, dass die beschriebenen Ausführungsformen gegenüber alternativen Ansätzen mehrere Vorteile bieten. Der Speicherbedarf wird deutlich reduziert - bis zu 50 % gegenüber der linearen Suche, dem reinen Raster-Verfahren oder dem reinen Suchbaumverfahren; und immer noch eine Verbesserung gegenüber Kombinationen der Raster-/Baumverfahren. Dies liegt teilweise daran, dass die Anzahl der durchgeführten Suchvorgänge verringert wird. Da die Anzahl der Suchvorgänge reduziert wird, sind die Antwortzyklen deutlich kürzer als bei alternativen Ansätzen (einschließlich konventioneller Ansätze). So wurden beispielsweise auf einer 1200×1200 kontaktempfindlichen GUI Zykluszeiten von weniger als 36 µs erreicht, verglichen mit alternativen Ansätzen, die zwischen 72 µs (reines Raster) und 1200 µs (linear) lagen. Für einen Benutzer besteht der Unterschied in einer viel reaktionsschnelleren Berührungsschnittstelle. Für einen Designer kann die Berührungsschnittstelle anspruchsvoller sein, da sie viele Elemente mit unterschiedlichen Antworteigenschaften aufweist.
  • Die 8, 9 und 10 veranschaulichen Prozesse, die mit Bezug auf die 2 bis 7 in Verbindung mit einer GUI für eine Radioanwendung veranschaulicht und beschrieben werden, als ein nicht einschränkendes Beispiel für eine GUI, die mit Ausführungsformen der Offenbarung verwendet werden kann. Die in 8 veranschaulichte Radio-GUI 810 schließt acht Arten von UI-Elementen und insgesamt 144 UI-Elemente ein, die in Tabelle 820 zusammengefasst sind.
  • 9 zeigt UI-Elemente, die nach den unter Bezugnahme auf 3 beschriebenen Verfahren gruppiert sind. In dieser Ausführungsform weisen die gruppierten Elemente 832, 834, 836, 838, 840, 842, 844, 846 und 848 ähnliche Berührungsmerkmale (z. B. haptische Rückmeldung als Reaktion auf eine Berührung), physische Positionen auf dem Bildschirm und Formen auf.
  • 10 zeigt ein Beispiel für eine Baumstruktur 850, die mit dem Baum- und Rasterverfahren gebildet wurde, die mit Bezug auf 4 beschrieben wurde.
  • 11 veranschaulicht ein System 1000 und das zugehörige Tool 1040, das die hierin beschriebenen Suchverfahren gemäß einer Ausführungsform der Offenbarung implementieren kann. Das System 1000 schließt die Mikrocontroller-Firmware 1010 mit darauf befindlichen GUI-Elementsuchfunktionen 1012 und Antwortbestimmung 1014 für GUI-Elemente ein. Der Prozessor, der die Mikrocontroller-Firmware 1010 ausführt, ist mit einem Antworttreiber 1018 gekoppelt, der Steuersignale von der Mikrocontroller-Firmware 1010 empfangen und wiederum eine Antwort in einer kontaktempfindlichen Schnittstelle 1020 steuern kann. In einer Ausführungsform ist die kontaktempfindliche Schnittstelle 1020 ein Touchscreen mit einem oder mehreren Aktoren, und der Antworttreiber 1018 ist ein haptischer Treiber, der konfiguriert ist, um Steuersignale zu erzeugen, die die Aktoren anregen. Die Sensorschaltung 1022 kann ein oder mehrere Messsignale als Reaktion auf einen Kontakt an der kontaktempfindlichen Schnittstelle 1020 erzeugen. Die Kontaktmessung und -verarbeitung 1016 kann Kontaktinformationen (z. B. Ort, Art usw.) bestimmen und der Antwortbestimmung 1014 und den GUI-Elementsuchfunktionen 1012 als Reaktion auf die Messsignale der Sensorschaltung 1022 bereitstellen. Die am Antworttreiber 1018 empfangenen Steuersignale können zumindest teilweise auf den Kontaktinformationen basieren, so dass beispielsweise eine haptische Rückmeldung an der richtigen Stelle auf der kontaktempfindlichen Schnittstelle 1020 erfolgt.
  • Ebenfalls in 11 veranschaulicht ist ein Tool 1040, das einen Prozess zur Erstellung einer Suchliste implementieren und eine Auftragsliste für die Elementsuche sowie Informationen zur Antwort auf Elemente erzeugen kann, entsprechend einer Ausführungsform der Offenbarung. Ein Anwendungsprogramm zur Erzeugung von Suchlisten 1044 ist konfiguriert, um die mit Bezug auf die 2 bis 6 beschriebenen Prozesse in eine XAML-Datei für GUI-Definitionen 1042 zu implementieren, um eine Aufgabenliste zur Elementsuche zu erzeugen. Die Anwendung 1044 kann die Elementsuchauftragsliste 1046 und die Elementantwortinformation 1048 als Datei an die Mikrocontroller-Firmware 1010 übergeben. In einer Ausführungsform kann sie auch einen Suchbaum bereitstellen, obwohl dies in die Suchaufträge integriert werden kann.
  • In einer oder mehreren Ausführungsformen der Firmware kann die Firmware Kraftmess- und Verarbeitungsfunktionen einschließen, um Kraftniveauinformationen über ein Berührungsereignis zu integrieren. In diesen Ausführungsformen können die Kraftniveauinformationen und die GUI-Element-ID sowie die von der Elementsuchfunktion zurückgegebenen haptischen Antwortdetails von einem haptischen Sequenzer verwendet werden, um haptische Steuersignale als Reaktion auf das Kraftniveau, die GUI-Element-ID und die haptischen Antwortdetails zu erzeugen.
  • Das System von 11 kann in verschiedene Konsumgüter, Haushaltsgeräte und Maschinen integriert werden, die Berührungsschnittstellen und Berührungsbedienfelder verwenden, einschließlich Automobile.
  • 12 veranschaulicht eine vereinfachte Version einer Radio-GUI 1210 für ein Automobil-Touch-Bedienfeld. Drei Bereiche werden spezifisch benannt, Bereich 1, Bereich 2, und Bereich 3. Bereich 1 ist eine Taste 1212 in der Mitte eines Drehreglers 1214 zur Temperaturregelung. Haptisches Feedback gemäß einer haptischen Profil-ID #4 (Vibration) wird als Reaktion auf ein Berührungsereignis mit einem starken Kraftniveau bereitgestellt. Bereich 2 ist der Drehregler 1214, auch für die Temperaturregelung. Haptisches Feedback gemäß einer haptischen Profil-ID #3 (Reibung) wird als Reaktion auf ein Berührungsereignis mit einem leichten Kraftniveau bereitgestellt. Schließlich ist Bereich 3 eine Taste 1216, um ein Menü für die Fahrzeugeinstellungen aufzurufen. Haptisches Feedback gemäß der haptischen Profil-ID #2 (Klick) wird als Reaktion auf ein Berührungsereignis mit einem starken Kraftniveau bereitgestellt, und haptisches Feedback gemäß der haptischen Profil-ID #3 (Reibung) wird als Reaktion auf eine Berührung mit einem leichten Kraftniveau bereitgestellt.
  • 13 veranschaulicht das System von 11 und die GUI von 12, die in Fahrzeugsteuerungen integriert sind, die von einer Haupteinheit 1310 gesteuert werden, und haptische Effekte in der Haupteinheit 1310 werden von einem Mikrocontroller gesteuert. In dieser Ausführungsform sind die Berührungssteuerung 1320 und die Formsuchfunktionen 1324 Teil eines Fahrzeugsubsystems, bei dem eine Fahrzeug-Haupteinheit 1310 auf Berührungen mit haptischem Feedback reagiert, ohne direkt in die Verarbeitungsschaltung der Haupteinheit einzugreifen. Die Berührungssteuerung 1320 ist konfiguriert, um berührte Bildschirmtasten von den Berührungspositionen aus zu identifizieren und Informationen über das Kraftniveau zu erhalten und eine Berührungszustandsmaschine mit Tastenposition zu betreiben, um den haptischen Effekt auszulösen.
  • In dieser Ausführungsform sind die Kraftverarbeitung 1326 und die Berührungsverarbeitung 1322 in eine Steuerkomponente integriert, und der Hauptbildschirm 1332 enthält die Definitionen (Bildschirmanzeige-Design 1336 und Suchbaumdefinitionen 1338) einer Reihe von geometrischen Objektbeschreibungen, die jeweils erforderlich sind, um eine Reihe von haptischen Effekten hervorzurufen, die direkt durch die Berührungssteuerung 1320 aktiviert und durch die haptische Vorrichtung 1350 ausgeführt werden.
  • So empfängt die Berührungssteuerung 1320 beispielsweise nach einer Berührung der Anzeige 1330 Kraftinformationen und Berührungsinformationen aus der Kraftverarbeitung 1326 und der Berührungsverarbeitung 1322. Die Information kann eine Kraftmessung und eine Berührungsposition auf der Anzeige einschließen. Die Formsuche 1324 liefert Informationen über das UI-Element, die dem UI-Element, falls vorhanden, entsprechen, das auf der Anzeige 1330 angezeigt wird, auf der die Berührung erfolgte. Wenn es kein UI-Element gibt, das der Position auf der Anzeige entspricht, liefert die Formsuche 1324 ein Null-Suchergebnis. Bei der Suche nach den Forminformationen eines UI-Elements kann die Formsuche 1324 die in der Haupteinheit 1310 gespeicherten Definitionen verwenden. In einer Ausführungsform kann die Formsuche 1324 die Definitionen während eines Bereitstellungsprozesses empfangen, z. B. wenn die Berührungssteuerung 1320 in die Haupteinheit 1310 integriert ist, oder wenn die Haupteinheit 1310 eingeschaltet ist. Wenn die Formsuche 1324 ein UI-Element identifiziert, werden die haptischen Informationen von der haptischen Steuerung 1328 verwendet, um eine haptische Aktivierungsnachricht an die haptische Vorrichtung 1350 zu senden, die einen haptischen Effekt und eine Position für den haptischen Effekt einschließt. Die haptische Aktivierungsnachricht kann einen Parameter enthalten, der den Grad der haptischen Wirkung anzeigt (z. B. schwach, mittel, stark). Die haptische Vorrichtung 1350 sucht nach der Definition des haptischen Effekts in der haptischen Bibliothek 1352, die auf der haptischen Vorrichtung gespeichert ist. Die haptische Vorrichtung 1350 steuert dann Aktoren an der Anzeige 1330 so, dass der spezifische Bereich der Anzeige den gewünschten haptischen Effekt aufweist. Insbesondere können verschiedene haptische Vorrichtungen unterschiedliche haptische Bibliotheken aufweisen, so dass die Effekte zwischen den Vorrichtungen unterschiedlich sein können.
  • In dieser Ausführungsform ist die GUI-Definition eine XAML-Datei, die eine Xml-Implementierung für grafische Benutzeroberflächen ist. Die XAML-Datei enthält eine hierarchisch strukturierte Liste von Zeichenanweisungen für die Bildschirmelemente der UIs der GUI. In der XAML-Datei gibt es Tags, die mit GUI-Elementen verknüpft sind. Zum Beispiel sind „Breite“, „Höhe“ und „horizontale Ausrichtung“ alles gültige Tags für bestimmte Elemente.
  • Viele der in dieser Spezifikation beschriebenen Funktionseinheiten können als Module, Threads oder andere Segregationen von Programmiercode veranschaulicht, beschrieben oder bezeichnet werden, um deren Implementierungsunabhängigkeit deutlicher hervorzuheben. Module können in der einen oder anderen Form mindestens teilweise in Hardware implementiert sein. Zum Beispiel kann ein Modul als Hardwareschaltung implementiert werden, die benutzerdefinierte VLSI-Schaltungen oder Gate-Arrays, handelsübliche Halbleiter, wie etwa Logikchips, Transistoren oder andere diskrete Komponenten umfasst. Ein Modul kann auch in programmierbaren Hardwarevorrichtungen implementiert sein, wie feldprogrammierbaren Gate-Arrays, programmierbarer Array-Logik, programmierbaren Logikvorrichtungen oder dergleichen.
  • Module können auch unter Verwendung von Software oder Firmware, die auf einer physischen Speichervorrichtung (z. B. einem computerlesbaren Speichermedium) gespeichert ist, im Speicher oder einer Kombination davon zur Ausführung durch verschiedene Arten von Prozessoren implementiert werden.
  • Ein identifiziertes Modul aus ausführbarem Code kann zum Beispiel einen oder mehrere physische oder logische Blöcke von Computeranweisungen umfassen, die zum Beispiel als Thread, Objekt, Prozedur oder Funktion organisiert sein können. Nichtsdestotrotz müssen die ausführbaren Dateien eines identifizierten Moduls nicht physisch zusammen angeordnet sein, sondern können unterschiedliche Anweisungen umfassen, die an verschiedenen Orten gespeichert sind, die, wenn sie logisch zusammengefügt werden, das Modul umfassen und den angegebenen Zweck für das Modul erreichen.
  • Tatsächlich kann ein Modul aus ausführbarem Code eine einzelne Anweisung oder viele Anweisungen sein und kann sogar über mehrere verschiedene Codesegmente, zwischen verschiedenen Programmen und über mehrere Speichervorrichtungen verteilt sein. In ähnlicher Weise können Betriebsdaten hierin innerhalb von Modulen identifiziert und veranschaulicht sein und können in irgendeiner geeigneten Form verkörpert und innerhalb irgendeiner geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einziger Datensatz gesammelt oder über verschiedene Orte, einschließlich über verschiedene Speichervorrichtungen, verteilt sein und können mindestens teilweise lediglich als elektronische Signale in einem System oder Netzwerk vorhanden sein. Wenn ein Modul oder Abschnitte eines Moduls in Software implementiert sind, werden die Softwareabschnitte auf einem oder mehreren physischen Vorrichtungen gespeichert, die hierin als computerlesbare Medien bezeichnet werden.
  • In einigen Ausführungsformen sind die Softwareabschnitte in einem nichtflüchtigen Zustand gespeichert, sodass die Softwareabschnitte oder Darstellungen davon für einen Zeitraum an demselben physischen Ort verbleiben. Zusätzlich sind in einigen Ausführungsformen die Softwareabschnitte in einer oder mehreren nichtflüchtigen Speichervorrichtungen gespeichert, die Hardwareelemente einschließen, die nichtflüchtige Zustände und/oder Signale speichern können, die für die Softwareabschnitte repräsentativ sind, obwohl andere Abschnitte der nichtflüchtigen Speichervorrichtungen in der Lage sein können, die Signale zu ändern und/oder zu übertragen. Beispiele für nichtflüchtige Speichervorrichtungen sind Flash-Speicher und Direktzugriffsspeicher (RAM). Ein anderes Beispiel einer nichtflüchtigen Speichervorrichtung schließt einen Nur-Lese-Speicher (ROM) ein, der für einen Zeitraum Signale und/oder Zustände speichern kann, die für die Softwareabschnitte repräsentativ sind. Die Fähigkeit, die Signale und/oder Zustände zu speichern, wird jedoch nicht durch weitere Funktionalität zum Übertragen von Signalen beeinträchtigt, die den gespeicherten Signalen und/oder Zuständen entsprechen oder diese repräsentieren. Zum Beispiel kann ein Prozessor auf den ROM zugreifen, um Signale zu erhalten, die für die gespeicherten Signale und/oder Zustände repräsentativ sind, um die entsprechenden Softwareanweisungen auszuführen.
  • Auf praktischer Ebene kann die Software, die es einem Computersystem ermöglicht, die hierin beschriebenen Vorgänge durchzuführen, auf einem beliebigen Medium aus einer Vielzahl von Medien bereitgestellt werden. Ferner sind die tatsächliche Umsetzung des Ansatzes und der Funktionsweise der Erfindung tatsächlich Anweisungen, die in einer Computersprache verfasst sind. Solche computersprachlichen Anweisungen, wenn sie von einem Computer ausgeführt werden, bewirken, dass der Computer gemäß dem jeweiligen Inhalt der Anweisungen handelt. Ferner kann die Software, die es einem Computersystem ermöglicht, gemäß der Erfindung zu handeln, in einer beliebigen Anzahl von Formen bereitgestellt werden, einschließlich, ohne darauf beschränkt zu sein, ursprünglicher Quellcode, Assemblercode, Objektcode, Maschinensprache, komprimierte oder verschlüsselte Versionen des Vorstehenden und alle anderen Äquivalente.
  • Der Durchschnittsfachmann wird verstehen, dass „Medien“ oder „computerlesbare Medien“, wie sie hier verwendet werden, eine Diskette, ein Band, eine CD, eine integrierte Schaltung, eine CD-ROM, eine CD, DVD, BLU-RAY, eine Kassette, einen Flash-Speicher, einen Speicherstick oder eine Speicherkarte oder jedes andere zerstörungsfreie Speichermedium einschließen können, das von Computern verwendet werden kann, einschließlich derer, die jetzt bekannt sind oder später entwickelt werden.
  • Obwohl die Ermöglichungssoftware „auf eine Disk geschrieben“, „in einer integrierten Schaltung verkörpert“, durch eine Kommunikationsschaltung „übertragen“, „in einem Speicherchip gespeichert“ oder „in einen Cache-Speicher geladen“ werden kann, ist zu beachten, dass die Software für die Zwecke dieser Anwendung einfach als „in“ oder „auf“ dem computerlesbaren Medium bezeichnet wird. Daher sollen die Begriffe „in“ oder „auf“ die oben genannten und alle gleichwertigen und möglichen Möglichkeiten umfassen, wie Software mit einem computerlesbaren Medium verknüpft werden kann.
  • Der Einfachheit halber wird daher unter dem Begriff „Computerprogrammprodukt“ ein computerlesbares Medium im vorstehend definierten Sinne verstanden, das jede Form von Software enthält, die es einem Computersystem ermöglicht, gemäß einer Ausführungsform der Erfindung zu arbeiten.
  • Während die vorliegende Offenbarung hierin in Bezug auf bestimmte veranschaulichte Ausführungsformen beschrieben wurde, werden Fachleute erkennen und anerkennen, dass die vorliegende Erfindung nicht darauf beschränkt ist. Vielmehr können viele Ergänzungen, Löschungen und Modifikationen an den dargestellten und beschriebenen Ausführungsformen vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen, wie nachfolgend zusammen mit ihren rechtlichen Äquivalenten beansprucht wird. Zusätzlich können Merkmale von einer Ausführungsform mit Merkmalen einer anderen Ausführungsform kombiniert werden, während sie immer noch im Schutzumfang der Erfindung enthalten sind, wie er von den Erfindern in Betracht gezogen wird.

Claims (30)

  1. Verfahren zum Erzeugen von Anweisungen zum Suchen nach einem Element einer grafischen Benutzeroberfläche (GUI), die auf einem kontaktempfindlichen Bildschirm angezeigt wird, das Verfahren umfassend: das Analysieren einer GUI-Definition und das Identifizieren von Elementen der GUI als Reaktion auf das Analysieren; das Erzeugen eines Datensatzes, der Einträge identifizierter Elemente umfasst; das Zuordnen der identifizierten Elemente zu Gruppen von ähnlich platzierten Elementen; das Anordnen des Datensatzes der identifizierten Elemente in einer baumartigen Struktur; das Zusammenlegen identifizierter Elemente in gleichen Gruppen zu einem einzelnen Blatt in der baumartigen Struktur; das Optimieren der baumartigen Struktur; und das Erzeugen einer Suchanweisungsliste als Reaktion auf die baumartige Struktur.
  2. Verfahren nach Anspruch 1, ferner umfassend das Erzeugen einer oder mehrerer Gruppensuchanweisungen als Reaktion auf jede Gruppe der Gruppen.
  3. Verfahren nach Anspruch 2, ferner umfassend: das Gruppieren aller identifizierten Elemente nach gemeinsamen Merkmalen; und das Neuordnen der baumartigen Struktur, um sicherzustellen, dass alle identifizierten Elementdatensätze in einem einzigen Durchlauf durchlaufen werden können; und das Eliminieren redundanter oder ineffizienter Einstellungen als Reaktion auf die Neuordnung.
  4. Verfahren nach Anspruch 3, ferner umfassend das Durchlaufen aller Knoten der baumartigen Struktur und beim Besuch jedes Knotens das Einfügen einer oder mehrerer Suchanweisungen in eine Suchanweisungsliste als Reaktion auf den besuchten Knoten.
  5. Verfahren nach Anspruch 4, wobei die Suchanweisungsliste eine XML-Datei (Extensible Markup Language) ist.
  6. Computerprogrammprodukt zum Ermöglichen, dass ein Computer ausführbare Anweisungen zum Suchen nach einem Element einer graphischen Benutzeroberfläche (GUI) erzeugt, umfassend: ein computerlesbares Medium; und Softwareanweisungen auf dem computerlesbaren Medium, die angepasst sind, um es dem Computer zu ermöglichen, die folgenden Vorgänge auszuführen: das Analysieren einer GUI-Definition und das Identifizieren von Elementen der GUI als Reaktion auf die analysierte Definition; das Erzeugen eines Datensatzes, der Einträge der identifizierten Elemente umfasst; das Zuordnen der identifizierten Elemente zu Gruppen von ähnlich platzierten Elementen; das Anordnen des Datensatzes der identifizierten Elemente in einer baumartigen Struktur; das Zusammenlegen identifizierter Elemente in gleichen Gruppen zu einem einzelnen Blatt in der baumartigen Struktur; das Optimieren der baumartigen Struktur; und das Erzeugen einer Liste von Suchanweisungen als Reaktion auf die baumartige Struktur.
  7. Computerprogrammprodukt nach Anspruch 6, wobei die Softwareanweisungen ferner so angepasst sind, dass der Computer die folgenden Vorgänge ausführen kann: Erzeugen einer oder mehrerer Gruppensuchanweisungen als Reaktion auf jede Gruppe der Gruppen.
  8. Computerprogrammprodukt nach Anspruch 7, wobei die Softwareanweisungen ferner angepasst sind, um es dem Computer zu ermöglichen, die folgenden Vorgänge auszuführen: das Gruppieren aller identifizierten Elemente nach gemeinsamen Merkmalen; und das Neuordnen der baumartigen Struktur, um sicherzustellen, dass alle identifizierten Elementdatensätze in einem einzigen Durchlauf durchlaufen werden können; und das Eliminieren redundanter oder ineffizienter Einstellungen aus dem Datensatz als Reaktion auf die Neuordnung.
  9. Computerprogrammprodukt nach Anspruch 8, wobei die Softwareanweisungen ferner angepasst sind, um es dem Computer zu ermöglichen, die folgenden Vorgänge auszuführen: Durchlaufen aller Knoten der baumartigen Struktur und beim Besuch jedes Knotens Einfügen einer oder mehrerer Suchanweisungen in eine Suchanweisungsliste als Reaktion auf den besuchten Knoten.
  10. Computerprogrammprodukt nach Anspruch 9, wobei die Suchanweisungsliste eine XML-Datei (Extensible Markup Language) ist.
  11. Mikrocontroller, der funktionsfähig mit einem Touchscreen gekoppelt ist, der konfiguriert ist, um eine grafische Benutzeroberfläche (GUI) anzuzeigen, der Mikrocontroller umfassend: mindestens einen Prozessor; eine oder mehrere ausführbare Anweisungen, die auf einem nichtflüchtigen Speichermedium gespeichert sind, wobei die Anweisungen, wenn sie vom Prozessor ausgeführt werden, so angepasst sind, dass sie es dem Prozessor ermöglichen: eine Position einer erfassten Berührung an einem Touchscreen zu bestimmen; und ein GUI-Element zu identifizieren, das dem Berührungspunkt zugeordnet ist, welcher der erfassten Berührung entspricht.
  12. Mikrocontroller nach Anspruch 11, wobei die Anweisungen ferner angepasst sind, um es dem Prozessor zu ermöglichen, als Reaktion auf das identifizierte GUI-Element eine Benutzer-Feedback-Antwort zu identifizieren.
  13. Mikrocontroller nach Anspruch 12, wobei die Anweisungen ferner angepasst sind, um es dem Prozessor zu ermöglichen, als Reaktion auf die dem identifizierten GUI-Element zugeordnete Benutzer-Feedback-Antwort ein oder mehrere Steuersignale zu erzeugen.
  14. Mikrocontroller nach Anspruch 13, wobei die Benutzer-Feedback-Antwort eine haptische Antwort ist.
  15. Mikrocontroller nach Anspruch 14, wobei die Steuersignale so konfiguriert sind, dass sie einen haptischen Treiber steuern, um einen oder mehrere Aktoren in dem Touchscreen anzuregen.
  16. Mikrocontroller nach Anspruch 15, ferner umfassend das Bestimmen eines der Berührung zugeordneten Kraftniveaus und wobei der Prozessor die ein oder mehreren Steuersignale als Reaktion auf das Kraftniveau erzeugt.
  17. Mikrocontroller nach Anspruch 11, wobei die eine oder die mehreren ausführbaren Anweisungen eine oder mehrere bedingte Suchanweisungen umfassen, die, wenn sie durch den Prozessor ausgeführt werden, so angepasst sind, dass sie es dem Prozessor ermöglichen: den Ort der Berührung mit Orten von einem oder mehreren Elementen der GUI zu vergleichen; ein GUI-Element als Reaktion auf den Vergleich auszuwählen; und eine haptische Anweisung und eine Elementkennung bereitzustellen, die dem ausgewählten GUI-Element entsprechen.
  18. Mikrocontroller nach Anspruch 17, wobei der haptische Befehl konfiguriert ist, um einen haptischen Treiber anzuweisen, einen oder mehrere Aktoren in einem Touchscreen als Reaktion auf den haptischen Befehl zu erregen.
  19. Verfahren zum Identifizieren eines Elements einer grafischen Benutzeroberfläche (GUI), die auf einem Touchscreen angezeigt wird, das Verfahren umfassend: das Bestimmen einer Position einer erfassten Berührung an einem Touchscreen; das Ausführen einer oder mehrerer Suchanweisungen, als Reaktion auf die Position, wobei jede Suchanweisung der einen oder der mehreren Suchanweisungen einem GUI-Element entspricht, und, wenn sie ausgeführt wird, angepasst ist, um ein Suchergebnis zurückzugeben; und das Identifizieren eines GUI-Elements als Reaktion auf das Suchergebnis.
  20. Verfahren nach Anspruch 19, ferner umfassend das Identifizieren einer Benutzer-Feedback-Antwort als Reaktion auf das identifizierte GUI-Element.
  21. Verfahren nach Anspruch 20, ferner umfassend das Erzeugen eines oder mehrerer Steuersignale als Reaktion auf die dem identifizierten GUI-Element zugeordnete Benutzer-Feedback- Antwort.
  22. Verfahren nach Anspruch 21, wobei die Benutzer-Feedback-Antwort eine haptische Antwort ist.
  23. Verfahren nach Anspruch 22, wobei die Steuersignale so konfiguriert sind, dass sie einen haptischen Treiber steuern, um einen oder mehrere Aktoren in dem Touchscreen anzuregen.
  24. Verfahren nach Anspruch 23, ferner umfassend das Bestimmen eines der Berührung zugeordneten Kraftniveaus und wobei der Prozessor die ein oder mehreren Steuersignale als Reaktion auf das Kraftniveau erzeugt.
  25. Verfahren nach Anspruch 19, wobei jede Suchanweisung eine Nutzlast einschließt, die als Reaktion auf den Suchbaum eingefügt wird.
  26. System, umfassend: ein Anzeigesubsystem, das konfiguriert ist, um eine Anzeige zu steuern; ein Berührungssubsystem, das einen Berührungssensor und eine Berührungssteuerung umfasst, wobei die Berührungssteuerung konfiguriert ist, um: eine Position einer erfassten Berührung an dem Berührungssensor zu bestimmen; um eine oder mehrere Suchanweisungen, als Reaktion auf die Position und einen Suchbaum auszuführen, wobei jede Suchanweisung der einen oder der mehreren Suchanweisungen einem GUI-Element entspricht, und, wenn sie ausgeführt wird, angepasst ist, um ein Suchergebnis zurückzugeben; um ein GUI-Element als Reaktion auf das Suchergebnis zu identifizieren, und um eine haptische Steuernachricht als Reaktion auf das identifizierte GUI-Element zu erzeugen.
  27. System nach Anspruch 26, ferner umfassend ein haptisches Feedback-Subsystem, das konfiguriert ist, um haptisches Feedback auf der Anzeige zu erzeugen.
  28. System nach Anspruch 26, wobei einige der einen oder mehreren Suchanweisungen eine Sprunganweisung umfassen, die einer anderen Suchanweisung der einen oder mehreren Suchanweisungen zugeordnet ist, die, wenn sie ausgeführt wird, zum Laden der anderen Suchanweisung konfiguriert ist.
  29. System nach Anspruch 28, wobei die Sprunganweisungen die Ausführung der einen oder mehreren Suchanweisungen in einer baumartigen Reihenfolge ermöglichen.
  30. System nach Anspruch 26, ferner umfassend eine Kraftfahrzeug-Haupteinheit.
DE112018002527.6T 2017-05-18 2018-05-18 Techniken zur identifizierung von benutzeroberflächenelementen und systeme und vorrichtungen, die diese verwenden Pending DE112018002527T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762507902P 2017-05-18 2017-05-18
US62/507,902 2017-05-18
PCT/IB2018/053535 WO2018211478A1 (en) 2017-05-18 2018-05-18 Techniques for identifying user interface elements and systems and devices using the same

Publications (1)

Publication Number Publication Date
DE112018002527T5 true DE112018002527T5 (de) 2020-09-03

Family

ID=62620911

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018002527.6T Pending DE112018002527T5 (de) 2017-05-18 2018-05-18 Techniken zur identifizierung von benutzeroberflächenelementen und systeme und vorrichtungen, die diese verwenden

Country Status (7)

Country Link
US (2) US11157083B2 (de)
JP (2) JP7303119B2 (de)
KR (2) KR102316698B1 (de)
CN (1) CN110637283B (de)
DE (1) DE112018002527T5 (de)
TW (1) TWI670639B (de)
WO (1) WO2018211478A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949174B2 (en) * 2018-10-31 2021-03-16 Salesforce.Com, Inc. Automatic classification of user interface elements
US10963694B2 (en) * 2018-10-31 2021-03-30 Salesforce.Com, Inc. Duplicate user interface design identification
US10761818B2 (en) * 2018-10-31 2020-09-01 Salesforce.Com, Inc. Automatic identification of types of user interface components
CN111290677B (zh) * 2018-12-07 2023-09-19 中电长城(长沙)信息技术有限公司 一种自助设备导航方法及其导航系统
CN113366492B (zh) * 2020-09-08 2024-03-01 尤帕斯公司 专用图形元素检测
US11385777B2 (en) 2020-09-14 2022-07-12 UiPath, Inc. User interface (UI) mapper for robotic process automation
KR20220055969A (ko) 2020-10-27 2022-05-04 삼성에스디에스 주식회사 비표준 사용자 인터페이스 객체 식별 시스템 및 방법

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954218B2 (en) * 2000-10-30 2005-10-11 Microsoft Corporation Method and apparatus for high-performance rendering and hit-testing of a window tree
US20040090458A1 (en) * 2002-11-12 2004-05-13 Yu John Chung Wah Method and apparatus for previewing GUI design and providing screen-to-source association
US7174328B2 (en) * 2003-09-02 2007-02-06 International Business Machines Corp. Selective path signatures for query processing over a hierarchical tagged data structure
US7499921B2 (en) * 2004-01-07 2009-03-03 International Business Machines Corporation Streaming mechanism for efficient searching of a tree relative to a location in the tree
US8406748B2 (en) * 2009-01-28 2013-03-26 Headwater Partners I Llc Adaptive ambient services
US9529573B2 (en) * 2009-01-28 2016-12-27 Microsoft Technology Licensing, Llc Graphical user interface generation through use of a binary file
US10007340B2 (en) * 2009-03-12 2018-06-26 Immersion Corporation Systems and methods for interfaces featuring surface-based haptic effects
US20110099498A1 (en) * 2009-10-26 2011-04-28 Barkol Omer Graphical user interface hierarchy generation
US8386965B2 (en) 2010-01-15 2013-02-26 Apple Inc. Techniques and systems for enhancing touch screen device accessibility through virtual containers and virtually enlarged boundaries
US20120131556A1 (en) * 2010-11-19 2012-05-24 International Business Machines Corporation Xpath-based selection assistance of gui elements during manual test script authoring for xml-based applications
JP5747673B2 (ja) * 2011-06-10 2015-07-15 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
EP2756379A1 (de) * 2011-09-13 2014-07-23 Newman Infinite, Inc. Vorrichtung, verfahren und computerlesbares speichermedium zur handhabung eines benutzerschnittstellenelements
KR102091077B1 (ko) 2012-12-14 2020-04-14 삼성전자주식회사 입력 유닛의 피드백을 제어하는 휴대 단말 및 방법과, 이를 제공하는 상기 입력 유닛 및 방법
KR20140106996A (ko) 2013-02-27 2014-09-04 삼성전자주식회사 햅틱을 제공하는 방법 및 장치
CA2815153A1 (en) * 2013-05-06 2014-11-06 Ibm Canada Limited - Ibm Canada Limitee Document order management via binary tree projection
EP3144780A1 (de) * 2013-06-11 2017-03-22 Immersion Corporation Systeme und verfahren für druckbasierte haptische effekte
US20140372419A1 (en) * 2013-06-13 2014-12-18 Microsoft Corporation Tile-centric user interface for query-based representative content of search result documents
CN106164839B (zh) * 2014-02-04 2019-10-22 触觉实验室股份有限公司 以减小的等待时间提供对输入的视觉响应的方法
US10437742B2 (en) * 2014-10-10 2019-10-08 Microsoft Technology Licensing, Llc Vendor-specific peripheral device class identifiers
EP3035179A1 (de) * 2014-12-19 2016-06-22 Thomson Licensing Datenverarbeitungsvorrichtung und Verfahren zur Darstellung einer Baumstruktur
US10572129B2 (en) * 2014-12-24 2020-02-25 Sap Portals Isreal Ltd Declarative user interface representation conversion via hierarchical templates
WO2016189017A1 (de) 2015-05-26 2016-12-01 Volkswagen Aktiengesellschaft Bedienvorrichtung mit schneller haptischer rückmeldung
DE102015200038A1 (de) 2015-01-05 2016-07-07 Volkswagen Aktiengesellschaft Vorrichtung und Verfahren in einem Kraftfahrzeug zur Eingabe eines Textes über virtuelle Bedienelemente mit haptischer Rückkopplung zur Simulation einer Tastenhaptik
US20170192942A1 (en) * 2016-01-06 2017-07-06 Google Inc. Hierarchical positioned event dispatch

Also Published As

Publication number Publication date
KR20210130820A (ko) 2021-11-01
TWI670639B (zh) 2019-09-01
US11157083B2 (en) 2021-10-26
WO2018211478A1 (en) 2018-11-22
TW201908954A (zh) 2019-03-01
US11809626B2 (en) 2023-11-07
KR102316698B1 (ko) 2021-10-25
KR20200003178A (ko) 2020-01-08
JP7303119B2 (ja) 2023-07-04
CN110637283B (zh) 2024-03-08
US20200159332A1 (en) 2020-05-21
JP2023078134A (ja) 2023-06-06
CN110637283A (zh) 2019-12-31
JP2020520517A (ja) 2020-07-09
US20180335849A1 (en) 2018-11-22

Similar Documents

Publication Publication Date Title
DE112018002527T5 (de) Techniken zur identifizierung von benutzeroberflächenelementen und systeme und vorrichtungen, die diese verwenden
DE112018005206T5 (de) Berührungsempfindliche Benutzeroberfläche einschliesslich konfigurierbarer virtueller Widgets
DE60133343T2 (de) Verfahren und System in einem elektronischen Kalkulationsblatt für die Handhabung von benutzerdefinierten Optionen in einer Ausschneiden-Kopieren-Einfügen-Funktion
DE60106779T2 (de) Verfahren und systeme zur rand-darstellung pro merkmal
DE102016214786A1 (de) Anwendungsprofiling-Jobmanagement-System, -Programm und -Verfahren
US20130321285A1 (en) Touch screen device data filtering
CN106775766B (zh) 一种在线通用可视化开发人机交互界面的系统及方法
JPH0793527A (ja) オブジェクト指向グラフィック入力及びディスプレイシステム
US5272767A (en) Interactive data analysis with crossbar control
DE102015221517A1 (de) Bedienmodul zum Bedienen einer Maschine in der Lebensmittelindustrie
DE102004003092A1 (de) Verfahren zum Auflösen nicht richtig angepaßter Parameter bei einem rechnergestützten Entwurf für integrierte Schaltungen
EP3163425B1 (de) Verfahren zum betreiben eines rechnersystems
DE102017000569A1 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Ermitteln von Eingabebereichen an einer grafischen Benutzeroberfläche
US10521332B1 (en) Parametrization of a simulation model
DE102010012307B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verfahrensablaufs für eine speicherprogrammierbare Steuerung
EP3001318A1 (de) Bestimmung von Signalen für Readback aus FPGA
DE112018007216T5 (de) Eingabesteuerungsvorrichtung, Anzeigeeingabevorrichtung und Eingabesteuerungsverfahren
DE102017127400A1 (de) Festschreiben von technischen Entwicklungsdaten
DE19746393A1 (de) Dynamisches Mustererkennungssystem
DE102020129810A1 (de) Dynamische ausschlusszone für physische steuerelemente von touchscreens
JPH087685B2 (ja) ル−ル動作モニタシステム
DE112021007546T5 (de) Numerische steuervorrichtung, bildschirm-erstellungssystem und speichermedium zum speichern einer durch die numerische steuervorrichtung lesbaren anweisung
DE102020206621A1 (de) Verfeinerung von Abdeckungsanalysen unter Verwendung von Kontextinformation
O'Donnell et al. The Interactive Display Design Tool: An Application Program for Part-Task Simulation Development
EP3377971A1 (de) Verfahren zum betrieb eines computersystems, computerprogramm mit einer implementation des verfahrens und zur ausführung des verfahrens bestimmtes computersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed