-
Eine erste Rechenvorrichtung kann zum Empfangen einer Eingabe einschließlich von durch die Rechenvorrichtung und/oder eine oder mehrere zweite Rechenvorrichtungen auszuführenden Befehlen eingerichtet sein. Jedoch können Befehle, die durch die erste Rechenvorrichtung und eine oder mehrere der zweiten Rechenvorrichtungen empfangen werden zusammenstoßen oder in Konflikt geraten. Leider mangelt es an Mechanismen zum Behandeln solcher Konflikte. In der Tat mangelt es allgemein an Mechanismen zum Behandeln, z.B. Priorisieren von widersprüchlichen Grammatiken.
-
1 ist ein Blockschaltbild eines beispielhaften Systems zum Verwalten mehrerer Vorrichtungen.
-
2 ist ein Diagramm eines beispielhaften Verfahrens zur Begriffsklärung von in einer zentralen Rechenvorrichtung empfangenen Befehlen.
-
3 ist ein Diagramm eines beispielhaften Verfahrens zum Registrieren einer Anwendungsgrammatik in einem zentralen Computer, der zum Verwalten mehrerer Vorrichtungen eingerichtet ist.
-
4 ist ein Diagramm eines beispielhaften Verfahrens zum Auswählen einer Vorrichtung zum Ausführen eines in einem zentralen Computer empfangenen Befehls, der zum Verwalten mehrerer Vorrichtungen eingerichtet ist.
-
5 ist ein Diagramm eines beispielhaften Verfahrens zum Auswählen einer Instanz einer Anwendung zum Ausführen eines in einem zentralen Computer empfangenen Befehls, der zum Verwalten mehrerer Vorrichtungen eingerichtet ist.
-
1 ist ein Blockschaltbild eines beispielhaften Systems 100 zum Verwalten mehrerer Vorrichtungen 150, die kommunikationstechnisch an einen zentralen Computer 105 angekoppelt sind. Die Vorrichtungen 150 sind allgemein in der Nähe voneinander, z.B. enthalten an einem gemeinsamen Ort wie beispielsweise in einem Raum in einem Gebäude oder wie in einer beispielhaften Ausführung in einem Fahrzeug 101. Beispielsweise sind in einer beispielhaften Ausführung die Vorrichtungen 150 alle genügend nahe an dem zentralen Computer 105, so dass leistungsarme drahtlose Kommunikationen zwischen den Vorrichtungen 150 und dem Computer 105 möglich sind, z.B. unter Verwendung einer bekannten Technik wie beispielsweise Bluetooth oder dergleichen.
-
Der Computer 105 umfasst allgemein eine Mensch-Maschine-Schnittstelle (HMI – Human Machine Interface) 110 zum Bereitstellen einer Ausgabe, z.B. Text, Bildern, Ton usw. für einen Benutzer wie auch zum Empfangen einer Benutzereingabe, z.B. über Sprachbefehl, Auswahl an einer Eingangsvorrichtung wie beispielsweise einem Tastschirm usw. In einer beispielhaften Ausführung wird von einem Benutzer eine wörtliche Eingabe, d.h. Ton-Eingabe über die HMI 110 dem Computer 105 bereitgestellt. Eine durch einen Prozessor des Computers 105 ausgeführte Sprachsteuerungsanwendung (VCA – Voice Control Application) 115 erkennt und interpretiert die wörtliche Eingabe gemäß einer Systemgrammatik 120 und/oder einer oder mehreren Anwendungsgrammatiken 125.
-
Jedoch können verschiedene Grammatiken 120, 125 ähnliche oder gleiche Wörter und/oder zum Bereitstellen von Befehlen für den Computer 105, eine oder mehrere Vorrichtungen 150 und/oder eine oder mehrere auf einer Rechenvorrichtung 105 oder 150 ablaufende Anwendungen benutzte Ausdrücke umfassen. Dementsprechend kann der Computer 105 wie unten ausführlich beschrieben zum Identifizieren von Anwendungsgrammatiken 125 und zum Auflösen von Konflikten zwischen der Systemgrammatik 120 des Computers 105 und einer oder mehreren Anwendungsgrammatiken 125 wie auch Konflikten, die zwischen Anwendungsgrammatiken 125 entstehen können, eingerichtet sein. Weiterhin kann der Computer 105 in dem Falle, wo ein Befehl in mehreren Grammatiken 120, 125 enthalten ist, zum Identifizieren einer Vorrichtung 150 eingerichtet sein, an die der Befehl zu richten ist.
-
Ein zentraler Computer 105, z.B. in einem Fahrzeug 101 enthalten, umfasst allgemein einen Prozessor und einen Speicher, wobei der Speicher eine oder mehrere Formen von computerlesbaren Medien umfasst, allgemein umfassend flüchtige und nichtflüchtige Speicher und das Speichern von Anweisungen, die durch den Prozessor zum Durchführen verschiedener Operationen, einschließlich wie hier offenbart, ausführbar sind. Der Speicher des Computers 105 speichert weiterhin allgemein Anweisungen, die durch den Prozessor des Computers 105 ausführbar sind, umfassend die VCA 115. Zusätzlich umfasst der Speicher des Computers 105 allgemein eine Systemgrammatik 120 wie auch eine oder mehrere Anwendungsgrammatiken 125 für eine oder mehrere im Computer 105 enthaltene Anwendungen. Zusätzlich kann der Speicher des Computers 105, z.B. ein flüchtiger oder nicht dauerhafter oder nicht beständiger Speicher, eine oder mehrere von einer oder mehreren Vorrichtungen 150 empfangene Anwendungsgrammatiken 125 speichern.
-
Dementsprechend ist der Computer 105 wie weiter unten beschrieben zum Empfangen der einen oder mehreren Anwendungsgrammatiken 125, zum Bestimmen, ob die Grammatiken 120, 125 in Konflikt stehen und/oder zum Auflösen von Konflikten, die entstehen, wenn der Computer 105 einen Befehl empfängt, z.B. über die HMI 110 interpretiert durch die VCA 115, wo der Befehl nach mehr als einer der Grammatiken 120, 125 interpretiert werden kann, eingerichtet.
-
Der Computer 105 ist allgemein für Kommunikationen auf einem CAN-Bus (CAN – Steuerungsbereichsnetz) oder dergleichen eingerichtet. Zusätzlich kann der Computer 105 zum Kommunizieren mit einer oder mehreren Vorrichtungen 150, z.B. über verschiedene drahtgebundene und/oder drahtlose Vernetzungstechniken wie beispielsweise Bluetooth, ein USB- oder Mikro-USB-Kabel (USB = Universal Serial Bus) usw., eingerichtet sein. Weiterhin kann der Computer 105 die HMI 110 umfassen oder daran angekoppelt sein.
-
Im Allgemeinen empfängt die HMI 110 eine dem Computer 105 bereitgestellte Eingabe und zeigt eine Ausgabe an. Eine HMI 110 kann eine Vielzahl von Mechanismen umfassen, z.B. eine Eingangsvorrichtung wie beispielsweise einen Tastschirm, eine Tastatur, ein Tastenfeld, ein Mikrofon usw. Weiterhin umfasst eine HMI 110 allgemein Ausgangsmechanismen wie beispielsweise einen Anzeigebildschirm, Lautsprecher usw.
-
Die VCA 115 kann zum Interpretieren oder Decodieren von Tönen zum Identifizieren von Phonemen oder dergleichen benutzt werden, und Wörtern daraus, die ein Befehl oder Befehle für auf dem Computer 105 und/oder einer oder mehreren Benutzervorrichtungen 150 ausgeführte Softwareanwendung sein können. Im Allgemeinen wird die VCA 115 zusammen mit einem Ereignismonitor oder dergleichen zum Erkennen und Empfangen einer Toneingabe als ein fortlaufender oder Hintergrundvorgang im Computer 105 betrieben. Das heißt es sind Mechanismen zum Erkennen und Parsing, Interpretieren oder Decodieren einer Toneingabe bekannt.
-
Sobald die VCA 115 ein Wort oder dem Computer 105 als Befehl bereitgestellte Wörter bestimmt hat, kann eine Grammatik 120, 125 zum Bestimmen einer zu unternehmenden Handlung basierend auf dem Befehl benutzt werden. Beispielhafte Daten, die in einer Grammatik 120, 125 enthalten sein können, sind unten in Tabelle 1 bzw. 2 gezeigt. Beispiele einer zum Interpretieren eines Befehls benutzten Grammatik 120, 125 umfassen einen Befehl, der interpretiert wird, die Ausführung einer bestimmten Anwendung auf einer bestimmten Vorrichtung 150 zum Unternehmen einer Handlung über den Computer 105 zu veranlassen, z.B. einen Telefonanruf zu tätigen, eine Funkstation zu ändern, die Klimasteuerung eines Fahrzeugs 101 einzustellen, eine Anwendung einzusetzen usw. Weiterhin kann wie oben besprochen ein Befehl in mehreren Grammatiken 120, 125 dupliziert sein, wobei der Computer 105 eingerichtet ist zum Bestimmen, welche der möglichen Grammatiken 120, 125 anzuwenden ist, zum Bestimmen einer zu unternehmenden Handlung basierend auf dem Befehl.
-
Im Allgemeinen umfasst der Begriff „Grammatik“ so wie er hier benutzt wird eine Definition eines Satzes zulässiger Befehle für eine Softwareanwendung, wie beispielsweise eine auf einer Vorrichtung 150 ausgeführte Anwendung oder eine auf dem Computer 105 ausgeführte Hintergrund- oder Überwachungsanwendung, die z.B. eine Eingabe, z.B. Sprachbefehle, über die HMI 110 empfängt und durch die VCA 115 interpretiert wird. Dementsprechend kann eine Grammtik 120, 125 einen Satz Regeln zum Parsen von Sprachbefehlen und zum Zuweisen eines Sprachbefehls zu einer Handlung in einer Computersoftware umfassen, z.B. zum Realisieren einer Anwendung, zum Unternehmen einer Handlung, z.B. in einer Musikanwendung zum Spielen, Aussetzen, Wiederaufnehmen usw. In einigen Fällen können Regeln in einer Grammatik 120 einfach einen Satz Befehle, z.B. Einzelwörter oder Ausdrücke, und jeweilige mit jedem der Befehle verbundene Handlungen identifizieren. Kompliziertere Grammatiken sind möglich, z.B. wo eine Regel angibt, dass ein erstes Wort eine erste Bedeutung bezeichnet, z.B. einer ersten Handlung zugeordnet ist, wenn ihm ein zweites Wort folgt, und eine zweite Bedeutung bezeichnet, z.B. mit einer zweiten Handlung verbunden ist, wenn ihm ein drittes Wort folgt.
-
Die Systemgrammatik 120 ist allgemein in einem dauerhaften und/oder nichtflüchtigen Speicher des Computers 105 gespeichert. Die Systemgrammatik 120 wird zum Bestimmen einer in oder durch den Computer 105 zu unternehmenden Handlung oder von Handlungen basierend auf gewissen Befehlen wie angegeben in der Grammatik 120 benutzt. Die Grammatik 120 wird als eine Systemgrammatik 120 bzw. „Systemebene“ bezeichnet, da sie Befehle, die auf ein Betriebssystem, eine Hintergrundereignisbearbeitungseinrichtung oder dergleichen angewandt werden, betrifft, die auf dem Computer 105 ablaufen, gegenüber einer Anwendung oder Anwendungen die auf dem Computer 105 und/oder einer oder mehreren Vorrichtungen 150 ablaufen. Gewisse der Befehle in einer Grammatik 120 können für die Grammatik 120 reserviert sein. Das heißt wenn ein Befehl in einer Grammatik 120 reserviert ist, selbst wenn dieser Befehl in einer Grammatik 125 für eine Anwendung erscheint, wird der Befehl als ein Befehl auf Systemebene für den Computer 105 ausgelegt.
-
Eine Anwendungsgrammatik 125 kann in Anweisungen und/oder Daten enthalten sein, die eine in einer Vorrichtung 150 oder dem Computer 105 gespeicherte und darauf ausgeführte Anwendung umfassen. Dementsprechend betrifft eine Anwendungsgrammatik 125 eine auf dem Computer 105 oder einer Vorrichtung 150 ausgeführte einzige Anwendung. Eine Anwendungsgrammatik 125 oder ein Teil derselben kann für den Computer 105 bereitgestellt werden, wodurch der Computer 105 bestimmen kann, wann Befehle in der Anwendungsgrammatik 125 aufgerufen werden, und kann Konflikte lösen, die zwischen der Systemgrammatik 120 und einer Anwendungsgrammatik 125 entstehen können, oder zwischen einer ersten Anwendungsgrammatik 125 und einer oder mehreren zweiten Anwendungsgrammatiken 125.
-
Dementsprechend speichert zusätzlich zum Speichern von Grammatiken 120, 125 ein Speicher des Computers 105 allgemein Regeln zum Auswählen einer Vorrichtung und/oder Anwendung zum Empfangen eines Befehls und zum Priorisieren und/oder Auflösen von Konflikten zwischen Vorrichtungen, Anwendungen und/oder Grammatiken 120, 125. Beispiele von zum Angeben solcher Regeln benutzten Daten sind unten in Tabellen 1–4 bereitgestellt.
-
Eine Benutzervorrichtung 150 kann eine beliebige einer Vielzahl von Rechenvorrichtungen sein, einschließlich eines Prozessors und eines Speichers wie auch von Kommunikationsfähigkeiten. Beispielsweise kann die Benutzervorrichtung 150 ein tragbarer Computer, Tabletcomputer, intelligentes Telefon usw. sein, der bzw. das Fähigkeiten für drahtgebundene oder drahtlose Kommunikationen beispielsweise unter Verwendung von IEEE 802.11, Bluetooth und/oder Zellularfunkkommunikationsprotokollen, USB (Universal Serial Bus), Mikro-USB usw. umfasst. Weiterhin kann die Benutzervorrichtung 150 solche Kommunikationsfähigkeiten zum Kommunizieren über das Netz 120 und auch direkt mit dem Fahrzeugcomputer 105, z.B. unter Verwendung von Bluetooth benutzen.
-
Wie oben erwähnt können eine oder mehrere computerlesbare Medien, z.B. flüchtige und/oder nichtflüchtige, dauerhafte und/oder nichtdauerhafte usw. durch den Computer 105 zum Speichern verschiedener Daten benutzt werden. Beispielsweise kann der Computer 105 Grammatiken 120, 125 speichern.
-
Ein Teil einer beispielhaften Grammatik
120 wird unten in der Tabelle 1 bereitgestellt.
| Befehls-ID | Befehl | Erläuterung |
| 1 | „Wähle <10-ziffrige Telefonnummer> | Wählen einer angeforderten Telefonnummer mit einer mit dem Computer 105 verbundenen Telefonvorrichtung 150 |
| 2 | „Radio aus” | Ein durch den Computer 105 gesteuertes Radio ausschalten |
| 3 | „Navigieren zu <Straßenadresse>” | Einen Weg zu der angegebenen Straßenadresse in einem im Computer 105 enthaltenen Navigationsmodul bestimmen |
| 4 | „<Anwendungsname>” | Eine Anwendung mit dem angegebenen Namen aktivieren |
| 5 | „<Anwendungsname> verlassen | Ausführung einer Anwendung mit dem angegebenen Namen beenden |
Tabelle 1
-
Ein Teil einer beispielhaften Grammatik
125 wird unten in Tabelle 2 bereitgestellt.
| Befehls-ID | Befehl | Erläuterung |
| 10 | Spiele <Liedername> | Lied mit dem erwünschten Namen spielen |
| 11 | „Pause” | Wiedergabe von Toninhalt anhalten |
| 12 | „Letzte Spur” | Wiedergabe einer vorigen Spur |
| 13 | „Nächste Spur” | Wiedergabe einer nächsten Spur |
Tabelle 2
-
Der Computer
105 kann Anwendungen verfolgen, die im Computer
105 und/oder einer oder mehreren Vorrichtungen
150 ausgeführt werden können. Die Tabelle 3 unten stellt ein Beispiel von Daten bereit, die durch einen Computer
105 zum Kennzeichnen und Verfolgen von Anwendungen geführt werden können.
| Anw. ID | Anw.- Name | Anw.- Zustand | Grammatik-ID | Vorr.- Name |
| 175 | Verkehr | 1 | 17 | Lous.-Tel. |
| 245 | Pandora | 1 | 231 | Stefans- iPOD |
| 242 | Slacker | 2 | 323 | Bobs-USB |
| 239 | Wetter | 1 | 6543 | Eds-iPOD |
| 240 | Stitcher | 2 | 2314 | Meine Vorr. |
| 241 | BioCycle | 2 | NULL | Meine Vorr. |
| 246 | Pandora | 1 | 231 | Zentral rechner |
Tabelle 3
-
Die Anw.-ID-Spalte stellt eine Kennung für jede registrierte Anwendung bereit, wobei die Anw.-Name-Spalte den Namen jeder jeweiligen Anwendung bereitstellt. Man beachte, dass ein Anwendungsname wiederholt werden kann, da eine gleiche Anwendung auf mehr als einer Vorrichtung 150 und/oder dem Zentralrechner 105 und einer oder mehreren Vorrichtungen 150 enthalten sein kann. Die Grammatik-ID, d.h. Grammatikkennung, stellt eine Kennung für die Systemgrammatik 120 oder eine Anwendungsgrammatik 125 bereit. Dementsprechend könnte eine weitere Tabellen- oder Datenstruktur im Computer 105 jeweilige Grammatikkennungen mit Tabellen oder anderen Datenstrukturen verbinden, die jeweilige Grammatiken 120, 125 speichern. Im Allgemeinen können Daten wie in der Tabelle 3 gezeigt dementsprechend zum Kennzeichnen möglicher Grammatiken 120, 125 benutzt werden, die aufzurufen sind, wenn ein Befehl, z.B. zum Aktivieren einer Anwendung oder zum Durchführen irgendeiner Operation im Computer 105 oder einer Vorrichtung 150, z.B. über eine Anwendung, empfangen wird.
-
Der Computer
105 kann weiterhin Daten speichern, die einen Zustand einer Anwendung hinsichtlich einer Benutzeroberfläche widerspiegeln, z.B. der HMI
110. Beispielsweise könnte der Computer
105 im Speicher eine Tabelle mit einer Anw.-ID-Spalte führen, z.B. der in Tabelle 3 oben gezeigten Anw.-ID, wodurch der Computer
105 einen in einer Anwendungstabelle oder Datenstruktur gezeigten Anwendungszustand mit einer Anwendung verbinden könnte, über die Daten in einer Tabelle oder in Datenstrukturen wie in der Tabelle 3 gezeigt geführt werden. Weiterhin könnte der Computer
105 eine Spalte umfassen, die einen „HMI-Pegel“ oder „HMI-Zustand“ oder dergleichen anzeigt, d.h. eine Anw.-ID mit einem HMI-Pegel verbindet. Die Tabelle 4 unten stellt ein Beispiel einer HMI-Pegel-Tabelle bereit.
| Anw.-ID | HMI- Pegel |
| 175 | 3 |
| 245 | 2 |
| 242 | 0 |
| 239 | 1 |
| 240 | 1 |
| 241 | 0 |
Tabelle 4
-
Im Allgemeinen könnte ein HMI-Pegel oder -Zustand einen beliebigen einer Vielzahl von Werten aufweisen, z.B. in einer Ausführung bedeutet ein Wert 0 oder nein, dass ein Anwendung nicht gestartet oder aktiviert worden ist, z.B. überhaupt nicht im Computer 105 oder einer Vorrichtung 150 läuft. Ein Wert 1 könnte bedeuten, dass die Anwendung im Hintergrund läuft, d.h. gestartet worden ist, aber weder eine Eingabe empfängt noch eine Ausgabe über die HMI 110 liefert. Ein Wert 2 könnte bedeuten, dass die Anwendung einen begrenzten Zustand aufweist, z.B. begrenzte Ausgabe wie beispielsweise Ton liefert aber keine Ausgabe auf einem Anzeigebildschirm der HMI 110, oder wenn eine Ausgabe auf dem Anzeigebildschirm der HMI 110 bereitgestellt wird, ist die Ausgabe auf eine Statusleiste, eine Ikone oder dergleichen begrenzt. Ein Wert 3 könnte bedeuten, dass die Anwendung einen vollen oder hochwertigen Zustand aufweist, z.B. Ausgabe über mehrere Mechanismen der HMI 110 bereitstellt, z.B. Bild und Ton. In einer Ausführung nur eine Anwendung zu einer Zeit sie auf einem „vollen“ Pegel sein und gleicherweise kann nur eine Anwendung zu jeder Zeit auf einem „begrenzten“ Pegel sein, während mehrere Anwendungen auf einem „Hintergrund“-Pegel sein könnten. Es ist jedoch auch möglich, dass mehrere Anwendungen zu einer Zeit auf einem begrenzten Pegel liegen oder sogar mehrere Anwendungen auf einem vollen Pegel zu einer Zeit liegen.
-
2 ist ein Diagramm eines beispielhaften Verfahrens 200 zur Begriffsklärung von in einer zentralen Rechenvorrichtung empfangenen Befehlen. Das Verfahren 200 beginnt in einem Block 205, in dem der Computer 105, z.B. wenn er eingeschaltet wird, bestimmt, ob eine oder mehrere Vorrichtungen 150 erkannt werden. Zum Beispiel, wie oben erwähnt, könnte eine Bluetooth-Verbindung oder dergleichen erkannt werden und/oder es kann eine Vorrichtung 150 physikalisch, z.B. über eine USB- oder Mikro-USB-Verbindung oder dergleichen, mit dem Computer 105 verbunden werden.
-
Wenn keine Vorrichtungen 150 erkannt werden, dann endet das Verfahren 200. Ansonsten schreitet das Verfahren 200 zu einem Block 210 fort.
-
Im Block 210 registriert der Computer 105 jede der im Block 205 erkannten Vorrichtungen. Beispielsweise kann der Computer 105 eine Tabelle oder sonstige Datenstruktur führen, die erkannte Vorrichtungen 105 identifizieren, unter Verwendung einer Vorrichtungskennung, wie beispielsweise eines Vorrichtungsnamens wie in Tabelle 3 oben gezeigt usw. Weiterhin bestimmt der Computer 105 allgemein eine Anwendung oder Anwendungen, die auf jeder Vorrichtung 150 ablaufen und/oder zum Ablaufen verfügbar sind. Eine solche Bestimmung umfasst allgemein Erlangen eines Anwendungsnamens, der zusammen mit einer durch den Computer 105 erzeugten einmaligen oder im Wesentlichen einmaligen Kennung, wie oben in Tabelle 3 gezeigt, gespeichert werden kann. Das Verfahren 200 schreitet dann zu einem Block 215 fort.
-
Im Block 215 speichert der Computer 105 Daten bezüglich registrierter Vorrichtungen und/oder Anwendungen, wie oben hinsichtlich der Blöcke 205, 210 besprochen. Beispielsweise wird eine Grammatik 120 dauerhaft im Computer 105 gespeichert, wie oben besprochen, aber eine oder mehrere Grammatiken 125 können dem Computer 105 bereitgestellt werden, z.B. im Block 210, basierend wenigstens teilweise auf einer im Block 205 identifizierten Vorrichtung oder Vorrichtungen 150. Dementsprechend kann eine oder können mehrere Grammatiken 125 registriert und mindestens teilweise in einem Speicher des Computers 105 basierend auf einer Vorrichtung oder Vorrichtungen 150 und/oder Anwendungen auf einer jeweiligen Vorrichtung 150 gespeichert werden. Weiterhin kann der Computer 105 Daten betreffs Vorrichtungen 150, jeweilige Anwendungen darauf, Grammatiken 120, 125 jeweils anwendbar auf Anwendungen auf den Computer 105 oder einer Vorrichtung 150 usw., z.B. wie oben in Tabelle 3 dargestellt, speichern. 3, unten ausführlich besprochen, zeigt einen beispielhaften Vorgang 300, mit dem Elemente einer Grammatik 125 durch den Computer 105 registriert werden können.
-
Im Block 220 wartet der Computer 105 auf einen Befehl über die HMI 110, z.B. einen Sprachbefehl. Die VCA 115 kann als Hintergrundverfahren im Computer 105 ablaufen, das überprüft, um zu bestimmen, ob ein Sprachbefehl empfangen wird, und den Befehl interpretiert, z.B. unter Verwendung bekannter Spracherkennungsverfahren wie oben beschrieben. Dementsprechend bestimmt im Block 225 der Computer 105, ob ein Befehl empfangen worden ist. Wenn nicht, dann schreitet das Verfahren 200 zu einem Block 230 fort. Wenn ja, dann schreitet das Verfahren 200 zu einem Block 235 fort.
-
Im Block 230 bestimmt der Computer 105, ob das Verfahren 200 fortgeführt werden sollte. Beispielsweise könnte das Verfahren 200 abgeschlossen werden, da der Computer 105 ausgeschaltet wird, da keine Vorrichtungen 150 erkannt werden usw. Wenn das Verfahren 200 nicht fortgeführt werden sollte, dann endet das Verfahren 200. Ansonsten kehrt das Verfahren 200 zum Block 220 zurück. Es ist zu beachten, dass der Computer 105 eine zusätzliche Vorrichtung 150 erkennen könnte, in welchem Fall das Verfahren 200 zum Block 210 zurückkehren könnte, obwohl nicht in 2 dargestellt. Weiterhin könnte der Computer 105 erkennen, dass eine vorher erkannte Vorrichtung 150 nicht länger erkannt wurde, in welchem Fall der Computer 105 die nicht länger erkannte Vorrichtung 150 wie auch Aufzeichnungen von Anwendungen darauf und zugehörige Grammatiken 125 aus Daten entfernen könnte, die wie oben beschrieben gespeichert wurden.
-
Der Block 235 kann dem Block 225 folgen. Im Block 235 bestimmt der Computer 105, ob ein Konflikt, z.B. eine Zweideutigkeit, hinsichtlich des Empfangenen Befehls besteht. Zum Beispiel kann der empfangene Befehl Ausführung einer auf mehr als einer Vorrichtung 150 oder auf dem Computer 105 und wenigstens einer Vorrichtung 150 gefundenen Anwendung anfordern. Weiterhin kann beispielsweise der empfangene Befehl in mehr als einer Grammatik 120, 125 gefunden werden. Dementsprechend muss der Computer 105, ehe der empfangene Befehl ausgeführt werden kann, eine Vorrichtung 150 bestimmen, auf der der Befehl auszuführen ist und/oder eine Grammatik 120, 125, nach der der Befehl auszuführen ist. Man beachte, dass in einigen Ausführungen gewisse Befehle durch eine Grammatik 120 des Computers 105 reserviert sein können, wodurch, selbst wenn ein solcher Befehl Zweideutigkeit darstellt, die Zweideutigkeit vom Computer 105 außerachtgelassen wird und eine Grammatik 120 befolgt wird. In jedem Fall wird, wenn eine Zweideutigkeit hinsichtlich des empfangenen Befehls besteht, ein Block 240 als Nächstes ausgeführt. Ansonsten schreitet das Verfahren 200 zu einem Block 245 fort.
-
In einem Block 240, der dem Block 235 folgen kann, wird der empfangene Befehl vom Computer 105 disambiguiert. Beispielhafte Verfahren, mit denen ein Befehl disambiguiert werden kann, werden unten hinsichtlich der 3, 4 und 5 besprochen.
-
Nach dem Block 235 oder dem Block 240 veranlasst der Computer 105 in einem Block 245 die Ausführung des empfangenen Befehls. Beispielsweise kann der Befehl einer zutreffenden Vorrichtung 154 zur Ausführung in einer Anwendung, zur Realisierung einer Anwendung usw. bereitgestellt werden. Alternativ kann der Befehl einer Prozessoranwendung im Computer 105 bereitgestellt werden. Nach dem Block 245 kehrt das Verfahren 200 zum Block 230 zurück.
-
3 ist ein Diagramm eines beispielhaften Verfahrens 300 zum Registrieren einer Anwendungsgrammatik im zentralen Computer 105, der zum Verwalten mehrerer Vorrichtungen 105 eingerichtet ist. Das Verfahren 300 beginnt in einem Block 305, in dem ein Element der Grammatik 125 gegen die Systemgrammatik des Computers 105 und eine oder mehrere andere Grammatiken 125 von anderen Vorrichtungen 105, sofern vorhanden, überprüft wird.
-
Als Nächstes bestimmt der Computer 105 in einem Block 310, ob irgendein Konflikt oder eine Zweideutigkeit zwischen dem in Block 305 überprüften Element der Grammatik 125 und irgendeiner anderen Grammatik 120, 125 besteht. Beispielsweise kann das Element ein Befehl sein, der auch in einer anderen Grammatik 120, 125 erscheint, kann ein Name einer Anwendung auf mehreren Vorrichtungen 125 sein usw. In jedem Fall schreitet das Verfahren 300, wenn kein Konflikt erkannt wird, zu einem unten besprochenen Block 325 fort. Wenn jedoch ein Konflikt oder eine Zweideutigkeit erkannt wird, dann wird ein Block 315 als Nächstes ausgeführt. Im Block 315 bestimmt der Computer 105, ob der erkannte Konflikt aufgelöst werden kann. Wenn beispielsweise ein Wort oder Ausdruck in einer Grammatik 125 mit einem reservierten Wort oder Ausdruck in der Systemgrammatik 120 des Computers 105 in Konflikt steht, dann kann der Konflikt nicht aufgelöst werden. Anders gesagt ist ein Wort oder Ausdruck in einer Grammatik 125, der einem Wort oder Ausdruck in einer Systemgrammatik 120 entspricht, nicht zulässig und kann vom Computer 105 nicht in Betracht gezogen werden, wenn eine Eingabe empfangen wird, z.B. über die VCA 115.
-
Wenn der Konflikt nicht aufgelöst werden kann, dann wird als Nächstes der Block 320 ausgeführt. Ansonsten wird ein Block 330 als Nächstes ausgeführt.
-
Im Block 320 wird der widersprüchliche Befehl aus der Grammatik 125 vom Computer 105 zurückgewiesen. Beispielsweise kann der Computer 105 den Befehl einfach nicht registrieren oder erkennen. Nach dem Block 320 schreitet das Verfahren 300 zu einem Block 325 fort.
-
Im Block 325 bestimmt der Computer 105, ob die überprüfte Grammatik 125 weitere Elemente aufweist, z.B. für Befehle benutzte, zu überprüfende Wörter oder Ausdrücke. Wenn ja, dann kehrt das Verfahren 300 zum Block 305 zurück. Ansonsten endet das Verfahren 300 nach dem Block 325.
-
Im Block 330, der dem oben beschriebenen Block 315 folgen kann, registriert der Computer 105, nachdem er im Block 315 bestimmt hat, dass ein Konflikt, der im Block 315 erkannt wurde, aufgelöst werden könnte, den Befehl. Beispielsweise könnte der Befehl in einem Speicher des Computers 105 wie hinsichtlich der einen oder mehreren obigen Tabellen beschrieben gespeichert werden. Nach dem Block 330 schreitet das Verfahren 300 zum Block 325 fort.
-
4 ist ein Diagramm eines beispielhaften Verfahrens 400 zum Auswählen einer Vorrichtung zum Ausführen eines Befehls empfangen in einem zentralen Computer, der zum Verwalten mehrerer Vorrichtungen eingerichtet ist. Das Verfahren 400 beginnt in einem Block 405, wenn der Computer 105 einen Befehl empfängt, von dem bestimmt wird, dass er Zugang zu einer Anwendung mit Instanzen auf mehreren jeweiligen Vorrichtungen 150 und/oder dem Computer 105 anfordert. Beispielsweise könnte der Computer 105 einen Befehl für „Pandora“ empfangen, wo eine Anwendung dieses Namens auf dem Computer 105 wie auch einer Vorrichtung 150 enthalten ist. Gleicherweise könnte die Anwendung „Pandora“ auch auf zwei, drei usw. Vorrichtungen 150 enthalten sein.
-
Als Nächstes fordert der Computer 105 in einem Block 410 eine Benutzereingabe betreffs welche Instanz der angeforderten Anwendung angesteuert werden sollte, allgemein welche Rechenvorrichtung 105, 150 angesteuert werden sollte, an.
-
Beispielsweise könnte der Computer
105 eine Tonnachricht bereitstellen, die den Benutzer bittet, einen Namen der Vorrichtung auszusprechen, eine Nummer für jeweilige Vorrichtungen auszusprechen usw. Alternativ oder zusätzlich könnte der Computer
105 eine Liste von Vorrichtungen auf einem Tastbildschirm oder dergleichen zur Benutzerauswahl anzeigen, z.B. wie in Tabelle 5 gezeigt; eine solche Auswahl könnte durch Aussprechen eines Namens oder einer Nummer der Vorrichtung wie oben erläutert stattfinden, oder durch Berühren eines Namens oder einer Nummer der gewünschten Vorrichtung.
| Vorrichtungs- Nr. | Name |
| 1 | Fahrzeugcomputer |
| 2 | Bobs iPod |
| 3 | Marys Android-Telefon |
| 4 | Jills iPad |
-
Nach dem Block 410 bestimmt der Computer 105 in einem Block 415, ob die im Block 410 angeforderte Eingabe empfangen worden ist, z.B. kann der Computer 105 mit einer Zeitsperre (Timeout) oder dergleichen konfiguriert sein, z.B. 15 Sekunden, 30 Sekunden, 1 Minute usw., in der erwartet wird, dass ein Benutzer die Eingabe bereitstellt. Wenn die Eingabe nicht empfangen wird, z.B. bei einer beliebigen Zeitsperrendauer, dann schreitet das Verfahren 400 zu einem Block 420 fort. Ansonsten wird eine Eingabe empfangen, die eine Vorrichtung angibt, auf der eine Anwendung angesteuert werden soll, und das Verfahren 400 schreitet zu einem Block 425 fort.
-
Im Block 420 trifft der Computer 105 eine Vorgabeauswahl einer Rechenvorrichtung 105, 150, auf der eine Anwendung anzusteuern ist. Beispielsweise kann der Computer 105 sich selbst als Vorgabeauswahl verwenden. Alternativ oder zusätzlich kann ein Benutzer eine nach Vorgabe zu benutzende Vorrichtung 150 angeben. In jedem Fall schreitet das Verfahren 400 nach dem Block 420 zu einem Block 425 fort.
-
Im Block 425 stellt der Computer 105 einen Befehl zum Ansteuern der angeforderten Anwendung einer in einem der Blöcke 415, 420, wie oben beschrieben angegebenen Vorrichtung bereit. Nach dem Block 425 endet das Verfahren 400.
-
5 ist ein Diagramm eines beispielhaften Verfahrens 500 zum Auswählen einer Instanz einer Anwendung zum Ausführen eines Befehls, der in einem zentralen Computer empfangen wurde, der zum Verwalten mehrerer Vorrichtungen eingerichtet ist. Das Verfahren 500 beginnt in einem Block 505, in dem der Computer 105 einen Befehl empfängt, z.B. über die HMI 110 in der VCA 115, wie oben beschrieben.
-
Als Nächstes bestimmt der Computer 105 in einem Block 510, ob der im Block 505 empfangene Befehl für mehrere Anwendungen auf einer oder mehreren Rechenvorrichtungen 105, 150 registriert ist. Wenn nicht, dann endet das Verfahren 500. Ansonsten schreitet die Steuerung zu einem Block 515 fort.
-
Im Block 515 identifiziert der Computer 105 eine Anwendung zum Empfangen des Befehls. Zum Beispiel kann der Computer 105 eine Tabelle oder sonstige Datenstruktur ähnlich der oben hinsichtlich der Tabelle 4 dargestellten benutzen. Das heißt nachdem der Computer 105 zwei oder mehr den Grammatiken 120, 125 zugeordnete Anwendungen, einschließlich des angeforderten Befehls, identifiziert hat, priorisiert er die zwei oder mehr Anwendungen. Beispielsweise kann ein HMI-Zustand oder -Pegel oder dergleichen, wie oben betreffs der Tabelle 4 besprochen, für jede Anwendung identifiziert werden. Eine Anwendung mit einem HMI-Pegel mit der höchsten Priorität kann dann zum Empfangen des Befehls ausgewählt werden.
-
Als Nächstes sendet der Computer 105 in einem Block 520 den im Block 505 angeforderten Befehl zu der im Block 510 bestimmten Anwendung, z.B. im Computer 105 oder einer Vorrichtung 150. Nach dem Block 520 endet das Verfahren 500.
-
Rechenvorrichtungen, wie die hier besprochenen, umfassen allgemein jeweils durch eine oder mehrere Rechenvorrichtungen, wie die oben identifizierten, ausführbare Anweisungen, und zum Ausführen von Blöcken oder Schritten von oben beschriebenen Verfahren. Beispielsweise können oben besprochene Prozessblöcke als computerausführbare Anweisungen ausgeführt sein.
-
Computerausführbare Anweisungen können aus Computerprogrammen zusammengestellt oder interpretiert werden, die unter Verwendung einer Vielzahl von Programmierungssprachen und/oder -techniken erstellt worden sind, einschließlich ohne Begrenzung von und entweder für sich oder in Kombination Java™, C, C++, Visual Basic, Java Script, Perl, HTML usw. Im Allgemeinen empfängt ein Prozessor (z.B. ein Mikroprozessor) Anweisungen, z.B. aus einem Speicher, einem computerlesbaren Medium usw. und führt diese Anweisungen aus, wodurch er ein oder mehrere Verfahren durchführt, einschließlich eines oder mehrerer der hier beschriebenen Verfahren. Solche Anweisungen und sonstige Daten können unter Verwendung einer Vielzahl von computerlesbaren Medien gespeichert und übertragen werden. Eine Datei in einer Rechenvorrichtung ist allgemein eine Sammlung von auf einem computerlesbaren Medium, wie beispielsweise einem Speichermedium, einem Direktzugriffsspeicher usw., gespeicherten Daten.
-
Ein computerlesbares Medium umfasst jedes Medium, das an der Bereitstellung von Daten (z.B. Anweisungen) teilnimmt, die durch einen Computer gelesen werden können. Ein solches Medium kann viele Formen annehmen, einschließlich von aber nicht begrenzt auf nichtflüchtige Medien, flüchtige Medien usw. Nichtflüchtige Medien umfassen beispielsweise optische oder magnetische Platten und einen sonstigen dauerhaften Speicher. Flüchtige Medien umfassen einen dynamischen Direktzugriffsspeicher (DRAM – Dynamic Random Access Memory), der typischerweise einen Hauptspeicher bildet. Gebräuchliche Formen computerlesbarer Medien umfassen beispielsweise eine Floppy-Disk, eine Diskette, eine Festplatte, ein Magnetband, jedes andere magnetische Medium, eine CD-ROM, eine DVD, jedes andere optische Medium, Lochkarten, ein Papierband, jedes sonstige physikalische Medium mit Lochmustern, einen RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, jeden sonstigen Speicher-Chip oder -Einsatz oder jedes andere Medium, aus dem ein Computer auslesen kann.
-
In den Zeichnungen zeigen die gleichen Bezugsziffern die gleichen Elemente an. Weiterhin könnten einige oder alle dieser Elemente geändert werden. Hinsichtlich der hier beschriebenen Medien, Vorgänge, Systeme, Verfahren usw. versteht es sich, dass obwohl die Schritte solcher Vorgänge usw. als nach einer gewissen geordneten Reihenfolge stattfindend beschrieben worden sind, solche Vorgänge ausgeübt werden könnten, indem die beschriebenen Schritte in einer anderen Reihenfolge durchgeführt werden, als der hier beschriebenen Reihenfolge. Weiterhin versteht es sich, dass gewisse Schritte gleichzeitig durchgeführt werden könnten, dass andere Schritte zugefügt werden könnten oder dass gewisse hier beschriebene Schritte weggelassen werden könnten. Anders gesagt werden die Beschreibungen von Vorgängen hier zum Zweck der Darstellung gewisser Ausführungsformen bereitgestellt und sollten auf keine Weise als die beanspruchte Erfindung begrenzend aufgefasst werden.
-
Dementsprechend versteht es sich, dass die obige Beschreibung erläuternd und nicht beschränkend sein soll. Dem Fachmann würden beim Lesen der obigen Beschreibung viele andere Ausführungsformen und Anwendungen als die bereitgestellten Beispiele offenbar sein. Der Schutzumfang der Erfindung sollte nicht unter Bezugnahme auf die obige Beschreibung bestimmt werden, sondern sollte stattdessen unter Bezugnahme auf die beiliegenden Ansprüche bestimmt werden, zusammen mit dem vollen Schutzumfang von Entsprechungen, zu denen diese Ansprüche berechtigt sind. Es wird vorausgesehen und ist beabsichtigt, dass zukünftige Entwicklungen in den hier besprochenen Techniken stattfinden werden und dass die offenbarten Systeme und Verfahren in solchen zukünftigen Ausführungsformen aufgenommen werden. Zusammengefasst versteht es sich, dass die Erfindung der Abänderung und Veränderung fähig ist und nur durch die nachfolgenden Ansprüche begrenzt wird.
-
Allen in den Ansprüchen benutzten Begriffen soll ihre breiteste sinnvolle Auslegung und ihre gewöhnlichen Bedeutungen erteilt werden, so wie sie vom Fachmann verstanden werden, sofern nicht eine ausdrückliche gegensätzliche Angabe hier geliefert wird. Insbesondere sollte Verwendung der Singularartikel wie beispielsweise „ein“, „der“, usw. so aufgefasst werden, dass sie ein oder mehrere der angezeigten Elemente aufführt, sofern ein Anspruch keine ausdrückliche gegensätzliche Begrenzung aufführt.
-
Bezugszeichenliste
-
Fig. 2
- 205
- Vorrichtung(en) erkennen?
- 210
- Vorrichtung(en)/Anwendung(en) registrieren
- 215
- Vorrichtungs-/Anwendungsdaten speichern
- 220
- auf Befehl warten
- 225
- Befehl empfangen?
- 230
- weiter?
- 235
- Konflikt?
- 240
- Begriffsklärung durchführen
- 245
- Befehl ausführen
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-