DE112018005206T5 - Berührungsempfindliche Benutzeroberfläche einschliesslich konfigurierbarer virtueller Widgets - Google Patents

Berührungsempfindliche Benutzeroberfläche einschliesslich konfigurierbarer virtueller Widgets Download PDF

Info

Publication number
DE112018005206T5
DE112018005206T5 DE112018005206.0T DE112018005206T DE112018005206T5 DE 112018005206 T5 DE112018005206 T5 DE 112018005206T5 DE 112018005206 T DE112018005206 T DE 112018005206T DE 112018005206 T5 DE112018005206 T5 DE 112018005206T5
Authority
DE
Germany
Prior art keywords
virtual
touch
gui
widget
elements
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
DE112018005206.0T
Other languages
English (en)
Inventor
William Liddell
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112018005206T5 publication Critical patent/DE112018005206T5/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/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/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03547Touch pads, in which fingers can move on a surface
    • 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/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • 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]
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • 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/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
    • G06F3/04883Interaction 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 for inputting data by handwriting, e.g. gesture or text
    • 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
    • G06F3/04886Interaction 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 by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04809Textured surface identifying touch areas, e.g. overlay structure for a virtual keyboard

Abstract

Eine berührungsempfindliche grafische Benutzeroberfläche (GUI) kann einen Touchscreen beinhalten, der zum Anzeigen einer grafischen Benutzeroberfläche konfiguriert ist, die eine Anordnung von einem oder mehreren virtuellen Widgets aufweist, wobei jedes virtuelle Widget eine Form aufweist und ein oder mehrere Benutzeroberflächenelemente beinhaltet, die über die grafische Benutzeroberfläche angezeigt werden. Die Anordnung des einen oder der mehreren virtuellen Widgets ist konfigurierbar. Ein Mikrocontroller kann konfiguriert sein, um eine Berührung auf dem Touchscreen zu erfassen, ein virtuelles Widget zu identifizieren, das der Berührung zugehörig ist, und eine Aktion einzuleiten, die zumindest eine der folgenden Maßnahmen aufweist: (a) Ansteuern eines Aktuators, um haptisches Feedback in einem Bereich des Touchscreens bereitzustellen in dem das identifizierte virtuelle Widget angezeigt wird oder (b) Ansteuern einer elektronischen Vorrichtung, die dem Benutzeroberflächensystem zugeordnet ist.

Description

  • VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität gegenüber (a) der vorläufigen US-Patentanmeldung Nr. 62 / 576,383 , eingereicht am 24. Oktober 2017, und (b) der vorläufigen US-Patentanmeldung Nr. 62 / 576,563 der USA, eingereicht am 24. Oktober 2017, deren gesamter Anmeldungsinhalt hiermit für alle Zwecke durch Bezugnahme aufgenommen wird.
  • TECHNISCHEN GEBIET DER ERFINDUNG
  • Die vorliegende Offenbarung bezieht sich auf berührungsempfindliche Benutzerschnittstellen, z. B. Touchscreens, und insbesondere auf eine berührungsempfindliche Benutzerschnittstelle unter Verwendung einer Anordnung konfigurierbarer virtueller Widgets.
  • HINTERGRUND DER ERFINDUNG
  • Touch-Schnittstellen mit Touch-Sensing werden für eine Vielzahl von Anwendungen verwendet, beispielsweise für Tablet-Computer, PCs, Smartphones und andere Verbraucherprodukte. Sie werden auch als Bedienfelder für Automobile, Vorrichtungen (z. B. Kühlschränke, Öfen, Waschmaschinen / Trockner usw.), Heizungs- und Klimaanlagensteuerungssysteme, Sicherheitssysteme, Geldautomaten (ATMs) verwendet. Eine Berührungsschnittstelle in diesen Anwendungen kann beispielsweise ein Berührungspad sein oder einen Bildschirm und eine grafische Benutzerschnittstelle (GUI) beinhalten.
  • ZUSAMMENFASSUNG
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Verfahren zum Erstellen von Anweisungen zum Suchen nach einem Element einer grafischen Benutzerschnittstelle (GUI), die auf einem berührungsempfindlichen Bildschirm angezeigt wird, z. B. einem Touchscreen unter Verwendung einer herkömmlichen gitterartigen Berührungspositionsrückmeldung. Das Verfahren weist das Parsen einer GUI-Definition und das Identifizieren von Elementen der GUI auf, die auf das Parsen ansprechen; Erstellen eines Datensatzes mit Einträgen identifizierter Elemente; Zuordnen der identifizierten Elemente zu Gruppen ähnlich angeordneter Elemente; Anordnen des Datensatzes identifizierter Elemente in einer baumartigen Struktur; Zusammenfassen identifizierter Elemente in denselben Gruppen zu einem einzigen Blatt in der baumartigen Struktur; Optimierung der baumartigen Struktur; und Erstellen einer Suchanweisungsliste, die auf die baumartige Struktur reagiert.
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Computerprogrammprodukt um einen Computer in die Lage zu versetzen, ausführbare Anweisungen zum Suchen nach einem Element einer grafischen Benutzerschnittstelle (GUI) zu erstellen. Das Programmprodukt kann ein computerlesbares Medium und Softwareanweisungen auf dem computerlesbaren Medium beinhalten. Die Softwareanweisungen auf dem computerlesbaren Medium sind so angepasst, dass der Computer folgende Vorgänge ausführen kann: Analysieren einer GUI-Definition und Identifizieren von Elementen der GUI, die auf die analysierte GUI-Definition ansprechen; Erstellen eines Datensatzes mit Einträgen der identifizierten Elemente; Zuordnen der identifizierten Elemente zu Gruppen ähnlich angeordneter Elemente; Anordnen des Datensatzes identifizierter Elemente in einer baumartigen Struktur; Zusammenfassen identifizierter Elemente in denselben Gruppen zu einem einzigen Blatt in der baumartigen Struktur; Optimierung der baumartigen Struktur; und Erstellen einer Liste von Suchanweisungen, die auf die baumartige Struktur ansprechen.
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf einen Mikrocontroller, der Funktionsfähig mit einem Touchscreen gekoppelt ist, der konfiguriert ist, um eine grafische Benutzerschnittstelle (GUI) anzuzeigen. Der Mikrocontroller beinhaltet zumindest einen Prozessor und einen oder mehrere ausführbare Anweisungen, die auf einem nicht flüchtigen Speichermedium gespeichert sind. Die Anweisungen werden, wenn sie vom Prozessor ausgeführt werden, so angepasst, dass der Prozessor: einen Ort einer erfassten Berührung auf einem Touchscreen bestimmen kann; und ein GUI-Element identifiziert, das dem Ort der Berührung zugeordnet ist, der der erfassten Berührung entspricht.
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Verfahren zum Identifizieren eines Elements einer grafischen Benutzerschnittstelle (GUI), die auf einem Touchscreen angezeigt wird. Das Verfahren weist das Bestimmen eines Ortes einer erfassten Berührung auf einem Touchscreen auf; Ausführen eines oder mehrerer Suchbefehle als Reaktion auf den Ort, wobei jeder Suchbefehl des einen oder der mehreren Suchbefehle einem GUI-Element entspricht und bei Ausführung angepasst wird, um ein Suchergebnis zurückzugeben; und Identifizieren eines GUI-Elements, das auf das Suchergebnis reagiert.
  • Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein System. Das System weist ein Anzeige-Subsystem und ein Touch-Subsystem auf. Das Anzeigesubsystem ist zur Steuerung einer Anzeige konfiguriert. Das Touch-Subsystem umfasst einen Touch-Sensor und einen Touch-Controller. Der Touch-Controller ist konfiguriert, um einen Ort einer am Touch-Sensor erfassten Berührung zu bestimmen; einen oder mehrere Suchbefehle auszuführen, die auf den Ort und einen Suchbaum ansprechen, wobei jeder Suchbefehl des einen oder der mehreren Suchbefehle einem GUI-Element entspricht und bei Ausführung angepasst ist, um ein Suchergebnis zurückzugeben; ein GUI-Element zu identifizieren, das auf das Suchergebnis reagiert; und eine haptische Steuerungsnachricht zu erzeugen, die auf das identifizierte GUI-Element anspricht.
  • Einige Ausführungsformen der Offenbarung weisen ein kontaktempfindliches GUI auf, das virtuelle Widgets verwendet, die jeweils eine Zusammenstellung von Formen (z. B. einschließlich eines oder mehrerer aktiver UI-Elemente) aufweisen, die in einem darstellbaren GUI-Bildschirm beinhaltet sind. Ein virtuelles Widget kann beispielsweise eine definierte Zusammenstellung mehrerer Instanzen und / oder Typen von virtuellen Schaltflächen, Schiebereglern, Reglern, Drehknöpfen usw. aufweisen. Als ein anderes Beispiel kann ein virtuelles Widget eine definierte Zusammenstellung aktiver Elemente aufweisen, die gemeinsam eine Schnittstelle zur Steuerung einer definierten Funktion definieren.
  • In einigen Ausführungsformen können virtuelle Widgets auf dem Touchscreen angezeigt werden, in einigen Ausführungsformen existieren sie jedoch nur im Kontext eines Touchscreen-Konfigurationsmoduls / -prozesses und auf der Touchscreen-Anzeige. Virtuelle Widgets können an eine Haupteinheit berichten. Die Verwendung virtueller Widgets kann die Komplexität der physischen Schnittstelle der berührungsempfindlichen Benutzeroberfläche verringern. Beispielsweise kann die Verwendung von virtuellen Widgets den Overhead auf der Haupteinheit zur Verarbeitung von Berührungspositionen verringern und erfordert möglicherweise keine separate Hardware oder Elektronik für physische Drehregler, Schieberegler usw., z. B. für Heizungssteuerungen, Radiosteuerungen oder andere Arten von Steuerungen.
  • Einige Ausführungsformen stellen Systeme und Verfahren zum Definieren von Bereichen eines Touchscreens (z. B. Bereiche auf einer konfigurierten Bildschirmseite) bereit, die als virtuelle Widgets (z. B. Schaltflächen, Schieberegler, Drehknöpfen usw.) betrieben werden können. Wenn eine Berührung auf dem Touchscreen erkannt wird, kann ein Touch-Controller eine Position oder einen Zustand des Widgets bestimmen, die der Benutzerberührung entsprechen (z. B. die lineare Position eines virtuellen Schiebereglers oder die Drehposition eines virtuellen Zifferblatts, die der erkannten Berührungsposition entspricht) und meldet solche Positions- / Statusinformationen in einer „Widget-Nachricht“ an die Haupteinheit, anstatt oder zusätzlich zu einer „Touch-Nachricht“, die die Position der Berührung auf dem Touchscreen angibt. Widget-Nachrichten können beispielsweise eine vom Benutzer ausgewählte Position, Drehung, den Status „berührt“ und / oder die Anzahl der erkannten Berührungen eines jeweiligen Widgets anzeigen, die dem erkannten Berührungsort, der erkannten Kraft und / oder einem anderen messbaren Aspekt der auf dem Touchscreen erkannten Berührung entsprechen. In einer Ausführungsform können Widget-Nachrichten auch einen berührt / unberührt Zustand eines Satzes von Widgets, z. B. Schaltflächen oder Tasten, melden.
  • In einigen Ausführungsformen oder Situationen kann eine Aktion des Berührens einer virtuellen Schaltfläche / eines virtuellen Widgets dazu führen, dass eine „Seite“ aktualisiert oder Schaltflächen auf dem Bildschirm auf eine Weise aktiviert / deaktiviert werden, die für zukünftige Tastendrücke bestehen bleibt (z. B. durch Selbständerung des Haupteinheit-Schnittstelle), die zu diesem Zeitpunkt (abhängig von der Ausführungsform oder Konfiguration) einen Widget-Bericht an die Head-Unit senden kann oder nicht, aber dieselben Stellen auf dem Touchscreen können danach andere Ergebnisse liefern, z. B. das Umschalten von Radio auf Heizungssteuerung. Infolgedessen muss die Haupteinheit nur die Anzeige aktualisieren, um sie an das ausgewählte Seitenbild anzupassen.
  • Zusätzlich kann in einigen Ausführungsformen, wenn die Touchscreen-Steuerung so eingestellt ist, dass sie Seiten im Bildschirmspeicher steuert, die Steuerung einen Prozess ausführen, um Seiten im Bildschirmspeicher über SPI oder eine andere verfügbare GPIO-Schnittstelle auszuwählen, um einer relevanten Widget-Seiten-ID zu entsprechen. In einer solchen Konfiguration kann der Touchscreen-Controller Bildschirmseiten als Ganzes auswählen und anzeigen, anstatt Formen auf dem Bildschirm zu zeichnen. Die verschiedenen Bildschirmseiten können beispielsweise nur die Beschriftungen eines definierten Satzes von Schaltflächen oder Tasten ändern. Eine solche Konfiguration kann sehr flexibel sein und Verzögerungen beim Transport von Nachrichten der Haupteinheit beseitigen und sehr reaktionsschnell sein.
  • Die Verwendung virtueller Widgets kann die erforderliche Verarbeitung einer Haupteinheit vereinfachen. Beispielsweise kann die Verwendung virtueller Widgets es einem einzelnen Bildschirmdesign ermöglichen, mehrere Anwendungen aufzuweisen. Beispielsweise kann eine Schnittstelle über eine geeignete Konfiguration jede Produktvariante handhaben.
  • Figurenliste
  • Beispielhafte Aspekte und Ausführungsformen der vorliegenden Offenbarung werden nachstehend in Verbindung mit den folgenden beigefügten Zeichnungen beschrieben:
    • 1 ist ein Flussdiagramm, das den Prozess des Erzeugens und Verwendens einer Suchaufgabenliste zum Identifizieren kontaktierter UI-Elemente in einer GUI veranschaulicht;
    • 2 ist ein Flussdiagramm eines Prozesses zum Erzeugen einer Suchaufgabenliste 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 zum Erzeugen eines Zwischensuchbaums gemäß einer Ausführungsform der Offenbarung;
    • 5 ist ein Flussdiagramm eines Prozesses zum Erzeugen eines Suchaufgabenbaums gemäß einer Ausführungsform der Offenbarung;
    • 6 ist ein Flussdiagramm eines Prozesses zum Erzeugen einer Suchaufgabenliste gemäß einer Ausführungsform der Offenbarung;
    • 7 ist ein Flussdiagramm eines Suchprozesses für UI-Elemente / Formen, um zu bestimmen, ob eine Berührung innerhalb eines UI-Elements gemäß einer Ausführungsform der Offenbarung aufgetreten ist;
    • 8 zeigt eine Ausführungsform einer Radio-GUI, die aus UI-Elementen besteht (verfügbar in Farbe);
    • 9 zeigt die UI-Elemente der Radio-GUI von 8, gruppiert gemäß Ausführungsformen der Offenbarung (in Farbe verfügbar);
    • 10A bis 10E zeigen UI-Elemente in einer Baumstruktur, die gemäß Ausführungsformen der Offenbarung gebildet wurde. (in Farbe verfügbar);
    • 11 zeigt eine Ausführungsform eines Systems, das Suchaufgabenlisten beinhaltet;
    • 12 zeigt eine Ausführungsform einer Radio-GUI, die Merkmale und Parameter beinhaltet, die zumindest einigen der UI-Elemente der Radio-GUI zugeordnet sind (in Farbe verfügbar);
    • 13 veranschaulicht eine Ausführungsform des Systems von 11, das als Teilsystem in einer Haupteinheit eines Automobils eingebaut ist;
    • 14 veranschaulicht ein beispielhaftes Touchscreen-System, das virtuelle Widgets gemäß einer beispielhaften Ausführungsform wie hierin offenbart verwendet; und
    • 15 veranschaulicht eine beispielhafte Radio-Touchscreen-GUI mit einer Anordnung von virtuellen Widgets, die gemäß einer beispielhaften Ausführungsform verschiedene Gruppen von UI-Elementen beinhalten.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil von dieser bilden und in denen zur Veranschaulichung spezifische Beispiele von Ausführungsformen gezeigt sind, in denen die vorliegende Offenbarung praktiziert werden kann. Diese Ausführungsformen werden ausreichend detailliert beschrieben, um es einem gewöhnlichen Fachmann zu ermöglichen, die vorliegende Offenbarung zu praktizieren. Es können jedoch andere Ausführungsformen verwendet werden, und Struktur-, Material- und Prozessänderungen können vorgenommen werden, ohne vom Schutzumfang der Offenbarung abzuweichen. Die hier dargestellten Abbildungen sollen keine tatsächlichen Ansichten eines bestimmten Verfahrens, Systems, einer bestimmten Vorrichtung oder Struktur sein, sondern sind lediglich idealisierte Darstellungen, die zur Beschreibung der Ausführungsformen der vorliegenden Offenbarung verwendet werden. Die hier dargestellten Zeichnungen sind nicht unbedingt maßstabsgetreu gezeichnet. Ähnliche Strukturen oder Komponenten in den verschiedenen Zeichnungen können zur Vereinfachung des Lesens dieselbe oder eine ähnliche Nummerierung beibehalten; die Ähnlichkeit bei der Nummerierung bedeutet jedoch nicht, dass die Strukturen oder Komponenten in Größe, Zusammensetzung, Konfiguration oder anderen Eigenschaften notwendigerweise identisch sind.
  • Es versteht sich von selbst, dass die Komponenten der Ausführungsformen, wie sie hier allgemein beschrieben und in den Zeichnungen dargestellt sind, in einer Vielzahl verschiedener Konfigurationen angeordnet und konstruiert sein könnten. Somit soll die folgende Beschreibung verschiedener Ausführungsformen den Umfang der vorliegenden Offenbarung nicht einschränken, sondern ist lediglich repräsentativ für verschiedene Ausführungsformen. Während die verschiedenen Aspekte der Ausführungsformen in Zeichnungen dargestellt werden können, sind die Zeichnungen nicht notwendigerweise maßstabsgetreu gezeichnet, es sei denn, dies ist ausdrücklich angegeben.
  • Die folgende Beschreibung kann Beispiele beinhalten, die es einem Durchschnittsfachmann ermöglichen, die offenbarten Ausführungsformen zu praktizieren. Die Verwendung der Begriffe „beispielhaft“, „als Beispiel“ und „zum Beispiel“ bedeutet, dass die zugehörige Beschreibung erklärend ist, und obwohl der Umfang der Offenbarung die Beispiele und rechtlichen Äquivalente umfassen soll, beabsichtigt die Verwendung solcher Begriffe nicht, den Schutzumfang einer Ausführungsform oder dieser Offenbarung auf die angegebenen Komponenten, Schritte, Merkmale, Funktionen oder dergleichen beschränken.
  • Darüber hinaus sind die gezeigten und beschriebenen spezifischen Implementierungen nur Beispiele und sollten nicht als die einzige Möglichkeit 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 in unnötigen Details zu verschleiern. Umgekehrt sind die gezeigten und beschriebenen spezifischen Implementierungen nur beispielhaft und sollten nicht als die einzige Möglichkeit zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Darüber hinaus sind Blockdefinitionen und die Aufteilung der Logik zwischen verschiedenen Blöcken beispielhaft für eine bestimmte Implementierung. Ein gewöhnlicher Fachmann wird leicht erkennen, dass die vorliegende Offenbarung durch zahlreiche andere Teillösungen ausgeübt werden kann. Zum größten Teil wurden Details bezüglich zeitlicher Überlegungen und dergleichen weggelassen, wenn solche Details nicht notwendig sind, um ein vollständiges Verständnis der vorliegenden Offenbarung zu erhalten, und innerhalb der Fähigkeiten von Personen mit gewöhnlichem Fachwissen liegen.
  • Ein gewöhnlicher Fachmann würde verstehen, dass Informationen und Signale unter Verwendung einer Vielzahl verschiedener Technologien und Techniken dargestellt werden können. Beispielsweise 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 dargestellt werden davon. Einige Zeichnungen können Signale zur Klarheit der Darstellung und Beschreibung als einzelnes Signal darstellen. Es ist für den gewöhnlichen Fachmann verständlich, dass das Signal einen Signalbus darstellen kann, wobei der Bus eine Vielzahl von Bitbreiten aufweisen kann und die vorliegende Offenbarung auf einer beliebigen Anzahl von Datensignalen einschließlich einem einzelnen Datensignal implementiert werden kann.
  • Die verschiedenen veranschaulichenden logischen Blöcke, Module und Schaltungen, die in Verbindung mit den hierin offenbarten Ausführungsformen beschrieben sind, 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 programmierbaren Logikvorrichtung, einer diskreten Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon implementiert oder ausgeführt werden, die zur Ausführung der hier beschriebenen Funktionen ausgelegt ist. Ein Allzweckprozessor (kann hier auch als Host-Prozessor oder einfach als Host bezeichnet werden) kann ein Mikroprozessor sein, aber alternativ kann der Prozessor ein beliebiger herkömmlicher Prozessor, Controller, Mikrocontroller oder eine Zustandsmaschine sein. Ein Prozessor kann auch als eine Kombination von Rechenvorrichtungen implementiert sein, wie beispielsweise eine Kombination eines DSP und eines Mikroprozessors, einer Vielzahl von Mikroprozessoren, eines oder mehrerer Mikroprozessoren in Verbindung mit einem DSP-Kern oder einer anderen solchen Konfiguration. Ein Allzweckcomputer mit einem Prozessor wird als Spezialcomputer betrachtet, während der Allzweckcomputer 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 Form eines Prozesses beschrieben werden, der als Flusschart, Flussdiagramm, Strukturdiagramm oder 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 ausgeführt werden. Außerdem kann die Reihenfolge der Handlungen geändert werden.
  • Ein Prozess kann einem Verfahren, einem Thread, einer Funktion, einer Prozedur, einer Unterroutine, einem Unterprogramm usw. entsprechen. Weiterhin können die hier offenbarten Verfahren in Hardware, Software oder beidem implementiert sein. Wenn sie in Software implementiert sind, können die Funktionen als eine oder mehrere Anweisungen oder ein Code auf computerlesbaren Medien gespeichert oder übertragen werden. Computerlesbare Medien umfassen sowohl Computerspeichermedien als auch Kommunikationsmedien, einschließlich aller Medien, die die Übertragung eines Computerprogramms von einem Ort zum anderen erleichtern.
  • Jede Bezugnahme auf ein Element hierin, das eine Bezeichnung wie „erste“, „zweite“ usw. verwendet, 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 hier als zweckmäßiges Verfahren zur Unterscheidung zwischen zwei oder mehr Elementen oder Instanzen eines Elements verwendet werden. Ein Verweis auf das erste und das zweite Element bedeutet also nicht, dass dort nur zwei Elemente verwendet werden dürfen oder dass das erste Element dem zweiten Element in irgendeiner Weise vorangehen muss. Sofern nicht anders angegeben, kann ein Satz von Elementen außerdem ein oder mehrere Elemente aufweisen.
  • Wie hierin verwendet, bedeutet und umfasst der Begriff „im Wesentlichen“ in Bezug auf einen gegebenen Parameter, eine gegebene Eigenschaft oder einen gegebenen Zustand in einem Ausmaß, dass ein Durchschnittsfachmann verstehen würde, dass der gegebene Parameter, die gegebene Eigenschaft oder die gegebene Bedingung mit einem kleinen Varianzgrad erfüllt ist, wie zum Beispiel innerhalb akzeptabler Fertigungstoleranzen. Beispielsweise kann in Abhängigkeit von dem bestimmten Parameter, der Eigenschaft oder der Bedingung, die im Wesentlichen erfüllt ist, der Parameter, die Eigenschaft oder die Bedingung zu zumindest 90%, zu zumindest 95% oder sogar zu zumindest 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 Benutzerschnittstelle ausgewählt wurden, und zum Verwenden dieser Techniken, um eine oder mehrere haptische Antworten bereitzustellen. Wie für die Zwecke der hier beschriebenen Ausführungsformen verstanden, kann ein Kontaktsensor auf den Kontakt eines Objekts (wie eines Fingers oder eines Stifts) mit oder die Nähe des Objekts zu einem kontaktempfindlichen Bereich einer Berührungsschnittstelle ansprechen. In dieser Offenbarung bezieht sich „Kontakt“ im Allgemeinen auf den physischen Kontakt eines Objekts mit einem kontaktempfindlichen Bereich, kann jedoch auch die unmittelbare Nähe eines Objekts umfassen, die eine messbare Reaktion durch den Kontaktsensor erzeugt. Weiterhin bezieht sich ein kontaktempfindlicher Bereich auf den physischen Bereich auf einer Berührungsschnittstelle, in dem ein Kontaktsensor auf den Kontakt eines Objekts ansprechen kann.
  • Eine kontaktempfindliche Benutzeroberfläche oder ein Touchscreen, wie es hier verwendet wird, bezieht sich auf eine in eine Benutzeroberfläche integrierte Berührungsoberfläche. Beispielsweise beinhaltet eine GUI typischerweise einen oder mehrere Anzeigebereiche und Anzeige- / Aktiv-Bereiche. In dieser Offenbarung ist ein Anzeigebereich ein Bereich einer Benutzerschnittstelle, der dem Benutzer Informationen anzeigt. Ein aktiver Bereich ist ein Bereich einer GUI, z. B. eine Schaltfläche, ein Schieberegler oder ein Menü, mit dem der Benutzer Maßnahmen in Bezug auf die Benutzeroberfläche ergreifen kann. Einige Anzeigebereiche sind auch insofern aktive Bereiche, als sie Informationen anzeigen und möglicherweise Maßnahmen ergriffen werden. In einer kontaktempfindlichen GUI kann das Berühren eines berührungsempfindlichen Bereichs, in dem ein aktiver Bereich angezeigt wird, diesen Bereich aktivieren (z. B. Tippen auf eine GUI-Schaltfläche auf einem Touchscreen). Aktive Bereiche können als GUI-Elemente / -Objekte angezeigt werden, z. B. Schaltflächen, Schieberegler, auswählbare Bereiche, Menüs usw. in verschiedenen Formen und Größen.
  • Wenn ein Kontakt in einem kontaktempfindlichen Bereich erfasst wird, wird im Allgemeinen ein Verfahren verwendet, um die aktiven Bereiche der GUI zu bestimmen, denen der Kontakt entspricht, falls vorhanden. Wenn beispielsweise eine „ENTER“ -Taste gedrückt wird, wird der Kontakt gemessen und ein Algorithmus ausgeführt, um zu bestimmen, dass der Kontakt an der Position der ENTER-Taste hergestellt wurde. Die ENTER-Schaltfläche ist ein aktiver Bereich, sodass Ereignisse in der berührungsempfindlichen Benutzeroberfläche und / oder dem zugrunde liegenden Anwendungsprogramm erstellt werden, das die Benutzeroberfläche aufgerufen hat.
  • Wenn weiterhin ein bestimmtes GUI-Element dem aktiven Bereich zugeordnet ist, können in die Berührungsschnittstelle integrierte Aktuatoren eine oder mehrere physikalische Antworten bereitstellen, die üblicherweise als haptische Antworten bezeichnet werden. Diese können in Form von Kräften, Vibrationen oder Bewegungen vorliegen und Oberflächenstrukturen, Grate, Kanten, Wechselwirkungen wie Drücken / Klicken einer Taste sowie andere simulierte Empfindungen und Reaktionen imitieren. Im Fall einer GUI kann die haptische Antwort auf das GUI-Element lokalisiert sein, mit dem ein Benutzer interagiert. Wenn ein Benutzer beispielsweise eine GUI-Schaltfläche berührt, fühlt sich die Schaltfläche aufgrund der haptischen Reaktion möglicherweise angehoben mit einer Kante an, als wäre sie gedrückt oder als hätte sie eine raue Textur.
  • Wie nachstehend erörtert, kann beispielsweise unter Bezugnahme auf 14 und 15 in einigen Ausführungsformen eine kontaktempfindliche GUI „virtuelle Widgets“ verwenden, die eine beliebige Zusammenstellung von Formen beinhalten (z. B. einschließlich eines oder mehrerer aktiver GUI-Elemente / -Objekte), die in einem darstellbaren GUI-Bildschirm beinhaltet sind. Beispielsweise kann ein virtuelles Widget eine definierte Zusammenstellung mehrerer Instanzen und / oder Typen von virtuellen Schaltflächen, Schiebereglern, Reglern, Drehknöpfen usw. aufweisen. Als ein anderes Beispiel kann ein virtuelles Widget eine definierte Zusammenstellung aktiver Elemente umfassen, die gemeinsam eine Schnittstelle zur Steuerung einer definierten Funktion definieren. Beispielsweise kann ein virtuelles Widget des Typs Schieberegler oder ein virtuelles Widget des Typs drehbare Zifferblatt aus einer definierten Sammlung von UI-Elementen bestehen, die sich auf einen Bereich von Positionsauswahlen für den Schieberegler oder das drehbare Zifferblatt beziehen, z. B. wie beispielhaft durch die in 15 gezeigten drehbaren Drehknöpfen veranschaulicht, die unten erörtert werden. Es versteht sich, dass jede Offenbarung in Bezug auf GUI-Elemente (auch als UI-Elemente bezeichnet) oder Formen hierin in ähnlicher Weise für virtuelle Widgets gilt.
  • Die verschiedenen hier beschriebenen Ausführungsformen können sich manchmal auf das Erstellen und Aktualisieren elektronischer Aufzeichnungen beziehen. Die elektronischen Aufzeichnungen können in Form einer Datendatei vorliegen, und das Aktualisieren einer elektronischen Aufzeichnung kann das Einfügen oder Löschen von Dateneinträgen in ein oder mehrere Felder des Datensatzes aufweisen. Alternativ kann es sich zur Laufzeit auf ein Klassenobjekt und instanziierte Objekte beziehen, deren Statusinformationen und Variablen mit dem beschriebenen Datensatz übereinstimmen. Beide Situationen werden in den verschiedenen hier beschriebenen Ausführungsformen in Betracht gezogen.
  • Die verschiedenen Ausführungsformen dieser Offenbarung beziehen sich auf Techniken zum Identifizieren jener GUI-Elemente, die auf einer kontaktempfindlichen Schnittstelle kontaktiert wurden. Diese Techniken und zugehörigen Strukturen sind hinsichtlich der Speichernutzung und der Reaktionsfähigkeit besonders effizient.
  • Weiterhin sind die Anforderungen an die Speicherung der Schnittstellendaten gering, und die Anzahl der Aufgaben, 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 zum Erstellen einer Liste optimierter Suchaufgaben, die ausgeführt werden können, um die GUI-Elemente zu identifizieren, die auf der kontaktempfindlichen Schnittstelle kontaktiert wurden. Eine solche Suche kann hier als UI-Elementsuche oder „Formsuche“ bezeichnet werden. Die Suchaufgaben können ausführbare Anweisungen des Prozessors sein, die bei Ausführung eine Erfolgs- oder Fehlermeldung an das Subsystem zurückgeben, das nach dem Element der GUI sucht, mit dem gegebenenfalls Kontakt aufgenommen wurde. In einer Ausführungsform werden die Suchaufgaben basierend auf einer Definitionsdatei erstellt, die die verschiedenen Elemente und ihre Positionen in einer GUI abbildet. Die Suchaufgabe kann für verschiedene Effizienzparameter optimiert werden.
  • In einer Ausführungsform kann die Suchaufgabenliste von einer eingebetteten Vorrichtung ausgeführt werden, beispielsweise einem Touch-Controller, im Vergleich zu herkömmlichen kontaktempfindlichen GUs, die den Erfindern dieser Offenbarung bekannt sind und die UI-Element- / Formsuche in einem Anzeige-Subsystem durchführen können (z.B. einer Kfz-Haupteinheit). Das Durchführen einer Suche nach einem GUI-Element in einem Touch-Controller spart Zeit bei der Kommunikation mit dem Anzeigesubsystem und Zeit für das Subsystem, um beispielsweise mit einem Subsystem mit haptischer Rückmeldung zu reagieren und zu kommunizieren. Die eingesparte Zeit verbessert die Reaktionsfähigkeit kontaktempfindlicher GUIs im Vergleich zu herkömmlichen kontaktempfindlichen GUIs und verkürzt aus Sicht des Benutzers die Zeit zwischen dem Berühren eines Bildschirms und dem Empfangen von Feedback auf Berührungen.
  • Darüber hinaus kann die Erstellung der Aufgabensuchliste konfiguriert werden, und abhängig von der GUI können Sätze allgemeiner Funktionen für eine Implementierung ausgewählt werden, die für die spezifische Anwendung optimiert sind. Beispielsweise kann in einigen Ausführungsformen der Erstellungsprozess für eine GUI optimiert werden, die Seitenblättern, Dropdown-Menüs und Popup-Fenster aufweist, die andere GUI-Elemente, Elemente bestimmter Formen oder Elemente verdecken, die sich bewegen oder verformen, wenn sie kontaktiert werden.
  • 1 veranschaulicht einen Gesamtbetrieb eines Systems gemäß verschiedenen Ausführungsformen der Offenbarung. In Operation 112 ist ein Softwareanwendungswerkzeug 102 konfiguriert, um eine UI-Definitionsdatei zu verarbeiten, um eine Suchaufgabenliste (Operation 108) von konditionierten ausführbaren Anweisungen zum Durchführen einer UI-Element- / Formsuche zu erstellen, um ein UI-Element zu identifizieren, falls vorhanden, das auf einem kontaktempfindlichen Bildschirm kontaktiert wurde.
  • Die Suchaufgabenliste kann in einem nicht flüchtigen Speicher gespeichert werden (Operation 110), auf den ein oder mehrere Prozessoren zugreifen können, die Teil eines Berührungssystems sind. Wenn ein Kontaktereignis an einer Berührungsschnittstelle auftritt, kann ein Touch-Sensor 106 die Berührung erfassen (Operation 118) und einem oder mehreren Touch-Prozessoren 104 ein oder mehrere Signale liefern, die die Berührung anzeigen. Die Touch-Prozessoren 104 bestimmen (Operation 112) eine Position auf der Touch-Oberfläche, an der der Kontakt aufgetreten ist, und suchen (Operation 114) nach und identifizieren als Reaktion auf diese Bestimmung ein UI-Element und, falls vorhanden, das auf einem berührungsempfindlichen Bildschirm kontaktiert wurde. In einer Ausführungsform kann der Touch-Prozessor 104 die Suchergebnisse einem grafischen Benutzerschnittstellensubsystem bereitstellen (Operation 116).
  • Eine Ausführungsform eines Prozesses zum Erstellen einer Suchaufgabenliste wird unter Bezugnahme auf 2 bis 7 beschrieben. Ausführungsformen der Offenbarung verwenden eine Suchbaumstruktur, die UI-Elemente gemäß einer Baum- und Gittertechnik organisiert. Die verschiedenen UI-Elemente werden in verwandte Gruppen unterteilt werden, die wie Raster behandelt, in einem Suchbaum organisiert werden und anschließend werden verschiedene Suchaufgaben generiert. Die Suchaufgaben sind konditioniert, um die Ausführung einer UI-Element- / Formsuche unter Verwendung der Anweisungen zu optimieren. Ein üblicher Fachmann wird verstehen, dass andere Algorithmen verwendet werden können, um den Bildschirm (die Bildschirme) in durchsuchbare Bereiche zu unterteilen, beispielsweise ein Divide-And-Conquer-Verfahren.
  • 2 veranschaulicht eine Ausführungsform eines Prozesses zum Erzeugen einer Suchaufgabenliste zum Durchführen einer UI-Element- / Formsuche. In Operation 202 wird eine Strukturdefinition für die Benutzeroberfläche geladen und analysiert, um Bildschirme, Unterbildschirme und Benutzeroberflächenelemente auf diesen Bildschirmen und Unterbildschirmen zu identifizieren. Die Ul-Strukturdefinition kann eine elektronische Datei, eine Datenbank, Rohdaten oder dergleichen sein. In Operation 204 werden die UI-Elemente gruppiert und der durchsuchbare Bereich wird in einen oder mehrere durchsuchbare Bereiche mit UI-Elementgruppen unterteilt. In Operation 206 werden die UI-Elementgruppen basierend auf den durchsuchbaren Regionen zu einer Baumstruktur verknüpft. In Operation 208 werden Suchaufgaben den Suchbaumzweigen und -knoten zugeordnet, um einen Suchbaum zu bilden, und der Suchbaum wird optimiert. In Operation 210 werden die konditionierten Aufgaben des Suchbaums in einer Liste gespeichert, die die Aufgabenliste ist, die von einem Prozessor ausgeführt werden kann.
  • In einer Ausführungsform kann das Softwareanwendungswerkzeug 102, das die Suchaufgabenliste erzeugt, konfiguriert sein, um die Ergebnisse einer oder mehrerer der Operationen 202, 204, 206, 208 und 210 in eine Ausgabedatei zu schreiben. Dies kann von einem Debugging-Tool verwendet werden, um die Ergebnisse des Prozesses zu überprüfen. Das gleiche Debugging-Tool kann so konfiguriert sein, dass es eine Textversion einer Suchaufgabenliste verwendet und diese in einer virtuellen Testumgebung (z. B. einer ausführbaren .dos-Datei) ausführt, um zu überprüfen, ob die Suchaufgabenliste betriebsbereit ist.
  • 3 veranschaulicht eine Ausführungsform eines Prozesses 300 zum Extrahieren von UI-Elementen aus einer Ul-Strukturdefinition. In einer Ausführungsform ist die UI-Strukturdefinition eine XML-Definition der Teile einer Anzeige, die durch die Konfigurationsgenerierungsfunktionen des Anwendungswerkzeugs konvertiert werden sollen. Das Anwendungswerkzeug analysiert die Strukturdefinitionen und erfasst die in der Definitionsstruktur definierten UI-Elemente. In Operation 302 wird jedes UI-Element geladen und in Operation 304 wird bestimmt, ob es ein bekanntes UI-Element ist. Wenn es sich nicht um ein bekanntes UI-Element handelt (d.h. dies ist das erste Mal, dass dieses Element in den Strukturdefinitionen identifiziert wurde), erstellt der Prozess in Operation 306 eine neue Elementdefinition für diesen Typ von UI-Element (z. B. Schaltfläche, Knopf, Schieberegler usw.).
  • Nach dem Erstellen der neuen Definition oder wenn das Element ein bekanntes UI-Element ist, wird in Operation 308 festgelegt, ob das Element einer vorhandenen Gruppe zugewiesen werden soll. In einer Ausführungsform basiert die Festlegung, ob es einer vorhandenen Gruppe zugewiesen werden soll, auf verschiedenen vorgegebenen Parametern, beispielsweise gemeinsamen Merkmalen von Elementen, wie dem Elementtyp, dem Bildschirmort, an dem das UI-Element angezeigt wird, einer Ebene, Position, eine Art von Antwort, die mit dem Element verbunden ist (z. B. visuell, haptisch, Audio usw.) und dergleichen. Wenn die Entscheidung getroffen wird, das Element einer neuen Gruppe zuzuweisen, wird in Operation 310 ein neuer Gruppendatensatz mit Parametern erstellt, die sich auf das Element beziehen.
  • Nachdem ein neuer Gruppendatensatz erstellt wurde oder wenn festgelegt wurde, das Element einer vorhandenen Gruppe zuzuweisen, wird in Operation 312 für dieses neue Element ein neuer Elementeintrag in den Gruppendatensatz eingefügt. In einer Ausführungsform beinhaltet der Eintrag Felder für die Element-ID und die Position des Elements (d.h. die Koordinaten des Elements auf dem Bildschirm). In Operation 314 wird eine Bestimmung vorgenommen, ob es weitere UI-Elemente gibt, und wenn es weitere UI-Elemente gibt, wird der Prozess für jedes verbleibende UI-Element ausgeführt, das in der UI-Strukturdefinition identifiziert ist. In Operation 316 gibt der Prozess das Element (die Elemente), die Elementdefinition(en) und die Gruppe(n) zurück.
  • Wenn in einer Ausführungsform die UI-Strukturdefinition mehr als eine Bildschirmdefinition beinhaltet, wird jedem solchen Bildschirm eine Bildschirm-ID zugewiesen, die ein Parameter des UI-Elements ist. Sie kann auch als Parameter für jede Gruppe aufgenommen werden. Jeder Bildschirm kann auch Unterbildschirme beinhalten, die definierte Bereiche einer angezeigten GUI sind, 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 Benutzeroberflächenelementen austauschbare Fenster, scrollbare Menüs, aktivierbare Informationsfenster, Navigationsschaltflächen und dergleichen umfassen.
  • 4 veranschaulicht einen Prozess 400 zum Erzeugen eines Suchbaums gemäß einer Ausführungsform der Offenbarung. In diesem Prozess wird festgelegt, wie jeder in der UI-Definition identifizierte Bildschirm in durchsuchbare Bereiche unterteilt werden soll, wobei jeder durchsuchbare Bereich eine oder mehrere Gruppen von UI-Elementen beinhaltet. In der in 4 gezeigten beispielhaften Ausführungsform wird eine Trennlinie (xy-Koordinaten) ausgewählt, die Gruppen von UI-Elementen so teilt, dass sich zumindest eine UI-Elementgruppe auf einer Seite der Trennlinie und zumindest eine andere UI-Elementgruppe auf der anderen Seite der Trennlinie befindet.
  • Die Trennlinie teilt den Bildschirm effektiv in zwei durchsuchbare Bereiche mit einer gemeinsamen Grenze entlang der Trennlinie. Die UI-Elementgruppen werden rekursiv unterteilt, bis die UI-Elementgruppen nicht mehr weiter unterteilt werden können.
  • In einer anderen Ausführungsform werden der Bildschirm oder die durchsuchbaren Bereiche gleichzeitig in x- und y-Koordinatenrichtung unterteilt, was zu bis zu vier Unterteilungen der UI-Elementgruppen führen kann. Diese Technik könnte auch zu weniger als vier Unterteilungen führen, beispielsweise drei Unterteilungen von UI-Elementgruppen und einer leeren durchsuchbaren Region.
  • In noch anderen Ausführungsformen können Kreise, Quadrate und / oder Polygone verwendet werden, um einen Teil des Bildschirms zu definieren, der von den durchsuchbaren Bereichen ausgeschlossen werden soll, so dass der Bildschirm nicht in durchsuchbare Bereiche unterteilt ist.
  • In Operation 402 wird der erste durchsuchbare Bereich mit zwei oder mehr Gruppen geladen. Bei der ersten Iteration kann dies der gesamte Bildschirm einschließlich aller Gruppen sein. In dieser Ausführungsform existiert ein anfänglicher durchsuchbarer Regionsdatensatz mit einem Bereich, der so definiert ist, dass er den gesamten Bildschirm einschließlich aller UI-Elemente und UI-Elementgruppen umfasst. In Operation 404 wird eine Gitterlinie ausgewählt, die den anfänglich durchsuchbaren Bereich in zwei durchsuchbare Bereiche mit jeweils einigen der Gruppen unterteilt. In Operation 406 wird ein neuer Datensatz erstellt, die UI-Elementgruppen werden zwischen dem ursprünglichen Datensatz und dem neuen Datensatz sortiert und die Datensätze werden mit ihren jeweiligen durchsuchbaren Bereichen aktualisiert. Die Trennlinie wird als Trennung / Teilung zwischen den beiden durchsuchbaren Bereichen aufgezeichnet. Der erste durchsuchbare Bereich und die darin beinhalteten UI-Elementgruppen und UI-Elemente sind mit der Unterteilung verknüpft, die wiederum mit dem neuen durchsuchbaren Bereich und den darin beinhalteten UI-Elementgruppen und UI-Elementen verknüpft ist.
  • Zur Laufzeit sind Klassenobjekte von UI-Elementen, Klassenobjekte von UI-Elementgruppen und Klassenobjekte von Teilungen / Unterteilungen vorhanden.
  • Für jeden durchsuchbaren Bereich, der mehr als eine UI-Elementgruppe beinhaltet, wird der Prozess rekursiv ausgeführt (Operation 408), um die durchsuchbaren Bereiche zu teilen.
  • Insbesondere werden in einer Ausführungsform die UI-Elemente durch einen Verweis auf eine UI-Elementdefinition (z. B. eine Element-ID) und eine Verschiebung zum Ursprung eines UI-Elements in dieser Ausführungsform definiert, wodurch die Anforderungen an den Schnittstellenspeicher reduziert werden, da nicht jedes UI-Element individuell definiert werden muss.
  • Sobald ein Bildschirm vollständig unterteilt ist, ist jetzt ein Zwischensuchbaum vorhanden, der Unterteilungen / Teilungen, Benutzeroberflächenelemente und Benutzeroberflächenelementgruppen sowie Verknüpfungen zwischen diesen umfasst.
  • In Operation 410 werden Suchaufgaben auf Gruppenebene für jede Benutzeroberflächenelementgruppe erstellt. Eine Aufgabe auf Gruppenebene ist ein Prozessschritt oder eine Reihe von Prozessschritten. Die Aufgaben können umfassen: (i) Aufgaben, um zu bestimmen, ob ein Berührungs- oder Kontaktereignis innerhalb eines UI-Elements (oder ohne ein UI-Element) aufgetreten ist; (ii) Aufgaben zum Ändern des Suchbereichs in irgendeiner Weise; und (iii) Aufgaben, die für die nächste Aufgabe eingerichtet werden sollen.
  • Jede Aufgabe auf Gruppenebene kann eine Angabe der nächsten Aufgabe beinhalten, die im Falle eines Erfolgs oder Misserfolgs auszuführen ist. Beispielsweise kann jede Aufgabe ein Bit mit einem „Offset“ zur nächsten Aufgabenadresse beinhalten. Weiterhin kann jede Aufgabe auf Gruppenebene Argumente akzeptieren, wenn sie ausgeführt wird. In einigen Ausführungsformen kann die vorherige Aufgabe die Argumente bereitstellen oder ein Umgebungsbit / -flag setzen, um anzuzeigen, welche Argumente für die nächste Aufgabe verfügbar sind.
  • In einer Ausführungsform kann der Offset in den UI-Elementgruppenkoordinaten (Positionswinkel) verwendet werden, um einen Index zu erzeugen. Jedem UI-Element in einem durchsuchbaren Bereich kann, falls konfiguriert, eine andere ID zugewiesen werden, die durch den Index von der Basis-ID des durchsuchbaren Bereichs versetzt ist. Das Ergebnis ist eine Element-ID und ein Offsetwert. Es gibt separate Bestimmungen zum Modifizieren von entweder reaktiven (z. B. haptischem) oder Element-ID - so kann ein Gruppenelement eine einzelne Element-ID, aber mehrere reaktive IDs zurückgeben, und ein anderes kann eine reaktive ID für eine Anzahl verschiedener Elemente zurückgeben.
  • Die Suchaufgaben auf Gruppenebene können in die Gruppendatensätze, in eine Suchaufgabenliste oder in einen Zwischendatensatz eingefügt werden. Sobald die Suchaufgaben auf Gruppenebene abgeschlossen sind, wird in Operation 412 der Zwischensuchbaum zurückgegeben.
  • In einer Ausführungsform können Umgebungsvariablen für jede Aufgabe festgelegt werden, die gegebenenfalls angeben, was zurückgegeben wird, wenn die Aufgabe ausgeführt wird, was ein Erfolg ist und was die endgültige Aufgabe ist. Als nicht einschränkendes Beispiel kann eine Umgebungsvariable eine haptische ID, Werte zum Steuern, wie die Element-ID und die haptische ID für ein Element innerhalb einer Gruppenform geändert werden, usw. sein. Es können auch Umgebungsflags gesetzt werden, die die Daten angeben, die zur nächsten Aufgabenbeschreibung gesendet werden. Durch Verwendung bestimmter Einschränkungen und der richtigen Umgebungsvariablen kann eine Definition, beispielsweise eines Kreises, von 7 auf 2 Bytes reduziert werden.
  • 5 veranschaulicht eine Ausführungsform eines Optimierungsprozesses 500, der an dem Zwischensuchbaum ausgeführt wird. In Operation 502 werden alle UI-Elemente nach gemeinsamen Merkmalen gruppiert. Beispiele für gemeinsame Merkmale umfassen den UI-Elementtyp, die Position in einer Ebene, die Position relativ zu einem anderen Element in einer anderen Ebene (z. B. alle hinter demselben UI-Element), eine Anzeigegruppe, eine Form oder mehr. In einer Ausführungsform können gemeinsame Merkmale ausgewählt werden, um einen UI-Element- / Formsuchprozess zu optimieren. Wenn beispielsweise UI-Elemente nach Ebenenposition mit den UI-Elementen auf der obersten Ebene oben im Suchbaum gruppiert werden, werden diese zuerst durchsucht. In einem anderen Beispiel ermöglicht in einer Anwendung, in der es „Seitenblättern“ gibt (d.h. Ebenen einer Benutzeroberfläche können gewischt werden, um darunter liegende Ebenen freizulegen oder eine Ebene über eine andere Ebene zu ziehen), die Gruppierung nach Anzeigegruppe die Steuerung aller angezeigten Benutzeroberflächen Elemente, die ein einzelnes Steuerelement verwenden - z. B. nach allen UI-Elementen in einer Anzeigegruppe suchen, Änderungen an diesen UI-Elementen anwenden, die auf die Steuerungseinstellungen reagieren, alle UI-Elemente in einer Anzeigegruppe aktivieren oder deaktivieren usw. In verschiedenen Ausführungsformen können Bezeichner verwendet werden, um Gruppen zu identifizieren, die nach gemeinsamen Merkmalen organisiert sind, z. B. Ebenen-IDs, Positions-IDs, Form-IDs usw.
  • In Operation 504 werden Suchaufgaben für jedes Element in den Suchbaum eingefügt und aufgeteilt, um einen Zwischen-Suchaufgabenbaum zu bilden. In Operation 506 wird der Zwischensuchaufgabenbaum neu angeordnet, um einen einzelnen Durchgang für jede Aufgabe sicherzustellen. In Operation 508 werden redundante oder ineffiziente Suchaufgaben eliminiert. In Operation 510 wird der optimierte Suchaufgabenbaum zurückgegeben.
  • 6 veranschaulicht eine Ausführungsform eines Prozesses 600 zum Erstellen einer Suchaufgabenliste. In Operation 602 werden die Klassenobjekte in dem Suchaufgabenbaum geladen und in Operation 604 werden Anweisungswörter (d.h. Suchaufgaben) aus den Klassenobjekten erstellt und die Anweisungswörter (d.h. Suchaufgaben) werden in eine Suchaufgabenliste eingefügt. In der in 6 gezeigten Ausführungsform weist das Befehlswort ein Aufgabencodefeld und ein Sprungfeld auf. In einer Ausführungsform beinhaltet das Befehlswort ein Datenfeld. Jeder Fehler (d.h. das Element ist anders) und jede Aufteilung erfordert einen Sprung zu einem anderen Befehl, es sei denn, die nächste Aufgabe folgt unmittelbar der aktuellen Aufgabe im Speicher.
  • In Operation 606 werden die Aufgabencodes in das Aufgabencodefeld eingefügt, und in Operation 608 werden die Sprungwerte in das Sprungfeld eingefügt. In einigen Ausführungsformen werden einige oder alle Sprungwerte erst eingefügt, wenn alle Aufgaben in die Suchaufgabenliste eingefügt wurden. In anderen Ausführungsformen können Sprungwerte aus dem Suchaufgabenbaum abgeleitet werden.
  • In Operation 610 werden die verschiedenen Aufgaben der Suchaufgabenliste im Speicher zu einer konditionierten Suchaufgabenliste verkettet, die, wenn sich alle Objekte in der Liste befinden (Operation 612), von dem Prozess in Operation 614 zurückgegeben wird. Die Suchaufgabenliste und der Suchbaum können im Speicher gespeichert werden.
  • Die Aufgabenanweisungen können durch Containergrößenbeschränkungen (d.h. Bytebeschränkungen) variieren, die in der bestimmten Umgebung verfügbar sind, in der die Suchaufgabenliste implementiert wird. In einer Ausführungsform können die Daten, die jedem Aufgabenbefehl zugeordnet sind, abhängig von den Systemanforderungen variieren, einschließlich einer Befehlsschnittstellenanforderung (8-Bit, 12-Bit, 16-Bit usw.), verfügbarem Speicher usw. In einem einschränkenden Beispiel kann eine Anweisung zum Suchen 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 beinhaltet sein, wenn die Befehlsschnittstelle und andere Speicheranforderungen dies zulassen.
  • 7 veranschaulicht einen Suchprozess für ein UI-Element / eine Form, um zu bestimmen, ob eine Berührung innerhalb eines UI-Elements gemäß einer Ausführungsform der Offenbarung aufgetreten ist. Die Suche im Suchbaum erfolgt anhand der bereitgestellten Daten und der Suchaufgabenliste. In Operation 702 wird die ausführbare Anweisung für jede Aufgabe auf der Schnittstelle des Prozessors sequentiell mit den Nutzdaten für jede Aufgabe bereitgestellt und in Operation 704 ausgeführt. Während der Suche nach dem Suchbaum wird in Operation 706 eine Bestimmung vorgenommen, ob die Berührung innerhalb eines UI-Elements erfolgt ist, und das Ergebnis jeder Aufgabe ist ein wahr / falsch, Erfolg / Misserfolg, der angibt, ob die Berührung innerhalb eines UI-Elements aufgetreten ist. In Operation 708 werden die nächste Aufgabenanweisung und die zugehörigen Daten von dem Prozessor geladen und empfangen, wenn das Ergebnis der aktuellen Aufgabe erfolgreich ist. Das heißt, wenn das Ergebnis der Operation 706 ein Erfolg ist, wird die nächste Aufgabe in der Aufgabenliste ausgeführt.
  • Wenn das Ergebnis ein Misserfolg ist, werden eine alternative Aufgabenanweisung und zugehörige Daten geladen und vom Prozessor als Reaktion auf das Ergebnis empfangen. Wenn es eine alternative Aufgabe gibt (Operation 714), wird der alternative Aufgabenort in Operation 716 bereitgestellt und der Prozess kehrt zu Operation 702 zurück, und die Aufgaben werden vom alternativen Ort für den Prozessor geladen. Wenn die Suche beendet ist, wurde das UI-Element entweder gefunden oder nicht gefunden. Wenn das UI-Element gefunden wurde, wird in Operation 710 ein gefundenes Ergebnis zurückgegeben, und in Operation 712 werden die ID für dieses Element sowie alle Umgebungseinstellungen / Reaktionsparameter zurückgegeben. Wenn die Operation nicht gefunden ergibt, wird in Operation 720 ein Nicht-Gefunden-Ergebnis zurückgegeben.
  • In einer Ausführungsform kann der in 7 gezeigte UI-Element- / Formsuchprozess eine Firmware-Anwendung sein, die an einem Touch-Prozessor (Mikrocontroller) ausgeführt wird. Der Touch-Prozessor kann die eine oder mehreren Suchaufgaben, die von dem Suchprozess ausgeführt werden, in einem Flash-Speicher gespeichert haben. In einer Ausführungsform können Suchaufgaben in einem RAM gespeichert sein, der einer Anzeigesteuerung zugeordnet ist, und die Suchaufgaben können dem Touch-Prozessor während eines Setup- oder Provisionierungsprozesses bereitgestellt und für den Suchprozess zugänglich gehalten werden.
  • Die beschriebenen Ausführungsformen bieten mehrere Vorteile gegenüber alternativen Ansätzen. Der Speicherbedarf wird erheblich reduziert - bis zu 50% bei linearer Suche, reiner Rastermethode oder reiner Suchbaummethode; und noch eine Verbesserung gegenüber kombinierten Gitter- / Baumverfahren. Dies liegt zum Teil daran, dass die Anzahl der durchgeführten Suchvorgänge reduziert wird. Da die Anzahl der Suchvorgänge verringert wird, sind die Antwortzyklen erheblich kürzer als bei alternativen Ansätzen (einschließlich herkömmlicher Ansätze). Beispielsweise wurden auf einem 1200 x 1200 berührungsempfindlichen GUI Zykluszeiten von weniger als 36 µs erreicht, verglichen mit alternativen Ansätzen im Bereich von 72 µs (reines Gitter) bis 1200 µs (linear). Für einen Benutzer ist der Unterschied eine viel reaktionsschnellere Touch-Oberfläche.
  • Für einen Designer kann die Touch-Oberfläche ausgefeilter sein und viele Elemente mit unterschiedlichen Reaktionseigenschaften aufweisen.
  • 8, 9 und 10A bis 10E veranschaulichen Prozesse, die unter Bezugnahme auf 2 bis 7 in Verbindung mit einer GUI für eine Radioanwendung als ein nicht einschränkendes Beispiel einer GUI dargestellt und beschrieben sind, die mit Ausführungsformen der Offenbarung verwendet werden kann. Die in 8 dargestellte Radio-GUI 810 beinhaltet acht Typen von UI-Elementen und insgesamt 144 UI-Elemente, die in Tabelle 820 zusammengefasst sind. In einigen Ausführungsformen kann die GUI 810 ein Touchscreen sein, der herkömmliche Raster-Touch-Positionsberichte verwendet.
  • 9 zeigt UI-Elemente, die gemäß 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ührungseigenschaften (z. B. haptisches Feedback bei Berührung), physische Positionen auf dem Bildschirm und Formen auf.
  • 10A bis 10E zeigen ein Beispiel einer Baumstruktur 850, die unter Verwendung des unter Bezugnahme auf 4 beschriebenen Baum- und Gitterverfahrens ausgebildet wurde.
  • 11 veranschaulicht ein System 1000 und ein verwandtes Werkzeug 1040, das die hierin beschriebenen UI-Element- / Formsuchverfahren gemäß einer Ausführungsform der Offenbarung implementieren kann. Das System 1000 weist eine Mikrocontroller-Firmware 1010 mit darauf befindlichen GUI-Elementsuchfunktionen 1012 und einer Ansprechfestlegung 1014 für GUI-Elemente auf. 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 einschließlich eines oder mehrerer Aktuatoren, und der Antworttreiber 1018 ist ein haptischer Treiber, der konfiguriert ist, um Steuersignale zu erzeugen, die die Aktuatoren anregen. Die Erfassungsschaltung 1022 kann ein oder mehrere Messsignale erzeugen, die auf Kontakt an der kontaktempfindlichen Schnittstelle 1020 ansprechen. Die Kontaktmessung und -verarbeitung 1016 kann Kontaktinformationen (z. B. Ort, Typ usw.) bestimmen und diese der Ansprechfestlegung 1014 und den GUI-Elementsuchfunktionen 1012 bereitstellen, die auf die Messsignale der Erfassungsschaltung 1022 reagieren. Die am Antworttreiber 1018 empfangenen Steuersignale können zumindest teilweise auf den Kontaktinformationen basieren, zum Beispiel, so dass an der richtigen Stelle auf der kontaktempfindlichen Schnittstelle 1020 eine haptische Rückmeldung bereitgestellt wird.
  • In 11 ist auch ein Werkzeug 1040 gezeigt, das einen Suchlistenerstellungsprozess implementieren und eine Elementsuchaufgabenliste und Elementantwortinformationen gemäß einer Ausführungsform der Offenbarung erstellen kann. Ein Suchlistenerstellungsanwendungsprogramm 1044 ist konfiguriert, um die unter Bezugnahme auf 2 bis 6 beschriebenen Prozesse zu implementieren, um eine GUI-Definitions-XAML-Datei 1042 zu verarbeiten, um eine Elementsuchaufgabenliste zu erzeugen. Die Anwendung 1044 kann die Elementsuchaufgabenliste 1046 und die Elementantwortinformationen 1048 als Datei für die Mikrocontroller-Firmware 1010 bereitstellen. In einer Ausführungsform kann sie auch einen Suchbaum bereitstellen, obwohl dies in den Suchaufgaben beinhaltet sein kann.
  • In einigen Ausführungsformen der Firmware kann die Firmware Kraftmess- und Verarbeitungsfunktionen beinhalten, um Kraftniveauinformationen über ein Berührungsereignis aufzunehmen. In diesen Ausführungsformen können die Kraftpegelinformationen und die GUI-Element-ID und die von der Elementsuchfunktion zurückgegebenen Details der haptischen Antwort von einem haptischen Sequenzer verwendet werden, um haptische Steuersignale zu erzeugen, die auf das Kraftniveau, die GUI-Element ID und die Details der haptischen Antwort reagieren.
  • Das System nach 11 kann in verschiedene Verbraucherprodukte, Vorrichtungen und Maschinen eingebaut sein, die Berührungsschnittstellen und Berührungssteuertafeln verwenden, einschließlich Kraftfahrzeuge.
  • 12 veranschaulicht eine vereinfachte Version einer Radio-GUI 1210 für ein Automobil-Touch-Bedienfeld. Drei Regionen werden speziell genannt: Region 1, Region 2 und Region 3. Region 1 ist eine Taste 1212 in der Mitte eines Drehschalters 1214 zur Temperatursteuerung. Eine haptische Rückmeldung gemäß einer haptischen Profil-ID # 4 (Vibration) wird als Reaktion auf ein Berührungsereignis mit einem starken Kraftniveau bereitgestellt. Bereich 2 ist der Drehknopf 1214, ebenfalls zur Temperaturregelung. Eine haptische Rückmeldung gemäß einer haptischen Profil-ID # 3 (Reibung) wird als Reaktion auf ein Berührungsereignis mit einem leichten Kraftniveau bereitgestellt. Schließlich ist Region 3 eine Schaltfläche 1216, um ein Menü für Fahrzeugeinstellungen aufzurufen. Haptisches Feedback gemäß der haptischen Profil-ID # 2 (Klicken) wird als Reaktion auf ein Berührungsereignis mit einem starken Kraftniveau bereitgestellt, und haptisches Feedback gemäß dem haptischen Profil-ID # 3 (Reibung) wird als Reaktion auf eine Berührung bereitgestellt, die ein leichtes Kraftniveau aufweist.
  • 13 veranschaulicht das System von 11 und die grafische Benutzeroberfläche von 12, die in von einer Haupteinheit 1310 angewiesene Fahrzeugsteuerungen integriert sind, und haptische Effekte in der Haupteinheit 1310 werden von einem Mikrocontroller gesteuert. In dieser Ausführungsform sind die Berührungssteuerungsfunktionen 1320 und die UI-Element- / Formsuchfunktionen 1324 Teil eines Automobilsubsystems, bei dem eine Fahrzeughaupteinheit 1310 auf Berührungen mit haptischer Rückmeldung reagiert, ohne dass die Verarbeitungsschaltung der Haupteinheit direkt eingreift. Der Touch-Controller 1320 ist konfiguriert, um Berührungsbildschirmtasten aus den Berührungspositionen und Kraftniveauinformationen zu identifizieren und eine Berührungszustandsmaschine einschließlich Tastenposition auszuführen, um den haptischen Effekt auszulösen.
  • In dieser Ausführungsform sind die Kraftverarbeitung 1326 und die Berührungsverarbeitung 1322 in eine Steuerungskomponente 1320 integriert, und der Touchscreen 1332 beinhaltet die Definitionen (Bildschirmanzeigedesign 1336 und Suchbaumdefinitionen 1338) einer Anzahl von geometrischen Objektbeschreibungen, die jeweils zum Auslösen einer Reihe von haptischen Effekten erforderlich sind, die direkt von dem Touch-Controller 1320 aktiviert und von der haptischen Vorrichtung 1350 ausgeführt werden sollen. Der Touch-Controller 1320 kann diese Definitionen auch über eine Touch-Controller-Konfigurationseinheit 1340 empfangen.
  • Zum Beispiel empfängt der Touch-Controller 1320 nach einer Berührung auf der Anzeige 1330 Kraftinformationen und Berührungsinformationen von der Kraftverarbeitung 1326 und der Berührungsverarbeitung 1322. Die Informationen können eine Kraftmessung von einem Kraftsensor 1334 und eine Berührungsposition auf der Anzeige umfassen. Die UI-Element- / Formsuche 1324 liefert UI-Elementinformationen, die dem UI-Element entsprechen, falls vorhanden, das auf der Anzeige 1330 angezeigt wird, wo die Berührung aufgetreten ist. Wenn es kein UI-Element gibt, das der Position auf der Anzeige entspricht, liefert die UI-Element- / Formsuche 1324 ein Suchergebnis Null. Während der Suche nach Forminformationen eines UI-Elements kann die UI-Element- / Formsuche 1324 die Definitionen verwenden, die in der Haupteinheit 1310 gespeichert sind. In einer Ausführungsform kann die UI-Element- / Formsuche 1324 die Definitionen beispielsweise während eines Provisionierungsprozesses empfangen, wenn der Touch-Controller 1320 in die Haupteinheit 1310 integriert wird, oder wenn die Haupteinheit 1310 eingeschaltet wird.
  • Wenn die UI-Element- / Formsuche 1324 ein UI-Element identifiziert, wird die haptische Information von der Haptik-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 beinhaltet. Die haptische Aktivierungsnachricht kann einen Parameter beinhalten, 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 in der haptischen Vorrichtung gespeichert ist. Die haptische Vorrichtung 1350 steuert dann Aktuatoren an der Anzeige 1330, so dass der spezifische Bereich der Anzeige den angeforderten haptischen Effekt zeigt. Insbesondere können verschiedene haptische Geräte unterschiedliche haptische Bibliotheken aufweisen, so dass die Auswirkungen zwischen Geräten 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 beinhaltet eine hierarchisch strukturierte Liste von Zeichenanweisungen für die Bildschirmelemente der Benutzeroberflächen der GUI. In der XAML-Datei sind Tags beinhaltet, die GUI-Elementen zugeordnet sind. Beispielsweise sind „Breite“, „Höhe“ und „Horizontale Ausrichtung“ gültige Tags für bestimmte Elemente.
  • Virtuelle Widgets
  • Wie oben diskutiert, kann in einigen Ausführungsformen eine kontaktempfindliche GUI (in eine GUI integrierte Berührungsschnittstelle) virtuelle Widgets verwenden, z. B. in Kombination mit einem der oben diskutierten Merkmale. Wie hierin verwendet, ist ein „virtuelles Widget“ eine beliebige Zusammenstellung von Formen (z. B. einschließlich eines oder mehrerer aktiver UI-Elemente), die in einem darstellbaren GUI-Bildschirm beinhaltet sind. Beispielsweise kann ein virtuelles Widget eine definierte Zusammenstellung mehrerer Instanzen und / oder Typen von virtuellen Schaltflächen, Schiebereglern, Reglern, Drehknöpfen usw. umfassen. Als ein anderes Beispiel kann ein virtuelles Widget eine definierte Zusammenstellung aktiver Elemente umfassen, die gemeinsam eine Schnittstelle zur Steuerung einer definierten Funktion festlegen. Beispielsweise kann ein virtuelles Widget vom Typ Schieberegler oder ein virtuelles Widget vom Typ drehbare Drehknopf aus einer definierten Sammlung von UI-Elementen bestehen, die sich auf einen Bereich von Positionsauswahlen für den Schieberegler oder den drehbaren Drehknopf beziehen, z. B. wie durch die in Beispiel 15 gezeigten und unten diskutierten, beispielhaften drehbaren Drehknöpfen veranschaulicht.
  • Virtuelle Widgets können auf dem Touchscreen angezeigt werden, existieren jedoch in einigen Ausführungsformen nur im Kontext eines Touchscreen-Konfigurationsmoduls / - prozesses und auf dem Touchscreen-Display. Virtuelle Widgets können an eine Haupteinheit berichten. Die Verwendung virtueller Widgets kann die Komplexität der physischen Schnittstelle der berührungsempfindlichen Benutzeroberfläche verringern. Beispielsweise kann die Verwendung von virtuellen Widgets den Overhead auf der Haupteinheit reduzieren, um Berührungspositionen zu verarbeiten, und erfordert möglicherweise keine separate Hardware oder Elektronik für physische Drehregler, Schieberegler usw., z. B. für Heizungssteuerungen, Radiosteuerelemente oder jede andere Art von Steuerelementen.
  • Einige Ausführungsformen stellen Systeme und Verfahren zum Definieren von Bereichen eines Touchscreens (z. B. Bereiche auf einer konfigurierten Bildschirmseite) bereit, die als virtuelle Widgets (z. B. Schaltflächen, Schieberegler, Drehknöpfen usw.) betrieben werden sollen. Wenn eine Berührung auf dem Touchscreen erkannt wird, kann ein Touch-Controller eine Position oder einen Zustand des Widgets bestimmen, die der Benutzerberührung entsprechen (z. B. die lineare Position eines virtuellen Schiebereglers oder die Drehposition eines virtuellen Zifferblatts, die der erkannten Berührungsposition entspricht) und solche Positions- / Statusinformationen in einer „Widget-Nachricht“ an die Haupteinheit melden, anstatt oder zusätzlich zu einer „Touch-Nachricht“, die die Position der Berührung auf dem Touchscreen angibt. Widget-Nachrichten können beispielsweise eine vom Benutzer ausgewählte Position, Drehung, den Status „berührt“ und / oder die Anzahl der erkannten Berührungen eines jeweiligen Widgets anzeigen, die dem erkannten Berührungsort, der erkannten Kraft und / oder einem anderen messbaren Aspekt der detektierten Berührung auf dem Touchscreen entsprechen.
  • In einigen Ausführungsformen werden Widget-Nachrichten an die Haupteinheit in einem separaten Datenstrom von Berührungsnachrichten übertragen, z. B. in der in 14 gezeigten beispielhaften Ausführungsform, die unten diskutiert wird. In einigen Ausführungsformen unterdrückt der Touch-Controller das Senden von Touch-Nachrichten an die Haupteinheit, wenn eine Berührung eines virtuellen Widgets erkannt wird. Mit anderen Worten, Touch-Nachrichten können während der Touch-Interaktion mit einem virtuellen Widget zugunsten von Widget-Nachrichten ausgesetzt werden.
  • Durch die Verwendung solcher virtueller Widgets können virtuelle GUI-Steuerelemente auf konfigurierbare und dynamische Weise an einer beliebigen Stelle auf dem Touchscreen positioniert werden. In einigen Ausführungsformen können die auf dem Bildschirm angezeigten virtuellen Steuerelemente durch Ändern der Bildschirmanzeige-ID geändert und / oder neu positioniert werden, z. B. basierend auf Techniken, die oben für die Suche nach UI-Formen offenbart wurden.
  • 14 zeigt ein beispielhaftes GUI-Touchscreen-System 1400 gemäß einer beispielhaften Ausführungsform, das virtuelle Widgets verwendet, wie hierin offenbart. Das GUI-Touchscreen-System 1400 kann einen kontaktempfindlichen Touchscreen 1402, einen Touch-Controller 1404 und eine Haupteinheit 1406 umfassen, von denen jede eine der Komponenten bereitstellen kann (z. B. Touch-Sensoren, Mikrocontroller, Mikrocontroller-Firmware, Prozessor, Speicher, haptische Aktuatoren, usw.) und bieten alle Funktionen, die von einem Touchscreen, einem Touch-Controller und einer Haupteinheit bereitgestellt werden, wie oben erläutert. In einigen Ausführungsformen kann der Touch-Controller 1404 durch eine Firmware in einem Mikrocontroller ausgeführt sein.
  • Das System 1400 kann auch ein Bildschirmdesignmodul 1410 und ein Touch-Controller-Konfigurationsmodul 1414 beinhalten. Das Bildschirmdesignmodul 1410 kann ein Bildschirmdesign für jeden von einem oder mehreren verschiedenen Bildschirmen (auch als Seiten bezeichnet) definieren oder konfigurieren, die selektiv auf dem Touchscreen 1402 angezeigt werden können. Für jeden Bildschirm kann das Bildschirmdesignmodul 1410 virtuelle Widgets auswählen, die in den Bildschirm aufgenommen werden sollen, und die Anordnung / das Layout der ausgewählten Widgets. Das Bildschirmdesignmodul 1410 kann das Bildschirmdesign (die Bildschirmdesigns) zur Speicherung an die Haupteinheit 1406 übermitteln, und die Haupteinheit 1406 kann der GUI-Elementsuchmaschine 1424 gegebenenfalls selektiv Bildschirmdesigns bereitstellen, z. B. basierend auf dem aktuell zur Anzeige ausgewählten Bildschirm (z. B. unter Verwendung einer Bildschirmauswahl-Zustandsmaschine, die von der Haupteinheit 1406 bereitgestellt wird). Die Haupteinheit 1406 oder alternativ das Touch-Controller-Konfigurationsmodul 1414 kann dann die Anzeige auf dem Touchscreen steuern, z. B. indem gesteuert wird, welcher von mehreren verschiedenen Bildschirmen derzeit angezeigt wird, unter Verwendung verschiedener Selektionen und / oder Anordnungen von virtuellen Widgets.
  • Das Bildschirmdesignmodul 1410 kann auch die Parameter 1412 jedes virtuellen Widgets festlegen, das in einem der Bildschirmdesigns beinhaltet ist, und dem Touch-Controller-Konfigurationsmodul 1414 entsprechende Widget-Definitionen 1416 zur Speicherung übermitteln. Das Touch-Controller-Konfigurationsmodul 1414 kann somit eine Widget-Definition für jedes virtuelle Widget speichern, die eine definierte Zusammenstellung verwandter UI-Elemente eines oder mehrerer Typen beinhalten kann. Wie gezeigt, kann das Touch-Controller-Konfigurationsmodul 1414 die GUI-Elementsuchmaschine 1424 mit den Widget-Definitionen versehen, die in dem aktuell angezeigten Bildschirm beinhaltet sind, damit die GUI-Elementsuchmaschine 1424 eine Benutzerinteraktion mit einem virtuellen Widget basierend auf einer erkannten Berührung auf dem Touchscreen erkennen kann.
  • Wie oben erwähnt, kann jedes virtuelle Widget eine beliebige Zusammenstellung von Formen aufweisen, die auf dem Touchscreen angezeigt werden. Jedes virtuelle Widget kann eine Widget-ID und eine relative Position auf dem Bildschirm aufweisen. Virtuelle Widgets können weiterhin durch Parameter wie Schaltflächennummer (für Schaltflächentyp-Widgets), Drehposition / -änderung (für Drehtyp-Widgets) oder Schiebereglerposition / -änderung (für Schieberegler-Widgets) definiert werden. Virtuelle Widgets können auch durch eine Formkonfiguration definiert werden, die beispielsweise von der Haupteinheit ausgelagert werden kann.
  • Wenn ein Benutzer im Betrieb den Touchscreen 1402 berührt / kontaktiert, kann die Erfassungsschaltung des Touch-Controllers 1404 Sensorsignale bei 1420 messen und ein oder mehrere Messsignale als Reaktion auf den gemessenen Kontakt am Touchscreen 1402 erzeugen. Die Kontaktmessung und -verarbeitung 1420, 1422 kann Berührungsinformationen (z. B. Ort, Typ, Kraft usw.) bestimmen und einer GUI-Elementsuchmaschine (oder einem „Formsuch“-Modul) 1424 zur Verfügung stellen. Die GUI-Elementsuchmaschine 1424 kann dann bestimmen, ob der Berührungsort mit einem derzeit angezeigten virtuellen Widget übereinstimmt, z. B. basierend auf den Widget-Positions- und Formparametern, die in den Widget-Definitionen 1416 beinhaltet sind. Diese Bestimmung kann eine der verschiedenen oben diskutierten Techniken für die Berührungserkennung von UI-Elementen verwenden.
  • Wenn die GUI-Elementsuchmaschine 1424 bestimmt, dass der Berührungsort einem aktuell angezeigten virtuellen Widget entspricht, kann die Suchmaschine 1424 Widget-Informationen 1426 an ein Widget-Verarbeitungsmoduls 1428 kommunizieren, einschließlich der jeweiligen Widget-ID, eines Widget-Formindex, welche(s) UI-Element(e) innerhalb des Widget berührt wird / werden und / oder andere relevante Informationen bezüglich des virtuellen Widgets, das berührt wird. Bei 1428 kann das Widget-Verarbeitungsmodul 1428 eine Widget-Nachricht 1430, die eine der von der GUI-Elementsuchmaschine 1424 empfangenen Widget-Informationen 1426 und / oder Widget-Definitionsinformationen 1416 beinhaltet an eine Nachrichtenschnittstelle 1434 erzeugen, die einen Ereignisbericht 1440 einschließlich der Informationen vom Widget-Verarbeitungsmodul 1428 zur Haupteinheit 1406 weiterleiten kann.
  • In einigen Ausführungsformen kann das Widget-Verarbeitungsmodul 1428 für jedes relevante Widget-Berührungsereignis einen Ereignisbericht 1440 erzeugen, der jedes Widget-Berührungsereignis beinhalten kann, das eine haptische Antwort oder eine andere Benutzerfeedback- oder Steuerfunktion auslöst, z. B. wie durch die Widget-Definitionen 1416 oder andere Logik definiert, die für die Haupteinheit 1406 und / oder den Touch-Controller 1404 erzeugt wird oder auf andere Weise zugänglich ist. Beispielsweise können relevante Widget-Berührungsereignisse Berührungsereignisse in einem Widget beinhalten, die eine dem Widget zugeordnete Einstellung ändern, z. B. durch Ein- / Ausschalten einer entsprechenden Funktion oder Erhöhen oder Verringern eines einstellbaren Steuerparameters (z. B. Lautstärke, Lüftergeschwindigkeit, Anzeigehelligkeit usw.), zum Beispiel. Das Widget-Verarbeitungsmodul 1428 kann relevante Widget-Berührungsereignisse aus Widget-Informationen 1426 identifizieren, die von der GUI-Elementsuchmaschine 1424 und / oder Widget-Definitionsinformationen 1416 empfangen wurden.
  • Die Haupteinheit 1406 kann somit Widget-bezogene Ereignisberichte 1440 vom Widget-Verarbeitungsmodul 1428 über die Nachrichtenschnittstelle 1434 empfangen und auf jeden Ereignisbericht 1440 ansprechen, indem sie Aspekte des auf dem Touchscreen 1402 angezeigten Bildschirms steuert und / oder zumindest ein externes System oder Gerät steuert, das dem virtuellen Widget zugeordnet ist, das berührt wird, z. B. ein Radio, ein Infotainmentsystem, ein Karten- / Leitsystem, ein Licht, ein Lüfter, ein Antrieb, ein Motor usw. In einigen Ausführungsformen kann die Haupteinheit 1406 die jeweiligen Aktuatoren steuern, um am Ort der Berührung eine definierte haptische Rückmeldung an den Benutzer bereitzustellen, z. B. wie durch Widget-Definitionsinformationen 1416 festgelegt. In anderen Ausführungsformen kann die haptische Rückmeldung über den Touchscreen 1402 eher von dem Touch-Controller 1404 als von der Haupteinheit 1406 gesteuert und bereitgestellt werden, was die Reaktionszeit für die Rückmeldung an den Benutzer verbessern kann.
  • Weiterhin kann, wie in 14 bei 1432 angegeben, der Touch-Controller 1404 konfiguriert sein, um alle verarbeiteten Berührungsinformationen an die Nachrichtenschnittstelle 1434 weiterzuleiten, die diese Informationen über Ereignisberichte 1440 erzeugen und an die Haupteinheiten 1406 weiterleiten kann. In einigen Ausführungsformen kann das Widget-Verarbeitungsmodul 1428 einen Aktivierungs- / Deaktivierungsschalter / eine Logik 1442 steuern, um die Weiterleitung dieser Berührungsinformationen 1432 zu deaktivieren oder auszusetzen, wenn eine Berührung eins virtuellen Widget durch die GUI-Elementsuchmaschine 1424 identifiziert wird, z. B. während der Erzeugung und Weiterleitung von Widget-Nachrichten 1430 / Widget-bezogenen Ereignisberichten 1440 vom Widget-Verarbeitungsmodul 1428 zur Haupteinheit 1406.
  • Die Verwendung virtueller Widgets kann die erforderliche Verarbeitung der Haupteinheit 1406 vereinfachen. Beispielsweise kann die Verwendung virtueller Widgets es einem einzelnen Bildschirmdesign ermöglichen, mehrere Anwendungen aufzuweisen. Eine Schnittstelle kann beispielsweise jegliche Produktvariante über eine geeignete Konfiguration handhaben.
  • 15 zeigt einen beispielhaften Radiobildschirm (oder eine Bildschirmseite) 1502, der auf einer Touchscreen-GUI 1500 angezeigt wird, wobei der Radiobildschirm / die Seite 1502 eine Anordnung von virtuellen Widgets 1504 beinhaltet, die verschiedene Gruppen von UI-Elementen gemäß einer beispielhaften Ausführungsform beinhalten. Die Touchscreen-Benutzeroberfläche 1500 kann so konfiguriert sein, dass sie eine beliebige Anzahl und Art verschiedener Bildschirme / Seiten selektiv anzeigt, um ein Radio und / oder ein oder mehrere andere Systeme oder Geräte (z. B. ein Infotainmentsystem, ein Karten- / Leitsystem, ein Licht, einen Lüfter, einen Antrieb, Motor usw.) zu steuern.
  • In diesem Beispiel weist der Radiobildschirm / die Seite 1502 eine Vielzahl von virtuellen Beispiel-Widgets 1504 auf, einschließlich: einem Radio-Widget 1504A, ein Paar von Radiomodus-Widgets 1504B und 1504C, ein Kanalvoreinstellungs-Widget 1504D, ein Zustands-Widget 1504E, ein Aktivierungs-Widget 1504F für die Lautstärkeregelung und ein Widget für die Lautstärkeregelung 1504G, ein Widget für die Aktivierung der Tuner-Steuerung 1504H und ein Widget für die Tuner-Einstellung 1504I, ein Widget für die Bass-Steuerung 1504J und ein Widget für die Höhenregelung 1504K.
  • Die oben diskutierten kontaktempfindlichen GUIs (z. B. Touchscreens) können in beliebigen geeigneten Produkten oder Systemen, z. B. Haushaltsgeräten oder beispielsweise für Fahrzeugsteuerungen verwendet werden. In einigen Ausführungsformen kann die Touchscreen-Steuerung durch Firmware bereitgestellt werden, z. B. in einem Mikrocontroller, ohne dass ein diskreter Mikroprozessor / Chip erforderlich ist.
  • Da die GUI (z. B. der Touchscreen) über die Konfiguration definiert und geändert werden kann, kann dieselbe GUI-Hardware für mehrere verschiedene Zwecke und / oder von mehreren verschiedenen Benutzern oder Kunden verwendet und selektiv konfiguriert werden. Darüber hinaus kann dieselbe GUI-Hardware mehrere verschiedene Schnittstellenoptionen für eine Produktpalette bereitstellen. Herkömmliche Ansätze stellen typischerweise separate Steuerungen bereit und / oder verwenden die Haupteinheit, um Tastendrücke oder andere Kontakte auf dem Touchscreen zu bestimmen, was nicht die Flexibilität des offenbarten Systems bietet und möglicherweise zusätzliche Verarbeitungsressourcen oder Zeit erfordert.
  • Die Möglichkeit, unterschiedliche Eigenschaften und Reaktionen für verschiedene Teile des Touchscreens zu definieren, wird hauptsächlich durch den oben offenbarten UI-Element- / Formsuchalgorithmus bereitgestellt, der eine flexible Definition von Sensorbereichen ermöglicht. Dies ist kein typischer Aspekt des herkömmlichen Touchscreen-Designs. Durch das Hinzufügen separater Messaging-Streams für UI-Elemente / Widgets können Funktionen wie Dreh- und Schieberegler praktisch erstellt werden, ohne dass ein physisches Gerät erforderlich ist. Mit derselben Funktionalität kann jede Form als virtuelles Widget mit eigener ID gemeldet werden, wobei die herkömmliche Touchscreen-Verarbeitung umgangen wird.
  • Viele der in dieser Spezifikation beschriebenen Funktionseinheiten können als Module, Threads oder andere Trennungen von Programmcode dargestellt, beschrieben oder gekennzeichnet werden, um insbesondere ihre Implementierungsunabhängigkeit hervorzuheben. Module können zumindest teilweise in Hardware implementiert sein, in der einen oder anderen Form. Ein Modul kann beispielsweise als Hardwareschaltung implementiert sein, die kundenspezifische VLSI-Schaltungen oder Gate-Arrays, handelsübliche Halbleiter wie Logikchips, Transistoren oder andere diskrete Komponenten aufweist. Ein Modul kann auch in programmierbaren Hardwaregeräten wie feldprogrammierbaren Gate-Arrays, programmierbarer Array-Logik, programmierbaren Logik-Vorrichtungen oder dergleichen implementiert werden. Module können auch unter Verwendung von Software oder Firmware implementiert werden, die auf einer physischen Speichervorrichtung (z. B. einem computerlesbaren Speichermedium), im Speicher, oder einer Kombination davon zur Ausführung durch verschiedene Arten von Prozessoren gespeichert sind.
  • Ein identifiziertes Modul von ausführbarem Code kann beispielsweise einen oder mehrere physische oder logische Blöcke von Computeranweisungen aufweisen, die beispielsweise als Thread, Objekt, Prozedur oder Funktion organisiert sein können. Trotzdem muss die ausführbare Datei eines identifizierten Moduls nicht physisch mit diesem zusammen angeordnet sein, sondern kann unterschiedliche Anweisungen aufweisen, die an verschiedenen Orten gespeichert sind, die, wenn sie logisch miteinander verbunden sind, das Modul ausbilden und den angegebenen Zweck für das Modul erreichen.
  • In der Tat kann ein Modul aus ausführbarem Code eine einzelne Anweisung oder viele Anweisungen aufweisen und kann sogar über mehrere verschiedene Codesegmente, zwischen verschiedenen Programmen und über mehrere Speicher- oder Speichergeräte verteilt sein. In ähnlicher Weise können Betriebsdaten hier in Modulen identifiziert und dargestellt werden und können in jeder geeigneten Form ausgeführt und in jeder geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einzelner Datensatz gesammelt oder über verschiedene Orte einschließlich über verschiedene Speichervorrichtungen verteilt sein und können zumindest teilweise nur als elektronische Signale in einem System oder Netzwerk existieren.
  • Wenn ein Modul oder Teile eines Moduls in Software implementiert sind, werden die Softwarebestandteile auf einem oder mehreren physischen Geräten gespeichert, die hier als computerlesbare Medien bezeichnet werden.
  • In einigen Ausführungsformen werden die Softwarebestandteile in einem nicht flüchtigen Zustand gespeichert, so dass die Softwarebestandteile oder Darstellungen davon für einen Zeitraum an demselben physischen Ort verbleiben. Zusätzlich werden in einigen Ausführungsformen die Softwarebestandteile auf einer oder mehreren nicht vorübergehenden Speichervorrichtungen gespeichert, die Hardwareelemente beinhalten, die nicht flüchtige Zustände und / oder Signale speichern können, die für die Softwarebestandteile repräsentativ sind, obwohl andere Teile der nicht flüchtigen Speichervorrichtungen in der Lage sein können, die Signale zu ändern und / oder zu übertragen. Beispiele für nicht flüchtige Speichergeräte sind Flash-Speicher und Direktzugriffsspeicher (RAM). Ein anderes Beispiel einer nicht flüchtigen Speichervorrichtung umfasst einen Nur-Lese-Speicher (ROM), der Signale und / oder Zustände speichern kann, die für einen Zeitraum für die Softwarebestandteile repräsentativ sind. Die Fähigkeit zum Speichern der Signale und / oder Zustände wird jedoch nicht durch die weitere Funktionalität des Sendens von Signalen beeinträchtigt, die mit den gespeicherten Signalen und / oder Zuständen identisch oder repräsentativ sind. Ein Prozessor kann beispielsweise auf das 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 hier beschriebenen Operationen auszuführen, auf einem beliebigen einer Vielzahl von Medien bereitgestellt werden. Weiterhin sind die tatsächliche Implementierung des Ansatzes und der Operationen der Erfindung tatsächlich Statements, die in einer Computersprache geschrieben sind. Solche Anweisungen in Computersprache bewirken, wenn sie von einem Computer ausgeführt werden, dass der Computer gemäß dem bestimmten Inhalt der Anweisungen handelt. Weiterhin kann die Software, die es einem Computersystem ermöglicht, gemäß der Erfindung zu agieren, in einer beliebigen Anzahl von Formen bereitgestellt werden, einschließlich, aber nicht beschränkt auf Originalquellcode, Assemblierungscode, Objektcode, Maschinensprache, komprimierte oder verschlüsselte Versionen der vorstehenden und alle Äquivalente.
  • Ein herkömmlicher Fachmann wird erkennen, dass „Medien“ oder „computerlesbare Medien“, wie sie hier verwendet werden, eine Diskette, ein Band, eine CD, eine integrierte Schaltung, ein ROM, eine CD, DVD, BLU-RAY, eine Kassette, ein Flash-Speicher, ein Memory Stick oder eine Karte oder ein anderes zerstörungsfreies Speichermedium umfassen können, das von Computern verwendet werden kann, einschließlich der aktuell bekannten oder später entwickelten.
  • Obwohl die Aktivierungssoftware auf eine Platte „geschrieben“ sein kann, die in einer integrierten Schaltung „verkörpert“ ist, über eine Kommunikationsschaltung „übertragen“, in einem Speicherchip „gespeichert“ oder in einen Cache-Speicher „geladen“ wird, wird es begrüßt, dass für die Zwecke dieser Anmeldung die Software einfach als „in“ oder „auf“ dem computerlesbaren Medium bezeichnet wird. Somit sollen die Begriffe „in“ oder „auf“ die oben erwähnten und alle äquivalenten und möglichen Arten umfassen, auf die Software einem computerlesbaren Medium zugeordnet werden kann.
  • Der Einfachheit halber wird der Begriff „Computerprogrammprodukt“ daher verwendet, um sich auf ein computerlesbares Medium zu beziehen, wie es oben definiert ist, das irgendeine Form von Software beinhaltet, um es einem Computersystem zu ermöglichen, gemäß einer beliebigen Ausführungsform der Erfindung zu arbeiten.
  • Während die vorliegende Offenbarung hierin in Bezug auf bestimmte dargestellte Ausführungsformen beschrieben wurde, werden Fachleute erkennen und würdigen, dass die vorliegende Erfindung nicht einschränkend ist. Vielmehr können viele Ergänzungen, Löschungen und Modifikationen der dargestellten und beschriebenen Ausführungsformen vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen, wie nachstehend zusammen mit ihren rechtlichen Äquivalenten beansprucht. Zusätzlich können Merkmale einer Ausführungsform mit Merkmalen einer anderen Ausführungsform kombiniert werden, während sie immer noch im Schutzumfang der Erfindung beinhaltet sind, wie von den Erfindern in Erwägung gezogen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/576383 [0001]
    • US 62/576563 [0001]

Claims (21)

  1. Benutzeroberflächensystem, das aufweist: einen Touchscreen, der konfiguriert ist, um eine grafische Benutzeroberfläche (GUI) anzuzeigen, die eine Anordnung von einem oder mehreren virtuellen Widgets aufweist, wobei jedes virtuelle Widget eine Form aufweist und ein oder mehrere Benutzeroberflächenelemente beinhaltet, die über die GUI angezeigt werden; wobei die Anordnung des einen oder der mehreren virtuellen Widgets konfigurierbar ist, und einen Prozessor, der konfiguriert ist, um eine Berührung auf dem Touchscreen zu erfassen, ein virtuelles Widget zu identifizieren, das der Berührung entspricht, und eine Aktion einzuleiten, die zumindest eine der folgenden Maßnahmen aufweist: (a) Steuern eines Aktuators, um eine haptische Rückmeldung in einem Bereich des Touchscreens bereitzustellen, auf dem das identifizierte virtuelle Widget angezeigt wird oder (b) Steuern einer elektronischen Vorrichtung, die dem Benutzeroberflächensystem zugeordnet ist.
  2. Benutzeroberflächensystem nach Anspruch 1, wobei der Prozessor in einem Mikrocontroller verkörpert ist.
  3. Benutzeroberflächensystem nach einem der Ansprüche 1 bis 2, das weiterhin ein Anwendungswerkzeug aufweist, das konfiguriert ist, um eine Bibliothek von GUI-Elementen zu erzeugen, die in der GUI beinhaltet sind, durch: Analysieren einer GUI-Definition, um eine Vielzahl von GUI-Elementen in der GUI zu identifizieren; Erstellen eines Datensatzes mit Einträgen identifizierter GUI-Elemente; basierend auf der relativen Position der identifizierten GUI-Elemente Gruppieren der identifizierten Elemente in virtuelle Widgets; und Anordnen des Datensatzes identifizierter GUI-Elemente in einer Elementbibliothek.
  4. Benutzeroberflächensystem nach Anspruch 3, wobei das Anwendungswerkzeug konfiguriert ist, um den Datensatz identifizierter GUI-Elemente in einer GUI-Elementbibliothek durch einen Prozess anzuordnen, der Folgendes aufweist: Anordnen des Datensatzes identifizierter GUI-Elemente in einer baumartigen Struktur von GUI-Elementen, Zusammenklappen identifizierter GUI-Elemente, die zu virtuellen Widgets zusammengefasst sind, zu einem einzigen Blatt in der baumartigen Struktur von GUI-Elementen; und Generieren von Suchanweisungen, die auf die baumartige Struktur von Elementen aus GUI-Elementen reagieren; und wobei der Prozessor so konfiguriert ist, dass er die Suchanweisungen verwendet, um das virtuelle Widget zu identifizieren, das der Berührung auf dem Touchscreen entspricht.
  5. Benutzeroberflächensystem nach einem der Ansprüche 1 bis 4, wobei zumindest ein virtuelles Widget der GUI eine Zusammenstellung mehrerer aktiver GUI-Elemente aufweist, einschließlich zumindest einer virtuellen Schaltfläche, eines virtuellen Schiebereglers, eines virtuellen Knopfs, eines virtuellen Drehknopfs oder einer anderen virtuellen Benutzeroberfläche.
  6. Benutzeroberflächensystem nach einem der Ansprüche 1 bis 5, wobei zumindest ein virtuelles Widget der GUI eine Zusammenstellung mehrerer diskreter aktiver GUI-Elemente aufweist, die gemeinsam eine virtuelle Schaltfläche, einen virtuellen Schieberegler, einen virtuellen Knopf, einen virtuellen Drehknopf oder eine andere virtuelle Benutzeroberfläche definieren.
  7. Benutzeroberflächensystem nach einem der Ansprüche 1 bis 6, wobei: das Benutzeroberflächensystem weiterhin eine Haupteinheit aufweist; der Prozessor in einem Touch-Controller-Prozessor verkörpert ist, der von der Haupteinheit getrennt ist; und der Touch-Controller-Prozessor so konfiguriert ist, dass er eine Widget-Nachricht generiert und dem Hauptgerät sendet, die eine Position oder einen Status des identifizierten virtuellen Widgets angibt, das der Berührung auf dem Touchscreen entspricht.
  8. Benutzeroberflächensystem nach Anspruch 7, wobei die vom Touch-Controller-Prozessor an die Haupteinheit gesendete Widget-Nachricht zumindest eines aus einer berührungsbezogenen Position, einer Drehung, einem berührt / unberührt Status oder einer Anzahl von auf dem virtuellen Widget detektierten Berührungen angibt.
  9. Benutzeroberflächensystem nach einem der Ansprüche 7 bis 8, wobei der Touch-Controller-Prozessor konfiguriert ist, um einen berührungsbezogenen Zustand des virtuellen Widgets als Funktion eines erfassten Berührungsorts, einer Berührungskraft oder eines anderen messbaren Aspekts der erkannten Berührung auf dem Touchscreen zu identifizieren, wobei die vom Touch-Controller-Prozessor erzeugte Widget-Nachricht den identifizierten berührungsbezogenen Status des virtuellen Widgets angibt.
  10. Benutzeroberflächensystem nach einem der Ansprüche 1 bis 9, wobei der Touchscreen so konfiguriert ist, dass er selektiv mehrere verschiedene GUI-Seiten anzeigt, wobei jede GUI-Seite einen anderen Satz virtueller Widgets beinhaltet.
  11. Verfahren, das aufweist: Anzeigen einer grafischen Benutzeroberfläche (GUI) auf einem Touchscreen mit einer Anordnung von einem oder mehreren virtuellen Widgets, wobei jedes virtuelle Widget eine Form aufweist und ein oder mehrere über die GUI angezeigte Benutzeroberflächenelemente beinhaltet; wobei die Anordnung des einen oder der mehreren virtuellen Widgets konfigurierbar ist, und Erfassen einer Berührung auf dem Touchscreen durch einen Prozessor; Identifizieren eines virtuellen Widgets durch den Prozessor, das der Berührung entspricht, und Initiieren einer Aktion durch den Prozessor, die zumindest eine der folgenden Maßnahmen aufweist: (a) Steuern eines Aktuators, um eine haptische Rückmeldung in einem Bereich des Touchscreens bereitzustellen, auf dem das identifizierte virtuelle Widget angezeigt wird oder (b) Steuern einer elektronischen Vorrichtung, die dem Benutzeroberflächensystem zugeordnet ist.
  12. Verfahren nach Anspruch 11, wobei der Prozessor in einem Mikrocontroller verkörpert ist.
  13. Verfahren nach einem der Ansprüche 11 bis 12, das weiterhin das Erzeugen einer Bibliothek von GUI-Elementen aufweist, die in der GUI beinhaltet sind, durch: Analysieren einer GUI-Definition, um eine Vielzahl von GUI-Elementen in der GUI zu identifizieren; Erstellen eines Datensatzes mit Einträgen identifizierter GUI-Elemente; Gruppieren der identifizierten Elemente in virtuelle Widgets basierend auf der relativen Position der identifizierten GUI-Elemente; und Anordnen des Datensatzes identifizierter GUI-Elemente in einer Elementbibliothek.
  14. Verfahren nach Anspruch 13, wobei das Anordnen des Datensatzes identifizierter GUI-Elemente in einer GUI-Elementbibliothek aufweist: Anordnen des Datensatzes identifizierter GUI-Elemente in einer baumartigen Struktur von GUI-Elementen, Zusammenklappen identifizierter GUI-Elemente, die zu virtuellen Widgets zusammengefasst sind, zu einem einzigen Blatt in der baumartigen Struktur von GUI-Elementen; und Generieren von Suchanweisungen, die auf die baumartige Struktur von Elementen der GUI-Elemente reagieren; und wobei der Prozessor so konfiguriert ist, dass er die Suchanweisungen verwendet, um das virtuelle Widget zu identifizieren, das der Berührung auf dem Touchscreen entspricht.
  15. Verfahren nach einem der Ansprüche 11 bis 14, wobei zumindest ein virtuelles Widget der GUI eine Zusammenstellung mehrerer aktiver GUI-Elemente aufweist, einschließlich zumindest einer virtuellen Schaltfläche, eines virtuellen Schiebereglers, eines virtuellen Knopfs, eines virtuellen Drehknopfes oder einer anderen virtuellen Benutzeroberfläche.
  16. Verfahren nach einem der Ansprüche 11 bis 15, wobei zumindest ein virtuelles Widget der GUI eine Zusammenstellung mehrerer diskreter aktiver GUI-Elemente aufweist, die gemeinsam eine virtuelle Schaltfläche, einen virtuellen Schieberegler, einen virtuellen Knopf, einen virtuellen Drehknopf oder eine andere virtuelle Benutzeroberfläche definieren.
  17. Verfahren nach einem der Ansprüche 11 bis 16, wobei: der Prozessor in einem Touch-Controller-Prozessor verkörpert ist, der getrennt von einer Haupteinheit ist; und das Verfahren aufweist: Erzeugen einer Widget-Nachricht durch den Touch-Controller-Prozessor, die eine Position oder einen Zustand des identifizierten virtuellen Widgets angibt, das der Berührung auf dem Touchscreen entspricht; und Senden der Widget-Nachricht vom Touch-Controller-Prozessor an die Haupteinheit.
  18. Verfahren nach Anspruch 17, wobei die vom Touch-Controller-Prozessor an die Haupteinheit gesendete Widget-Nachricht zumindest eine berührungsbezogene Position, eine Drehung, einen berührt / unberührt Status oder eine Anzahl von auf dem virtuelles Widget detektierten Berührungen anzeigt.
  19. Verfahren nach einem der Ansprüche 17 bis 18, das aufweist: Identifizieren eines berührungsbezogenen Zustands des virtuellen Widgets durch den Touch-Controller-Prozessor als Funktion eines erkannten Berührungsorts, einer Berührungskraft oder eines anderen messbaren Aspekts der detektierten Berührung auf dem Touchscreen und wobei die durch den Touch-Controller-Prozessor erzeugte Widget-Nachricht den identifizierten berührungsbezogenen Status des virtuellen Widgets angibt.
  20. Verfahren nach einem der Ansprüche 11 bis 19, welches das selektive Anzeigen mehrerer verschiedener GUI-Seiten auf dem Touchscreen aufweist, wobei jede GUI-Seite einen anderen Satz virtueller Widgets beinhaltet.
  21. Fertigungsartikel, der ein nicht flüchtiges maschinenlesbares Medium aufweist, wobei das Medium Anweisungen beinhaltet, wobei die Anweisungen, wenn sie ausgeführt werden, konfiguriert sind, um eines der Verfahren nach Anspruch 11 bis 20 auszuführen.
DE112018005206.0T 2017-10-24 2018-10-23 Berührungsempfindliche Benutzeroberfläche einschliesslich konfigurierbarer virtueller Widgets Pending DE112018005206T5 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762576563P 2017-10-24 2017-10-24
US201762576383P 2017-10-24 2017-10-24
US62/576,383 2017-10-24
US62/576,563 2017-10-24
US16/165,136 2018-10-19
US16/165,136 US10866697B2 (en) 2017-10-24 2018-10-19 Touch-sensitive user-interface including configurable virtual widgets
PCT/US2018/057103 WO2019084002A1 (en) 2017-10-24 2018-10-23 TACTILE USER INTERFACE COMPRISING CONFIGURABLE VIRTUAL SOFTWARE GADGETS

Publications (1)

Publication Number Publication Date
DE112018005206T5 true DE112018005206T5 (de) 2020-06-18

Family

ID=66169316

Family Applications (2)

Application Number Title Priority Date Filing Date
DE112018005206.0T Pending DE112018005206T5 (de) 2017-10-24 2018-10-23 Berührungsempfindliche Benutzeroberfläche einschliesslich konfigurierbarer virtueller Widgets
DE112018004686.9T Pending DE112018004686T5 (de) 2017-10-24 2018-10-24 Touchscreen mit taktilen feedbackstrukturen und zugehörigen virtuellen benutzeroberflächenelementen

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE112018004686.9T Pending DE112018004686T5 (de) 2017-10-24 2018-10-24 Touchscreen mit taktilen feedbackstrukturen und zugehörigen virtuellen benutzeroberflächenelementen

Country Status (7)

Country Link
US (2) US10866697B2 (de)
JP (2) JP7181929B2 (de)
KR (2) KR102556638B1 (de)
CN (2) CN111052060B (de)
DE (2) DE112018005206T5 (de)
TW (2) TWI787372B (de)
WO (2) WO2019084002A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330544B2 (en) * 2012-11-20 2016-05-03 Immersion Corporation System and method for simulated physical interactions with haptic effects
DE102017214941A1 (de) 2017-08-25 2019-02-28 Dometic Sweden Ab Freizeitfahrzeug, Kühlvorrichtung, Steuerungssystem und Verfahren zur Steuerung der Kühlvorrichtung
USD936665S1 (en) * 2018-11-21 2021-11-23 Biosense Webster (Israel) Ltd. Portion of a computer screen with a graphical user interface
US11126341B2 (en) * 2019-02-21 2021-09-21 Htc Corporation Object manipulating method, host device and computer readable storage medium
USD919633S1 (en) * 2019-05-14 2021-05-18 Rasimo Systems LLC Display screen with graphics
TWI807372B (zh) * 2020-07-21 2023-07-01 美商酷比公司 虛擬化用戶介面設備
JP7432746B2 (ja) 2020-09-08 2024-02-16 アルプスアルパイン株式会社 入力装置
US11385777B2 (en) 2020-09-14 2022-07-12 UiPath, Inc. User interface (UI) mapper for robotic process automation
EP3971691A1 (de) * 2020-09-18 2022-03-23 Dometic Sweden AB Wohnmobilbenutzerschnittstelle
CN112596612A (zh) * 2020-12-28 2021-04-02 北京小米移动软件有限公司 触感反馈生成方法、触感反馈生成装置及存储介质
US11662822B1 (en) * 2021-12-20 2023-05-30 Huawei Technologies Co., Ltd. Systems and methods for generating pseudo haptic feedback
CN114911383A (zh) * 2022-06-02 2022-08-16 亿咖通(湖北)技术有限公司 窗口显示方法和车载终端
CN117608424B (zh) * 2024-01-24 2024-04-12 江苏锦花电子股份有限公司 一种基于物联网的触摸式旋钮屏管控系统及方法

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004221757A (ja) * 2003-01-10 2004-08-05 Renesas Technology Corp 動き検出装置及び探索領域形状可変動き検出器
GB0313808D0 (en) * 2003-06-14 2003-07-23 Binstead Ronald P Improvements in touch technology
KR100958490B1 (ko) * 2004-07-30 2010-05-17 애플 인크. 사용자 인터페이스 방법, 미디어 항목들을 통해 스크롤하는방법, 디스플레이 및 터치 스크린을 갖는 사용자-조작되는전자 장치 상에서 수행되는 방법, 디스플레이 및 터치감지 입력 장치를 갖는 컴퓨팅 장치 상에서 수행되는 방법,컴퓨팅 시스템, 컴퓨팅 장치, 터치 감지 장치를 통해플로팅 컨트롤을 기동시키는 컴퓨터 구현 방법 및 컴퓨터구현 방법
US7657100B2 (en) * 2005-05-09 2010-02-02 Like.Com System and method for enabling image recognition and searching of images
US8578282B2 (en) * 2006-03-15 2013-11-05 Navisense Visual toolkit for a virtual user interface
CN104965621B (zh) * 2006-06-09 2018-06-12 苹果公司 触摸屏液晶显示器及其操作方法
US7791594B2 (en) * 2006-08-30 2010-09-07 Sony Ericsson Mobile Communications Ab Orientation based multiple mode mechanically vibrated touch screen display
US20090115734A1 (en) * 2007-11-02 2009-05-07 Sony Ericsson Mobile Communications Ab Perceivable feedback
AR064377A1 (es) * 2007-12-17 2009-04-01 Rovere Victor Manuel Suarez Dispositivo para sensar multiples areas de contacto contra objetos en forma simultanea
US8456438B2 (en) * 2008-01-04 2013-06-04 Tactus Technology, Inc. User interface system
US8928621B2 (en) * 2008-01-04 2015-01-06 Tactus Technology, Inc. User interface system and method
US8243038B2 (en) * 2009-07-03 2012-08-14 Tactus Technologies Method for adjusting the user interface of a device
US8547339B2 (en) * 2008-01-04 2013-10-01 Tactus Technology, Inc. System and methods for raised touch screens
US8922502B2 (en) * 2008-01-04 2014-12-30 Tactus Technology, Inc. User interface system
US8922503B2 (en) * 2008-01-04 2014-12-30 Tactus Technology, Inc. User interface system
US8970403B2 (en) * 2008-01-04 2015-03-03 Tactus Technology, Inc. Method for actuating a tactile interface layer
US8553005B2 (en) * 2008-01-04 2013-10-08 Tactus Technology, Inc. User interface system
US9557915B2 (en) * 2008-01-04 2017-01-31 Tactus Technology, Inc. Dynamic tactile interface
US8004501B2 (en) * 2008-01-21 2011-08-23 Sony Computer Entertainment America Llc Hand-held device with touchscreen and digital tactile pixels
US9829977B2 (en) * 2008-04-02 2017-11-28 Immersion Corporation Method and apparatus for providing multi-point haptic feedback texture systems
US8115745B2 (en) * 2008-06-19 2012-02-14 Tactile Displays, Llc Apparatus and method for interactive display with tactile feedback
US8659555B2 (en) * 2008-06-24 2014-02-25 Nokia Corporation Method and apparatus for executing a feature using a tactile cue
TW201005262A (en) * 2008-07-29 2010-02-01 Mitac Int Corp Navigation system
US20100060568A1 (en) * 2008-09-05 2010-03-11 Apple Inc. Curved surface input device with normalized capacitive sensing
US10289199B2 (en) * 2008-09-29 2019-05-14 Apple Inc. Haptic feedback system
JP2010086236A (ja) 2008-09-30 2010-04-15 Casio Computer Co Ltd タッチパネル
CA2681856A1 (en) * 2008-10-07 2010-04-07 Research In Motion Limited A method and handheld electronic device having a graphic user interface with efficient orientation sensor use
US8245143B2 (en) * 2008-10-08 2012-08-14 Research In Motion Limited Method and handheld electronic device having a graphical user interface which arranges icons dynamically
US20100088632A1 (en) * 2008-10-08 2010-04-08 Research In Motion Limited Method and handheld electronic device having dual mode touchscreen-based navigation
US20100088654A1 (en) * 2008-10-08 2010-04-08 Research In Motion Limited Electronic device having a state aware touchscreen
US8760413B2 (en) * 2009-01-08 2014-06-24 Synaptics Incorporated Tactile surface
US8279184B2 (en) * 2009-01-27 2012-10-02 Research In Motion Limited Electronic device including a touchscreen and method
CN102349038B (zh) * 2009-03-12 2016-08-24 意美森公司 用于纹理引擎的系统和方法
KR101713358B1 (ko) * 2009-07-22 2017-03-07 임머숀 코퍼레이션 제어 제스처의 입력 동안에 가상 장비의 제어에 관한 복합 햅틱 자극을 제공하기 위한 시스템 및 방법
US8421761B2 (en) * 2009-08-26 2013-04-16 General Electric Company Imaging multi-modality touch pad interface systems, methods, articles of manufacture, and apparatus
US8730199B2 (en) * 2009-09-04 2014-05-20 Atmel Corporation Capacitive control panel
US20110099498A1 (en) 2009-10-26 2011-04-28 Barkol Omer Graphical user interface hierarchy generation
JP5704428B2 (ja) * 2009-11-18 2015-04-22 株式会社リコー タッチパネル装置及びタッチパネル装置の制御方法
US8619035B2 (en) * 2010-02-10 2013-12-31 Tactus Technology, Inc. Method for assisting user input to a device
EP2559164B1 (de) * 2010-04-14 2014-12-24 Frederick Johannes Bruwer Druckabhängige kapazitive sensorschalterkonstruktion
KR101855535B1 (ko) * 2010-04-23 2018-05-04 임머숀 코퍼레이션 햅틱 효과를 제공하는 시스템 및 방법
GB201011146D0 (en) * 2010-07-02 2010-08-18 Vodafone Ip Licensing Ltd Mobile computing device
US8963874B2 (en) * 2010-07-31 2015-02-24 Symbol Technologies, Inc. Touch screen rendering system and method of operation thereof
US8576171B2 (en) * 2010-08-13 2013-11-05 Immersion Corporation Systems and methods for providing haptic feedback to touch-sensitive input devices
US8311514B2 (en) * 2010-09-16 2012-11-13 Microsoft Corporation Prevention of accidental device activation
US20120105354A1 (en) * 2010-10-31 2012-05-03 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Tactile Feedback Cover Lens for a Capacitive Touchscreen System
US20120256862A1 (en) * 2011-04-11 2012-10-11 Kurt Wagner Touchscreen guide
US20120268386A1 (en) * 2011-04-19 2012-10-25 Karamath James Robert Touch-screen device including tactile feedback actuator
US20120284631A1 (en) * 2011-05-02 2012-11-08 German Lancioni Methods to adapt user interfaces and input controls
US8717151B2 (en) * 2011-05-13 2014-05-06 Qualcomm Incorporated Devices and methods for presenting information to a user on a tactile output surface of a mobile device
US20120274596A1 (en) * 2011-07-11 2012-11-01 Ludwig Lester F Use of organic light emitting diode (oled) displays as a high-resolution optical tactile sensor for high dimensional touchpad (hdtp) user interfaces
US9671954B1 (en) * 2011-07-11 2017-06-06 The Boeing Company Tactile feedback devices for configurable touchscreen interfaces
CA2844615C (en) * 2011-08-09 2019-01-15 Blackberry Limited Manipulating screen layers in multi-layer applications
JP5948074B2 (ja) * 2012-02-13 2016-07-06 株式会社日立ハイテクノロジーズ 画像形成装置及び寸法測定装置
US8493354B1 (en) * 2012-08-23 2013-07-23 Immersion Corporation Interactivity model for shared feedback on mobile devices
US9471185B2 (en) * 2012-02-21 2016-10-18 Atmel Corporation Flexible touch sensor input device
US9626446B2 (en) * 2012-03-07 2017-04-18 Snap Trends, Inc. Methods and systems of advertising based on aggregated information of social networks within geographical locations via a network
US9046972B2 (en) * 2012-03-23 2015-06-02 Nokia Technologies Oy Structure for a tactile display
EP2850509A4 (de) 2012-05-16 2016-01-06 Tactus Technology Inc Benutzerschnittstelle und verfahren
JP5799908B2 (ja) * 2012-07-13 2015-10-28 株式会社デンソー タッチ式スイッチ装置
KR101916416B1 (ko) * 2012-07-30 2018-11-08 삼성전자주식회사 플렉서블 디스플레이 장치 및 그 디스플레이 방법
KR101427917B1 (ko) * 2012-08-27 2014-08-08 현대자동차 주식회사 변형 가능한 터치 스크린
US9330544B2 (en) 2012-11-20 2016-05-03 Immersion Corporation System and method for simulated physical interactions with haptic effects
US20140155690A1 (en) * 2012-12-05 2014-06-05 Ralph Clinton Morton Touchscreen Cunnilingus Training Simulator
US9323327B2 (en) * 2012-12-22 2016-04-26 Intel Corporation System and method for providing tactile feedback
KR102052153B1 (ko) * 2013-02-15 2019-12-17 삼성전자주식회사 보청기를 제어하는 휴대 단말 및 방법
KR102090964B1 (ko) * 2013-02-22 2020-03-19 삼성전자주식회사 터치 스크린에 디스플레이되는 아이콘을 제어하는 휴대 단말 및 방법
US9367938B2 (en) * 2013-02-28 2016-06-14 Nokia Technologies Oy Method and apparatus for automated real-time detection of overlapping painted markup elements
KR102154792B1 (ko) * 2013-02-28 2020-09-10 삼성전자주식회사 보호 케이스를 감지하는 방법 및 그 전자 장치
US9298324B1 (en) * 2013-03-11 2016-03-29 Amazon Technologies, Inc. Capacitive touch with tactile feedback
US9361074B2 (en) * 2013-03-15 2016-06-07 Keysight Technologies, Inc. Method for creating a user interface
JP6276385B2 (ja) * 2013-04-26 2018-02-07 イマージョン コーポレーションImmersion Corporation フレキシブルディスプレイのための、受動的剛性及び能動的変形の触覚出力装置
US9470919B2 (en) * 2013-05-14 2016-10-18 Microsoft Technology Licensing, Llc Methods for producing a glass-based non planar digital display
KR20140137616A (ko) * 2013-05-23 2014-12-03 삼성전자주식회사 다자간 대화를 제어하는 휴대 단말 및 방법
US9182864B2 (en) * 2013-06-03 2015-11-10 Rajkumari Mohindra Pressure sensitive projected capacitive touch sensing
US10120447B2 (en) * 2013-06-24 2018-11-06 Northwestern University Haptic display with simultaneous sensing and actuation
KR20150006235A (ko) * 2013-07-08 2015-01-16 삼성전자주식회사 결합된 ui 구성 요소를 제공하는 휴대 장치 및 그 제어 방법
US9092291B1 (en) * 2013-07-11 2015-07-28 Sprint Communications Company L.P. Dynamic updating and renaming virtual pre-installation stub applications
CN103455590B (zh) * 2013-08-29 2017-05-31 百度在线网络技术(北京)有限公司 在触屏设备中进行检索的方法和装置
US9176635B2 (en) * 2013-10-14 2015-11-03 Parade Technologies, Ltd. Virtual buttons for a touch interface
US20150109214A1 (en) * 2013-10-22 2015-04-23 Weidong Shi Methods and Apparatuses of touch-fingerprinting Display
US20150185946A1 (en) * 2013-12-30 2015-07-02 Google Inc. Touch surface having capacitive and resistive sensors
CN103793691A (zh) * 2014-01-28 2014-05-14 深圳市汇顶科技股份有限公司 指纹识别装置及具有其的移动终端
US10453371B2 (en) * 2014-02-07 2019-10-22 Samsung Electronics Co., Ltd. Multi-layer display with color and contrast enhancement
US10170030B2 (en) * 2014-02-07 2019-01-01 Samsung Electronics Company, Ltd. Dual-mode display
US10565925B2 (en) * 2014-02-07 2020-02-18 Samsung Electronics Co., Ltd. Full color display with intrinsic transparency
US10416801B2 (en) * 2014-04-08 2019-09-17 Atmel Corporation Apparatus, controller, and device for touch sensor hand-configuration analysis based at least on a distribution of capacitance values
US10031582B2 (en) * 2014-06-05 2018-07-24 Immersion Corporation Systems and methods for induced electrostatic haptic effects
WO2016002675A1 (ja) 2014-06-30 2016-01-07 日本電気株式会社 スイッチモジュール、電子機器、および、電子機器の製造方法
US9696806B2 (en) * 2014-07-02 2017-07-04 Immersion Corporation Systems and methods for multi-output electrostatic haptic effects
US9710063B2 (en) * 2014-07-21 2017-07-18 Immersion Corporation Systems and methods for determining haptic effects for multi-touch input
CN104156133B (zh) * 2014-09-01 2017-04-19 深圳市华星光电技术有限公司 一种单层互容式触摸面板及电容式触摸屏
US20160328065A1 (en) * 2015-01-12 2016-11-10 Rockwell Collins, Inc. Touchscreen with Dynamic Control of Activation Force
KR20160088764A (ko) * 2015-01-16 2016-07-26 삼성전자주식회사 플렉서블 디바이스 및 그 동작 방법
JP6251214B2 (ja) 2015-05-14 2017-12-20 株式会社東芝 電子機器、方法及びプログラム
US10416799B2 (en) * 2015-06-03 2019-09-17 Microsoft Technology Licensing, Llc Force sensing and inadvertent input control of an input device
CN105117245A (zh) 2015-08-04 2015-12-02 小米科技有限责任公司 卸载应用程序的方法和装置
US9798413B2 (en) * 2015-08-27 2017-10-24 Hand Held Products, Inc. Interactive display
US9874965B2 (en) * 2015-09-11 2018-01-23 Apple Inc. Transparent strain sensors in an electronic device
JP6569415B2 (ja) 2015-09-15 2019-09-04 株式会社リコー 表示入力装置、画像形成装置及び電子機器と表示制御方法並びにプログラム
KR20170046912A (ko) * 2015-10-22 2017-05-04 삼성전자주식회사 정보 제공 방법 및 이를 지원하는 전자 장치
US10386940B2 (en) * 2015-10-30 2019-08-20 Microsoft Technology Licensing, Llc Touch sensing of user input device
US9875625B2 (en) * 2015-12-18 2018-01-23 Immersion Corporation Systems and methods for multifunction haptic output devices
US20170192457A1 (en) * 2015-12-31 2017-07-06 AAC Technologies Pte. Ltd. Touch panle, haptics touch display using same, and manufacturing method for making same
US9898903B2 (en) * 2016-03-07 2018-02-20 Immersion Corporation Systems and methods for haptic surface elements
WO2017172635A1 (en) * 2016-03-31 2017-10-05 Osisoft, Llc Event based data collection, integration, and presentation
CN109478113B9 (zh) * 2016-05-18 2022-03-25 森赛尔股份有限公司 用于检测和确认触摸输入的方法
US9916032B2 (en) * 2016-05-18 2018-03-13 Honeywell International Inc. System and method of knob operation for touchscreen devices
CN106200929B (zh) * 2016-06-30 2018-10-30 南京中电熊猫液晶显示科技有限公司 电容式触觉反馈显示装置、工作方法及其检测方法
CN109791961A (zh) * 2016-07-20 2019-05-21 Ib韩国有限公司 具有量子点的发光膜
KR102579132B1 (ko) * 2016-08-02 2023-09-18 삼성전자주식회사 디스플레이를 구비한 전자 장치
KR102535056B1 (ko) * 2016-08-03 2023-05-22 삼성전자 주식회사 전자 장치 및 터치 인식 방법
KR20180020374A (ko) * 2016-08-18 2018-02-28 한화테크윈 주식회사 이벤트 검색 시스템, 장치 및 방법
US10372214B1 (en) * 2016-09-07 2019-08-06 Apple Inc. Adaptable user-selectable input area in an electronic device
US10206044B2 (en) * 2016-09-08 2019-02-12 Microsoft Technology Licensing, Llc Display structure having a visual display and an audio output
KR102580327B1 (ko) * 2016-09-09 2023-09-19 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US10216335B1 (en) * 2016-10-18 2019-02-26 Google Llc Reducing false sensing of touchscreen inputs
US10209804B2 (en) * 2017-01-10 2019-02-19 Rockwell Collins, Inc. Emissive Display over resistive touch sensor with force sensing
US20180275757A1 (en) * 2017-03-23 2018-09-27 Immersion Corporation Systems and methods for in-cell haptics
EP3385831A1 (de) * 2017-04-04 2018-10-10 Lg Electronics Inc. Mobiles endgerät
US11334044B2 (en) * 2018-11-19 2022-05-17 Johnson Controls Tyco IP Holdings LLP Building system with semantic modeling based searching

Also Published As

Publication number Publication date
TWI787372B (zh) 2022-12-21
TW201923544A (zh) 2019-06-16
CN111052060B (zh) 2023-11-24
KR20200071721A (ko) 2020-06-19
CN111164549A (zh) 2020-05-15
CN111164549B (zh) 2023-11-03
DE112018004686T5 (de) 2020-06-04
WO2019084082A1 (en) 2019-05-02
US10747404B2 (en) 2020-08-18
JP7181929B2 (ja) 2022-12-01
US20190121435A1 (en) 2019-04-25
JP7269924B2 (ja) 2023-05-09
CN111052060A (zh) 2020-04-21
US20190121500A1 (en) 2019-04-25
TW201931076A (zh) 2019-08-01
KR102627023B1 (ko) 2024-01-18
KR20200071722A (ko) 2020-06-19
JP2021500677A (ja) 2021-01-07
US10866697B2 (en) 2020-12-15
TWI816706B (zh) 2023-10-01
KR102556638B1 (ko) 2023-07-17
WO2019084002A1 (en) 2019-05-02
JP2021500667A (ja) 2021-01-07

Similar Documents

Publication Publication Date Title
DE112018005206T5 (de) Berührungsempfindliche Benutzeroberfläche einschliesslich konfigurierbarer virtueller Widgets
DE112018002527T5 (de) Techniken zur identifizierung von benutzeroberflächenelementen und systeme und vorrichtungen, die diese verwenden
DE102009011687B4 (de) Berührungsereignismodell
DE102010036906A1 (de) Konfigurierbares Pie-Menü
DE102014117614A1 (de) Wechseln eines Schnittstellenmodus mittels einer Eingabegeste
DE102009059868A1 (de) Verfahren und Vorrichtung zum Bereitstellen einer Benutzerschnittstelle
EP3163425B1 (de) Verfahren zum betreiben eines rechnersystems
DE102017000569A1 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Ermitteln von Eingabebereichen an einer grafischen Benutzeroberfläche
DE102013202818B4 (de) Verfahren zur Steuerung einer Applikation und zugehöriges System
DE102020129810A1 (de) Dynamische ausschlusszone für physische steuerelemente von touchscreens

Legal Events

Date Code Title Description
R012 Request for examination validly filed