-
VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität gegenüber (a) der vorläufigen Patentanmeldung Nr. 62/576,383 der Vereinigten Staaten, die am 24. Oktober 2017 eingereicht wurde, und (b) der vorläufigen Patentanmeldung Nr. 62/576.563 der Vereinigten Staaten, die am 24. Oktober 2017 eingereicht wurde und deren gesamter Inhalt durch Bezugnahme für alle Zwecke aufgenommen wird.
-
TECHNISCHES GEBIET DER ERFINDUNG
-
Die vorliegende Offenbarung bezieht sich auf berührungsempfindliche Benutzeroberflächen, z. B. Touchscreens, und insbesondere auf einen Touchscreen mit taktilen Feedbackstrukturen (z. B. physikalische Grate oder Nuten) und entsprechende virtuelle Benutzeroberflächenelemente, z. B. Widgets.
-
HINTERGRUNF DER ERFINDUNG
-
Touch-Schnittstellen, die Berührungserkennung beinhalten, werden für eine Vielzahl von Anwendungen verwendet, z. B. in Tablet-Computern, PCs, Smartphones und anderen Konsumgütern. Sie werden auch als Steuerpulte für Automobile, Geräte (z. B. Kühlschränke, Öfen, Waschmaschine/Trockner, etc.) sowie Heizungs- und Klimaanlagen, Sicherheitssysteme, Geldautomaten eingesetzt. Eine Touch-Schnittstelle kann in diesen Anwendungen z. B. ein Touchpad sein oder einen Bildschirm und eine grafische Benutzeroberfläche (GUI) beinhalten.
-
ZUSAMMENFASSUNG
-
Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Verfahren zur Erstellung von Anweisungen zur Suche nach einem Element einer grafischen Benutzeroberfläche (GUI), die auf einem kontaktsensitiven Bildschirm angezeigt wird. Das Verfahren weist das Analysieren einer GUI-Definition und das Identifizieren von Elementen der GUI auf, die auf die Analyse ansprechen; das Erstellen eines Datensatzes, der Einträge identifizierter Elemente beinhaltet; das Zuordnen der identifizierten Elemente zu Gruppen ähnlich lokalisierter Elemente; das Anordnen des Datensatzes identifizierter Elemente in einer baumähnlichen Struktur; das Zusammensetzen identifizierter Elemente in denselben Gruppen in einem einzigen Blatt in der baumähnlichen Struktur; Optimieren der baumähnlichen Struktur; und Erzeugen einer Suchanweisungsliste, die auf die baumähnliche Struktur reagiert.
-
Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Computerprogrammprodukt, mit dem ein Computer ausführbare Anweisungen zur Suche nach einem Element einer grafischen Benutzeroberfläche (GUI) erstellen kann. Das Programmprodukt kann ein computerlesbares Medium und Softwareanweisungen auf dem computerlesbaren Medium beinhalten. Die Softwareanweisungen auf dem computerlesbaren Medium sind angepasst, damit der Computer die nachfolgenden Operationen durchführen kann: Analysieren einer GUI-Definition und Identifizieren von Elementen der GUI, die reaktiv auf die analysierte GUI-Definition sind; Erstellung eines Datensatzes, der Einträge der identifizierten Elemente beinhaltet; Zuordnung der identifizierten Elemente zu Gruppen ähnlich lokalisierter Elemente; Anordnen der Aufzeichnung identifizierter Elemente in eine baumähnliche Struktur; Zusammenfalten identifizierter Elemente in denselben Gruppen in ein einzelnes Blatt in der baumähnlichen Struktur; Optimierung der baumartigen Struktur; und Erstellen einer Liste von Suchanweisungen, die auf die baumähnliche Struktur reagieren.
-
Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf einen Mikrocontroller, der operabel an einen Touchscreen gekoppelt ist, der für die Anzeige einer grafischen Benutzeroberfläche (GUI) konfiguriert ist. Der Mikrocontroller weist zumindest einen Prozessor und eine oder mehrere ausführbare Anweisungen auf, die auf einem nicht-flüchtigen Speichermedium gespeichert sind. Die Anweisungen, wenn sie vom Prozessor ausgeführt werden, sind angepasst, um es dem Prozessor zu ermöglichen, eine Position einer auf einem Touchscreen wahrgenommenen Berührung zu bestimmen; und ein GUI-Element zu identifizieren, das mit der Berührungsposition verknüpft ist, die der wahrgenommenen Berührung entspricht.
-
Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein Verfahren zur Identifizierung eines Elements einer grafischen Benutzeroberfläche (GUI), das auf einem Touchscreen angezeigt wird. Das Verfahren weist die Bestimmung der Position einer wahrgenommenen Berührung auf einem Touchscreen auf; Ausführung einer oder mehrerer Suchanweisungen, die auf die Position reagieren, wobei jede Suchanweisung der einen oder mehreren Suchanweisungen einem GUI-Element entspricht und bei der Ausführung angepasst wird, um ein Suchergebnis zurückzugeben; und ein GUI-Element zu identifizieren, das auf das Suchergebnis reagiert.
-
Einige Ausführungsformen der Offenbarung beziehen sich im Allgemeinen auf ein System. Das System umfasst ein Anzeige-Subsystem und ein Touch-Subsystem. Das Anzeige-Subsystem ist so konfiguriert, dass eine Anzeige gesteuert wird. Das Touch-Subsystem verfügt über einen Touch-Sensor und einen Touch-Controller. Der Touch-Controller ist so konfiguriert, dass eine Position einer wahrgenommenen Berührung am Touch-Sensor bestimmt wird, eine oder mehrere Suchanweisungen ausführt, die auf die Position und einen Suchbaum reagieren, wobei jede Suchanweisung der einen oder mehreren Suchanweisungen einem GUI-Element entspricht und bei der Ausführung angepasst wird, um ein Suchergebnis zurückzugeben; Identifizieren eines GUI-Elements, das auf das Suchergebnis reagiert; und Generieren einer haptischen Steuernachricht, die auf das identifizierte GUI-Element reagiert.
-
Einige Ausführungsformen der Offenbarung beinhalten eine berührungsempfindliche GUI, die virtuelle Widgets verwendet, die jeweils eine Zusammenstellung von Formen (z. B. ein oder mehrere aktive UI-Elemente) beinhalten, die in einem anzeigebaren GUI-Bildschirm beinhaltet sind. Beispielsweise kann ein virtuelles Widget eine definierte Zusammenstellung mehrerer Instanzen und/oder Typen von virtuellen Schaltflächen, Schiebereglern, Knöpfen, Drehscheiben usw. aufweisen. Als ein weiteres Beispiel kann ein virtuelles Widget eine definierte Zusammenstellung aktiver Elemente aufweisen, die gemeinsam eine Schnittstelle zum Steuern einer definierten Funktion festlegen.
-
In einigen Ausführungsformen können virtuelle Widgets auf dem Touchscreen angezeigt werden, existieren in einigen Ausführungsformen jedoch nur im Rahmen eines Touchscreen-Konfigurationsmoduls/-Verfahrens 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 GUI reduzieren. Beispielsweise kann die Verwendung virtueller Widgets den Overhead auf der Haupteinheit reduzieren, um Berührungspositionen zu verarbeiten, und kann möglicherweise keine separate Hardware oder Elektronik für physische Drehknöpfe, Schieberegler usw. erfordern, z. B. für Heizungssteuerungen, Funksteuerungen oder andere Arten von Steuerungen.
-
Einige Ausführungsformen stellen in einer konfigurierbare Art und Weise Systeme und Verfahren zur Definition von Bereichen eines Touchscreens (z. B. Bereiche in einer konfigurierten Bildschirmseite) bereit, die als virtuelle Widgets (z. B. Tasten, Schieberegler, Drehscheiben 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 Rotationsposition einer virtuellen Drehscheibe, die der erkannten Berührungsposition entspricht), und solche Positions-/Zustandsinformationen in einer „Widget-Mitteilung“ an die Haupteinheit berichten, anstatt oder zusätzlich eine „Touch-Mitteilung“ zu berichten, die die Position der Berührung auf dem Touchscreen anzeigt. Widget-Mitteilungen können z. B. eine vom Benutzer ausgewählte Position, eine Drehung, einen „berührt“ Status und/oder die Anzahl der erkannten Berührungen auf einem entsprechenden Widget anzeigen, die der erkannten Berührungsposition, Druckkraft und/oder einem anderen messbaren Aspekt der erkannten Berührung auf dem Touchscreen entsprechen.
-
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 zu verwenden. Beispielsweise kann eine Schnittstelle über eine geeignete Konfiguration jegliche Produktvariante verarbeiten.
-
Einige Ausführungsformen können statische physikalische Strukturen aufweisen, z. B. physikalische Grate, Höcker, Rillen usw., die in eine Touchscreen-Oberfläche integriert sind, um einer Person taktiles Feedback zu geben. Solche Strukturen werden hierin als „statische Widgets“ bezeichnet. In einigen Ausführungsformen können statische Widgets in Kombination mit (a) virtuellen Widgets (z. B. wobei ein virtuelles Widget mit einem entsprechenden statischen Widget in der Touchscreen-Oberfläche zusammen angeordnet wird) und/oder (b) tatsächlichen physischen Widgets (z. B. rotierende Drehscheiben usw.) verwendet werden, die ein zugrunde liegendes virtuelles Widget verwenden, um seine Position zu erkennen.
-
Statische Widgets können entsprechenden virtuellen Widgets oder anderen UI-Elementen, die auf dem Touchscreen angezeigt werden, ein physisches „Anfühlen“ bereitstellen. Statische Widgets können es einem Benutzer ermöglichen, Eingaben an der Touchscreen-GUI durch Fühlen bereitzustellen, ohne auf den Touchscreen zu schauen, was besonders nützlich für Automobilanwendungen oder andere Anwendungen sein kann, bei denen der visuelle Fokus des Benutzers auf andere Stellen gerichtet sein kann. In einigen Ausführungsformen ist das System so konfiguriert, dass es der Haupteinheit eine Steuerposition eines statischen Widgets meldet, das berührt wird, im Gegensatz zu den Positionskoordinaten der Berührung auf dem Bildschirm, da das System eine spezielle Touch-Verarbeitung des Widget-Bereichs ermöglichen kann.
-
Ein statisches Widget kann physikalisch bewegliche Teile ersetzen, um die Robustheit des Systems im Vergleich zu herkömmlichen Systemen zu erhöhen, und kann die Anzahl der Komponenten und Interprozessorschnittstellen reduzieren. Darüber hinaus können mehrere Instanzen eines oder mehrerer Typen oder Formen statischer Widgets auf einem einzigen Bildschirm bereitgestellt werden. In einigen Fällen können statische Widgets verwendet werden, um einen oder mehrere Rotoren (Drehscheiben oder Knöpfe), Schieberegler, Schaltflächen, Schalter oder andere Arten von physischen Schnittstellen zu ersetzen.
-
Einige statische Widgets können zumindest teilweise in den Hauptkörper der Touchscreen-Abdeckung eingebettet oder anderweitig physisch an den Hauptkörper der Touchscreen-Abdeckung gekoppelt sein, und daher als „eingebettete statische Widgets“ bezeichnet werden. In einigen Ausführungsformen können eingebettete statische Widgets aus einem oder mehreren anderen Materialien als dem Hauptkörper (z. B. Glas oder Polymer) der Touchscreen-Abdeckung ausgebildet werden. Beispielsweise kann ein eingebettetes statisches Widget aus Material(ien) gebildet werden, das/die höhere oder niedrigere Dielektrizitätskonstante(n) als der Hauptkörper der Touchscreen-Abdeckung aufweist/aufweisen, z. B. um eine gewünschte kapazitive berührungsempfindliche Reaktion bereitzustellen.
-
So stellt eine Ausführungsform ein Touchscreen-System mit einer Touchscreen-Deckschicht bereit, die aus einem ersten Material mit einer dielektrischen Konstante gebildet wird, und einer taktilen Struktur, die an die Touchscreen-Deckschicht gekoppelt ist und eine nicht-planare Oberflächentextur definiert, wobei die die taktile Struktur aus zumindest einem zweiten Material mit einer anderen Dielektrizitätskonstante als das erste Material der Touchscreen-Deckschicht ausgebildet ist.
-
Eine weitere beispielhaften Ausführungsform stellt ein berührungsempfindliches Touchscreen-System mit einer Touchscreen-Deckschicht und einer taktilen Struktur bereit, die in der Touchscreen-Deckschicht ausgebildet oder an die Touchscreen-Abdeckung gekoppelt ist und eine nicht-planare Oberflächentextur definiert (z. B. als Kamm oder andere erhöhte Struktur oder Nut oder andere Vertiefung verkörpert), die dem Finger des Benutzers taktiles Feedback gibt. In einigen Ausführungsformen wird die taktile Struktur aus zumindest einem Material ausgebildet, das eine andere Dielektrizitätskonstante als die Touchscreen-Deckschicht aufweist. Eine unter der Touchscreen-Abdeckung angeordnete Touchscreen-Anzeigevorrichtung kann so konfiguriert sein, dass eine konfigurierbare grafische Benutzeroberfläche (GUI) mit einem entsprechenden virtuellen Benutzeroberflächenelement an einer Position angezeigt wird, der der taktilen Struktur entspricht. Das System kann eine Verarbeitungseinheit beinhalten, die so konfiguriert ist, dass sie eine Berührung an einer Position eines bestimmten virtuellen Benutzeroberflächenelements wahrnimmt, das bestimmte virtuelle Benutzeroberflächenelement identifiziert und eine Aktion initiiert, die dem Element der virtuellen Benutzeroberfläche zugeordnet ist.
-
Figurenliste
-
Beispielhafte Aspekte und Ausführungsformen der vorliegenden Offenbarung werden im Folgenden in Verbindung mit den nachfolgenden beigefügten Zeichnungen beschrieben:
- 1 ist ein Ablaufdiagramm, das den Prozess des Generierens und Verwendens einer Suchaufgabenliste veranschaulicht, um kontaktierte UI-Elemente in einer GUI zu identifizieren.
- 2 ist ein Flussdiagramm eines Prozesses zur Generierung 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 zur Erzeugung eines Zwischensuchbaums gemäß einer Ausführungsform der Offenbarung;
- 5 ist ein Flussdiagramm eines Prozesses zum Generieren eines Suchaufgabenbaums gemäß einer Ausführungsform der Offenbarung;
- 6 ist ein Flussdiagramm eines Prozesses, um eine Suchaufgabenliste gemäß einer Ausführungsform der Offenbarung zu generieren;
- 7 ist ein Flussdiagramm eines UI-Elemente-/Form-Suchprozesses, 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 ausgebildet ist. (verfügbar in Farbe);
- 9 zeigt die UI-Elemente der Radio-GUI nach 8 gruppiert nach Ausführungsformen der Offenbarung, (verfügbar in Farbe);
- 10A bis 10E zeigen UI-Elemente in einer Baumstruktur, die nach Ausführungsformen der Offenbarung gebildet ist. (verfügbar in Farbe);
- 11 zeigt eine Ausführungsform eines Systems mit Suchaufgabenlisten;
- 12 zeigt eine Ausführungsform einer Radio-GUI, einschließlich Eigenschaften und Parametern, die zumindest einigen UI-Elementen der Radio-GUI zugeordnet sind. (verfügbar in Farbe);
- 13 veranschaulicht eine Ausführungsform des Systems nach 11, das als Teilsystem in eine Haupteinheit eines Automobils integriert ist;
- 14 veranschaulicht ein Beispiel-Touchscreen-System, das gemäß einer beispielhaften Ausführungsform virtuelle Widgets wie hierin in offenbart verwendet;
- 15 veranschaulicht eine Beispiel-Radio-Touchscreen-GUI einschließlich einer Anordnung von virtuellen Widgets einschließlich verschiedener Gruppen von UI-Elementen, gemäß einer beispielhaften Ausführungsform;
- 16 veranschaulicht ein Beispiel eines statischen Widgets, das als Grat verkörpert ist, und ein weiteres statisches Widget, das als Nut verkörpert ist, die im Deckglas über einem Berührungssensor, z. B. kapazitiver Sensor, nach einer beispielhaften Ausführungsform ausgebildet ist;
- 17A und 17B veranschaulichen gemäß einer beispielhaften Ausführungsform einen Beispiel-Touchscreen mit zwei statischen Widgets, die als kreisförmige Rillen oder Grate verkörpert sind;
- 18 veranschaulicht eine geneigte Seitenansicht eines statischen Widgets des in den und dargestellten Beispiels, wobei das statische Widget als kreisförmige Nut verkörpert ist;
- 19 veranschaulicht eine Beispielstruktur eines statischen Widgets vom Typ Grat, das in einem Touchscreen gemäß einer beispielhaften Ausführungsform ausgebildet wurde; und
- 20 zeigt eine Beispielstruktur eines statischen Widgets vom Typ „Mehrkomponentengrat“, das in einem Touchscreen gemäß einer beispielhaften Ausführungsform ausgebildet wurde.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen verwiesen, die die einen Teil hiervon bilden und in denen zur Veranschaulichung spezifische Beispiele von Ausführungsformen gezeigt werden, in denen die vorliegende Offenbarung praktiziert werden kann. Diese Ausführungsformen sind so detailliert beschrieben, dass eine Person mit gewöhnlichem Können gemäß Stand der Technik die vorliegende Offenbarung ausüben kann. Es können jedoch auch andere Ausführungsformen verwendet werden, und strukturelle, materielle und Prozessänderungen können vorgenommen werden, ohne vom Schutzumfang der Offenbarung abzuweichen. Die hier dargestellten Abbildungen sind nicht als tatsächliche Ansichten eines bestimmten Verfahrens, eines Systems, einer Vorrichtung oder einer Struktur gedacht, sondern 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 zum Nutzen des Lesers die gleiche oder ähnliche Nummerierung beibehalten; die Ähnlichkeit bei der Nummerierung bedeutet jedoch nicht, dass die Strukturen oder Komponenten in Größe, Zusammensetzung, Konfiguration oder einer anderen Eigenschaft notwendigerweise identisch sind.
-
Es ist leicht zu verstehen, dass die Bestandteile der Ausführungsformen, wie sie hierin allgemein beschrieben und in den Zeichnungen dargestellt sind, in einer Vielzahl unterschiedlicher Konfigurationen angeordnet und ausgestaltet werden können. Die folgende Beschreibung verschiedener Ausführungsformen soll also nicht den Umfang der vorliegenden Offenbarung 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, sofern nicht ausdrücklich angegeben.
-
Die nachfolgende Beschreibung kann Beispiele beinhalten, die es einem gewöhnlichen Fachmann ermöglichen, die offenbarten Ausführungsformen zu praktizieren. Die Verwendung der Begriffe „exemplarisch“, „beispielhaft“ 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, ist die Verwendung solcher Begriffe nicht dazu bestimmt, den Schutzumfang einer Ausführungsform oder diese Offenbarung auf die angegebenen Komponenten, Schritte, Merkmale, Funktionen oder dergleichen einzuschränken.
-
Darüber hinaus sind die gezeigten und beschriebenen spezifischen Implementierungen nur Beispiele und sollten nicht als einzige Möglichkeit zur Umsetzung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nichts anderes angegeben ist. Elemente, Schaltungen und Funktionen können in Blockdiagrammform dargestellt werden, um die vorliegende Offenbarung nicht unnötig detailliert zu verschleiern. Umgekehrt sind bestimmte gezeigte und beschriebene Implementierungen nur beispielhaft und sollten nicht als einzige Möglichkeit zur Umsetzung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nichts anderes angegeben ist. Darüber hinaus sind Blockdefinitionen und Partitionierung der Logik zwischen verschiedenen Blöcken beispielhaft für eine bestimmte Implementierung. Für einen Fachmann ist leicht offensichtlich, dass die gegenwärtige Offenbarung durch zahlreiche andere Unterteilungslösungen praktiziert werden kann. In den meisten Bereichen wurden Einzelheiten, die zeitliche Erwägungen und dergleichen berücksichtigen, ausgelassen, wenn solche Angaben nicht erforderlich sind, um ein vollständiges Verständnis der vorliegenden Offenbarung zu erlangen, und die im Rahmen der Fähigkeiten von Fachleuten liegen.
-
Fachleute werden verstehen, dass Informationen und Signale mit einer Vielzahl unterschiedlicher Technologien und Techniken dargestellt werden können. Beispielsweise können Daten, Anweisungen, Befehle, Informationen, Signale, Bits, Symbole und Chips, auf die in dieser Beschreibung verwiesen werden kann, durch Spannungen, Ströme, elektromagnetische Wellen, magnetische Felder oder Partikel, optische Felder oder Partikel oder eine beliebige Kombination davon dargestellt werden. Einige Zeichnungen können Signale zur Klarheit der Darstellung und Beschreibung als ein einziges Signal veranschaulichen. Es wird von Fachleuten verstanden werden, dass das Signal einen Bus von Signalen darstellen kann, wobei der Bus eine Vielzahl von Bitbreiten aufweisen kann und die vorliegende Offenbarung auf Basis einer beliebigen Anzahl von Datensignalen einschließlich eines einzelnen Datensignals implementiert werden kann.
-
Die verschiedenen illustrativen logischen Blöcke, Module und Schaltkreise, die in Verbindung mit den hier offenbarten Ausführungsformen beschrieben werden, können mit einem Universalprozessor, einem Spezialprozessor, einem digitalen Signalprozessor (DSP), einem Applikation Specific Integrated Circuit (ASIC), einem Field Programmable Gate Array (FPGA) oder einer anderen programmierbaren Logikvorrichtung, diskreter Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder eine beliebige Kombination davon umgesetzt werden, die für die Ausführung der hierin beschriebenen Funktionen entwickelt wurden. Ein Universalprozessor (kann hierin auch als Hostprozessor oder einfach als Host bezeichnet werden) kann ein Mikroprozessor sein, aber alternativ kann der Prozessor ein herkömmlicher Prozessor, Controller, Mikrocontroller oder eine Zustandsmaschine sein. Ein Prozessor kann auch als eine Kombination von Computervorrichtungen implementiert werden, z. B. einer Kombination aus einem DSP und einem Mikroprozessor, einer Vielzahl von Mikroprozessoren, einem oder mehreren Mikroprozessoren in Verbindung mit einem DSP-Kern oder einer anderen solche Konfiguration. Ein Universalcomputer einschließlich eines Prozessors wird als Spezialcomputer betrachtet, während der Universalcomputer für die Ausführung von Rechenanweisungen (z. B. Softwarecode) im Zusammenhang mit Ausführungsformen der vorliegenden Offenbarung konfiguriert ist.
-
Die Ausführungsformen können in Form eines Prozesses beschrieben werden, der als Flusschart, Flussdiagramm, Strukturdiagramm oder Blockdiagramm dargestellt wird. Obwohl ein Flussdiagramm operative Vorgänge als sequenziellen Prozess beschreiben kann, können viele dieser Vorgänge in einer anderen Reihenfolge, parallel oder im Wesentlichen gleichzeitig ausgeführt werden. Darüber hinaus kann die Reihenfolge der Aktionen neu angeordnet werden.
-
Ein Prozess kann einer Methode, einem Thread, einer Funktion, einer Prozedur, einer Unterroutine, einem Unterprogramm usw. entsprechen. Darüber hinaus können die hierin offenbarten Verfahren in Hardware, Software oder beidem implementiert werden. Wenn die Funktionen in Software implementiert sind, können sie als eine oder mehrere Anweisungen oder Codes auf computerlesbaren Medien gespeichert oder übertragen werden. Computerlesbare Medien umfassen sowohl Computerspeichermedien als auch Kommunikationsmedien, einschließlich jedes Mediums, das die Übertragung eines Computerprogramms von einer Position an einen anderen erleichtert.
-
Jeder Verweis auf ein Element hierin, das eine Bezeichnung wie „erste“, „zweite“ usw. verwendet, beschränkt die Menge oder Ordnung dieser Elemente nicht, es sei denn, eine solche Beschränkung wird ausdrücklich angegeben. Vielmehr können diese Bezeichnungen hierin als bequemes 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 vorausgehen muss. Darüber hinaus kann eine Gruppe von Elementen, sofern nicht anders angegeben, ein oder mehrere Elemente aufweisen.
-
Wie hierin verwendet, bedeutet der Begriff „im Wesentlichen“ in Bezug auf einen bestimmten Parameter, eine Eigenschaft oder eine Bedingung und beinhaltet in einem Maße die ein Fachmann verstehen würde, dass der angegebene Parameter, die Eigenschaft oder die Bedingung mit einem geringen Grad an Abweichungen erfüllt wird, wie z. B. innerhalb akzeptabler Fertigungstoleranzen. Je nach Parameter, Eigenschaft oder Bedingung, die im Wesentlichen erfüllt ist, kann der Parameter, die Eigenschaft oder Bedingung beispielsweise zumindest zu 90 % erfüllt, zumindest zu 95 % oder sogar zu 99 % erfüllt sein.
-
Die verschiedenen in dieser Offenbarung beschriebenen Ausführungsformen beziehen sich im Allgemeinen auf Techniken zur Bestimmung von UI-Elementen, die auf einer berührungsempfindlichen Benutzeroberfläche ausgewählt werden, und die Verwendung dieser Techniken, um eine oder mehrere haptische Antworten bereitzustellen. Wie für die hier beschriebenen Ausführungsformen verstanden, kann ein Kontaktsensor auf den Kontakt eines Objekts (z. B. einen Finger oder einen Stift) mit oder in der Nähe des Objekts zu einem berührungsempfindlichen Bereich einer Berührungsschnittstelle reagieren. In dieser Offenbarung bezieht sich „Kontakt“ im Allgemeinen auf den physischen Kontakt eines Objekts mit einem kontaktsensitiven Bereich, kann aber auch die Nähe eines Objekts umfassen, das eine messbare Reaktion durch den Kontaktsensor erzeugt. Darüber hinaus bezieht sich ein berührungsempfindlicher Bereich auf den physischen Bereich auf einer Touch-Schnittstelle, in dem ein Kontaktsensor auf den Kontakt eines Objekts reagieren kann.
-
Eine kontaktsensitive GUI, wie sie hier verwendet wird, bezieht sich auf eine Touch-Schnittstelle, die mit einer GUI integriert ist. Beispielsweise beinhaltet eine GUI in der Regel einen oder mehrere Anzeigebereiche und aktiv/aktiv Bereiche. In dieser Offenbarung ist ein Anzeigebereich ein Bereich einer Benutzeroberfläche, 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 einige Maßnahmen in Bezug auf die Benutzeroberfläche ergreifen kann. Einige Anzeigebereiche sind auch aktive Bereiche, da sie Informationen anzeigen und einige Aktionen ausgelöst werden können. In einer kontaktsensitiven GUI kann das Kontaktieren eines berührungsempfindlichen Bereichs, in dem ein aktiver Bereich angezeigt wird, diesen Bereich aktivieren (z. B. durch Anklicken einer GUI-Schaltfläche auf einem Touchscreen). Aktive Bereiche können als GUI-Elemente/Objekte angezeigt werden, z. B. Schaltflächen, Schieberegler, wählbare Bereiche, Menüs usw., alle in verschiedenen Formen und Größen.
-
Wenn der Kontakt in einem kontaktsensitiven Bereich wahrgenommen wird, wird im Allgemeinen ein Prozess verwendet, um die aktiven Regionen der GUI zu bestimmen, der der Kontakt entspricht, falls vorhanden. Wenn z. B. eine Schaltfläche „ENTER“ angetippt wird, wird der Kontakt gemessen und ein Algorithmus ausgeführt, um zu bestimmen, dass der Kontakt an der Position der ENTER-Schaltfläche hergestellt wurde. Die ENTER-Schaltfläche ist ein aktiver Bereich, so dass Ereignisse in der berührungsempfindlichen GUI und/oder dem zugrunde liegenden Anwendungsprogramm erstellt werden, das die GUI aufgerufen hat.
-
Wenn weiterhin ein bestimmtes GUI-Element mit dem aktiven Bereich verknüpft ist, können Aktuatoren, die in die Touch-Schnittstelle integriert sind, eine oder mehrere physische Reaktionen bereitstellen, die gemeinhin als haptische Antworten bezeichnet werden. Diese können die Form von Kräften, Vibrationen oder Bewegungen aufweisen und Oberflächentexturen, Grate, Kanten, Interaktionen wie das Drücken/Klicken eines Knopfes sowie andere simulierte Empfindungen und Reaktionen imitieren. Im Falle einer GUI kann die haptische Antwort auf dasjenige GUI-Element lokalisiert werden, mit dem ein Benutzer interagiert. Wenn ein Benutzer beispielsweise eine GUI-Schaltfläche berührt, kann die haptische Antwort dazu beigeben, dass sich die Schaltfläche mit einer Kante erhöht anfühlt, als ob sie gedrückt wäre oder als ob sie eine grobe Textur aufweist.
-
Wie nachfolgend erläutert, kann z. B. unter Bezugnahme auf 14 und 15 in einigen Ausführungsformen eine berührungsempfindliche GUI „virtuelle Widgets“ verwenden, die jegliche Zusammenstellung von Formen (z. B. ein oder mehrere aktive GUI-Elemente/Objekte) beinhalten, die in einem anzeigebaren GUI-Bildschirm beinhaltet sind. Beispielsweise kann ein virtuelles Widget eine definierte Zusammenstellung mehrerer Instanzen und/oder Typen von virtuellen Schaltflächen, Schiebereglern, Knöpfen, Drehscheiben usw. aufweisen. Als ein weiteres Beispiel kann ein virtuelles Widget eine definierte Zusammenstellung aktiver Elemente aufweisen, die gemeinsam eine Schnittstelle zum Steuern einer definierten Funktion festlegen. Beispielsweise kann ein virtuelles Widget vom Schiebereglertyp oder ein virtuelles Widget für eine drehbare Wählscheibe aus einer definierten Sammlung von UI-Elementen ausgebildet sein, die sich auf einen Bereich von Positionsauswahlen für den Schieberegler oder die drehbare Wählscheibe beziehen, z. B. wie in den unten im Beispiel in 15 gezeigten drehbaren Wählscheiben dargestellt. Es ist zu verstehen, dass jede Angabe hierin in Bezug auf GUI-Elemente (auch als UI-Elemente bezeichnet) oder Formen in ähnlicher Weise für virtuelle Widgets gilt.
-
Die hier beschriebene Ausführungsform kann sich manchmal auf das Erstellen und Aktualisieren elektronischer Datensätze beziehen. Die elektronischen Datensätze können in Form einer Datendatei erstellt werden, und das Aktualisieren eines elektronischen Datensatzes kann das Einfügen oder Löschen von Dateneinträgen in einem oder mehreren Feldern des Datensatzes umfassen. Alternativ kann es zur Laufzeit auf ein Klassenobjekt und instanziierte Objekte mit Statusinformationen und Variablen verweisen, die mit dem beschriebenen Datensatz übereinstimmen. Beide Situationen sind in den verschiedenen hier beschriebenen Ausführungsformen vorgesehen.
-
Die verschiedenen Ausführungsformen dieser Offenbarung beziehen sich auf Techniken zur Identifizierung der GUI-Elemente, die auf einer kontaktsensitiven Schnittstelle kontaktiert wurden. Diese Techniken und die damit verbundenen Strukturen sind besonders effizient in Bezug auf Speichernutzung und Reaktionsfähigkeit.
-
Darüber hinaus sind die Anforderungen an die Schnittstellendatenspeicherung gering, und die Anzahl der Aufgaben, die zur Ausführungszeit zum Identifizieren eines UI-Elements ausgeführt werden, ist im Vergleich zu anderen Techniken gering.
-
Einige Ausführungsformen der Offenbarung beziehen sich auf ein Verfahren zum Erstellen einer Liste optimierter Suchaufgaben, die ausgeführt werden können, um die GUI-Elemente zu identifizieren, die auf der kontaktsensitiven Schnittstelle kontaktiert wurden. Eine solche Suche kann hierin als UI-Elementsuche oder als „Formsuche“ bezeichnet werden. Bei den Suchaufgaben kann es sich um ausführbare Anweisungen des Prozessors handelt, die bei der Ausführung eine Erfolgs- oder Fehlermeldung an das Subsystem zurückgeben, das nach dem Element der GUI sucht, das ggf. kontaktiert wurde. In einer Ausführungsform werden die Suchaufgaben auf der Grundlage 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, z. B. einem Touch-Controller, im Vergleich zu herkömmlichen kontaktsensitiven GUIs, die den Erfindern dieser Offenbarung bekannt sind und die UI-Element-/Formsuche in einem Anzeige-Subsystem (z. B. einer Automobilhaupteinheit) durchführen können. Das Ausführen einer Suche nach einem GUI-Element in einem Touch-Controller spart Zeit bei der Kommunikation mit dem Anzeige-Subsystem und Zeit für das Subsystem, z. B. mit einem haptischen Feedback-Subsystem zu reagieren und zu kommunizieren. Die eingesparte Zeit verbessert die Reaktionsfähigkeit berührungsempfindlicher GUIs im Vergleich zu herkömmlichen berührungsempfindlichen GUIs und aus der Sicht des Benutzers, wodurch sich die Zeit verkürzt, von wann er einen Bildschirm berührt, bis zu dem Zeitpunkt, an dem er Feedback erhält, das auf die Berührung reagiert.
-
Darüber hinaus ist die Erstellung der Aufgabensuchliste konfigurierbar, und je nach GUI können Sätze gemeinsamer Features für eine Implementierung ausgewählt werden, die für die jeweilige Anwendung optimiert sind. In einigen Ausführungsformen kann der Erstellungsprozess beispielsweise für eine GUI optimiert werden, die Seitenblättern, Dropdown-Menüs und Pop-up-Fenster beinhaltet, die andere GUI-Elemente, Elemente bestimmter Formen oder Elemente, die sich bewegen oder verformen, wenn sie kontaktiert werden, verdecken.
-
1 zeigt den Gesamtbetrieb eines Systems gemäß verschiedenen Ausführungsformen der Offenbarung. In Operation 112 wird ein Softwareanwendungswerkzeug 102 so konfiguriert, dass eine UI-Definitionsdatei verarbeitet wird, um eine Suchaufgabenliste (Operation 108) mit konditionierten ausführbaren Anweisungen zum Durchführen einer UI-Element-/Formsuche zu erstellen, um ggf. ein UI-Element zu identifizieren, das auf einem kontaktsensitiven 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 Touch-Systems sind. Wenn ein Kontaktereignis an einer Touch-Schnittstelle auftritt, kann ein Touch-Sensor 106 die Berührung erkennen (Operation 118) und ein oder mehrere Signale bereitstellen, die auf die Berührung eines oder mehrerer Touch-Prozessoren 104 hinweisen. Die Touch-Prozessoren 104 bestimmen (Operation 112) eine Position auf der Touch-Schnittstelle, an der der Kontakt aufgetreten ist, und suchen (Operation 114) als Reaktion auf dieses Bestimmen nach einem und identifizieren ein UI-Element, falls vorhanden, das kontaktiert wurde. In einer Ausführungsform kann der Touch-Prozessor 104 (Operation 116) die Suchergebnisse an ein grafisches Benutzeroberflächensubsystem bereitstellen.
-
Eine Ausführungsform eines Prozesses zum Erstellen einer Suchaufgabenliste wird unter Bezugnahme auf 2 bis 7 beschrieben. Die Ausführungsformen der Offenbarung verwenden eine Suchbaumstruktur, die UI-Elemente nach einer Baum- und Rastertechnik organisiert. Die verschiedenen UI-Elemente werden in verwandte Gruppen unterteilt, die wie Raster behandelt werden, in eine Suchstruktur organisiert und dann werden verschiedene Suchaufgaben generiert. Die Suchaufgaben sind konditioniert, um die Ausführung einer UI-Element-/Formsuche mithilfe der Anweisungen zu optimieren. Ein Fachmann wird verstehen, dass andere Algorithmen verwendet werden könnten, um den/die Bildschirm(e) in durchsuchbare Bereiche zu unterteilen, zum Beispiel ein Divide-and-Conquer-Verfahren.
-
2 zeigt die Ausführungsform eines Prozesses zum Generieren 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 UI-Elemente auf diesen Bildschirmen und Unterbildschirmen zu identifizieren. Bei der Ul-Strukturdefinition kann es sich um eine elektronische Datei, eine Datenbank, Rohdaten oder dergleichen handeln. In Operation 204 werden die UI-Elemente gruppiert, und der durchsuchbare Bereich wird in eine oder mehrere durchsuchbare Bereiche mit UI-Elementgruppen unterteilt. In Operation 206 werden die UI-Elementgruppen basierend auf den durchsuchbaren Bereichen mit einer Baumstruktur verknüpft. In Operation 208 werden den Suchbaumzweigen und Knoten Suchaufgaben zugeordnet, um eine Suchstruktur auszubilden, und der Suchbaum wird optimiert. In Operation 210 werden die konditionierten Aufgaben der Suchstruktur in einer Liste gespeichert, d. h. in der Aufgabenliste, die von einem Prozessor ausgeführt werden kann.
-
In einer Ausführungsform kann das Softwareanwendungswerkzeug 102, das die Suchaufgabenliste generiert, so konfiguriert werden, dass die Ergebnisse einer oder mehrerer Vorgänge 202, 204, 206, 208 und 210 in eine Ausgabedatei geschrieben werden. Dies kann von einem Debugging-Werkzeug verwendet werden, um die Ergebnisse des Prozesses zu überprüfen. Das gleiche Debugging-Werkzeug kann so konfiguriert werden, dass eine Textversion einer Suchaufgabenliste verwendet und in einer virtuellen Testumgebung (z. B. einer ausführbaren .dos-Datei) ausgeführt wird, 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 Konfigurationsgenerierungseigenschaften des Anwendungswerkzeugs konvertiert werden sollen. Das Anwendungswerkzeug analysiert die Strukturdefinitionen und greift die in der Definitionsstruktur definierten UI-Elemente. In Operation 302 wird jedes UI-Element geladen, und in Operation 304 wird bestimmt, ob es sich um ein bekanntes UI-Element handelt. 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. Taste, Knopf, Schieberegler usw.).
-
Nach dem Erstellen der neuen Definition oder wenn es sich bei dem Element um ein bekanntes UI-Element handelt, wird in Operation 308 bestimmt, ob das Element einer vorhandenen Gruppe zugewiesen werden soll. In einer Ausführungsform basiert die Bestimmung, ob es einer vorhandenen Gruppe zugewiesen werden soll, auf verschiedenen vorgegebenen Parametern, z. B. gemeinsamen Merkmalen von Elementen, wie der Elementart, der Bildschirmposition, an der das UI-Element angezeigt wird, einer Ebenenposition, einem Typ von Reaktion, die dem Element zugeordnet 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 eine Festlegung zum Zuweisen des Elements zu einer vorhandenen Gruppe getroffen wird, 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 ermittelt, ob mehr UI-Elemente vorhanden sind, und wenn mehr UI-Elemente vorhanden sind, wird der Prozess für jedes verbleibende UI-Element ausgeführt, das in der UI-Strukturdefinition identifiziert wird. In Operation 316 gibt der Prozess das/die Element(e), Elementdefinition(en) und Gruppe(n) zurück.
-
Wenn die Ul-Strukturdefinition in einer Ausführungsform 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 UI-Elementen austauschbare Bereiche, scrollbare Menüs, aktivierbare Informationsbereiche, Navigationsschaltflächen und dergleichen aufweisen.
-
4 veranschaulicht einen Prozess 400 zum Erstellen eines Suchbaums gemäß einer Ausführungsform der Offenbarung. In diesem Prozess wird bestimmt, wie jeder in der UI-Definition identifizierte Bildschirm in durchsuchbare Bereiche unterteilt werden kann, wobei jeder durchsuchbare Bereich eine oder mehrere Gruppen von UI-Elementen beinhaltet. In der in 4 dargestellten beispielhaften Ausführungsform wird eine Trennlinie (x-y-Koordinaten) ausgewählt, die Gruppen von UI-Elementen unterteilt, so dass sich zumindest eine UI-Elementgruppe auf einer Seite der Trennlinie und zumindest eine weitere 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 geteilt, bis die UI-Elementgruppen nicht weiter geteilt werden können.
-
In einer weiteren Ausführungsform werden der Bildschirm oder durchsuchbare Bereiche gleichzeitig in x- und y-Koordinatenrichtungen unterteilt, was zu bis zu vier Unterteilungen der UI-Elementgruppen führen kann. Diese Technik kann auch zu weniger als vier Unterteilungen führen, z. B. drei Unterteilungen von UI-Elementgruppen und einem leeren durchsuchbaren Bereich.
-
In noch einer weiteren Ausführungsformen können Kreise, Quadrate und/oder Polygone verwendet werden, um einen Teil des Bildschirms zu definieren, um ihn aus den durchsuchbaren Bereichen auszuschließen, so dass der Bildschirm nicht in durchsuchbare Bereiche unterteilt ist.
-
In Operation 402 wird der erste durchsuchbare Bereich mit zwei oder mehr Gruppen geladen. Für die erste Iteration kann dies der gesamte Bildschirm einschließlich aller Gruppen sein. In dieser Ausführungsform ist ein erster Datensatz einer durchsuchbaren Region mit einem Bereich vorhanden, der definiert ist, um den gesamten Bildschirm zu umfassen, einschließlich aller UI-Elemente und UI-Elementgruppen. In Operation 404 wird eine Rasterlinie ausgewählt, die den ersten durchsuchbaren Bereich in zwei durchsuchbare Regionen mit jeweils einigen 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 Aufteilung/Unterteilung 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 Aufteilungen/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 die UI-Elemente in einer Ausführungsform 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, die Schnittstellenspeicheranforderungen werden reduziert, da nicht jedes UI-Element individuell definiert werden muss.
-
Sobald ein Bildschirm vollständig geteilt ist, existiert nun eine Zwischensuchstruktur, die Aufteilungen/Unterteilungen, UI-Elemente und UI-Elementgruppen sowie Links dazwischen beinhaltet.
-
In Operation 410 werden für jede UI-Elementgruppe Suchaufgaben auf Gruppenebene erstellt. Eine Aufgabe auf Gruppenebene ist ein Prozessschritt oder eine Reihe von Prozessschritten. Die Aufgaben können Folgendes umfassen: (i) Aufgaben, um zu bestimmen, ob ein Berührungs- oder Kontaktereignis innerhalb eines UI-Elements (oder ohne UI-Element) aufgetreten ist; (ii) Aufgaben, um den Suchbereich in irgendeiner Weise zu ändern; und (iii) Aufgaben, die für die nächste Aufgabe eingerichtet werden sollen.
-
Jede Aufgabe auf Gruppenebene kann einen Hinweis auf die nächste Aufgabe beinhalten, die im Falle eines Erfolgs oder eines Fehlers ausgeführt werden soll. Beispielsweise kann jede Aufgabe ein Bit mit einem „Offset“ zur nächsten Aufgabenadresse beinhalten. Darüber hinaus 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 festlegen, um anzugeben, welche Argumente für die nächste Aufgabe verfügbar sind.
-
In einer Ausführungsform kann der Offset in den Gruppenkoordinaten der UI-Elementgruppe (Positionswinkel) verwendet werden, um einen Index zu generieren. Jedem UI-Element in einem durchsuchbaren Bereich kann, wenn es konfiguriert ist, eine andere ID zugewiesen werden, die um den Index von der Basis-ID des durchsuchbaren Bereichs versetzt ist. Das Ergebnis ist eine Element-ID und ein Offsetwert. Es gibt separate Bestimmungen zum Ändern einer reaktiven (z. B. haptisch) oder Element-ID - so kann ein Gruppenelement eine einzelne Element-ID, aber mehrere reaktive IDs zurückgeben, und ein anderes gibt möglicherweise eine reaktive ID für eine Reihe von verschiedenen Elementen zurück.
-
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 die Zwischensuchstruktur zurückgegeben.
-
In einer Ausführungsform können für jede Aufgabe Umgebungsvariablen festgelegt werden, die wenn anwendbar angeben, was zurückgegeben wird, wenn die Aufgabe ausgeführt wird, ein Erfolg ist und die letzte Aufgabe ist. Als nicht einschränkendes Beispiel kann eine Umgebungsvariable eine haptische ID sein, Werte, um zu steuern, wie die Element-ID und die haptische ID für ein Element innerhalb eines Gruppen-Shapes geändert werden usw. Es können auch Umgebungsbedingungsflags festgelegt werden, die die Daten angeben, die zur nächsten Aufgabenbeschreibung gesendet werden sollen. Durch die Verwendung bestimmter Einschränkungen und der richtigen Umgebungsvariablen kann z. B. eine Definition eines Kreises von 7 auf 2 Bytes reduziert werden.
-
5 veranschaulicht eine Ausführungsform eines Optimierungsprozesses 500, der auf den Zwischensuchbaum angewandt wird. In Operation 502 werden alle UI-Elemente nach allgemeinen Merkmalen gruppiert. Beispiele für allgemeine Merkmale sind UI-Elementtyp, Position in einer Ebene, Position relativ zu einem anderen Element in einer anderen Ebene (z. B. alle hinter demselben UI-Element), eine Anzeigegruppe, Form oder mehr. In einer Ausführungsform können allgemeine Merkmale ausgewählt werden, um einen UI-Element-/Formsuchprozess zu optimieren. Wenn UI-Elemente beispielsweise nach Ebenenposition mit den UI-Elementen auf der obersten Ebene oben in der Suchstruktur gruppiert werden, werden diese zuerst durchsucht. In einem anderen Beispiel kann in einer Anwendung, in der „Blättern“ ermöglicht ist (d. h., Ebenen einer Benutzeroberfläche können gewischt werden, um Ebenen unterhalb verfügbar zu machen oder eine Ebene über eine andere Ebene zu ziehen), die Gruppierung nach Anzeigegruppe die Steuerung aller angezeigten UI-Elemente mithilfe eines einzigen Steuerelements ermöglichen - z. B. Suchen nach allen UI-Elementen in einer Anzeigegruppe, Anwenden von Änderungen an denjenigen UI-Elementen, die auf die Steuereinstellungen reagieren, Aktivieren oder Deaktivieren aller UI-Elemente in einer Gruppe usw. In verschiedenen Ausführungsformen können Identifikatoren 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 für jedes Element Suchaufgaben in den Suchbaum eingefügt und aufgeteilt, um einen intermediären Suchaufgabenbaum auszubilden. In Operation 506 wird der intermediäre Suchaufgabenbaum neu angeordnet, um einen einzelnen Durchlauf 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 den Suchaufgabenbaum geladen und in Operation 604 werden aus den Klassenobjekten Anweisungswörter (d. h. Suchaufgaben) erzeugt und die Anweisungswörter (d. h. Suchaufgaben) werden in eine Suchaufgabenliste eingefügt. In der in 6 gezeigten Ausführungsform beinhaltet das Anweisungswort ein Aufgabencodefeld und ein Sprungfeld. In einer Ausführungsform beinhaltet das Anweisungswort ein Datenfeld. Jeder Fehler (d. h. das Element ist ein anderes) und jede Teilung erfordert einen Sprung zu einer anderen Anweisung, es sei denn, die nächste Aufgabe folgt sofort 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 sind. 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), vom Prozess in Operation 614 zurückgegeben wird. Die Suchaufgabenliste und der Suchbaum können im Arbeitsspeicher gespeichert werden.
-
Die Aufgabenanweisungen können je nach Containergrößenbeschränkung (d. h. Byteeinschränkungen) variieren, die in der jeweiligen Umgebung verfügbar sind, in der die Suchaufgabenliste implementiert wird. In einer Ausführungsform können die Daten, die jeder Taskanweisung zugeordnet sind, je nach Systemanforderungen variieren, einschließlich einer Anweisungsschnittstellenanforderung (8-Bit, 12-Bit, 16-Bit usw.), verfügbarem Speicher usw. Als nicht einschränkendes 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. Zusätzliche Daten können jedoch aufgenommen werden, wenn die Anweisungsschnittstelle und andere Speicheranforderungen dies zulassen.
-
7 veranschaulicht einen UI-Element-/Formsuchprozess, um zu bestimmen, ob eine Berührung innerhalb eines UI-Elements gemäß einer Ausführungsform der Offenbarung aufgetreten ist. Die Suche im Suchbaum erfolgt unter Verwendung der bereitgestellten Daten und der Suchaufgabenliste. In Operation 702 wird die ausführbare Anweisung für jede Aufgabe auf der Schnittstelle des Prozessors sequenziell mit den Nutzlastdaten für jede Aufgabe bereitgestellt und in Operation 704 ausgeführt. Wenn der Suchbaum durchsucht wird, wird in Operation 706 eine Feststellung getroffen, ob die Berührung innerhalb eines UI-Elements aufgetreten ist und das Ergebnis jeder Aufgabe ist ein richtig/falsch, Erfolg/Fehler, welches angibt, ob die Berührung innerhalb eines UI-Elements aufgetreten ist. In Operation 708 werden die nächste Aufgabenanweisung und die zugehörigen Daten geladen und vom Prozessor empfangen als Reaktion darauf, dass das Ergebnis der aktuellen Aufgabe ein Erfolg wird. Das heißt, wenn das Ergebnis von Operation 706 ein Erfolg ist, wird die nächste Aufgabe in der Aufgabenliste ausgeführt.
-
Wenn das Ergebnis ein Fehler ist, werden eine alternative Aufgabenanweisung und zugehörige Daten geladen und vom Prozessor empfangen, der auf das Ergebnis reagiert. Wenn eine alternative Aufgabe vorliegt (Operation 714), wird in Operation 716 der alternative Aufgabenspeicherort bereitgestellt, und der Prozess kehrt zurück zur Operation 702, und die Aufgaben werden vom alternativen Speicherort für den Prozessor geladen. Wenn die Suche erschöpft ist, wird das UI-Element entweder gefunden oder nicht gefunden. Wenn das UI-Element gefunden wird, wird ein gefundenes Ergebnis in Operation 710 zurückgegeben, und in Operation 712 wird die ID für dieses Element sowie alle Umgebungseinstellungen/Reaktionsparameter zurückgegeben. Wenn die Operation nicht gefunden wird, wird in Operation 720 ein nicht gefunden Ergebnis zurückgegeben.
-
In einer Ausführungsform kann es sich bei dem in 7 dargestellten UI-Element/Formsuchprozess um eine Firmware-Anwendung handeln, die an einem Touch-Prozessor (Mikrocontroller) ausgeführt wird. Der Touch-Prozessor verfügt möglicherweise über eine oder mehrere Suchaufgaben, die vom Suchvorgang in einem Flash-Speicher gespeichert werden. In einer Ausführungsform können Suchaufgaben in einem RAM gespeichert werden, der einem Displaycontroller zugeordnet ist, und die Suchaufgaben können dem Prozessor während eines Einrichtungs- oder Bereitstellungsprozesses zur Verfügung gestellt und für den Suchprozess zugänglich gemacht werden.
-
Die beschriebenen Ausführungsformen bieten mehrere Vorteile gegenüber alternativen Ansätzen. Der Speicherbedarf wird deutlich reduziert - bis zu 50% bei linearer Suche, reiner Rastermethode oder reiner Suchbaummethode; und auch noch eine Verbesserung gegenüber Kombinations-Raster-/Baummethoden. Dies liegt zum Teil daran, dass die Anzahl der ausgeführten Suchvorgänge reduziert wird. Da die Anzahl der Suchvorgänge reduziert wird, sind die Reaktionszyklen deutlich kürzer als alternative Ansätze (einschließlich konventioneller Ansätze). So wurden beispielsweise auf einer 1200x1200 kontaktempfindlichen GUI Zykluszeiten von weniger als 36 ms erreicht, verglichen mit alternativen Ansätzen, die von 72 ms (reines Raster) bis 1200 ms (linear) reichten. Für einen Benutzer stellt der Unterschied eine viel reaktionsschnellere Touch-Schnittstelle dar.
-
Für einen Entwickler kann die Touch-Schnittstelle anspruchsvoller sein und viele Elemente mit unterschiedlichen Reaktionseigenschaften aufweisen.
-
8, 9 und 10A bis 10E veranschaulichen die unter Bezugnahme auf 2 bis 7 dargestellten und beschriebenen Prozesse in Verbindung mit einer GUI für eine Radio-Anwendung als ein nicht einschränkendes Beispiel für eine GUI, 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.
-
9 zeigt UI-Elemente, die nach den beschriebenen Verfahren in Bezug auf 3 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, das auf eine Berührung reagiert), physikalische Positionen auf dem Bildschirm und Formen auf.
-
10A bis 10E zeigen ein Beispiel für eine Baumstruktur 850, die mit der Baum- und Gittermethode gebildet wurde, die unter Bezugnahme auf 4 beschrieben wurde.
-
11 veranschaulicht ein System 1000 und das zugehörige Werkzeug 1040, das die hier beschriebenen UI-Elemente/Formsuchmethoden gemäß einer Ausführungsform der Offenbarung implementieren kann. Das System 1000 beinhaltet Mikrocontroller-Firmware 1010 mit einer GUI-Element-Suchfunktionen 1012 und Reaktionsfestlegung 1014 für GUI-Elemente. Der Prozessor, der die Mikrocontroller-Firmware 1010 ausführt, ist an einen Reaktionstreiber 1018 gekoppelt, der Steuersignale von der Mikrocontroller-Firmware 1010 empfangen und wiederum eine Antwort in einer kontaktsensitiven Schnittstelle 1020 bewirken kann. In einer Ausführungsform ist die kontaktsensitive Schnittstelle 1020 ein Touchscreen mit einem oder mehreren Aktoren, und der Reaktionstreiber 1018 ist ein haptischer Treiber, der so konfiguriert ist, dass er Steuersignale erzeugt, die die Aktoren anregen. Die Sensorschaltung 1022 kann ein oder mehrere Messsignale erzeugen, die auf den Kontakt an der kontaktempfindlichen Schnittstelle 1020 reagieren. Die Kontaktmessung und -verarbeitung 1016 kann Kontaktinformationen (z.B. Position, Typ usw.) bestimmen und der Reaktionsfestlegung 1014 und den GUI-Elementsuchfunktionen 1012 zur Verfügung stellen, die auf die Messsignale der Sensorschaltung 1022 reagieren. Die am Reaktionstreiber 1018 empfangenen Steuersignale können beispielsweise zumindest teilweise auf Kontaktinformationen basieren, so dass haptisches Feedback an der richtigen Position auf der kontaktsensitiven Schnittstelle 1020 bereitgestellt wird.
-
Ebenfalls in 11 dargestellt ist ein Werkzeug 1040, das gemäß einer Ausführungsform der Offenbarung einen Suchlistenerstellungsprozess implementieren und eine Elementsuchaufgabenliste und Elementreaktionsinformationen erstellen kann. Ein Suchlistenerstellungsanwendungsprogramm 1044 ist so konfiguriert, dass die mit Bezug auf 2 bis 6 beschriebenen Prozesse implementiert werden, um eine GUI-Definition-XAML-Datei 1042 zu verarbeiten, um eine Elementsuchaufgabenliste zu generieren. Die Anwendung 1044 kann die Elementsuchaufgabenliste 1046 und Elementreaktionsinformationen 1048 als Datei für die Mikrocontroller-Firmware 1010 bereitstellen. In einer Ausführungsform kann sie auch einen Suchbaum bereitstellen, obwohl dieser in den Suchaufgaben enthalten sein kann.
-
In einigen Ausführungsformen der Firmware kann die Firmware Druckkraftmess- und Verarbeitungsfunktionen beinhalten, um Druckkraftpegelinformationen über ein Berührungsereignis zu integrieren. In diesen Ausführungsformen können die Druckkraftpegelinformationen und die von der Elementsuchfunktion zurückgegebenen GUI-Element-ID und haptischen Antwortdetails von einem haptischen Sequenzer verwendet werden, um haptische Steuersignale zu erzeugen, die auf diesen Druckkraftpegel, die GUI-Element-ID und haptische Antwortdetails reagieren.
-
Das System nach 11 kann in verschiedene Konsumgüter, Geräte und Maschinen integriert werden, die Touch-Schnittstellen und Touch-Bedienfelder verwenden, einschließlich Automobilen. 12 zeigt eine vereinfachte Version einer Radio-GUI 1210 für ein Auto-Touch-Bedienfeld. Drei Regionen werden ausdrücklich benannt: Region 1, Region 2 und Region 3. Region 1 ist eine Taste 1212 in der Mitte eines Drehrads 1214 zur Temperaturregelung. Haptisches Feedback nach einem haptischen Profil ID #4 (Vibration) wird als Reaktion auf ein Berührungsereignis mit einem starken Druckkraftniveau bereitgestellt. Region 2 ist das Drehrad 1214, auch zur Temperaturregelung. Haptisches Feedback nach einer haptischen Profil-ID #3 (Reibung) wird bereitgestellt, das auf ein Berührungsereignis mit einem leichten Druckkraftniveau reagiert. Schließlich ist Region 3 eine Taste 1216, um ein Menü für die Autoeinstellungen aufzurufen. Haptisches Feedback nach haptischem Profil ID #2 (Klick) wird als Reaktion auf ein Berührungsereignis mit einem starken Druckkraftniveau bereitgestellt, und haptisches Feedback nach haptischem Profil ID #3 (Reibung) wird bereitgestellt als Reaktion auf ein Berührungsereignis mit einem leichten Druckkraftniveau.
-
13 veranschaulicht das System nach 11 und GUI nach 12, die in eine Automobilsteuerung integriert sind, die von einer Haupteinheit 1310 gesteuert wird, und haptische Effekte in der Haupteinheit 1310 werden von einem Mikrocontroller gesteuert. In dieser Ausführungsform sind Touch-Controller 1320 und UI-Element-/Formsuchfunktionen 1324 Teil eines Automobil-Subsystems, bei dem eine Automobilhaupteinheit 1310 ohne direktes Eingreifen der Verarbeitungsschaltung der Haupteinheit auf Berührungen mit haptischem Feedback reagiert. Der Touch-Controller 1320 ist so konfiguriert, dass er berührte Bildschirmtasten aus den Berührungspositionen und Druckkraftpegelinformationen identifiziert und eine Touch-Zustandsmaschine inklusive Tastenposition ausführt, um den haptischen Effekt auszulösen.
-
In dieser Ausführungsform sind die Druckkraftverarbeitung 1326 und die Touch-Verarbeitung 1322 in eine Steuerungskomponente 1320 integriert, und der Touchscreen 1332 beinhaltet die Definitionen (Bildschirmanzeige-Design 1336 und Suchbaumdefinitionen 1338) einer Reihe von geometrischen Objektbeschreibungen, die jeweils erforderlich sind, um eine Reihe von haptischen Effekten auszulösen, die direkt vom Touch-Controller 1320 aktiviert und vom haptischen Gerät 1350 ausgeführt werden müssen. Der Touch-Controller 1320 kann solche Definitionen auch über eine Touch-Controller-Konfigurationseinheit 1340 empfangen.
-
So erhält der Touch-Controller 1320 nach einer Berührung am Display 1330 beispielsweise Druckkraft- und Berührungsinformationen aus der Druckkraftverarbeitung 1326 und der Touch-Verarbeitung 1322. Die Informationen können eine Druckkraftmessung von einem Druckkraftsensor 1334 und eine Berührungsposition auf dem Display beinhalten. Die UI-Element-/Formsuche 1324 stellt UI-Elementinformationen bereit, die dem UI-Element entsprechen, falls vorhanden, das auf der Anzeige 1330 angezeigt wird, wo die Berührung aufgetreten ist. Wenn kein UI-Element vorhanden ist, das der Position auf der Anzeige entspricht, stellt die UI-Element-/Formsuche 1324 ein Null-Suchergebnis bereit. Bei der Suche nach den 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 während eines Bereitstellungsprozesses empfangen, z. B. 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, werden die haptischen Informationen vom haptischen Steuerelement 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 auf den haptischen Effekt hinweist (z. B. schwach, mittel, stark). Die haptische Vorrichtung 1350 sucht in der haptischen Bibliothek 1352, die in der haptischen Vorrichtung gespeichert ist, nach der haptischen Effektdefinition, die haptische Vorrichtung 1350 steuert dann die Aktuatoren am Display 1330 so, dass der spezifische Bereich des Displays den gewünschten haptischen Effekt aufweist. Insbesondere können verschiedene haptische Vorrichtungen unterschiedliche haptische Bibliotheken aufweisen, so dass die Effekte zwischen den Vorrichtungen unterschiedlich sein können.
-
In dieser Ausführungsform ist die GUI-Definition eine XAML-Datei, die eine XML-Implementierung für grafische Benutzeroberflächen ist. Die XAML-Datei beinhaltet eine hierarchisch strukturierte Liste von Zeichnungsanweisungen für die Bildschirmelemente der Benutzeroberfläche der GUI. In der XAML-Datei gibt es Tags, die GUI-Elementen zugeordnet sind. Beispielsweise sind „Breite“, „Höhe“ und „Horizontale Ausrichtung“ alle gültige Tags für bestimmte Elemente.
-
Virtuelle Widgets
-
Wie oben besprochen, kann in einigen Ausführungsformen eine berührungsempfindliche GUI (Touch-Schnittstelle mit integrierter GUI) virtuelle Widgets verwenden, z.B. in Kombination mit einer der oben beschriebenen Funktionen. Wie hierin verwendet, ist ein „virtuelles Widget“ jede Zusammenstellung von Formen (z. B. einschließlich eines oder mehrerer aktiver UI-Elemente), die in einem anzeigebaren GUI-Bildschirm beinhaltet sind. Beispielsweise kann ein virtuelles Widget eine definierte Zusammenstellung mehrerer Instanzen und/oder Typen von virtuellen Schaltflächen, Schiebereglern, Knöpfen, Drehscheiben usw. aufweisen. Ein weiteres Beispiel: Ein virtuelles Widget kann eine definierte Zusammenstellung aktiver Elemente aufweisen, die gemeinsam eine Schnittstelle zum Steuern einer definierten Funktion festlegen. Beispielsweise kann ein virtuelles Widget vom Typ Schieberegler oder ein drehbares virtuelles Widget vom Typ Drehrad aus einer definierten Sammlung von UI-Elementen ausgebildet sein, die sich auf einen Bereich von Positionsauswahlen für den Schieberegler oder das drehbare Drehrad beziehen, z. B. wie in den unten gezeigten drehbaren Drehrädern dargestellt.
-
Virtuelle Widgets können auf dem Touchscreen angezeigt werden, aber in einigen Ausführungsformen existieren sie 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 GUI reduzieren. Beispielsweise kann die Verwendung virtueller Widgets den Overhead auf der Haupteinheit reduzieren, um Berührungspositionen zu verarbeiten, und kann keine separate Hardware oder Elektronik für physische Rotoren, Schieberegler usw. benötigen, z. B. für Heizungssteuerungen, Funksteuerungen oder andere Arten von Steuerungen.
-
Einige Ausführungsformen stellen Systeme und Verfahren zur Konfigurierbarkeit von Bereichen eines Touchscreens (z. B. Bereiche in einer konfigurierten Bildschirmseite) bereit, die als virtuelle Widgets (z. B. Tasten, Schieberegler, Drehscheiben 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 Rotationsposition eines virtuellen Drehrades, die der erkannten Berührungsposition entspricht), und solche Positions-/Zustandsinformationen in einer „Widget-Mitteilung“ an die Haupteinheit melden, anstatt oder zusätzlich eine „Touch-Mitteilung“ zu melden, die die Position der Berührung auf dem Touchscreen anzeigt. Widget-Mitteilungen können z. B. eine vom Benutzer ausgewählte Position, eine Drehung, einen „berührt“ Status und/oder die Anzahl der erkannten Berührungen auf einem entsprechenden Widget anzeigen, die der erkannten Berührungsposition, Druckkraft und/oder einem anderen messbaren Aspekt der erkannten Berührung auf dem Touchscreen entsprechen.
-
In einigen Ausführungsformen werden Widget-Mitteilungen in einem separaten Strom von Touch-Mitteilungen an die Haupteinheit übermittelt, z. B. in der in 14 gezeigten Ausführungsform. In einigen Ausführungsformen unterdrückt der Touch-Controller das Senden von Touch-Mitteilungen an die Haupteinheit, wenn eine Berührung eines virtuellen Widgets erkannt wird; mit anderen Worten, Touch-Mitteilungen können während der Touch-Interaktion mit einem virtuellen Widget zugunsten von Widget-Mitteilungen unterbrochen werden.
-
Die Verwendung solcher virtueller Widgets ermöglicht es, virtuelle GUI-Steuerelemente auf konfigurierbare und dynamische Weise überall auf dem Touchscreen zu positionieren. 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 den oben für die UI-Formsuche offenbarten Techniken.
-
14 veranschaulicht ein beispielhaftes GUI-Touchscreen-System 1400, das virtuelle Widgets verwendet, wie hierin gemäß einer beispielhaften Ausführungsform offenbart. Das GUI-Touchscreen-System 1400 kann einen berührungsempfindlichen Touchscreen 1402, einen Touch-Controller 1404 und eine Haupteinheit 1406 beinhalten, die jeweils eine der Komponenten (z. B. Touch-Sensoren, Mikrocontroller, Mikrocontroller-Firmware, Prozessor, Speicher, haptische Aktuatoren usw.) bereitstellen und alle Funktionen bereitstellen können, die wie oben erläutert von einem Touchscreen, einem Touch-Controller und einer Haupteinheit bereitgestellt werden. In einigen Ausführungsformen kann der Touch-Controller 1404 durch Firmware in einem Mikrocontroller verkörpert werden.
-
System 1400 kann auch ein Bildschirmdesignmodul 1410 und ein Touch-Controller-Konfigurationsmodul 1414 beinhalten. Das Bildschirmdesignmodul 1410 kann ein Bildschirmdesign für jeden oder mehrere verschiedene Bildschirme (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, sowie die Anordnung/das Layout der ausgewählten Widgets. Das Bildschirmdesignmodul 1410 kann die Bildschirmdesigns zur Speicherung an die Haupteinheit 1406 übermitteln, und die Haupteinheit 1406 kann der GUI-Element-Suchmaschine 1424 je nach Bedarf selektiv Bildschirmdesigns bereitstellen, z. B. basierend auf dem derzeit für die Anzeige ausgewählten Bildschirm (z. B. mit Hilfe einer Bildschirmauswahl-Zustandsmaschine, die von der Haupteinheit 1406 bereitgestellt wird). Die Haupteinheit 1406 oder alternativ das Touch-Controller-Konfigurationsmodul 1414 können dann das Display auf dem Touchscreen steuern, z.B. indem gesteuert wird, welcher von mehreren verschiedenen Bildschirmen aktuell unter Verwendung verschiedener Auswahlen und/oder Anordnungen virtueller Widgets angezeigt wird.
-
Das Bildschirmdesignmodul 1410 kann auch die Parameter 1412 jedes virtuellen Widgets definieren, das in einem der Bildschirmentwürfe beinhaltet ist, und die jeweiligen Widget-Definitionen 1416 mit dem Touch-Controller-Konfigurationsmodul 1414 zur Speicherung kommunizieren. Das Touch-Controller-Konfigurationsmodul 1414 kann daher für jedes virtuelle Widget eine Widget-Definition speichern, die eine definierte Zusammenstellung verwandter UI-Elemente eines oder mehrerer Typen beinhalten kann. Wie gezeigt, kann das Touch-Controller-Konfigurationsmodul 1414 der GUI-Element-Suchmaschine 1424 die im aktuell angezeigten Bildschirm enthaltenen Widget-Definitionen bereitstellen, damit die GUI-Element-Suchmaschine 1424 basierend auf einer detektierten Berührung auf dem Touchscreen eine Benutzerinteraktion mit einem virtuellen Widget detektieren 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 über eine Widget-ID und eine relative Position auf dem Bildschirm verfügen. Virtuelle Widgets können weiter durch Parameter wie Schaltflächennummer (für Tasten-Widgets), Drehposition / -änderung (für Drehknopf-Widgets) oder Schiebereglerposition/ -änderung (für Schieberegler-Widgets) definiert werden. Virtuelle Widgets können auch durch eine Formkonfiguration definiert werden, die z. B. von der Haupteinheit ausgelagert werden kann.
-
Wenn ein Benutzer den Touchscreen 1402 im Betrieb berührt/kontaktiert, kann die Sensorschaltung des Touch-Controllers 1404 Sensorsignale bei 1420 messen und als Reaktion auf den gemessenen Kontakt am Touchscreen 1402 ein oder mehrere Messsignale erzeugen. Die Kontaktmessung und -verarbeitung 1420, 1422 kann Berührungsinformationen (z. B. Position, Typ, Druckkraft usw.) bestimmen und diese an eine GUI-Element-Suchmaschine (oder ein „Formsuchmodul“) 1424 zur Verfügung stellen. Die GUI-Element-Suchmaschine 1424 kann dann feststellen, ob die Touch-Position einem aktuell angezeigten virtuellen Widgets entspricht, z. B. basierend auf der Widget-Position und Formparametern, die in den Widget-Definitionen 1416 beinhaltet sind. Diese Feststellung kann eine der verschiedenen oben beschriebenen Techniken für die UI-Element-Touch-Erkennung verwenden.
-
Wenn die GUI-Element-Suchmaschine 1424 feststellt, dass der Berührungsort einem aktuell angezeigten virtuellen Widget entspricht, kann die Suchmaschine 1424 mit einem Widget-Verarbeitungsmodul 1428 Widget-Informationen 1426 kommunizieren, einschließlich der entsprechenden Widget-ID, eines Widget-Shape-Index, welche UI-Elemente innerhalb des Widgets berührt werden und/oder andere relevante Informationen über das virtuelle Widget, das berührt wird. Bei 1428 kann Widget-Verarbeitungsmodul 1428 eine Widget-Mitteilung 1430 einschließlich einer der Widget-Informationen 1426, die von der GUI-Element-Suchmaschine 1424 und/oder Widget-Definitionsinformationen 1416 empfangen wurden, an eine Mitteilungenschnittstelle 1434 generieren, die einen Ereignisbericht 1440 einschließlich der Informationen vom Widget-Verarbeitungsmodul 1428 an Haupteinheit 1406 weiterleiten kann.
-
In einigen Ausführungsformen kann Widget-Verarbeitungsmodul 1428 einen Ereignisbericht 1440 für jedes relevante Widget-Berührungsereignis generieren, das jedes Widget-Berührungsereignis beinhalten kann, das eine haptische Reaktion oder eine andere Benutzerfeedback- oder Steuerungsfunktion auslöst, z. B. wie in den Widget-Definitionen 1416 oder einer anderen Logik definiert, die generiert oder anderweitig für Haupteinheit 1406 und/oder Touch-Controller 1404 zugänglich ist. Relevante Widget-Berührungsereignisse können z. B. Berührungsereignisse in einem Widget beinhalten, die eine dem Widget zugeordnete Einstellung ändern, z. B. indem sie eine entsprechende Funktion ein-/ausschalten oder einen einstellbaren Steuerungsparameter (z. B. Lautstärke, Lüftergeschwindigkeit, Anzeigehelligkeit usw.) erhöhen oder verringern. Widget-Verarbeitungsmodul 1428 kann relevante Widget-Berührungsereignisse aus Widget-Informationen 1426 identifizieren, die von der GUI-Element-Suchmaschine 1424 und/oder Widget-Definitionsinformationen 1416 empfangen wurden.
-
Die Haupteinheit 1406 kann somit Widget-bezogene Ereignisberichte 1440 vom Widget-Verarbeitungsmodul 1428 über die Mitteilungenschnittstelle 1434 empfangen und auf jeden Ereignisbericht 1440 reagieren, indem sie Aspekte des angezeigten Bildschirms am Touchscreen 1402 steuert und/oder zumindest ein externes System oder Gerät steuert, das mit dem berührten virtuellen Widget verbunden ist, z. B. ein Radio, Infotainment-System, Karten-/Führungssystem, Licht, Lüfter, Motor usw. In einigen Ausführungsformen kann die Haupteinheit 1406 den/die jeweiligen Aktuator(en) steuern, um dem Benutzer an der Berührungsstelle ein definiertes haptisches Feedback zu geben, z. B. im Sinne der Widget-Definitionsinformation 1416. In anderen Ausführungsformen kann haptisches Feedback über Touchscreen 1402 von Touch Controller 1404 anstelle der Haupteinheit 1406 gesteuert und bereitgestellt werden, was die Reaktionszeit für die Rückmeldung an den Benutzer erhöhen kann.
-
Darüber hinaus kann, wie in 14 bei 1432 angegeben, der Touch-Controller 1404 so konfiguriert werden, dass alle verarbeiteten Berührungsinformationen an die Mitteilungenschnittstelle 1434 weitergeleitet werden, die diese Informationen über Ereignisberichte 1440 generieren und an Haupteinheiten 1406 weiterleiten können. In einigen Ausführungsformen kann Widget-Verarbeitungsmodul 1428 eine Aktiv-/Inaktiv-Schaltlogik 1442 ansteuern, um die Weiterleitung dieser Berührungsinformationen 1432 zu deaktivieren oder auszusetzen, wenn die Berührung eines virtuellen Widget von der GUI-Element-Suchmaschine 1424 identifiziert wird, z. B. während der Generierung und Weiterleitung von Widget-Mitteilungen 1430/Widget-bezogenen Ereignisberichten 1440 vom Widget-Verarbeitungsmodul 1428 an die Haupteinheit 1406.
-
Die Verwendung virtueller Widgets kann die erforderliche Verarbeitung der Haupteinheit 1406 vereinfachen. Die Verwendung virtueller Widgets kann es einem einzelnen Bildschirmdesign beispielsweise ermöglichen, mehrere Anwendungen aufzuweisen. Beispielsweise kann eine Schnittstelle jegliche Produktvariante über eine geeignete Konfiguration verarbeiten.
-
15 veranschaulicht einen Beispiel-Radiobildschirm (oder Seite) 1502, angezeigt auf einer Touchscreen-GUI 1500, wobei der Radiobildschirm/die Radioseite 1502 eine Anordnung der virtuellen Widgets 1504 einschließlich verschiedener Gruppen von UI-Elemente gemäß einer beispielhaften Ausführungsform beinhaltet. Touchscreen-GUI 1500 kann so konfiguriert werden, dass eine beliebige Anzahl und Typen unterschiedlicher Bildschirme/Seiten selektiv angezeigt werden, um ein Radio und/oder ein oder mehrere andere Systeme oder Geräte (z. B. ein Infotainment-System, ein Karten-/Führungssystem, Licht, Lüfter, Antrieb, Motor usw.) zu steuern.
-
In diesem Beispiel beinhaltet der Radiobildschirm/ die Radioseite 1502 eine Vielzahl von beispielhaften virtuellen Widgets 1504, einschließlich: ein Radio-Widget 1504A, ein Paar Radiomodus-Widgets 1504B und 1504C, ein Kanal-Presets-Widget 1504D, ein Zustands-Widget 1504E, ein Lautstärkeregelungs-Aktivierungs-Widget 1504F und ein Lautstärke-Anpassungs-Widget 1504G, ein Tuner-Steuerungs-Aktivierungs-Widget 1504H und ein Tuner-Anpassungs-Widget 1504I, ein Bass-Control-Widget 1504J und ein Widget zur Höhenkontrolle 1504K.
-
Die oben beschriebenen berührungsempfindlichen GUIs (z.B. Touchscreens) können in allen geeigneten Produkten oder Systemen, z.B. Haushaltsgeräten oder für Kfz-Steuerungen, eingesetzt werden. In einigen Ausführungsformen kann die Touchscreen-Steuerung durch Firmware bereitgestellt werden, z. B. in einem Mikrocontroller verkörpert, ohne dass ein diskreter Mikroprozessor/Chip erforderlich ist.
-
Da die GUI (z. B. 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 Produktreihe bereitstellen. Herkömmliche Ansätze bieten in der Regel separate Steuerungen 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 zusätzliche Verarbeitungsressourcen oder Zeit erfordert.
-
Die Möglichkeit, unterschiedliche Eigenschaften und Reaktionen für verschiedene Teile des Touchscreens zu definieren, wird in erster Linie durch den oben beschriebenen UI-Element-/Formsuchalgorithmus bereitgestellt, der eine flexible Definition von Sensorbereichen ermöglicht. Dies ist kein typischer Aspekt des herkömmlichen Touchscreen-Designs. Darüber hinaus ermöglicht das Hinzufügen separater Mitteilungsdatenströme für UI-Elemente/Widgets, dass Funktionen wie Dreh- und Schieberegler virtuell ohne physisches Gerät erstellt werden können. Die gleiche Funktionalität ermöglicht es jeder Form, als virtuelles Widget zu berichten, mit einer eigenen ID, unter Umgehung der herkömmlichen Touchscreen-Verarbeitung.
-
Statische Widgets
-
Einige Ausführungsformen können statische physikalische Strukturen beinhalten, z. B. physikalische Grate, Höcker, Rillen usw., die in eine Touchscreen-Oberfläche integriert sind, um einer Person taktiles Feedback zu geben. Solche Strukturen werden hierin als „statische Widgets“ bezeichnet. In einigen Ausführungsformen können statische Widgets in Kombination mit virtuellen Widgets (siehe oben) verwendet werden, z. B. wobei ein virtuelles Widget mit einer entsprechenden Form zusammen mit einem entsprechenden statischen Widget angeordnet ist, das physisch in die Touchscreen-Oberfläche integriert ist. Wie oben beschrieben, kann das virtuelle Widget Position, Drehung, „berührt“ Status, Anzahl der gemeldeten Berührungen usw. an eine zugeordnete Haupteinheit melden.
-
Statische Widgets können entsprechenden virtuellen Widgets oder anderen UI-Elementen, die auf dem Touchscreen angezeigt werden, ein physisches „Fühlen“ beifügen. Statische Widgets können es einem Benutzer ermöglichen, Eingaben an der Touchscreen-GUI durch Fühlen bereitzustellen, ohne auf den Touchscreen zu schauen, was besonders nützlich für Automobilanwendungen oder andere Anwendungen sein kann, bei denen der visuelle Fokus des Benutzers an andere Position gerichtet sein kann. In einigen Ausführungsformen ist das System so konfiguriert, dass es der Haupteinheit eine Steuerposition eines statischen Widgets meldet, die berührt wird, im Gegensatz zu den Positionskoordinaten der Berührung auf dem Bildschirm, da das System eine spezielle Touch-Verarbeitung des Widget-Bereichs ermöglichen kann. Ein statisches Widget kann physikalisch bewegliche Teile ersetzen, um die Robustheit des Systems im Vergleich zu herkömmlichen Systemen zu erhöhen, und kann die Anzahl der Komponenten und Interprozessorschnittstellen reduzieren. Darüber hinaus können mehrere Instanzen eines oder mehrerer Typen oder Formen statischer Widgets auf einem einzigen Bildschirm bereitgestellt werden. In einigen Fällen können statische Widgets verwendet werden, um einen oder mehrere Rotoren (Drehscheiben oder Knöpfe), Schieberegler, Schaltflächen, Schalter oder andere Arten von physischen Schnittstellen zu ersetzen.
-
16 veranschaulicht zwei beispielhafte statische Widgets 1600, insbesondere ein beispielhaftes statisches Widget 1600A vom Typ mit Grat und ein beispielhaftes statisches Widget 1600A vom Typ mit Nut, beide gemäß einer Beispiel-Ausführungsform ausgebildet in einer Deckglasschicht 1604 über einen Berührungssensor 1608, z. B. einen kapazitiven Sensor.
-
In einigen Ausführungsformen kann eine Haupteinheit einen Anzeigebereich steuern, der jedem statischen Widget 1600 zugeordnet ist, das auf dem Bildschirm angegeben ist. Die Haupteinheit kann beispielsweise ein virtuelles Widget dynamisch steuern, das bei jedem statischen Widget 1600 angezeigt wird, z. B. indem bestimmte virtuelle Widgets dynamisch über die entsprechenden Widget-IDs aufgerufen werden. So können z. B. bei jedem jeweiligen statischen Widget 1600 verschiedene virtuelle Widgets selektiv angezeigt werden. In einigen Ausführungsformen können verschiedene virtuelle Widgets, die selektiv bei einem bestimmten statischen Widget 1600 angezeigt werden können, die gleiche Form aufweisen, die dem jeweiligen statischen Widget 1600 entspricht. Wie oben erläutert, können die virtuellen Widgets von einem Touchscreen-Controller verwaltet werden.
-
17A und 17B veranschaulichen gemäß einer beispielhaften Ausführungsform zwei Ansichten eines Beispiel-Touchscreens 1700 in zwei verschiedenen Modi, einschließlich zweier statischer Widgets 1702 und 1704, die jeweils als kreisförmige Nut oder Grat verkörpert sind. In 17A, ist aktuell ein „Tuner-Modus“ ausgewählt, wobei eine Haupteinheit 1708 auf Touchscreen 1700 einen ersten Bildschirm 1710A anzeigt, einschließlich eines ersten Paars virtueller Widgets, das an den Positionen der statischen Widgets 1702 und 1704 angezeigt wird, nämlich ein kreisförmiges virtuelles Widget „Volume“ 1712 und ein kreisförmiges virtuelles Widget „Tune“ 1714, das an den Positionen der statischen Widgets 1702 bzw. 1704 angezeigt wird. Wenn ein Benutzer eine „Modus“-Taste 1720 drückt, kann die Haupteinheit 1708 einen zweiten Bildschirm 1710B für einen „Bass/Treble“-Modus aufrufen, der ein zweites Paar virtueller Widgets beinhalten kann, die an den Positionen der statischen Widgets 1702 und 1704 angezeigt werden, nämlich ein kreisförmiges virtuelles Widget „Bass“ 1722 und ein kreisförmiges virtuelles Widget „Treble“, das an den Positionen der statischen Widgets 1702 bzw. 1704 angezeigt wird.
-
18 veranschaulicht eine geneigte Seitenansicht eines statischen Beispiel-Widgets 1800, das gemäß einer beispielhaften Ausführungsform als kreisförmige physikalische Nut verkörpert ist, die in einer Touchscreen-Abdeckung (z. B. Glasschicht) 1802 ausgebildet ist.
-
Unter Bezugnahme auf die oben erläuterte 14 können ein Bildschirmdesignmodul und/oder ein Touch-Controller-Konfigurationsmodul eine Konfiguration/ein Layout jedes Bildschirms (oder jeder Seite) und/oder virtueller Widgets oder anderer UI-Elemente innerhalb jedes Bildschirms/jeder Seite basierend auf der Bildschirmgeometrie ableiten. Die virtuellen Widgets können unter der physischen Struktur des Bildschirms und damit unter allen statischen Widgets vorhanden sein und Widget-Mitteilungen an eine Haupteinheit senden, wie oben beschrieben. In einigen Ausführungsformen können virtuelle Widgets komplexe Touch-Berichte erzeugen, z. B. einschließlich Verstärkungs- und Schwellenwertaspekten, die getrennt von der Haupteinheit ausgeführt werden können.
-
Eingebettete statische Widgets
-
Einige Ausführungsformen können eine Verbesserung der oben beschriebenen statischen Widgets bereitstellen, indem sie die statische Widget-Struktur aus einem oder mehreren anderen Materialien als dem Hauptbestandteil der Touchscreen-Abdeckung ausbilden. Daher kann ein statisches Widget zumindest teilweise in den Grundkörper der Touchscreen-Abdeckung eingebettet oder anderweitig physisch an den Grundkörper gekoppelt sein und daher als „eingebettetes statisches Widget“ bezeichnet werden. Wie unten erläutert, kann das eingebettete statische Widget in einigen Ausführungsformen aus einem Material mit einer höheren Dielektrizitätskonstante als der des Grundkörpers der Touchscreen-Abdeckung ausgebildet werden, z. B. um eine konstante Berührungskapazität über den Grat bereitzustellen oder um eine erhöhte oder reduzierte Kapazität bereitzustellen, abhängig von der gewünschten Leistung.
-
Wie oben erläutert, kann ein statisches Widget einem Benutzer taktiles Feedback geben und ohne bewegliche Teile beispielsweise als statischer Grat oder statische Nut im Bildschirm verkörpert werden. Darüber hinaus kann, wie oben erläutert, ein an der gleichen Position angeordnetes virtuelles Widget Widget-Mitteilungen an eine Haupteinheit senden, wenn eine Berührung erkannt wird, wobei die Widget-Mitteilungen eine Position, Rotation, Status „berührt“, eine Reihe von gemeldeten Berührungen usw. anzeigen können.
-
Darüber hinaus kann die Verwendung von eingebetteten statischen Widgets, wie oben offenbart, die Detektion eines Fingers eines Benutzers verbessern, der einen Handschuh trägt.
-
Bei einigen statischen Widget-Designs, z. B. wenn ein kapazitiver Sensor unter einem Grat oder einer Nut in einem Deckglas angeordnet ist, kann das Touch-Signal von der Abdeckungsglasdicke und der Touch-Größe (Fläche) abhängen. Wenn das Deckglas dünn ist und die Berührung flach ist, kann die berührungsbasierte Kapazität durch die folgende Gleichung definiert oder angenähert werden:
-
Gemäß Gleichung 1a ist die Kapazität C von zwei flächengleichen parallelen Platten das Produkt der Fläche (A) einer Platte, der Dicke (t), die die Platten trennt, und der Dielektrizitätskonstante (e) des Raumes, der die Platten trennt. Die gesamte Dielektrizitätskonstante e ist das Produkt der dielektrischen Konstante des freien Raums (eo) und der relativen dielektrischen Konstante des Materials (er).
-
Alternativ, wenn der Finger klein erscheint und weit vom Bildschirm entfernt ist, und der Bildschirmknoten eine feste Größe aufweist, kann die berührungsbasierte Kapazität durch die folgende Gleichung angenähert werden:
-
In typischen Ausführungsformen und Situationen kann die wahre berührungsbasierte Kapazität zwischen Gleichungen 1a und 1b liegen, und kann als ere0A/t ≤ C ≤ k*ere0A/t2 dargestellt werden. Wenn also ein Grat oder eine andere physikalische Struktur die Dicke t verdoppelt, wird die Kapazität C um den Faktor zwischen zwei und vier reduziert, z. B. je nachdem, ob Gleichung 1a oder 1b für die jeweilige Situation geeignet ist. So kann das System zusätzliche Touch-Verarbeitung bereitstellen, um Grate, Nuten und andere physikalische Strukturen im Bildschirm zu kompensieren oder zu adressieren, z. B. um einem Benutzer ein taktiles Gefühl zu verleihen, ohne Firmware-Komplikationen im Zusammenhang mit der Berührungserkennung usw. zu verursachen.
-
Daher können einige Ausführungsformen ein anderes Material für Grate oder andere statische Widget-Strukturen als das Grundmaterial der Touchscreen-Abdeckung (z. B. Glas oder Polymer) verwenden. Darüber hinaus können virtuelle Widgets verwendet werden, um Widget-Messaging zu verwalten, z. B. wie oben beschrieben.
-
19 veranschaulicht gemäß einer beispielhaften Ausführungsform eine Beispielstruktur eines beispielhaften statischen Widgets 1900 in einer Touchscreen-Abdeckung 1902, angeordnet über einem kapazitiven Sensor 1904. Das statische Widget 1900 vom Typ Grat kann ausgeformt als Einlage in einer Nut 1920 in der Touchscreen-Abdeckung 1902 verkörpert werden.
-
Gemäß den Gleichungen 1a und 1b oben ist die Wirkung einer hohen Dielektrizitätskonstante er eine Änderung der kapazitiven Kopplung.
-
In einer Situation, in der die Berührung flach erscheint, kann basierend auf Gleichung 1a, und in Bezug auf die Beispielstruktur in
19, wobei das Grundmaterial der Touchscreen-Abdeckung eine dielektrische Konstante erc aufweist und das Gratmaterial eine dielektrische Konstante err aufweist, die durchschnittliche Dielektrizitätskonstante ausgedrückt werden als:
das überall konstant gehalten werden kann, wenn:
-
Wenn die Berührungsantwort jedoch zu Gleichung 1a neigt: C = e
re
0A/t (z. B. wenn der Finger klein erscheint und weit vom Bildschirm entfernt ist), kann die durchschnittliche Dielektrizitätskonstante ausgedrückt werden als:
die überall konstant gehalten werden kann, wenn:
-
Somit kann die Dielektrizitätskonstante überall konstant gehalten werden, unabhängig davon, ob die Berührung flach erscheint (wo Gleichung 1a gilt) oder nicht (wo Gleichung 1b gilt). Das Vorhandensein verschiedener dielektrischer Konstanten kann verwendet werden, um die Berührungsreaktion im Bereich des statischen Widgets nach Wunsch zu erhöhen oder zu reduzieren, indem bestimmte Materialien (mit ausgewählten dielektrischen Konstanten) ausgewählt werden, die im Grateinsatz verwendet werden.
-
Beispielsweise kann das Deckgrundmaterial und das Gratmaterial eines Widgets vom Typ Grat so ausgewählt werden, dass die dielektrische Konstante err größer oder kleiner als die Dielektrizitätskonstante erc des Deckgrundmaterials ist. In einigen Ausführungsformen können eine Reihe von Kapazitätsparametern, einschließlich denen aus Gratmaterial, Form des Grats, Grathöhe r, Grattiefe h, Gratdicke (z. B. Dicke tr = h+r an der dicksten Position), Basisdeckdicke tcb und/oder reduzierte Deckdicke tch unter dem Grat kollektiv ausgewählt werden, um eine erhöhte, neutrale oder reduzierte kapazitive Berührungserkennungsempfindlichkeit an einer oder mehreren Stellen auf dem Grat bereitzustellen, im Vergleich zu einem Referenzbereich des Bildschirms außerhalb des Grats (d. h. Deckmaterial mit Dicke t).
-
Beispielsweise kann jeder der kapazitätsbezogenen Parameter ausgewählt werden, um eine erhöhte Kapazität oder eine reduzierte Kapazität (im Vergleich zum Referenzbereich) an allen Punkten/Bereichen auf dem Grat bereitzustellen. Als weiteres Beispiel kann jeder der kapazitätsbezogenen Parameter ausgewählt werden, um eine erhöhte Kapazität an ausgewählten Punkten/Bereichen auf dem Grat bereitzustellen, aber eine neutrale oder reduzierte Kapazität an anderen Punkten/Bereichen auf dem Grat oder umgekehrt. Unter Bezugnahme auf 19 können z. B. das Deckmaterial, die Grundabdeckungsdicke tbr , die reduzierte Deckdicke des Gratmaterials tcr, die Rückenform und die Firstdicke tr ausgewählt werden, um eine erhöhte Kapazität an einem zentralen Punkt oder einer Fläche des Grats zu gewährleisten, angegeben bei 1910, aber eine neutrale oder reduzierte Kapazität in der Nähe der seitlichen Ränder des Grats, angegeben bei 1912.
-
In einer Ausführungsform kann das in 19 dargestellte statische Widget 1900 aus Material(ien) ausgebildet werden, die eine höhere Dielektrizitätskonstante aufweisen als die Bildschirmabdeckung 1902, um eine konstante oder im Wesentlichen konstante Berührungskapazität über den Grat 1900 hinweg bereitzustellen.
-
In einer Ausführungsform kann ein statisches Widget vom Typ Grat, das z.B. einen Drehknopf definiert, eine über den Winkel variierende Dielektrizitätskonstante aufweisen, so dass die Berührung an einigen Stellen größer (hohe dielektrische Konstante) und an anderen Stellen die Berührung kleiner (niedrig dielektrische Konstante) erscheint, um dadurch die Diskriminierung zwischen verschiedenen Widget-Orten zu verstärken.
-
In einer Ausführungsform wird die Touchscreen-Abdeckung 1902 aus einem Polymer mit einer dielektrischen Konstante erc = 3,5 und einem aus Glas ausgebildeten Grateinsatz mit einer dielektrischen Konstante err von etwa 8 (z.B. zwischen 7 und 8,5) ausgebildet. Beispielsweise kann ein Grateinsatz aus einem verstärkten Glas ausgebildet werden, z. B. Gorilla® Glas von Corning® oder ein ähnliches Glasprodukt mit einer Dielektrizitätskonstante zwischen 7 und 8,5 (z. B. 7,75) bei relevanten Verarbeitungsgeschwindigkeiten.
-
Darüber hinaus kann ein statisches Widget in einigen Ausführungsformen mehrere Schichten, Abschnitte oder Regionen beinhalten, die aus mehreren verschiedenen Materialien ausgebildet sind, z. B. mit unterschiedlichen dielektrischen Konstanten, um das gesamte berührungsempfindliche Verhalten des statischen Widgets zu steuern. Beispielsweise kann ein statisches Widget über einer Basisabdeckungsschicht (z. B. aus Glas oder Polymer gebildet) ausgebildet, in diese eingefügt oder anderweitig an einer Basisabdeckung befestigt werden und kann einen zentralen oder Hauptbereich aufweisen, der aus einem ersten Material mit einer ersten Dielektrizitätskonstante ausgebildet ist, und einen oder mehrere sekundäre Bereiche, die aus einem zweiten Material ausgebildet sind, das eine zweite Dielektrizitätskonstante aufweist, die sich von der ersten dielektrischen Konstante unterscheidet (größer als oder kleiner als), wobei die erste oder zweite Dielektrizitätskonstante die gleiche sein kann wie die des Deckschichtmaterials.
-
20 veranschaulicht gemäß einer beispielhaften Ausführungsform ein Beispiel für ein statisches Widget 2000 vom Typ Grat in einer Touchscreen-Abdeckung 2002, das über einem kapazitiven Sensor 2004 angeordnet ist. Das statische Widget 2000 vom Typ Grat kann im Allgemeinen ähnlich sein zu statischem Widget 1900 vom Typ Grat in 19 und oben besprochen, aber kann als Multi-Komponenten-Einsatz einschließlich einer zentralen Gratkomponente oder Region 2010 zwischen einem Paar von Kantengratkomponenten oder Regionen 2012A und 2012B ausgebildet sein. Die zentrale Gratkomponente oder Region 2010 kann aus einem ersten Material mit einer ersten Dielektrizitätskonstante ausgebildet sein, während die Kantengratkomponenten oder Regionen 2012A und 2012B aus einem zweiten Material mit einer zweiten Dielektrizitätskonstante ausgebildet sein können, die sich von der ersten Dielektrizitätskonstante unterscheidet (größer als oder kleiner als). Jedes der ersten und zweiten Materialien kann mit dem Material der Grundabdeckungsschicht 2002 identisch oder unterschiedlich dazu sein. Darüber hinaus kann jede der ersten und zweiten Dielektrizitätskonstanten des ersten und zweiten Materials mit den Dielektrizitätskonstanten des Grundbezugsschichtmaterials gleich oder unterschiedlich zu (größer oder kleiner) der Dielektrizitätskonstanten des Basisdeckschichtmaterials sein.
-
In der in 20 dargestellten beispielhaften Ausführungsform ist die Touchscreen-Deckschicht 2002 aus einem Polymer mit einer dielektrischen Konstante erc = 3,5 und einem statischen Widget 2000 vom Typ Grat als Mehrkomponenteneinsatz einschließlich (a) einer zentralen Gratkomponente 2010 ausgebildet aus verstärktem Glas (z.B. Gorilla® Glas von Corning® oder einem ähnlichen Glasprodukt, wie oben besprochen), mit einer dielektrischen Konstante err2 = ca. 8 (z.B. zwischen 7 und 8,5), ausgebildet zwischen (b) einem Paar lateraler Seitenbereiche 2012A und 2012B, ausgebildet aus Polymer als Basisdeckschicht 2002 und damit mit einer dielektrischen Konstante err1 = 3,5.
-
In anderen Ausführungsformen kann ein statisches Mehrkomponenten-Widget mit mehreren Schichten oder Komponenten ausgebildet werden, die vertikal zueinander angeordnet sind (z.B. in einer Stapelbildung) im Gegensatz zu den seitlichen, wie in den in 19 und 20 dargestellten Beispielen.
-
Viele der in dieser Spezifikation beschriebenen Funktionseinheiten können als Module, Threads oder andere Unterteilungen von Programmiercode dargestellt, beschrieben oder gekennzeichnet werden, um ihre Implementierungsunabhängigkeit besonders hervorzuheben. Module können in der einen oder anderen Form zumindest teilweise in Hardware implementiert sein. Beispielsweise kann ein Modul als Hardware-Schaltung implementiert werden, die benutzerdefinierte VLSI-Schaltungen oder Gate-Arrays, standardisierte Halbleiter wie Logikchips, Transistoren oder andere diskrete Komponenten aufweist. Ein Modul kann auch in programmierbaren Hardwarevorrichtungen wie feldprogrammierbaren Gate-Arrays, programmierbarer Arraylogik, programmierbaren Logikgeräten oder dergleichen implementiert werden.
-
Module können auch mit Software oder Firmware implementiert werden, die auf einem physischen Speichervorrichtung (z. B. einem computerlesbaren Speichermedium) im Speicher oder einer Kombination davon für die Ausführung durch verschiedene Prozessortypen gespeichert werden.
-
Ein identifiziertes Modul ausführbaren Codes kann z. B. einen oder mehrere physikalische oder logische Blöcke von Computeranweisungen aufweisen, die z. B. als Thread, Objekt, Prozedur oder Funktion organisiert sein können. Die ausführbare Datei eines identifizierten Moduls muss jedoch nicht physisch zusammengefügt sein, sondern kann unterschiedliche Anweisungen aufweisen, die an verschiedenen Orten gespeichert sind, die, wenn sie logisch miteinander verbunden werden, das Modul umfassen und den angegebenen Zweck für das Modul erzielen.
-
Tatsächlich kann ein Modul mit ausführbarem Code eine einzelne Anweisung oder viele Anweisungen sein und sogar über mehrere verschiedene Codesegmente, auf verschiedene Programme und auf mehrere Speicher- oder Speichervorrichtungen verteilt sein. Ebenso können Betriebsdaten hierin Modulen identifiziert und dargestellt werden, und können in jeder geeigneten Form verkörpert und innerhalb jeder geeigneten Art von Datenstruktur organisiert werden. Die Betriebsdaten können als ein einziger Datensatz erfasst oder über verschiedene Orte verteilt werden, einschließlich über verschiedene Speichervorrichtungen, und können zumindest teilweise nur als elektronische Signale auf einem System oder Netzwerk existieren. Wenn ein Modul oder Teile eines Moduls in Software implementiert sind, werden die Softwareteile auf einem oder mehreren physischen Vorrichtungen gespeichert, die hier als computerlesbare Medien bezeichnet werden.
-
In einigen Ausführungsformen werden die Softwareanteile in einem nicht-flüchtigen Zustand gespeichert, so dass die Softwareanteile oder Darstellungen davon für einen bestimmten Zeitraum am gleichen physikalischen Ort verbleiben. Darüber hinaus werden in einigen Ausführungsformen die Softwareanteile auf einer oder mehreren nicht-flüchtigen Speichervorrichtungen gespeichert, die Hardwareelemente beinhalten, die in der Lage sind, nicht-flüchtige Zustände und/oder Signale zu speichern, die für die Softwareanteile repräsentativ sind, auch wenn andere Teile der nicht-flüchtigen Speichervorrichtungen in der Lage sein können, die Signale zu verändern und/oder zu übertragen. Beispiele für nicht-flüchtige Speichervorrichtungen sind Flash-Speicher und Random Access Memory (RAM). Ein weiteres Beispiel für eine nicht-flüchtiges Speichervorrichtung ist ein schreibgeschützter Speicher (ROM), der Signale und/oder Zustände speichern kann, die für die Softwareanteile für einen bestimmten Zeitraum repräsentativ sind. Die Fähigkeit, die Signale und/oder Zustände zu speichern, wird jedoch nicht durch die weitere Funktionalität der Übertragung von Signalen beeinträchtigt, die mit den gespeicherten Signalen und/oder Zuständen identisch oder repräsentativ dafür sind. Beispielsweise kann ein Prozessor 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.
-
Während die vorliegende Offenbarung hierin in Bezug auf bestimmte illustrierte Ausführungsformen beschrieben wurde, wird ein Fachmann erkennen, dass die vorliegende Erfindung dadurch nicht eingeschränkt ist. Vielmehr können viele Ergänzungen, Streichungen und Änderungen an den dargestellten und beschriebenen Ausführungsformen vorgenommen werden, ohne vom Schutzumfang der Erfindung, wie im Folgenden zusammen mit ihren rechtlichen Äquivalenten beansprucht, abzuweichen. Darüber hinaus können Merkmale einer Ausführungsform mit Merkmalen einer anderen Ausführungsform kombiniert werden, während sie weiterhin im Schutzumfang der Erfindung eingeschlossen sind, wie von den Erfindern vorgesehen.