-
Hintergrund
-
Die vorliegende Offenbarung bezieht sich allgemein auf die Kommunikation zwischen einer Zubehörvorrichtung und einer mobilen Rechenvorrichtung, insbesondere auf die Verwendung von Zubehörvorrichtungs- und/oder anwendungsspezifischen Protokollen für solche Kommunikation.
-
Mobile Rechenvorrichtungen sind allgegenwärtig geworden. Verschiedene Unternehmen haben mobile Rechenvorrichtungen erzeugt, wie das iPhone, iPod touch, verschiedene Blackberry Vorrichtungen und Smartphones, die mit der Androidplattform von Google kompatibel sind, um einige zu nennen. Mobile Rechenvorrichtungen beinhalten oft Webbrowser, Textverarbeitung, Emailanwendungen, Landkarten, Telefondienste, Spiele, Audioanwendungen, Videoanwendungen, etc. Weiterhin sind Zubehörvorrichtung hergestellt worden zur Verwendung mit mobilen Rechenvorrichtungen. Solche Zubehörvorrichtungen können mit einer mobilen Rechenvorrichtung mit Hilfe von einem oder mehreren Verbindern und/oder Anschlüssen kommunizieren. Solche Zubehörvorrichtungen können verwendet werden, um Eigenschaften der mobilen Rechenvorrichtung zu steuern oder von der mobilen Rechenvorrichtung verwendet werden, um mit den Benutzern und/oder der Umgebung zu interagieren.
-
Aus der Patentschrift
DE 10 2005 048 427 B3 sind eine Kommunikations-Anordnung für ein Fahrzeug, insbesondere eine Freisprecheinrichtung, und ein Verfahren zur Anbindung von tragbaren Geräten an eine in einem Fahrzeug angeordnete Kommunikations-Anordnung bekannt.
-
Aus der
US 2003/0 220 988 A1 ist ein Verfahren und eine elektronische Vorrichtung zum Einrichten einer Schnittstelle zum Steuern einer Zubehörvorrichtung bekannt.
-
Kurze Zusammenfassung
-
Die Erfindung stellt Verfahren, Zubehörvorrichtungen und mobile Rechenvorrichtungen gemäß den unabhängigen Ansprüchen bereit. Weitere Ausgestaltungen sind in den abhängigen Ansprüchen angegeben.
-
Gemäß verschiedener Ausführungsformen kann eine Zubehörvorrichtung mit einer Anwendung kommunizieren, die auf einer mobilen Rechenvorrichtung ausgeführt wird mit Hilfe eines Zubehörvorrichtungs-spezifischen Kommunikationsprotokolls und/oder einem anwendungsspezifischen Kommunikationsprotokolls. Wenn z.B. eine Zubehörvorrichtung mit einer mobilen Rechenvorrichtung gekoppelt wird, kann es Initialisierungs-, Identifizierungs- und/oder Authentifizierungsprozeduren ausführen mit Hilfe eines Zubehörvorrichtungsprotokolls, das durch die mobile Rechenvorrichtung definiert ist. Die Zubehörvorrichtung kann auch Information kommunizieren, die eine oder mehrere Anwendungsprotokolle anzeigt, die durch eine Anwendung verwendet werden können, die auf der mobilen Rechenvorrichtung ausgeführt wird, um mit der Zubehörvorrichtung zu kommunizieren. In einigen Ausführungsformen kann ein Anwendungsprotokoll vom Zubehörvorrichtungsprotokoll verschieden sein, während in anderen Ausführungsformen ein Anwendungsprotokoll dasselbe sein kann wie das Zubehörvorrichtungsprotokoll. In einigen Ausführungsformen kann ein Anwendungsprotokollpaket innerhalb von Teilen eines Zubehörvorrichtungsprotokollpakets eingenistet sein.
-
Verschiedene Ausführungsformen, die hierin offenbart sind, beschreiben Verfahren zum Erzeugen von Kommunikationssitzungen zwischen Zubehörvorrichtungen und Anwendungen. Einige Ausführungsformen beschreiben, wie eine Zubehörvorrichtung die richtige Information für die mobile Rechenvorrichtung bereitstellt, um eine Kommunikationssitzung zu öffnen mit Hilfe eines Anwendungsprotokolls. Andere Ausführungsformen beschreiben verschiedene Schemen bei der mobilen Rechenvorrichtung zum Auswählen eines Anwendungsprotokolls, Öffnen eines Kommunikationsstroms, Herunterladen einer bevorzugten Anwendung, Kommunizieren mit einer Zubehörvorrichtung, dem Einschachteln von Anwendungsprotokollpaketen innerhalb eines Zubehörvorrichtungsprotokollpakets, etc. In einigen Ausführungsformen kann ein Anwendungsmanager, der auf einer mobilen Rechenvorrichtung ausgeführt wird, verwendet werden, um die Kommunikation zwischen einer Zubehörvorrichtung und einer Anwendung zu abstrahieren.
-
Die folgende detaillierte Beschreibung, zusammen mit den beigefügten Zeichnungen, wird ein besseres Verständnis der Natur und der Vorteile der hierin offenbarten Ausführungsformen bereitstellen.
-
Figurenliste
-
- 1a zeigt eine mobile Rechenvorrichtung, die mit einer Zubehörvorrichtung gekoppelt ist, gemäß einiger Ausführungsformen der Erfindung.
- 1b zeigt eine Zubehörvorrichtung, die drahtlos mit einer mobilen Rechenvorrichtung gekoppelt ist, gemäß einiger Ausführungsformen der Erfindung.
- 2 zeigt ein Blockdiagramm einer mobilen Rechenvorrichtung, die mit einer Zubehörvorrichtung gekoppelt ist, gemäß einer Ausführungsform.
- 3 ist ein Blockdiagramm, das verschiedene Module und Verfahren innerhalb einer mobilen Rechenvorrichtung zeigt, gemäß einiger Ausführungsformen der Erfindung.
- 4 ist ein vereinfachtes Diagramm, das weiter eine Kommunikation zwischen einer Anwendung und einer Zubehörvorrichtung illustriert, gemäß einiger Ausführungsformen der Erfindung.
- 5a bis 5c stellen ein Beispiel des Einpackens einer Anwendungsprotokollmitteilung in ein Zubehörvorrichtungs-Kommunikationsprotokoll, gemäß einiger Ausführungsformen der Erfindung dar.
- 6 zeigt einen Pfad für Befehle des Zubehörvorrichtungs-Kommunikationsprotokolls in der Ausführungsform von 4, gemäß einigen Ausführungsformen der Erfindung.
- 7 ist ein Flussdiagramm für ein Verfahren zum Identifizieren einer Zubehörvorrichtung und einer kompatiblen Anwendung, gemäß einigen Ausführungsformen der Erfindung.
- 8 zeigt eine Liste von verbundenen Protokollen und eine Tabelle von unterstützten Protokollen, die verwendbar sind, um kompatible Anwendungen und Zubehörvorrichtungen zu assoziieren, gemäß einigen Ausführungsformen der Erfindung.
- 9 zeigt eine Technik zum Formulieren einer Anfrage, die verwendbar ist zum Lokalisieren einer kompatiblen Anwendung für eine Zubehörvorrichtung, gemäß einiger Ausführungsformen der Erfindung.
- 10 ist ein Flussdiagramm eines Verfahrens, das ausgeführt werden kann durch eine Anwendung zum Initiieren von Kommunikation mit einer Zubehörvorrichtung, gemäß einigen Ausführungsformen der Erfindung.
- 11 zeigt eine Anwendung auf einer mobilen Rechenvorrichtung, die gleichzeitig mit zwei verschiedenen Zubehörvorrichtungen interagiert, gemäß einigen Ausführungsformen der Erfindung.
- 12 zeigt zwei Anwendungen auf einer mobilen Rechenvorrichtung, die gleichzeitig mit zwei verschiedenen Zubehörvorrichtungen interagieren, gemäß einigen Ausführungsformen der Erfindung.
- 13 zeigt zwei Anwendungen auf einer mobilen Rechenvorrichtung, die gleichzeitig mit derselben Zubehörvorrichtung interagieren, gemäß einigen Ausführungsformen der Erfindung.
- 14 zeigt den Fluss von Daten zwischen einer Anwendung, dem Anwendungsmanager und der Hardware-Transportschicht einer mobilen Rechenvorrichtung, gemäß einigen Ausführungsformen der Erfindung.
- 15 ist ein Flussdiagramm eines Verfahrens, das durch einen Anwendungsmanager auf einer mobilen Rechenvorrichtung ausgeführt werden kann, gemäß einigen Ausführungsformen der Erfindung.
- 16 ist ein anderes Flussdiagramm eines Verfahrens, das durch einen Anwendungsmanager auf einer mobilen Rechenvorrichtung ausgeführt werden kann, gemäß einigen Ausführungsformen der Erfindung.
- 17 ist ein Flussdiagramm eines Verfahrens, das durch eine Zubehörvorrichtung ausgeführt werden kann, die mit einer mobilen Rechenvorrichtung gekoppelt ist, um Kommunikation mit einer Zubehörvorrichtung zu eröffnen, gemäß einigen Ausführungsformen der Erfindung.
- 18 ist ein Flussdiagramm eines Verfahrens, das durch eine Anwendung auf einer mobilen Rechenvorrichtung ausgeführt werden kann, um eine Kommunikation mit einer Zubehörvorrichtung zu eröffnen, gemäß einigen Ausführungsformen der Erfindung.
-
Detaillierte Beschreibung
-
Verschiedene Ausführungsformen der hierin offenbarten Erfindung sind auf verschiedene Aspekte von Kommunikation zwischen Zubehörvorrichtungen und einer mobilen Rechenvorrichtung gerichtet. In einigen Ausführungsformen kann eine Zubehörvorrichtung mit einer mobilen Rechenvorrichtung kommunizieren mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls. Ein Zubehörvorrichtungs-Kommunikationsprotokoll kann Kommunikationsbefehle, Transportverbindungen, Authentifizierungsroutinen, Identifikationsverfahren, Sprachen (Jargons beziehungsweise Lingos), Paketstrukturen, Datentypen oder irgendeinen anderen geeigneten Befehl oder Daten spezifizieren, was verwendet werden kann, um zwischen einer Zubehörvorrichtung und einer mobilen Rechenvorrichtung zu kommunizieren.
-
Eine Anwendung, die auf einer mobilen Rechenvorrichtung ausgeführt wird, kann auch mit der Zubehörvorrichtung kommunizieren mithilfe eines Anwendungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann ein Anwendungs-Kommunikationsprotokoll zur Kommunikation zwischen der Anwendung und der Zubehörvorrichtung Kommunikationsbefehle, Paketstrukturen, Datentypen, Sprachen, Mitteilungsformate etc. spezifizieren. In einigen Ausführungsformen können zumindest einige der Kommunikationsbefehle, Paketstrukturen, Datentypen, Sprachen, Mitteilungsformate, die durch das Anwendungs-Kommunikationsprotokoll spezifiziert sind, sich von jenen unterscheiden, die durch das Zubehörvorrichtungs-Kommunikationsprotokoll spezifiziert sind. In anderen Ausführungsformen können zumindest einige der Kommunikationsbefehle, Paketstrukturen, Datentypen, Sprachen, Mitteilungsformate, die durch das Anwendungs-Kommunikationsprotokoll spezifiziert sind, dieselben sein, wie jene die durch das Zubehörvorrichtungs-Kommunikationsprotokoll spezifiziert sind.
-
In einigen Anwendungen kann das Anwendungsprotokoll die Transportverbindung verwenden, die durch das Zubehörvorrichtungs-Kommunikationsprotokoll spezifiziert ist. Ein Anwendungs-Kommunikationsprotokoll kann entwickelt werden, zum Beispiel, durch den Entwickler der Anwendung und/oder der Zubehörvorrichtung. In einigen Ausführungsformen kann ein Anwendungs-Kommunikationsprotokoll anwendungs- und/oder zubehörvorrichtungs-spezifische Befehle, Datenstrukturen, etc. umfassen. Weiterhin können die Begriffe („Anwendungs-Kommunikationsprotokoll“ und „Anwendungsprotokoll“) austauschbar verwendet werden. Die Begriffe „Zubehörvorrichtungs-Kommunikationsprotokoll“, „Zubehörvorrichtungs-Kommunikationsprotokoll“, „allgemeines Kommunikationsprotokoll“ und „allgemeines Protokoll“ können auch austauschbar verwendet werden.
-
1a zeigt eine mobile Rechenvorrichtung 102, die mit einer Zubehörvorrichtung 113 gekoppelt ist. Ein Kabel 111 wird verwendet, um die mobile Rechenvorrichtung 102 mit der Zubehörvorrichtung 113 zu koppeln. Das Kabel 111 kann einen Verbinder 108 umfassen, um sich mit der mobilen Rechenvorrichtung 102 zu verbinden und einen Verbinder 110, um sich mit der Zubehörvorrichtung 113 zu verbinden. 1b zeigt die Zubehörvorrichtung 113, die drahtlos mit der mobilen Rechenvorrichtung 102 gekoppelt ist.
-
Die mobile Rechenvorrichtung, die in den 1a und 1b gezeigt ist, kann jeder Typ von mobiler Rechen- und/oder Kommunikationsvorrichtung sein, ohne Begrenzung. Zum Beispiel können ein iPod touch, ein iPhone, eine mit Android kompatible Vorrichtung und/oder eine Blackberry-Vorrichtung verwendet werden. Weiterhin kann die mobile Rechenvorrichtung 102 Medienabspieler-Fähigkeiten, Netzwerk, Webbrowsen, E-Mail, Textverarbeitung, Datenspeicherung, Anwendungsausführung und/oder andere Rechen- oder Kommunikationsfunktionen bereitstellen.
-
Die Zubehörvorrichtung 113 kann jede Vorrichtung sein, die in der Lage ist zum Kommunizieren mit der mobilen Rechenvorrichtung 102, wie zum Beispiel, ein externes Lautsprechersystem; eine externe Videovorrichtung; eine Multimediavorrichtung; eine elektronische Vorrichtung für Verbraucher; ein Testinstrument; ein Haushaltsgerät (zum Beispiel ein Kühlschrank oder Geschirrspüler); ein Übungsgerät; ein Sicherheitssystem; ein Heim- oder Büroautomatisierungssystem; eine Kamera; eine Benutzereingabevorrichtung (zum Beispiel Tastatur, Maus, Spielesteuerung); eine Messvorrichtung; eine medizinische Vorrichtung (zum Beispiel Glukoseüberwacher oder Insulinüberwacher); eine Vorrichtung am Verkaufspunkt; ein Automobil; eine Automobil-Zubehörvorrichtung (zum Beispiel ein Auto-Stereosystem oder Auto-Navigationssystem); ein Radio (zum Beispiel FM, AM und/oder Satellit); eine Unterhaltungskonsole auf einem Flugzeug, Bus, Zug oder anderem Massentransportfahrzeug; etc. Jeder Typ von Vorrichtung, die in Verbindung mit einer mobilen Rechenvorrichtung verwendet werden kann, kann als eine Zubehörvorrichtung verwendet werden.
-
2 zeigt ein Blockdiagramm einer mobilen Rechenvorrichtung 200 (zum Beispiel die mobile Rechenvorrichtung 102 der 1a oder 1b implementierend), die mit einer Zubehörvorrichtung 202 (zum Beispiel die Zubehörvorrichtung 113 von 1a oder 1b implementierend) gekoppelt ist, gemäß einer Ausführungsform. Die mobile Rechenvorrichtung 200 kann einen Prozessor 230, eine Speichervorrichtung 225, eine Benutzerschnittstelle (User Interface, UI) 235, eine Netzwerkschnittstelle 236 und eine Zubehörvorrichtungseingabe/Ausgabe- (Input/Output, I/O) Schnittstelle 205 umfassen.
-
Der Prozessor 230, welcher als eine oder mehrere integrierte Schaltkreise (zum Beispiel einen gewöhnlicher Mikroprozessor oder Mikrokontroller umfassend) implementiert sein kann, kann den Betrieb der mobilen Rechenvorrichtung 200 steuern. Zum Beispiel, in Antwort auf Benutzereingabesignale, die über der Benutzerschnittstelle 235 bereitgestellt werden, kann der Prozessor 206 verschiedene Aufgaben ausführen, wie zum Beispiel das Auswählen und Abspielen von Medieninhalten, die in einer Speichervorrichtung 225 gespeichert sein können; Zugreifen auf verschiedene Netzwerke (zum Beispiel ein mobiles Telefonnetzwerk, das Internet, ein Lokalbereichsnetzwerk oder ähnliches), um Daten zu senden und/oder abzurufen mithilfe der Netzwerkschnittstelle 236; Ausführen verschiedener Anwendungsprogramme (Apps) 226, die auf der Speichervorrichtung 225 beherbergt sind; und so weiter. Der Prozessor 230 kann auch die Kommunikation mit Zubehörvorrichtungen über die Zubehörvorrichtungs-I/O-Schnittstelle 205 verwalten.
-
Die Benutzerschnittstelle 235 kann Eingabesteuerungen umfassen, wie ein Berührungsfeld, ein Berührungsbildschirm, ein Scroll-Rad, ein Klickrad, eine Wählscheibe, eine Taste, ein Tastenfeld, ein Mikrophon, etc., sowie Ausgabevorrichtungen, wie einen Anzeigenbildschirm, Hinweislichter, Lautsprecher, Kopfhörerbuchsen, etc., zusammen mit unterstützender Elektronik (zum Beispiel Digital zu Analog- oder Analog zu Digital-Umwandlern, Signalprozessoren und ähnliches). Ein Benutzer kann die verschiedenen Eingabesteuerungen der Benutzerschnittstelle 235 bedienen, um die Funktionalität der mobilen Rechenvorrichtungen 200 aufzurufen und kann auch Ausgabe von der mobilen Rechenvorrichtung 200 über die Benutzerschnittstelle 235 sehen und/oder hören.
-
Die Speichervorrichtung 225 kann implementiert sein, zum Beispiel, mithilfe eines Laufwerks, Flash-Speicher oder irgendeinem anderen nichtvolatilen Speichermedium. Die Speichervorrichtung 225 kann Anwendungsprogramme 226 speichern, die durch den Prozessor 230 ausführbar sind, Systemprogramme und anderen Programmcode (nicht explizit gezeigt), und verschiedene Daten, wie eine Protokolltabelle 227, speichern, die verwendet werden kann beim Verwalten von Kommunikation mit verschiedenen Zubehörvorrichtungen, wie unten beschrieben. In einigen Ausführungsformen kann die Speichervorrichtung 225 auch Medieninhalte speichern, wie Audio, Video, stehende Bilder, oder ähnliches, was durch die mobile Kommunikationsvorrichtung 200 abgespielt werden kann, zusammen mit Metadaten, die die Medieninhalte beschreiben (zum Beispiel Name des Inhalts, Künstler, Titel, Genre, etc.), Wiedergabelisten (Listen von Inhalten, die sequenziell oder in einer zufälligen Ordnung abgespielt werden können) und ähnliches. Die Speichervorrichtung 225 kann auch irgendeinen Typ von Information speichern, wie zum Beispiel Information über Kontakte eines Benutzers (Namen, Adressen, Telefonnummern, etc.); geplante Treffen und Ereignisse; Notizen; und/oder andere persönliche Information.
-
Anwendungsprogramme (hierin auch als „Anwendungen“ oder „Apps“ bezeichnet) 226 können irgendeinen Programm beinhalten, das durch den Prozessor 230 ausführbar ist. In einigen Ausführungsformen können bestimmte Anwendungen auf der mobilen Rechenvorrichtung 200 durch ihren Hersteller installiert sein, während andere Anwendungen durch einen Benutzer installiert werden können. Beispiele von Anwendungsprogrammen können Videospielprogramme, persönliche Informationsverwaltungsprogramme, Programme zum Abspielen von Medieninhalten und/oder Navigieren der Medieninhaltsdatenbasis, Programme zum Steuern einer Telefonschnittstelle, um Anrufe abzusetzen und/oder zu empfangen, usw. umfassen. Bestimmte Anwendungsprogramme 226 können Kommunikation mit und/oder die Steuerung der Zubehörvorrichtung 202 bereitstellen, und bestimmte Anwendungsprogramme 226 können auf Steuersignale oder andere Eingabe von der Zubehörvorrichtung 202 reagieren; Beispiele sind unten beschrieben.
-
Die Netzwerkschnittstelle 236 kann eine Schnittstelle zu einem oder mehreren Kommunikationsnetzwerken bereitstellen. Zum Beispiel kann die Netzwerkschnittstelle 236 einen Funkfrequenz (Radio Frequency, RF-Transceiver und geeignete Komponenten zum Kommunizieren mit einem mobilen Kommunikationsnetzwerk, wie einem mobilen Telefonnetzwerk) umfassen. Zusätzlich oder stattdessen kann die Netzwerkschnittstelle 236 eine drahtlose Verbindung mit dem Internet (zum Beispiel ein WiFi-Transceiver, 3G-Transceiver oder ähnliches) einschließen, zu einem persönlichen Bereichsnetzwerk (zum Beispiel ein Bluetooth-Netzwerk) oder irgendeinem anderen Netzwerk. In weiter anderen Ausführungsformen kann eine drahtgebundene Netzwerkverbindung (zum Beispiel Ethernet) bereitgestellt werden. In einigen Ausführungsformen kann dieselbe Hardware verwendet werden, um Verbindungen zu mehreren Netzwerken zu unterstützen; damit kann die Netzwerkschnittstelle 236 Analog zu Digital- und/oder Digital zu AnalogSchaltkreise umfassen, Basisbandverarbeitungskomponenten (zum Beispiel Codecs, Kanalschätzer und ähnliches), Modulatoren, Demodulatoren, Oszillatoren, Verstärker, Sender, Empfänger, Transceiver, interne und/oder externe Antennen, und so weiter. In einigen Ausführungsformen können einige Operationen, die mit Netzwerkverbindungen assoziiert sind, insgesamt oder teilweise als Programme implementiert sein, die auf dem Prozessor 230 ausgeführt werden (zum Beispiel Codieren, Decodieren und/oder andere Verarbeitung im digitalen Bereich), oder ein dedizierter Digitalsignalprozessor kann bereitgestellt werden.
-
Die Zubehörvorrichtungs-I/O-Schnittstelle 205 kann eine Anzahl von Signalpfaden beinhalten, die konfiguriert sind, um verschiedene Signale zwischen der mobilen Rechenvorrichtung 200 und der Zubehörvorrichtung 202 zu tragen. In einer Ausführungsform beinhaltet die Zubehörvorrichtungs-I/O-Schnittstelle 205 einen 30-pin Verbinder, der dem Verbinder entspricht, der auf iPod und iPhone Produkten verwendet wird, die durch Apple Inc. hergestellt und verkauft werden; andere Verbinder können auch verwendet werden. Alternativ oder zusätzlich kann die Zubehörvorrichtungs-I/O-Schnittstelle 205 eine drahtlose Schnittstelle (zum Beispiel Bluetooth oder ähnliches) umfassen.
-
In einigen Ausführungsformen kann die mobile Rechenvorrichtung 200 auch die Zubehörvorrichtungs-I/O-Schnittstelle 205 verwenden, um mit einem Host-Computer (nicht gezeigt) zu kommunizieren, der ein Inhaltsverwaltungsprogramm ausführt, das Medien und/oder Anwendungen für eine mobile Rechenvorrichtung (zum Beispiel iTunes oder Microsoftanwendungsgeschäft) bereitgestellt. Das Inhaltsverwaltungsprogramm kann einen Benutzer befähigen Medieninhalte und/oder Anwendungen der mobilen Rechenvorrichtung hinzuzufügen und/oder Medieninhalte von der mobilen Rechenvorrichtung 200 zu entfernen. Der Benutzer kann Metadaten aktualisieren, die mit Medieninhalten auf der mobilen Rechenvorrichtung 200 assoziiert sind. In einigen Ausführungsformen kann der Benutzer auch mit dem Medieninhaltsverwaltungsprogramm interagieren, um Wiedergabelisten und/oder Anwendungen sowie andere Dokumente zu erzeugen und zu aktualisieren. In einer Ausführungsform beinhaltet der Host-Computer eine Master-Datenbank von Medieninhalten und/oder Anwendungen und kann auf andere Datenbanken zum Beispiel über das Internet (umfassend assoziierte Metadaten und Wiedergabelisten) zugreifen, und das Inhaltsverwaltungsprogramm synchronisiert die Masterdatenbasis mit der Datenbasis, die auf der Speichervorrichtung 225 der mobilen Rechenvorrichtung 200 gehalten wird, automatisch, wann immer sich die mobile Rechenvorrichtung 200 mit dem Host-Computer verbindet. In anderen Ausführungsformen kann die mobile Rechenvorrichtung 200 die Netzwerkschnittstelle 236 verwenden, um mit einem Host-Computer zu kommunizieren und/oder direkt mit verschiedenen anderen Servern, um Anwendungen, Medieninhalte und/oder andere Daten zu erhalten.
-
Die Zubehörvorrichtung 202 kann eine Steuerung 260, Benutzerschnittstelle 255, mobile Rechenvorrichtungs-I/O-Schnittstelle 250, Speicher 265 und anwendungsspezifische Hardware 275 umfassen.
-
Die mobile Rechenvorrichtungs-I/O-Schnittstelle 250 kann eine Anzahl von Signalpfaden umfassen, die dazu konfiguriert sind, verschiedene Signale zwischen der Zubehörvorrichtung 202 und der mobilen Rechenvorrichtung 200 zu tragen. In einer Ausführungsform kann die mobile Rechenvorrichtungs-I/O-Schnittstelle 250 einen Verbinder umfassen, der dazu angepasst ist, sich mit dem 30-pin Verbinder zu verbinden, der auf iPod und iPhone Produkten verwendet wird, die durch Apple Inc. hergestellt und verkauft werden. Andere Verbinder können auch verwendet werden; zum Beispiel kann die mobile Rechenvorrichtungs-I/O-Schnittstelle 250 einen Standard-USB oder FireWire-Verbinder oder ähnliches umfassen. Alternativ oder zusätzlich kann die mobile Rechenvorrichtungs-I/O-Schnittstelle 250 eine drahtlose Schnittstelle (zum Beispiel Bluetooth oder ähnliches) umfassen.
-
Die Steuerung 260 kann zum Beispiel einen Mikroprozessor oder Mikrocontroller umfassen, der Programm-Code ausführt, um verschiedene Funktionen, wie digitales Audio-Decodieren, analoges oder digitales Audio- und/oder Video-Verarbeiten, Verarbeiten von Benutzereingaben, Steuern von Zubehörvorrichtungsfunktionalität und ähnliches auszuführen. Die Steuerung 260 kann auch Kommunikation mit einer mobilen Rechenvorrichtung über die mobile Rechenvorrichtungs-I/O-Schnittstelle 250 verwalten.
-
Die Benutzerschnittstelle 255 kann Eingabesteuerungen, wie ein Berührungsfeld, einen Berührungsbildschirm, ein Scroll-Rad, ein Klick-Rad, eine Wählscheibe, eine Taste, ein Tastenfeld, ein Mikrophon, Sonden, etc. umfassen, sowie Ausgabevorrichtungen, wie einen Videobildschirm, Hinweislichter, Lautsprecher, Kopfhörerbuchsen oder ähnliches, zusammen mit unterstützender Elektronik (zum Beispiel Digital zu Analog- oder Analog zu Digital-Umwandler, Signalprozessoren oder ähnliches). Ein Benutzer kann die verschiedenen Eingabesteuerungen der Benutzerschnittstelle 255 bedienen, um die Funktionalität der Zubehörvorrichtung 202 aufzurufen und kann Ausgaben von der Zubehörvorrichtung 202 über die Benutzerschnittstelle 255 sehen und/oder hören. Zusätzlich kann ein Benutzer in einigen Ausführungsformen die mobile Rechenvorrichtung 200 (oder Anwendungen, die darauf ausgeführt werden) über die Zubehörvorrichtungs-Benutzerschnittstelle 255 bedienen.
-
Der Speicher 265 kann mithilfe irgendeines Typs von Speicher, Laufwerk oder anderem Speichermittel implementiert sein, das Programm-Code für die Steuerung 260 und/oder Daten speichern kann. Zum Beispiel kann der Speicher 265 zubehörvorrichtungs-spezifische Software 280 speichern, die Anweisungen für die Steuerung 260 bereitstellen kann, um mit der zubehörvorrichtungs-spezifischen Hardware 275 zu interagieren und/oder für die Benutzerschnittstelle 255 bereitstellen. In einigen Ausführungsformen kann die Zubehörvorrichtung 202 Information empfangen (zum Beispiel Benutzereingabe, Metadaten und/oder anwendungsspezifische Daten) von der mobilen Rechenvorrichtung 200, und solche Information kann in dem Speicher 265 gespeichert sein.
-
Die zubehörvorrichtungs-spezifische Hardware 275 kann irgendeine Hardware repräsentieren, die benötigt wird, um eine gewünschte Funktionalität der Zubehörvorrichtung 202 zu aktivieren. Zum Beispiel kann die zubehörvorrichtungs-spezifische Hardware 275 eine oder mehrere Datensammelvorrichtungen, wie zum Beispiel irgendein Typ von Sensor oder Messer umfassen. In einigen Ausführungsformen kann die zubehörvorrichtungs-spezifische Hardware 275 einen elektrischen Messer umfassen, der Daten erzeugt, die elektrische Charakteristika (Widerstand, Spannungsunterschied oder ähnliches) erzeugt; einen Lichtsensor, der Licht und/oder Muster von Licht detektiert; einen Bewegungssensor; einen Temperatursensor; einen Feuchtigkeitssensor; einen Drucksensor; einen chemischen Sensor, der auf das Auftreten von ausgewählten Chemikalien reagiert (zum Beispiel potenziell toxische Gase, wie Kohlenmonoxid); und so weiter. Zubehörvorrichtungs-spezifische Hardware 275 kann auch eine oder mehrere medizinische Vorrichtungen umfassen, wie ein Glukosemesser, einen Atmungsmesser, einen Herzschlag- und/oder Herzfunktionsüberwacher, Blutdrucküberwacher oder ähnliches.
-
In einigen Ausführungsformen kann die Zubehörvorrichtungs-spezifische Hardware 275, die eine Datensammelvorrichtung umfasst, ein oder mehrere elektrische Signale (zum Beispiel Spannung, Widerstand und/oder Strom) bereitstellen, die den physikalischen Daten entsprechen oder diese repräsentieren. Analoge und/oder digitale Signale können in einer Vielzahl von Formaten verwendet werden. Die zubehörvorrichtungs-spezifische Hardware 275 kann auch Signalverarbeitungskomponenten umfassen, die das Signal verarbeiten bevor sie es an die Steuerung 260 senden; in einigen Ausführungsformen kann die zubehörvorrichtungs-spezifische Hardware 275 das elektrische Signal direkt an die Steuerung 260 senden, welche das Signal verarbeiten kann. Zum Beispiel, wenn die zubehörvorrichtungs-spezifische Hardware 275 ein Thermometer umfasst, das unter Verwendung eines Thermoelements implementiert ist, können Widerstandsdaten von dem Thermoelement in Temperaturdaten umgewandelt werden durch die zubehörvorrichtungs-spezifische Hardware 275, durch die Steuerung 260 oder beiden. Weiterhin können Signale, die Daten repräsentieren, die durch die zubehörvorrichtungs-spezifische Hardware 275 gesammelt werden, (mit oder ohne Verarbeitung durch die Steuerung 260) an eine Anwendung gesendet werden, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, zum Beispiel mithilfe eines Anwendungsprotokolls, wie unten beschrieben; damit kann eine Anwendung, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, auch Daten verarbeiten, die mithilfe zubehörvorrichtungs-spezifischer Hardware 275 gesammelt werden.
-
In einigen Ausführungsformen kann die zubehörvorrichtungs-spezifische Hardware 275 eine oder mehrere computersteuerbare Vorrichtungen umfassen. Beispiele von computersteuerbaren Vorrichtungen umfassen Motoren, Aktuatoren, Lichter, Kameras, Ventile, Lautsprecher, Anzeigenbildschirme, Drucker und/oder irgendeine andere Ausrüstung, die durch die Steuerung 260 steuerbar ist. In einigen Ausführungsformen kann eine Anwendung, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, Steuersignale an die Zubehörvorrichtung 202 senden, und die Steuerung 260 kann zubehörvorrichtungs-spezifische Hardware 275 in Antwort auf die Steuersignale betreiben.
-
In einigen Ausführungsformen kann die zubehörvorrichtungs-spezifische Hardware 275 Komponenten der Benutzerschnittstelle 255 umfassen. Damit kann eine Anwendung, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, Benutzereingabe von der Zubehörvorrichtung 202 empfangen, Ausgabe über die Zubehörvorrichtung 202 an einen Benutzer bereitstellen und/oder auf jede Operation, die Zubehörvorrichtung 202 in der Lage ist, steuern, interagieren oder darauf antworten.
-
In einigen Ausführungsformen kann die zubehörvorrichtungs-spezifische Hardware 275 Netzwerk- und/oder Kommunikationsschnittstellen umfassen. Zum Beispiel kann die zubehörvorrichtungs-spezifische Hardware 275 einen RF-Receiver (zum Beispiel für FM, AM, Satellitenradio und/oder andere Bänder) und/oder einen RF-Sender (zum Beispiel einen Kurzbereichssender zur persönlichen Verwendung) umfassen. In anderen Ausführungsformen kann die zubehörvorrichtungs-spezifische Hardware 275 eine Kommunikationsschnittstelle für ein persönliches Bereichsnetzwerk umfassen, wie einen Bluetooth-Transceiver oder andere kurzbereichsdrahtlose Kommunikationsschnittstelle. In weiter anderen Ausführungsformen kann die zubehörvorrichtungs-spezifische Hardware 275 eine Telefonschnittstelle, GSM, CDMA und/oder andere Sprach- und/oder Daten-Netzwerkschnittstellen umfassen.
-
Demgemäß kann die zubehörvorrichtungs-spezifische Hardware 275 jegliche Hardwarekomponente umfassen, für welche die Interoperabilität mit einer mobilen Rechen- und/oder Kommunikationsvorrichtung gewünscht sein kann.
-
Es wird verstanden werden, dass die Systemkonfigurationen und Komponenten, wie hierin beschrieben sind, beispielhaft sind und dass Variationen und Modifikationen möglich sind. Die mobile Rechenvorrichtung und/oder Zubehörvorrichtung können andere hierin nicht spezifisch beschriebene Fähigkeiten haben. Während die Zubehörvorrichtung 202 und mobile Rechenvorrichtung 200 hierin mit Bezug auf bestimmte Blöcke beschrieben sind, sollte es verstanden werden, dass die Blöcke zum Zwecke der Beschreibung definiert sind, und es nicht beabsichtigt ist, eine bestimmte physikalische Anordnung der Komponententeile zu implizieren. Weiterhin müssen die Blöcke nicht unterscheidbaren physikalischen Komponenten entsprechen.
-
Die Zubehörvorrichtungs-I/O-Schnittstelle 205 der mobilen Rechenvorrichtung 200 und die mobile Rechenvorrichtungs-I/O-Schnittstelle 250 der Zubehörvorrichtung 202 ermöglichen es der mobilen Rechenvorrichtung 200 mit der Zubehörvorrichtung 202 verbunden zu werden und nachfolgend von der Zubehörvorrichtung 202 getrennt zu werden. Wie hierin verwendet, sind die mobile Rechenvorrichtung 200 und die Zubehörvorrichtung 202 „verbunden“ wann immer ein Kommunikationskanal zwischen der Zubehörvorrichtungs-I/O-Schnittstelle 205 und der mobilen Rechenvorrichtungs-I/O-Schnittstelle 250 offen ist und sind „getrennt“ wann immer der Kommunikationskanal geschlossen ist. Die Verbindung kann durch eine physikalische Verbindung (zum Beispiel zwischen entsprechenden passenden Verbindern der mobilen Rechenvorrichtung 200 und der Zubehörvorrichtung 202) erreicht werden, durch eine indirekte Verbindung, wie ein Kabel, oder durch das Herstellen eines drahtlosen Kommunikationskanals. Ähnlich kann die Trennung durch eine physikalische Trennung erreicht werden, durch das Trennen eines Kabels, dem Herunterfahren der Zubehörvorrichtung 202 oder der mobilen Rechenvorrichtung 200 oder dem Schließen des drahtlosen Kommunikationskanals. Damit kann eine Vielzahl von Kommunikationskanälen verwendet werden, darunter drahtgebundene Kanäle, wie Universal Serial Bus („USB“), FireWire (IEEE1394 Standard) oder Universal Asynchronous Receiver/Transmitter („UART“) oder drahtlose Kanäle, wie Bluetooth (ein kurzbereichsdrahtloser Kommunikationsstandard, der durch die Bluetooth SIG entwickelt wurde und unter dem Markennamen Bluetooth lizenziert wird). Wi-Fi (gehörig zu irgendeinem der IEEE802.11 Familienstandards), drahtloses persönliches Bereichsnetzwerk, Infrarot oder ähnliches. In einigen Ausführungsformen kann die Kommunikation mithilfe von sowohl einem drahtgebundenen als auch einem drahtlosen Kanal geschehen. In einigen Ausführungsformen können mehrere Kommunikationskanäle zwischen einer mobilen Rechenvorrichtung und einer Zubehörvorrichtung gleichzeitig geöffnet sein, oder eine mobile Rechenvorrichtung kann gleichzeitig mit mehreren Zubehörvorrichtungen verbunden sein, wobei jede Zubehörvorrichtung einen anderen Kommunikationskanal verwendet.
-
Unabhängig von dem bestimmten Kommunikationskanal können die Vorrichtungen kommunizieren durch das Austauschen von Befehlen und Daten, wie durch ein Zubehörvorrichtungs-Kommunikationsprotokoll spezifiziert, solange die mobile Rechenvorrichtung 200 und die Zubehörvorrichtung 202 miteinander verbunden sind. Das Zubehörvorrichtungs-Kommunikationsprotokoll kann ein Format zum Senden von Mitteilungen zwischen der mobilen Rechenvorrichtung 200 und der Vorrichtung 202 definieren. Zum Beispiel kann das Zubehörvorrichtungs-Kommunikationsprotokoll spezifizieren, dass jede Mitteilung in einem Paket mit einem Header, einer Nutzlast und/oder einem Abschluss gesendet wird. Der Header kann Basisinformationen bereitstellen, wie einen Starthinweis, die Länge des Pakets und einen Befehl der durch den Empfänger auszuführen ist, während die Nutzlast irgendwelche Daten bereitstellt, die mit dem Befehl assoziiert sind; der Betrag zu geordneten Daten kann unterschiedlich sein für unterschiedliche Befehle, und einige Befehle können Nutzlasten mit variabler Länge bereitstellen. Das Paket kann auch einen Abschluss enthalten, der Fehlererfassungs- oder Fehlerkorrekturcodes bereitstellt, wie sie im Stand der Technik bekannt sind und/oder andere Information, falls gewünscht. In verschiedenen Ausführungsformen kann das Zubehörvorrichtungs-Kommunikationsprotokoll spezifische Befehle definieren, um auf eine Aktion hinzuweisen, die durch den Empfänger vorzunehmen ist, um den Abschluss einer Aufgabe, die Änderung des Zustandes oder das Auftreten eines Fehlers zu signalisieren; und /oder die Natur der zugeordneten Daten zu identifizieren. In einigen Ausführungsformen können die Befehle so definiert sein, dass irgendein bestimmter Befehl nur in eine Richtung valide ist.
-
Das Zubehörvorrichtungs-Kommunikationsprotokoll kann auch einen oder mehrere physikalische Transportverbindungen spezifizieren, die zum Übertragen von Signalen zwischen Vorrichtungen verwendbar sind. Zum Beispiel kann die Transportverbindung eine USB-Verbindung, eine UART-Verbindung, eine FireWire-Verbindung, eine Bluetooth-Verbindung, eine WiFi-Verbindung, eine parallele Verbindung, eine serielle Verbindung, etc. sein. Auf diesem Niveau kann das Zubehörvorrichtungs-Kommunikationsprotokoll zum Beispiel Start-Bytes, Sync-Bytes oder Stopp-Bytes und/oder andere Hilfssignale spezifizieren. In einigen Ausführungsformen kann das Zubehörvorrichtungs-Kommunikationsprotokoll mehrere alternative Transportverbindungen bereitstellen; damit kann eine einzige mobile Rechenvorrichtung Kommunikation über eine Vielzahl von physikalischen Verbindungen unterstützen, darunter drahtgebundene und/oder drahtlose Verbindungen.
-
Das Zubehörvorrichtungs-Kommunikationsprotokoll kann eine Anzahl von „Sprachen“ definieren, wobei sich eine „Sprache“ allgemein auf eine Gruppe von verwandten Befehlen bezieht, die unterstützt werden können (oder nicht unterstützt werden können) durch verschiedene Klassen von Zubehörvorrichtungen. In einer Ausführungsform kann ein Befehl eindeutig identifiziert werden durch ein erstes Byte, das die Sprache identifiziert, zu welcher der Befehl gehört, und ein zweites Byte kann den bestimmten Befehl innerhalb der Sprache identifizieren. Andere Befehlsstrukturen können auch verwendet werden. Es ist nicht nötig, dass alle Zubehörvorrichtungen oder alle mobilen Rechenvorrichtungen, mit welchen eine Zubehörvorrichtung verbunden werden kann, jede Sprache unterstützen, die innerhalb des Zubehörvorrichtungs-Kommunikationsprotokolls definiert ist, oder jeden Befehl einer bestimmten Sprache (zum Beispiel könnten unterschiedliche Vorrichtungen verschiedene Versionen einer gegebenen Sprache verwenden).
-
In einigen Ausführungsformen unterstützen jede Zubehörvorrichtung 202 und jede mobile Rechenvorrichtung 200, die zur Kompatibilität miteinander entwickelt sind, zumindest eine „allgemeine“ Sprache, die Befehle beinhaltet, die allen solchen Vorrichtungen gemeinsam sind. Die allgemeine Sprache kann Befehle umfassen, die es der mobilen Rechenvorrichtung und der Zubehörvorrichtung erlauben, sich gegenseitig zu identifizieren und zumindest einige Informationen über ihre entsprechenden Fähigkeiten bereitzustellen, was einschließt, welche anderen Sprachen (wenn überhaupt) jede Vorrichtung unterstützt und welche Fähigkeiten der anderen Vorrichtung jede Vorrichtung zu benutzen beabsichtigt, während sie verbunden sind.
-
Die allgemeine Sprache kann auch Identifizierungsbefehle umfassen, die die mobile Rechenvorrichtung verwenden kann, um die angebliche Identität und Fähigkeiten der Zubehörvorrichtung (oder umgekehrt) zu verifizieren, und die Zubehörvorrichtung (oder die mobile Rechenvorrichtung) kann ausgeschlossen werden vom Aufrufen bestimmter Befehle oder Sprachen, wenn die Authentifizierung nicht erfolgreich ist. Zum Beispiel kann ein Authentifizierungsmanager (nicht gezeigt) innerhalb der mobilen Rechenvorrichtung 200 mit einer Authentifizierungssteuerung (auch nicht gezeigt) innerhalb der Zubehörvorrichtung 202 kommunizieren, um eine Authentifizierungsprozedur durchzuführen, zum Beispiel basierend auf Kryptographie mit öffentlichem Schlüssel und einem Lager an digitalen Zertifikaten, das innerhalb des Authentifizierungsmanagers der mobilen Rechenvorrichtung 200 gehalten wird.
-
Die allgemeine Sprache und eine andere Sprache des Zubehörvorrichtungs-Kommunikationsprotokolls kann auch „Tunnel“-Befehle umfassen, die einen Austausch von beliebiger Informationen zwischen einer Anwendung 226, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, und der Zubehörvorrichtung 202 ermöglicht. Zum Beispiel kann ein TunnelToAcc-Befehl definiert werden, als durch die mobile Rechenvorrichtung 200 an die Zubehörvorrichtung 202 sendbar. Die Nutzlast dieses Befehls kann jegliches sein von Daten, Steuersignalen, oder anderer Informationen, die eine Anwendung 226, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, erzeugen kann und an die Zubehörvorrichtung 202 senden kann. Ähnlich kann ein TunnelToHost-Befehl definiert werden, als von der Zubehörvorrichtung 202 zur mobilen Rechenvorrichtung 200 sendbar. Die Nutzlast dieses Befehls kann jegliches sein von Daten, Steuersignalen oder anderer Informationen, die die Zubehörvorrichtung 202 erzeugen kann und an die Anwendung 226 senden kann, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird. Diese Tunnel-Befehle können definiert werden, sodass das Zubehörvorrichtungs-Kommunikationsprotokoll den Nutzlastinhalt ignoriert. Beispiele von Techniken zum Verwalten von Kommunikation, wie dass eine bestimmte Anwendung Daten sendet, Kontrollsignale oder andere Informationen nur an Zubehörvorrichtungen, die in der Lage sind sie zu verarbeiten (und umgekehrt), werden unten beschrieben.
-
In einigen Ausführungsformen kann die Zubehörvorrichtung mit einer API kommunizieren, die mit einer oder mehreren Anwendungen assoziiert ist an der mobilen Rechenvorrichtung, mithilfe des Anwendungs-Kommunikationsprotokolls. Zum Beispiel kann solche Kommunikation den „Tunnel“-Befehl der oben diskutiert ist, verwenden. In einigen Ausführungsformen kann die Zubehörvorrichtung mit einer API kommunizieren, die mit einer oder mehreren Anwendungen assoziiert ist, mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. In anderen Ausführungsformen kann die Zubehörvorrichtung auch mit dem Betriebssystem der mobilen Rechenvorrichtung kommunizieren mithilfe eines oder beiden von dem Zubehörvorrichtungs-Kommunikationsprotokoll und/oder dem Anwendungs-Kommunikationsprotokoll. Das heißt, hierin offenbarte Ausführungsformen können verwendet werden, um die Kommunikation zwischen einer Zubehörvorrichtung mit einer Anwendung, API und/oder einem Betriebssystem auf der mobilen Rechenvorrichtung zu ermöglichen, mithilfe von einem oder beidem von einem Anwendungs-Kommunikationsprotokoll und/oder einem Zubehörvorrichtungs-Kommunikationsprotokoll.
-
Ein Zubehörvorrichtungs-Kommunikationsprotokoll, das von der mobilen Rechenvorrichtung und einer Zubehörvorrichtung unterstützt wird, kann verschiedene andere Sprachen umfassen, wie eine einfache Fernsteuerungssprache, die es der Zubehörvorrichtung ermöglicht einen Befehl zu senden, der auf eine Funktion der mobilen Rechenvorrichtung hinweist, die aufzurufen ist, eine Fernsteuerungs-Benutzerschnittstellen-Sprache, die verwendet werden kann, um Befehle und Daten zu kommunizieren, die sich auf das Replizieren von allem oder von Teilen einer Benutzerschnittstelle der mobilen Rechenvorrichtung auf der Zubehörvorrichtung bezieht (wodurch eine fortgeschrittene Fernsteuerung unterstützt wird), eine Tuner-Sprache, die es einem Benutzer ermöglicht eine Tuner-Zubehörvorrichtung zu steuern durch das Bedienen der mobilen Rechenvorrichtung, eine Speichersprache, die es der Zubehörvorrichtung ermöglicht Daten auf der mobilen Rechenvorrichtung zu speichern, und so weiter. Jede Sprache oder Kombination von Sprachen oder anderen Befehlen oder Gruppen von Befehlen kann in Verbindung mit hierin beschriebenen Ausführungsformen verwendet werden.
-
Es wird verstanden werden, dass das Zubehörvorrichtungs-Kommunikationsprotokoll, das hierin beschrieben ist, nur darstellend ist, und dass Variationen und Modifikationen möglich sind. Spezifische hierin beschriebene Befehle können mit anderen Befehlen oder Kombinationen von Befehlen oder anderen Typen von Mitteilungen und Formaten ersetzt werden. Zusätzlich ist es nicht notwendig, dass alle der Befehle und Operationen, die hierin beschrieben sind, durch jede bestimmte mobile Kommunikationsvorrichtung oder Zubehörvorrichtung unterstützt werden.
-
Wie oben bemerkt, können die Anwendung 226, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, und die Zubehörvorrichtung 202 beliebige Daten, Steuersignale und/oder andere Informationen (hierin auch als „Mitteilungen“ bezeichnet) austauschen. Diese Mitteilungen können sich auf eine große Vielzahl von Umständen beziehen. Zum Beispiel können Mitteilungen, die sich auf Benutzereingabe-Ereignisse, erfasste externe Bedingungen, empfangene Daten oder irgendwelche anderen Ereignisse oder Bedingungen, die an der mobilen Rechenvorrichtung 200 auftreten können, an die Zubehörvorrichtung 202 kommuniziert werden. Umgekehrt können Mitteilungen, die sich auf Benutzereingabe-Ereignisse, erfasste externe Bedingungen, empfangene Daten oder andere Ereignisse oder Bedingungen, die an der Zubehörvorrichtung 202 auftreten können, an die mobile Rechenvorrichtung 200 kommuniziert werden.
-
Zum Beispiel, kann, in einigen Ausführungsformen, die mobile Rechenvorrichtung 200 Eingabe-Ereignisse von einem Benutzer zum Beispiel durch die Benutzerschnittstelle 225, wie Berührungsbildschirm-Ereignisse, Tastendrucke, Scrollrad-Ereignisse, etc. verarbeiten. Die mobile Rechenvorrichtung 200 kann Daten bereitstellen, die repräsentativ sind für Eingabe-Ereignisse an eine Anwendung, die auf der mobilen Rechenvorrichtung 200 läuft, an eine Zubehörvorrichtung 202 oder an Beide bereitstellen. Die Zubehörvorrichtung 202 kann solche Daten als Eingabe zur Steuerung, zum Beispiel von zubehörvorrichtungs-spezifischer Hardware 275 und/oder zum Verarbeiten an der Steuerung 260 interpretieren. Berührungsbildschirmdaten können zum Beispiel durch die mobile Rechenvorrichtung 200 zur Verwendung durch eine Anwendung, die Zubehörvorrichtung 202 oder Beide gesammelt werden; in einigen Ausführungsformen können Berührungsbildschirmdaten Daten beinhalten, die Antippen und/oder Bewegungen, wie Wischen, Kneifen, Ziehen oder andere Gesten, repräsentieren. In einigen Ausführungsformen können Berührungsbildschirmdaten in einem Rohdatenformat (zum Beispiel eine Sequenz von Koordinaten, die repräsentieren, wo Druck, der einer Fingerbewegung entspricht, detektiert wurde) gesendet werden. In anderen Ausführungsformen können Berührungsbildschirmdaten in verarbeitete Daten gewandelt werden, wie Gestenereignisse (zum Beispiel ein Antippen, ein Streichen oder Ziehen von einem Punkt zu einem anderen, ein Kneifen, etc.), vor den Senden an eine Zubehörvorrichtung. In anderen Ausführungsformen können Rohtastaturdaten an eine Zubehörvorrichtung gesendet werden und/oder verarbeitete Tastaturdaten können an eine Zubehörvorrichtung gesendet werden. In einigen Ausführungsformen können einige oder alle Typen von Benutzereingabedaten an die Zubehörvorrichtung 202 kommuniziert werden mithilfe einer Anwendung und eines Anwendungsprotokolls, zum Beispiel wie unten beschrieben; in anderen Ausführungsformen können einige oder alle Typen von Benutzereingabedaten mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls kommuniziert werden, in welchem Umfang auch immer das Zubehörvorrichtungs-Kommunikationsprotokoll das Senden von Benutzereingabedaten eines bestimmten Typs unterstützt.
-
Die mobile Rechenvorrichtung 200 kann auch andere Informationen, als Benutzereingabe an die Zubehörvorrichtung 202 senden. Zum Beispiel kann die mobile Rechenvorrichtung 200 in einigen Ausführungsformen verschiedene Sensoren und/oder datensammelnde Vorrichtungen umfassen, zusätzlich zu Benutzereingabevorrichtungen; Beispiele können Beschleunigungsmesser, Gyroskope, einen Kompass, ortsbestimmende Vorrichtungen (zum Beispiel ein Global Positioning System Empfänger oder ein telefonisches Triangulationssystem), Lichtsensoren, Infrarotsensoren, eine Kamera, Netzwerkschnittstellen (zum Beispiel Telefon, WiFi, Bluetooth) oder ähnliches umfassen. Die mobile Rechenvorrichtung 200 kann irgendwelche oder alle dieser Daten an die Zubehörvorrichtung 202 bereitstellen, zum Beispiel in Antwort auf eine spezifische Anfrage von der Zubehörvorrichtung 202. In einigen Ausführungsformen können einige oder alle dieser Daten an die Zubehörvorrichtung 202 kommuniziert werden mithilfe einer Anwendung und eines Anwendungsprotokolls, zum Beispiel, wie unten beschrieben; in anderen Ausführungsformen können einige oder alle dieser Daten kommuniziert werden mithilfe des Anwendungs-Kommunikationsprotokolls bis zu welchem Umfang auch immer das Zubehörvorrichtungs-Kommunikationsprotokoll das Senden von Informationen eines bestimmten Typs unterstützt.
-
In einem anderen Beispiel kann die Zubehörvorrichtung 202 Eingabe-Ereignisse von der mobilen Rechenvorrichtung 200 empfangen. Solche Ereignisse können einer Benutzereingabe und/oder anderen Daten entsprechen, die an der mobilen Rechenvorrichtung 200 detektiert werden, darunter, aber nicht begrenzt auf irgendeinen der oben beschriebenen Datentypen. In einigen Ausführungsformen können solche Eingabe-Ereignisse durch die Steuerung 260 an der Zubehörvorrichtung 202 verarbeitet werden, um zubehörvorrichtungs-spezifische Hardware 275 zu steuern. Zum Beispiel können der Berührungsbildschirm oder andere Benutzereingabe-Ereignisse an der mobilen Rechenvorrichtung 200 an die Zubehörvorrichtung gesendet werden, um anwendungsspezifische Hardware 275 anzuschalten, ihren Zustand zu ändern, Daten von ihr zu empfangen, an diese Daten bereitzustellen, diese auszuschalten und/oder für diese Einstellungen zu setzen. Berührungsbildschirmdaten können zum Beispiel in einem Rohdatenformat oder als interpretierte Ereignisse (zum Beispiel Druck, Streichen, Kneifen) gesendet werden. In einigen Ausführungsformen kann die zubehörvorrichtungs-spezifische Software 280 Anweisungen enthalten, um Rohberührungsbildschirmdaten in Befehle und/oder Steuerungen für die zubehörvorrichtungs-spezifische Hardware 275 zu übersetzen. In einer anderen Ausführungsform können die Berührungsbildschirmdaten in einem Rohformat an eine Anwendung bereitgestellt werden, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, welche die Daten interpretieren kann und entsprechende Befehle und/oder Informationen an die Zubehörvorrichtung 202 senden kann.
-
Weiterhin können Eingabe-Ereignisse, die an der Zubehörvorrichtung 202 von der mobilen Rechenvorrichtung 200 empfangen werden, durch die Steuerung 260 verarbeitet werden, die zubehörvorrichtungs-spezifische Software 280 ausführt. In einigen Ausführungsformen kann die zubehörvorrichtungs-spezifische Software 280 mit der zubehörvorrichtungs-spezifischen Hardware 275 interagieren, in Antwort auf Eingabe-Ereignisse, die von der mobilen Rechenvorrichtung 200 empfangen werden.
-
Weiterhin kann in einigen Ausführungsformen die zubehörvorrichtungs-spezifische Hardware 275 auch durch die mobile Rechenvorrichtung 200 gesteuert werden über eine Verbindung mit der Zubehörvorrichtung 202. Zum Beispiel kann eine Anwendung, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird Programm-Code umfassen, der wenn er durch den Prozessor 230 ausgeführt wird, die zubehörvorrichtungs-spezifische Hardware 275 an der Zubehörvorrichtung 202 steuern kann, damit koppeln, damit interagieren und/oder davon Signale empfangen. In einigen Ausführungsformen kann die Anwendung, die auf der mobilen Rechenvorrichtung 200 ausgeführt wird, Mitteilungen mit einem Steuerprogramm austauschen, das auf der Steuerung 260 der Zubehörvorrichtung 202 ausgeführt wird, wodurch die Steuerung 260 angewiesen wird, mit der zubehörvorrichtungs-spezifischen Hardware 275 zu kommunizieren und/oder deren Betrieb zu steuern. Solche Mitteilungen können ausgetauscht werden mithilfe eines Anwendungsprotokolls, wie unten beschrieben.
-
In einigen Ausführungsformen kann die zubehörvorrichtungs-spezifische Hardware 275 Eingabedaten an die Steuerung 260 bereitstellen. Zum Beispiel kann die zubehörvorrichtungs-spezifische Hardware 275 einen Messsensor beinhalten, der physikalische Charakteristika in Daten (oder elektronische Signale, die Daten repräsentieren; die Begriffe werden austauschbar verwendet) umwandelt, die an die Steuerung 260 gesendet werden können und/oder in dem Speicher 265 gespeichert werden können. Die Steuerung 260 kann die Daten verarbeiten (zum Beispiel Anwenden von Kalibrierungskorrekturen, Reduzieren von Rauschen und/oder anderen Datenverarbeitungsoperationen). Die verarbeiteten Daten können von der Zubehörvorrichtung 202 an die mobile Rechenvorrichtung 200 gesendet werden. An der mobilen Rechenvorrichtung 200 kann eine Anwendung die Daten weiter verarbeiten und/oder die Daten an einen Benutzer durch die Benutzerschnittstelle bereitstellen. Weiterhin kann die Anwendung irgendeine Anzahl von Funktionen in Antwort auf die Daten ausführen.
-
In einigen Ausführungsformen können eine Zubehörvorrichtung und eine Anwendung irgendwelche Mitteilungen, die gewünscht sind, austauschen, wobei sich der Ausdruck „Mitteilung“ generell auf irgendeinen Typ von Steuersignal, Ereignis, Daten, Status oder Konfigurationsinformation oder irgendein anderen Typ von für den Sender verfügbarer Information bezieht. Um den Austausch von Mitteilungen zu ermöglichen können eine Zubehörvorrichtung und eine Anwendung ein gegenseitig vereinbartes Anwendungsprotokoll verwenden. Das Anwendungsprotokoll kann eine Gesamtheit von akzeptierten Formaten für Mitteilungen, die ausgetauscht werden können, spezifizieren. Vorrichtungen oder Programme, die zu einem bestimmten Anwendungsprotokoll gehören, können die Mitteilungen strukturieren, die sie in Übereinstimmung mit der Gesamtheit von akzeptierten Formaten des Anwendungsprotokolls senden, und können Mitteilungen, die sie in Übereinstimmung mit der Gesamtheit von akzeptierten Formaten des Anwendungsprotokolls empfangen, interpretieren. Zum Beispiel im Fall einer binären digitalen Kommunikation, kann das Anwendungsprotokoll spezifizieren, wie die Bits, die die Mitteilungen umfassen, durch den Empfänger zu interpretieren sind. Damit kann ein Anwendungsprotokoll, wie das Zubehörvorrichtungs-Kommunikationsprotokoll Paketstrukturen; Befehle, Sprachen, Nutzlastformate und/oder andere Formate, Datenstrukturen, Semantiken oder Regeln der Interpretation spezifizieren, so dass eine bestimmte Mitteilung, die durch einen Teilnehmer gesendet wird, durch den Empfänger korrekt interpretiert werden wird. Tatsächlich können in einigen Ausführungsformen Teile des Zubehörvorrichtungs-Kommunikationsprotokolls direkt als ein Ganzes oder ein Teil von einem Anwendungsprotokoll für eine bestimmte Zubehörvorrichtung und/oder Anwendung übernommen werden.
-
In bestimmten hierein offenbarten Ausführungsformen können Zubehörvorrichtungs-Protokoll-Mitteilungen zwischen Vorrichtungen gesendet werden durch ein Einkapseln, Umschlagen oder Einpacken von Mitteilungen in Pakete, die dem Zubehörvorrichtungs-Kommunikationsprotokoll entsprechen, zum Beispiel mit Tunnel-Befehlen, wie oben beschrieben. Damit kann die Transportverbindung, die durch das Zubehörvorrichtungs-Kommunikationsprotokoll spezifiziert ist, verwendet werden, und es ist nicht nötig, dass ein Anwendungsprotokoll eine physikalische Transportverbindung spezifiziert.
-
Es wird angedacht, dass eine unbegrenzte Bandbreite von Zubehörvorrichtungen und Anwendungen, die eine Vielzahl von unterschiedlichen Anwendungsprotokollen verwenden, erzeugt wird zur Verwendung mit einer bestimmten mobilen Rechenvorrichtung (oder einer Serie an mobilen Rechenvorrichtungen). In einigen Ausführungsformen kann die mobile Rechenvorrichtung 200 mit Anwendungsprotokoll-Verwaltungsfähigkeit (zum Beispiel unter Verwendung eines Anwendungsmanagers) konfiguriert sein, was das Aufzeichnen des (der) Anwendungsprotokoll(e) beinhaltet, die durch jede verbundene Zubehörvorrichtung verwendet wird (werden), und des (der) Anwendungsprotokoll(e), die durch jede ausgeführte und/oder installierte Anwendung verwendet wird (werden). Beispielsweise kann die mobile Rechenvorrichtung 200 Systemdienste bereitstellen, um das Identifizieren einer geeigneten Anwendung zu ermöglichen, die mit einer bestimmten Zubehörvorrichtung zu verwenden ist und/oder das Identifizieren, ob eine geeignete Zubehörvorrichtung für eine bestimmte Anwendung verfügbar ist, ermöglichen. Diese Dienste werden bereitgestellt, ohne die Notwendigkeit, dass die Systemdienste der mobilen Rechenvorrichtung 200 irgendein Anwendungsprotokoll implementieren oder gemäß diesem kommunizieren.
-
3 ist ein Blockdiagramm, das verschiedene Module und Prozesse innerhalb der mobilen Rechenvorrichtung 200 zeigt, gemäß einer Ausführungsform der vorliegenden Erfindung. Die verschiedenen gezeigten Module können Programmen entsprechen, die auf dem Prozessor 230 der 2 ausgeführt werden, Programmen, die auf anderen Prozessoren innerhalb der mobilen Rechenvorrichtung 200 ausgeführt werden, anwendungs-spezifischen integrierten Schaltkreisen oder anderen Implementierungen. In einigen Ausführungsformen können mehrere Prozessorchips oder mehrere Prozessorkerne mit einem einzelnen Chip verwendet werden, um die verschiedenen Module und Prozesse, die hierin beschrieben sind, zu implementieren. Einige oder alle der Prozessoren können programmierbare Prozessoren für allgemeine Zwecke sein, die Software- und/oder Firmware-Programme ausführen; andere können digitale Signalprozessoren, Zustandsmaschinen mit eingebauter Funktionalität oder eine Kombination davon sein.
-
Die Anschlüsse 305 bis 307 stellen jeweils Kommunikationskanäle für Zubehörvorrichtungen 300 bis 302 bereit. Jeder der Anschlüsse 305 bis 307 kann ein physikalischer und/oder logischer Anschluss sein, der einen bestimmten Kommunikationskanal unterstützt. Zum Beispiel kann der Anschluss 305 ein physikalischer Anschluss sein, der mit einem drahtgebundenen Kanal assoziiert ist, wie zum Beispiel USB oder UART, und kann Hardware-Elemente (zum Beispiel USB kompatible Treiberschaltkreise und/oder Pins) einschließen, zusammen mit geeigneter Steuersoftware. Der Anschluss 306 kann ein logischer Anschluss (zum Beispiel ein virtueller serieller Anschluss) sein, der mit einem drahtlosen Kanal, wie Bluetooth, assoziiert ist. In einigen Ausführungsformen kann jeder Anschluss 305 bis 307 Mitteilungen senden und empfangen, die dem Zubehörvorrichtungskommunikationsprotokoll entsprechen, wie es auf dem bestimmten physikalischen Transport oder Kanal angewandt wird, der mit dem Anschluss assoziiert ist. Obwohl drei Anschlüsse gezeigt sind, sollte es verstanden werden, dass eine mobile Rechenvorrichtung dazu ausgelegt sein kann jede Anzahl von physikalischen und/oder logischen Anschlüssen in jeder Kombination zu unterstützen. Weiterhin, wie unten beschrieben, kann eine einzelne Zubehörvorrichtung sich in einigen Ausführungsformen mit mehreren Anschlüssen verbinden.
-
Der Protokoll-Manager 310, der zum Beispiel ein Firmware- oder Software-Modul sein kann, das durch den Prozessor 230 ausgeführt wird, kann Protokollnachrichten der mobilen Rechenvorrichtung empfangen (auch als Befehle bezeichnet) von den Anschlüssen 305 bis 307 und das Verfahren des Interpretierens der Mitteilungen beginnen. In einigen Ausführungsformen kann der Protokoll-Manager 310 oder ein zugehöriger Protokoll-Dämon (nicht gezeigt), der mit dem Protokoll-Manager 310 assoziiert ist, auch die Anschlüsse 305 bis 310 erzeugen oder definieren, und diese zu geeigneter Kommunikationshardware verbinden, wie Verbinder-Pins und Treiberschaltkreise, drahtlose Transceiver, etc. In einer Ausführungsform kann der Protokoll-Manager 310 (oder sein zugehöriger Protokoll-Dämon) eingehende Mitteilungen des mobile Rechenvorrichtungsprotokolls extrahieren, die an den verschiedenen Anschlüssen empfangen werden, und die extrahierten Mitteilungen an eine Unterstützungsschicht 315 oder andere Komponenten innerhalb der mobilen Rechenvorrichtung 200 ausgeben. Damit können die oberen Schichten des Verfahrensstapels nach 3 unabhängig von einer bestimmten Transportverbindung sein.
-
In einer anderen Ausführungsform kann der Protokoll-Manager 310 ausgehende Informationen (zum Beispiel eine Mitteilung, die strukturiert wurde, gemäß einem Anwendungsprotokoll durch die Anwendung 404, die die Mitteilung erzeugt) empfangen, die für eine verbundene Zubehörvorrichtung bestimmt ist (zum Beispiel irgendeine der Zubehörvorrichtungen 300 bis 302), von der Unterstützungsschicht 315, die ausgehende Mitteilung in ein Paket des mobilen Rechenvorrichtungsprotokolls packen und das Paket zu einem der Anschlüsse 305 bis 307 ausgeben, der mit der gewünschten Zubehörvorrichtung verbunden ist.
-
In einigen Ausführungsformen kann der Protokoll-Manager 310 (oder ein zugehöriger Protokoll-Dämon) das Öffnen und Schließen von Anschlüssen auch unterstützen und/oder steuern. Zum Beispiel, in dem Fall eines virtuellen Anschlusses, kann der Protokoll-Manager 310 einen Satz an virtuellen Anschlüssen beim Hochfahren erzeugen und die Anschlüsse öffnen und/oder schließen wenn Verbindungen angefordert und/oder beendet werden.
-
Der Protokoll-Manager 310 kann eine dynamische Anschlussabbildung 325 führen, die bestimmte Anwendungsprotokolle mit bestimmten Anschlüssen assoziiert. Zum Beispiel, wenn eine Zubehörvorrichtung, wie die Zubehörvorrichtung 300, eine Verbindung mit der mobilen Rechenvorrichtung 200 auf einem bestimmten Anschluss, wie dem Anschluss 305, aufbaut, kann die Zubehörvorrichtung 300 das (die) Anwendungsprotokoll(e) identifizieren, die sie unterstützt (zum Beispiel AP3 in dem Fall der Zubehörvorrichtung 300) an dem Protokoll-Manager 310, zum Beispiel durch das Bereitstellen eines Protokoll-Namen Zeichenfolge (bzw. String) über den Anschluss 305. Der Protokoll-Manager 310 kann eine Assoziation zwischen dem Anwendungsprotokoll-Namen und dem Anschluss in der Anschlussabbildung 325 speichern. Wenn die Zubehörvorrichtung nachfolgend getrennt wird, kann die Assoziation von der Anschlussabbildung 325 entfernt werden. Damit kann die Anschlussabbildung 325 eine Liste von Anwendungsprotokollen bereitstellen, die gegenwärtig zur Verwendung durch Anwendungen verfügbar sind. Wie unten beschrieben, ermöglicht solch eine Liste das Routen von Kommunikationen zwischen Zubehörvorrichtungen und Anwendungen, sowie dem Unterrichten kompatibler Anwendungen, wenn kompatible Zubehörvorrichtungen verbunden werden.
-
Software-Unterstützungsschicht 315 kann als ein Mittler zwischen dem Protokoll-Manager 310 (und optional anderen Vorrichtungsfunktionen auf niedrigeren Niveaus) und den Anwendungen 320 bis 322 agieren, die auf der mobilen Rechenvorrichtung 200 ausgeführt werden können. Zum Beispiel kann die Software-Unterstützungsschicht 315 eine Anwendungsprogrammierschnittstelle (Application Program Interface, API) bereitstellen, über welche Anwendungen Vorrichtungsfunktionalität aufrufen können. Die Software-Unterstützungsschicht 315 kann ein Extra-Niveau von Vorrichtungsunabhängigkeit an die Anwendungen 320 bis 322 bereitstellen; jedoch werden Fachleute verstehen, dass nicht alle in 3 gezeigten Schichten benötigt werden. Zum Beispiel kann der Protokoll-Manager 310 in einigen Ausführungsformen direkt mit den Anwendungen 320 bis 322 kommunizieren. In der gezeigten Ausführungsform kann die Unterstützungsschicht 315 Zubehörvorrichtungsinformations-Nachschlagtabelle 330 bereitstellen. In einer Ausführungsform kann die Zubehörvorrichtungsinformationstabelle 330 Informationen enthalten über jede verbundene Zubehörvorrichtung, wie Zubehörvorrichtungstyp, Zubehörvorrichtungs-Identifizierer und/oder den (die) Name(n) von einem oder mehreren Anwendungsprotokollen, die durch die Zubehörvorrichtung unterstützt werden. Die Zubehörvorrichtungsinformationstabelle 330 kann ausgefüllt werden und aktualisiert werden, in Antwort auf Information, die durch den Protokoll-Manager 310 bereitgestellt wird, wenn sich Zubehörvorrichtungen verbinden und trennen.
-
Die Anwendungen 320 bis 322 können gleichzeitig oder sequenziell ausgeführte Anwendungen sein und können als Programm-Code implementiert sein, der zum Beispiel durch den Prozessor 230 ausführbar ist. Verschiedene Anwendungen 320 bis 322 können verschiedene Formen von Benutzerinteraktionen mit der mobilen Rechenvorrichtung 200 und/oder verbundenen Zubehörvorrichtungen 300 bis 302 bereitstellen. Zum Beispiel kann eine Anwendung eine Benutzerschnittstelle an eine verbundene Messsonden-Zubehörvorrichtung bereitstellen. In Antwort auf Benutzer-Eingabe kann die Anwendung die Messsonde anweisen mit dem Aufzeichnen von Messdaten zu beginnen und das Aufzeichnen von Messdaten zu beenden. Die Anwendung kann Messdaten einem Benutzer präsentieren. Die Anwendung kann Daten in verschiedene Formen umwandeln und/oder weitere Benutzerinteraktionen bereitstellen, wie das Betrachten einer Messaufzeichnung über der Zeit, das Ausführen von Analyse-Operationen auf den Daten (zum Beispiel Mitteln, Trend-Analyse, graphische Analyse oder ähnliches) und so weiter.
-
Eine ausgeführte Anwendung (zum Beispiel irgendeine der Anwendungen 320 bis 322) kann die Zubehörvorrichtungsinformationstabelle 330 zu jeder Zeit abfragen, um zu bestimmen, ob eine kompatible Zubehörvorrichtung (d.h. eine Zubehörvorrichtung, die ein Anwendungsprotokoll unterstützt, das durch die Anwendung verwendet wird) verbunden ist. Wenn eine kompatible Zubehörvorrichtung verbunden ist, kann die Anwendung mit der Zubehörvorrichtung kommunizieren mithilfe des Anwendungsprotokolls. Zum Beispiel, wie unten beschrieben, kann die Anwendung eine Kommunikationssitzung mit der Zubehörvorrichtung initiieren.
-
Es wird verstanden werden, dass die hierin beschriebenen Module beispielhaft sind und dass Variationen und Modifikationen möglich sind. Die mobile Rechenvorrichtung 200 kann irgendeinen Typ von Anwendungen unterstützen und Anwendungen können gestartet oder aufgerufen werden unter der Steuerung eines Benutzers oder eines anderen Prozesses. Bestimmte Module, wie die Unterstützungsschicht 315 und der Protokoll-Manager 310 können in Software und/oder Firmware implementiert sein und dazu konfiguriert sein, automatisch gestartet zu werden beim Hochfahren der Vorrichtung und nur beim Herunterfahren beendet zu werden oder wenn ungewöhnliche Bedingungen erfasst werden; die Anwendungen 320 bis 322 können in Antwort auf Benutzereingabe oder andere Eingabe gestartet und beendet werden. In einigen Ausführungsformen kann eine Anwendung automatisch gestartet werden, wenn eine entsprechende Zubehörvorrichtung verbunden wird, zum Beispiel wie unten beschrieben. Die verschiedenen Module oder Verfahren können in inaktive Zustände gehen, um den Ressourcen-Verbrauch zu minimieren, wenn nicht in Verwendung. Weiterhin sind nicht alle der Schichten und Module, die hierin gezeigt sind, notwendig; zum Beispiel könnten in einigen Ausführungsformen, Anwendungen direkt mit dem Protokoll-Manager kommunizieren, und dabei die Unterstützungsschicht 315 umgehen. In anderen Ausführungsformen können Module oder Schichten, die in 3 als separat gezeigt sind, kombiniert oder zusätzliche Module oder Schichten können bereitgestellt werden, wie der Protokoll-Dämon und/oder Module, die mit verschiedenen Systemdiensten der mobilen Rechenvorrichtung 200 assoziiert sind (zum Beispiel Audio- und/oder Video-Wiedergabe, Netzwerkverbindungen und ähnliches).
-
Es sollte auch verstanden werden, dass eine Zubehörvorrichtung Module, Schichten und andere Komponenten implementieren kann, die ähnlich zu den in 3 gezeigten, sind oder irgendeine Variation oder Modifikation davon. Solange wie die Zubehörvorrichtung in der Lage ist Informationen mit einer mobilen Rechenvorrichtung auszutauschen, gemäß einem Zubehörvorrichtungs-Kommunikationsprotokoll, kann die interne Implementierung wie gewünscht variieren. Wie in 3 gezeigt, kann die mobile Rechenvorrichtung 200 in einigen Ausführungsformen mehrere gleichzeitig ausgeführte Anwendungen 320 bis 322 und/oder gleichzeitige Verbindungen zu mehreren Zubehörvorrichtungen 305 bis 307 führen. Die Anwendungen und/oder Zubehörvorrichtungen können unterschiedliche (und potenziell inkompatible) Anwendungsprotokolle unterstützen, und jedem Anwendungsprotokoll kann ein Name zugewiesen sein (zum Beispiel eine einmalige Zeichenkette), um es von allen anderen Anwendungsprotokollen zu unterscheiden. Zum Beispiel unterstützt in der Ausführungsform der 3 die Anwendung 320 und die Zubehörvorrichtung 301 das Anwendungsprotoll AP1; die Anwendung 321 und Zubehörvorrichtung 302 unterstützen das Anwendungsprotokoll AP2; und die Anwendung 322 und die Zubehörvorrichtung 300 unterstützen das Anwendungsprotokoll AP3.
-
Es wird überlegt, dass Dritte in der Lage sein werden unabhängig Anwendungen und/oder Zubehörvorrichtungen zu entwickeln. Wenn zwei Zubehörvorrichtungen (oder Anwendungen) denselben Zubehörvorrichtungsprotokollnamen mit Anwendungsprotokollen assoziieren, die tatsächlich nicht kompatibel sind, kann dies einen Namenskonflikt erzeugen, zum Beispiel falls beide Zubehörvorrichtungen versuchen sich gleichzeitig mit derselben mobilen Rechenvorrichtung zu verbinden. Um solche Konflikte zu vermeiden, ist es wünschenswert eine zentralisierte Namensraumverwaltung für Anwendungsprotokollnamen bereitzustellen. In einigen Ausführungsformen kann ein zentraler Namensraum-Manager (zum Beispiel der Hersteller der mobilen Rechenvorrichtung) Namen an Anwendungsprotokolle vergeben, nach Anfrage von Herstellern danach. In einer anderen Ausführungsform kann der zentrale Namensraumverwalter einfach eine Namenskonvention definieren, die, wenn sich daran gehalten wird, Namenskonflikte verhindern sollte, und Hersteller von Zubehörvorrichtungen und/oder Anwendungen können Konflikte vermeiden durch das Einhalten der Konvention.
-
In einer Ausführungsform wird eine umgekehrte Domänen-Namenkonvention übernommen zum Verwalten des Anwendungsprotokolls-Namensraums. Konventionelle Domänen-Namen stellen, von links nach rechts, Niedrigniveau-Domänen zu Topniveau-Domänen (lower level domains to top level domains) bereit. Zum Beispiel in den Domänen-Namen „help.example.com“ ist der Ausdruck „com“ die Topniveau-Domäne und der Ausdruck „example“ ist eine niedrigere-Level-Domäne und der Ausdruck „help“ ist die niedrigstes-Niveau-Domäne. Ein anderes Beispiel ist der Domänen-Namen „mac.apple.com“ der von links nach rechts, die Domäne des niedrigsten Niveaus „mac“ spezifiziert, die mittlere Domäne „apple“ und die Domäne des höchsten Niveaus „com“. Umgekehrte Domänen-Namen würden, andererseits, „com.apple.mac“ bereitstellen.
-
Die umgekehrte-Domänen-Namenkonvention kann verwendet werden, um Anwendungsprotokolle zu spezifizieren, die von einem bestimmten Unternehmen verwendet werden. Das bedeutet, der umgekehrte-Domänen-Namen „com.company1.accessory1“ spezifiziert, dass das „accessory1“-Protokoll mit dem Unternehmen (oder anderem Hersteller) „company1“ assoziiert ist. Damit kann im allgemeinen ein Unternehmen ein Protokoll implementieren mithilfe der umgekehrte-Domänen-Namenkonvention, wobei der erste Teil des umgekehrten Domänen-Namens das Unternehmen („com.company1“) referenziert und mit dem Internet-Domänen-Namen des Unternehmens (oder anderen Herstellers) assoziiert ist. Der zweite Abschnitt des umgekehrten Domänen-Namens („accessory1“) spezifiziert ein bestimmtes Protokoll. In dem Umfang, indem unterschiedliche Hersteller von Zubehörvorrichtungen und/oder Anwendungen mit unterschiedlichen Internet-Domänen-Namen assoziiert sind, ermöglicht es eine umgekehrte Domänen-Namenkonvention Herstellern Anwendungen und/oder Protokolle und/oder Zubehörvorrichtungen voneinander zu unterscheiden durch das Benennen ihrer Protokolle, basierend auf der Umkehrung ihres Internet-Domänen-Namens. Diese Konvention ermöglicht es Herstellern ihre Protokolle unabhängig zu benennen, ohne, dass die Benennungskonventionen anderer Hersteller betroffen wären. Weiterhin, falls einen Konflikt zwischen zwei Herstellern, die dieselben Namen verwenden, auftritt, sollte eine einfache Überprüfung wer den entsprechenden Internet-Domänen-Namen besitzt, bestimmen, welcher Hersteller das Recht auf einen bestimmten umgekehrten Domänen-Namen hat.
-
In einigen Ausführungsformen können umgekehrte Domänen-Namen angefügt werden, um einen globalen Identifizierer einzuschließen, der spezifisch für alle Vorrichtungen in einer Klasse von Vorrichtungen ist. Zum Beispiel können alle Vorrichtungen vom seriellen Durchreichtyp einen Identifizierer umfassen, der an den umgekehrten Domänen-Namen angehangen wird. Zum Beispiel kann solch ein umgekehrter Domänen-Namen das folgende Format haben: „com.company1.accessory1.serialpass“ oder „serialpass.com.company1.accessory1“. Mit solch einer Konvention können unterschiedliche Unternehmen serielle Durchreichvorrichtungen herstellen, und trotzdem kann die mobile Rechenvorrichtung solche Vorrichtungen erkennen, trotz Herstellerunterschieden. Die umgekehrte-Domänen-Namenkonvention ist nur ein Beispiel, wie Anwendungsprotokolle identifiziert werden können. Jeder Typ von Konvention kann verwendet werden.
-
Demgemäß kann, wenn eine Zubehörvorrichtung mit einer mobilen Rechenvorrichtung verbunden ist, die Zubehörvorrichtung der mobilen Rechenvorrichtung eine Liste bereitstellen von ihren unterstützten Anwendungsprotokollen durch das Bereitstellen des Namens, der jedem unterstützen Protokoll zugewiesen wurde, mithilfe der umgekehrte- Domänen-Namenkonvention. Eine Zubehörvorrichtung kann ein einzelnes Anwendungsprotokoll oder mehrere Anwendungsprotokolle unterstützen. Basierend auf der empfangenen Information kann die mobile Vorrichtung 200 von 3 die Anschlussabbildung 325 ausfüllen, die Zubehörvorrichtungsinformationstabelle 330 und/oder andere Nachschlagtabellen mit Information, wie dem Zubehörvorrichtungstyp, Zubehörvorrichtungs-Identifizierer, dem Anwendungsprotokoll-Namen und/oder Kommunikationsanschluss-Identifizierer. Wie unten beschrieben, können die Anwendungen 320 bis 322 diese Nachschlagtabellen verwenden, um zu bestimmen, ob eine kompatible Zubehörvorrichtung verfügbar ist und die Unterstützungsschicht 315 und/oder der Protokoll-Manager 310 können die Nachschlagtabellen verwendet, um Kommunikationen weiterzuleiten, ohne irgendeines der Anwendungsprotokolle verstehen zu müssen.
-
Zum Beispiel kann die mobile Rechenvorrichtung 200 drahtlos mit einem Thermometer verbunden sein und auch mit einer Kamera verbunden sein mithilfe eines Kabels. (Zum Beispiel kann, in 3 die Zubehörvorrichtung 302 ein Thermometer sein und der Anschluss Z ein drahtloser Anschluss sein, wohingegen die Zubehörvorrichtung 300 eine Kamera sein kann, und der Anschluss X ist ein drahtgebundener Anschluss.) Nach der Verbindung kann das Thermometer sein unterstütztes Anwendungsprotokoll identifizieren durch das Senden des umgekehrten Domänen-Namens „com.temprus.thermometer1“. Der umgekehrte Domänen-Name kann an die mobile Rechenvorrichtung gesendet werden mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. An der mobilen Rechenvorrichtung kann dieser umgekehrte Domänen-Name als ein Anwendungsprotokoll-Name in einer Nachschlagtabelle (zum Beispiel Anschlussabbildung 325 und/oder Zubehörvorrichtungsinformationstabelle 330) gespeichert werden; in einigen Ausführungsformen kann der umgekehrte Domänen-Name in Verbindung mit einem Zubehörvorrichtungs-Identifizierer für das Thermometer und/oder den drahtlosen Anschluss gespeichert werden, über den auf das Thermometer zugegriffen werden kann. Ähnlich kann, nach der Verbindung, die Kamera ihr unterstütztes Anwendungsprotokoll identifizieren durch das Senden des folgenden umgekehrten Domänen-Namens „com.camerasrus.camera1“, wiederum mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. Dieser umgekehrte Domänen-Namen kann auch in der Nachschlagtabelle gespeichert werden (zum Beispiel Anschlussabbildung 325 und/oder Zubehörvorrichtungsinformationstabelle 330), zum Beispiel in Verbindung mit einem Zubehörvorrichtungs-Identifizierer für die Kamera und/oder den Anschluss, über den auf die Kamera zugegriffen werden kann.
-
Die mobile Rechenvorrichtung 200 kann eine Temperaturanwendung (zum Beispiel Anwendung 321 ausführen, die mit einem Thermometer kommuniziert, mithilfe des Anwendungsprotokolls „com.temprus.thermometer1“, um Temperaturablesungen auszuführen. Während der Ausführung kann die Temperaturanwendung auf die Nachschlagtabelle zugreifen, um zu erkennen, ob ein kompatibles Anwendungsprotokoll vorhanden ist, zum Beispiel durch das Suchen nach dem Protokoll-Namen „com.temprus.thermometer1“. Wenn die Temperaturanwendung „com.temprus.thermometer1“ findet, hat die Anwendung einen Treffer und kann damit beginnen mit dem Thermometer zu kommunizieren mithilfe des com.temprus.thermometen“-Anwendungsprotokolls. Die Kommunikation wird durch den zugeordneten Anschluss weitergeleitet, zum Beispiel mithilfe von Tunnel-Befehlen des Zubehörvorrichtungs-Kommunikationsprotokolls. Das Anwendungsprotokoll kann Befehle spezifizieren, Paketinformationen, Daten, etc., die sich von dem unterscheiden können, was in dem Zubehörvorrichtungs-Kommunikationsprotokoll spezifiziert ist. Weiterhin kann das Unternehmen, das die Anwendung und/oder die Zubehörvorrichtung bereitstellt (zum Beispiel die TempRUs Unternehmen), irgendein Kommunikationsprotokoll zur Kommunikation zwischen Anwendungen und Zubehörvorrichtungen implementieren.
-
4 ist ein vereinfachtes Diagramm, das weiter die Kommunikation zwischen einer Anwendung und einer Zubehörvorrichtung illustriert, gemäß einiger Ausführungsformen der Erfindung. Die mobile Rechenvorrichtung 400 kann mit der Zubehörvorrichtung 402 verbunden werden, was es der Anwendung 404, die auf der mobilen Rechenvorrichtung 400 ausgeführt wird, ermöglicht mit der Zubehörvorrichtung 402 zu kommunizieren mithilfe eines Anwendungsprotokolls.
-
In der Ausführungsform, die in 4 gezeigt ist, hat die Anwendung 404 schon bestimmt, dass die Zubehörvorrichtung 402 eine kompatible Zubehörvorrichtung ist, und hat eine Sitzung 406 erzeugt durch das Aufrufen von geeigneten Funktionsaufrufen an die Unterstützungsschicht 408. Die Sitzung 406 kann zum Beispiel ein Software-Objekt sein, das durch die Anwendung 404 erzeugt wurde, mithilfe eines API-Aufrufs an die Unterstützungsschicht 408. Die Sitzung 406 kann mit der Anwendung 404 assoziiert sein, die sie erzeugt hat, sowie eine bestimmte Zubehörvorrichtung und/oder ein Anwendungsprotokoll, das durch die Anwendung 404 spezifiziert wird, wenn sie die Sitzung erzeugt. Die Sitzung 406 kann unter anderem einen Eingabestrom und einen Ausgabestrom bereitstellen, deren Inhalte jeweils von der Anwendung 404 empfangen werden und an diese ausgegeben werden. (Die Erzeugung einer Sitzung wird unten beschrieben.)
-
Um eine Mitteilung zu kommunizieren (zum Beispiel Steuersignale und/oder andere Informationen) an die Zubehörvorrichtung 402 mithilfe des Anwendungsprotokolls, erzeugt die Anwendung 404 die Mitteilung und schreibt sie als Daten in den Ausgabestrom der Sitzung 406. In dieser Ausführungsform ist die Anwendung 404 einzig verantwortlich für das Formatieren der Mitteilung in Übereinstimmung mit dem Anwendungsprotokoll; andere Zwischenprozesse auf der mobilen Rechenvorrichtung 400 verändern die Daten, die in den Ausgabestrom geschrieben werden, nicht.
-
Die Sitzung 406 detektiert die Anwesenheit von Daten in dem Ausgabestrom und sendet eine entsprechende Sende-(SND) Anweisung an den Protokoll-Manager 410. Die SND-Anweisung stellt den Zubehörvorrichtungs- und Zubehörvorrichtungsprotokoll-Identifizierer bereit, die mit der Sitzung 406 assoziiert sind, und ein „Bündel“, das Daten von dem Ausgabestrom repräsentiert. In einigen Ausführungsformen kann das Bündel zu allem der Mitteilungsdaten korrespondieren; jedoch, abhängig von der Länge der Mitteilung und Bedingungen, die auf die Paketlänge durch das Zubehörvorrichtungs-Kommunikationsprotokoll festgelegt werden könnten, kann ein Bündel auch nur einem Teil der Mitteilungsdaten entsprechen. Umgekehrt könnte, in einigen Ausführungsformen, ein einziges Bündel mehrere Anwendungsprotokoll-Mitteilungen umfassen.
-
Der Protokoll-Manager 410 kann den Zubehörvorrichtungs- und Zubehörvorrichtungsprotokoll-Identifizierer, die durch die Sitzung 406 zusammen mit der Anschlussabbildung 412 bereitgestellt werden, verwenden, um einen Anschluss zum Übertragen des Bündels zu wählen. Der Protokoll-Manager 410 kann das Bündel auch in einen Befehl des Zubehörvorrichtungs-Kommunikationsprotokolls einpacken, zum Beispiel einen TunnelToAcc-Befehl, wie oben beschrieben. Der Zubehörvorrichtungs-Kommunikationsprotokoll-Befehl wird an den Anschluss 414 zur Übertragung gesendet. (Obwohl nur ein Anschluss in 4 gezeigt ist, ist es verständlich, dass die mobile Rechenvorrichtung 400 mehrere Anschlüsse haben kann.)
-
5a bis 5b zeigen ein Beispiel des Einpackens (oder Einhüllens) einer Anwendungsprotokoll-Mitteilung in einen Zubehörvorrichtungs-Kommunikationsprotokoll-Befehl gemäß einigen Ausführungsformen der Erfindung. 5a zeigt ein Beispiel eines Zubehörvorrichtungsprotokoll-Pakets 500. Wie gezeigt, beinhaltet das Paket 500 einen Header 502 und eine Nutzlast 504. Das Zubehörvorrichtungs-Kommunikationsprotokoll kann zum Beispiel die Größe des Headers festlegen und welche Informationen in dem Header 502 bereitgestellt werden können. In einigen Ausführungsformen kann der Header 502 einen Befehl oder Bytecode enthalten, der anzeigen kann, was in der Nutzlast enthalten ist und/oder was mit den Daten in der Nutzlast zu tun ist. Zum Beispiel, in der gezeigten Ausführungsform, beinhaltet der Header 502 einen Befehlscode für den TunnelToAcc-Befehl. Der Header 502 kann auch andere Information enthalten, wie Information, die die Größe der Nutzlast 504 spezifiziert. In einigen Ausführungsformen kann ein optionaler Abschluss 506 an dem Ende des Pakets 500 enthalten sein; der Abschluss kann Information, die verwendet werden kann, um Fehler zu detektieren oder zu korrigieren (zum Beispiel eine Prüfsumme), und/oder andere Information, wie gewünscht, enthalten. Fachleute werden verstehen, das verschiedene Pakettypen verwendet werden können, in dem Zubehörvorrichtungs-Kommunikationsprotokoll.
-
5b zeigt ein Beispiel eines Anwendungsprotokoll-Pakets 510. Das Anwendungsprotokoll-Paket 510 beinhaltet, in diesem Beispiel, einen Header 512 (App.Header), eine Nutzlast 514 (App.Pilot) und einen Abschluss 516.
-
Verschiedene andere Pakettypen, Stile, Konfigurationen, Nutzlasten, Informationsbereiche, etc. können in einem Anwendungsprotokoll-Paket verwendet werden. Tatsächlich können Anwendungen und/oder Zubehörvorrichtungen Anwendungsprotokoll-Pakete von jedem Typ, Größe, Konfiguration, etc. verwenden, wie durch Anwendungsentwickler entworfen, hergestellt und/oder erzeugt, ohne Begrenzung; in einigen Ausführungsformen können einige oder alle der Anwendungsprotokoll-Pakete auf Zubehörvorrichtungs-Kommunikationsprotokoll-Pakete modelliert werden (oder sogar nicht unterscheidbar vom Inhalt her davon modelliert werden). In einigen Ausführungsformen kann ein Anwendungsprotokoll-Paket einen Header umfassen oder nicht. In einigen Ausführungsformen kann ein Anwendungsprotokoll-Paket einen Abschluss enthalten oder nicht. In einigen Ausführungsformen kann ein Anwendungsprotokoll-Paket eine Nutzlast 514 mit einer festen oder variablen Größe umfassen. In einigen Ausführungsformen können Befehle, Daten und/oder andere Mitteilungselemente in der Nutzlast und/oder dem Header bereitgestellt werden. Die spezifischen Charakteristiken der Befehle und/oder Daten und/oder anderen Mitteilungselemente können durch das Anwendungsprotokoll spezifiziert werden. Weiterhin ist es nicht notwendig, dass Anwendungsprotokolle überhaupt eine Paketstruktur für Mitteilungen verwenden; Zubehörvorrichtungsprotokoll-Mitteilungen können jedes Format und/oder Struktur aufweisen, die dazu in der Lage ist, korrekt durch den Empfänger interpretiert zu werden.
-
5c zeigt ein Beispiel eines Anwendungsprotokoll-Pakets 510, das in die Nutzlast 504 des Zubehörvorrichtungsprotokoll-Pakets 520 eingepackt (oder eingehüllt) ist. Wie gezeigt, kann das Paket 520 einen Zubehörvorrichtungsprotokoll-Paket Header 502 umfassen, auf den das Anwendungsprotokoll-Paket 510 folgt. In einigen Ausführungsformen kann der Header 502 einen Befehl oder Bytecode umfassen, der anzeigt, dass die Nutzlast ein Anwendungsprotokoll-Paket ist. Das Anwendungsprotokoll-Paket beinhaltet, in diesem Beispiel, einen Anwendungsprotokoll-Paket-Header 512, Anwendungsprotokoll-Paket-Nutzlast 514 und Anwendungsprotokoll-Paket-Abschluss 516. Das Anwendungsprotokoll-Paket 510 kann oder kann nicht die Nutzlast 504 des Zubehörvorrichtungsprotokoll-Pakets 520 komplett ausfüllen.
-
Allgemein kann ein Zubehörvorrichtungsprotokoll-Paket für einen TunnelToAcc-Befehl irgendein Datenbündel umfassen, das zur Ausgabe an die Zubehörvorrichtung bestimmt ist und nicht auf das Tragen eines einzelnen Zubehörvorrichtungsprotokoll-Pakets beschränkt ist.
-
Wieder 4 betrachtend, empfängt die Zubehörvorrichtung 402 das Zubehörvorrichtungsprotokoll TunnelToAcc-Befehlspaket, zum Beispiel am Anschluss 422. Der Anschluss 422 kann das TunnelToAcc-Befehlspaket an einen Protokoll-Interpretierer 424 weiterleiten, welcher zum Beispiel ein Software-Prozess ist, der auf einer Steuerung oder einem anderen Prozessor der Zubehörvorrichtung 402 ausgeführt wird. Der Protokoll-Interpretierer 424 kann den TunnelToAcc-Befehl lesen, das Bündel, das darin enthalten ist, extrahieren und das Bündel an einen anderen Prozess 426 weiterleiten, der auf einem Controller oder einem anderen Prozessor der Zubehörvorrichtung 402 ausgeführt wird. Der Prozess 426 kann irgendeinen Prozess umfassen, der in der Lage ist, die empfangene Information zu verarbeiten, die dem Anwendungsprotokoll entspricht. Beispielsweise kann der Prozess 426 einen Prozess umfassen, der Anweisungen von der empfangenen Information extrahiert und entsprechende Steuersignale für zubehörvorrichtungs-spezifische Hardware (zum Beispiel zubehörvorrichtungs-spezifische Hardware 275 von 2) erzeugt.
-
Kommunikation von der Zubehörvorrichtung 402 an die mobile Rechenvorrichtung 400 wird auch unterstützt. Zum Beispiel kann der Prozess 426 ein Datenbündel erzeugen, das einer Mitteilung in dem Anwendungsprotokoll entspricht und das Bündel an den Protokoll-Interpretierer 424 bereitstellen, zum Senden an die mobile Rechenvorrichtung 400. Der Protokoll-Interpretierer 424 kann das Bündel in einen TunnelToHost-Befehl des Zubehörvorrichtungs-Kommunikationsprotokolls packen (zum Beispiel ähnlich dem in 5a bis 5c gezeigten Beispiel) und den Befehl an den Anschluss 422 zur Übertragung an die mobile Rechenvorrichtung 400 senden.
-
An der mobilen Rechenvorrichtung 400 empfängt der Anschluss 414 das TunnelToHost-Befehlspaket und leitet es an den Protokoll-Manager 410 weiter. Der Protokoll-Manager 410 erkennt den TunnelToHost-Befehl und extrahiert in der Antwort darauf das Bündel und leitet es an die Unterstützungsschicht 408 weiter, zusammen mit Identifikation der Zubehörvorrichtung und des Anwendungsprotokolls, die mit dem Bündel assoziiert sind. In einigen Ausführungsformen kann der Protokoll-Manager 410 diese Identifizierer bestimmen, basierend darauf, welcher Anschluss den TunnelToHost-Befehl ausgegeben hat; damit muss der TunnelToHost-Befehl nicht Identifikation der Zubehörvorrichtung oder des Anwendungsprotokolls bereitstellen.
-
Die Unterstützungsschicht 408 verwendet Zubehörvorrichtungs- und Zubehörvorrichtungs-Protokoll-Identifizierer, um das Bündel an den Eingabestrom der Sitzung 406 zu richten. Diese Anwendung 404 kann dann die eingehenden Daten von dem Eingabestrom der Sitzung 406 lesen, die Daten gemäß dem Anwendungsprotokoll interpretieren und entsprechend darauf antworten. Damit, kann zum Beispiel die Anwendung 404 eine Thermometeranwendung sein, und die Zubehörvorrichtung 402 kann ein Thermometer umfassen. Die Anwendung 404 kann eine Temperaturmessung von der Zubehörvorrichtung 402 abfragen mithilfe eines geeigneten Anwendungsprotokolls (zum Beispiel ein Protokoll mit dem Namen „com.temprus.thermometer1“). Das Anwendungsprotokoll kann zum Beispiel einen Get_Temp-Befehl spezifizieren, der durch die Anwendung gesendet wird, um Temperaturdaten von der Zubehörvorrichtung abzufragen. Die Anwendung 404 kann ein Anwendungsprotokoll-Paket erzeugen, das zum Beispiel den Get_Temp-Befehl umfasst und jegliche Einstellungen oder Variablen, die mit dem Befehl assoziiert sind (zum Beispiel, ob die Temperaturdaten in Fahrenheit oder Celsius auszugeben sind). Die Anwendung 404 kann ein Paket mit dem geeigneten Header und/oder Abschluss erzeugen, wie durch das Anwendungsprotokoll definiert. Die Anwendung 404 kann dann dieses Paket als eine Anwendungsprotokoll-Mitteilung in den Ausgabestrom der Sitzung 406 übergeben. Die Sitzung 406 kann den Protokoll-Manager 410 anweisen einen Zubehörvorrichtungsprotokoll-Tunnel-Befehl zu senden, der spezifiziert, dass das Anwendungsprotokoll „com.temprus.thermometer1“ ist. Der Protokoll-Manager 410 kann den Get_Temp-Befehl in ein TunnelToAcc-Befehlspaket des Zubehörvorrichtungs-Kommunikationsprotokolls packen und kann auch den Anwendungsprotokoll Namen nachschlagen und feststellen, dass dieses Anwendungsprotokoll mit dem Anschluss 414 assoziiert ist. Der Protokoll-Manager 410 kann dann das TunnelToAcc-Befehlspaket an den Anschluss 414 weiterleiten zur Ausgabe an die Zubehörvorrichtung 402.
-
Die Zubehörvorrichtung 402 kann den TunnelToAcc-Befehl am Anschluss 422 empfangen. Der Protokoll-Interpretierer 424 kann das Get_Temp-Befehlspaket extrahieren und es an den Prozess 426 ausgeben, welches in diesen Beispiel ein Prozess sein kann, der einen Temperatursensor kontrolliert und Daten davon empfängt. Demgemäß kann der Prozess 426 Temperaturdaten erhalten, die an die Anwendung 404 auszugeben sind. Um die Daten zu senden, kann der Prozess 426 zum Beispiel ein Send_Temp-Befehlspaket erzeugen, das dem Anwendungsprotokoll entspricht. Dieses Paket kann die angefragten Temperaturdaten enthalten (zum Beispiel mithilfe der Temperaturskala, die in dem Get_Temp-Befehl spezifiziert ist). Der Prozess 426 kann das Send-Temp-Befehlspaket als ein Bündel an den Protokoll-Interpretierer 424 bereitstellen, mit einem Hinweis, dass es an die mobile Rechenvorrichtung 400 gesendet werden sollte. Der Protokoll-Interpretierer 424 kann das Send_Temp-Befehlspaket in einen TunnelToHost-Befehl des Zubehörvorrichtungs-Kommunikationsprotokolls packen und der Anschluss 422 kann den TunnelToHost-Befehl an den Anschluss 414 der mobilen Rechenvorrichtung 400 kommunizieren. Der Anschluss 414 kann den eingehenden TunnelToHost-Befehl an den Protokoll-Manager 410 ausgeben, welcher das Bündel extrahieren kann (in diesem Fall das Send_Temp-Befehlspaket) und es an die Unterstützungsschicht 408 bereitstellen zusammen mit der Information, dass das Bündel mit dem „com.temprus.thermometer1“-Protokoll assoziiert ist, wie von der Anschlussabbildung 412 bestimmt. Die Unterstützungsschicht 408 kann dann das Bündel an die Sitzung 406 weiterleiten, insbesondere an den Eingabestrom der Sitzung 406. Die Anwendung 404 kann das Bündel von dem Eingabestrom lesen, es als ein Send_Temp-Befehlspaket erkennen, das dem Anwendungsprotokoll entspricht, und die Temperaturdaten extrahieren.
-
In einigen Ausführungsformen kann eine Zubehörvorrichtung sowohl ein Anwendungsprotokoll als auch Befehle des Zubehörvorrichtungs-Kommunikationsprotokolls verwenden, um mit einer Zubehörvorrichtung zu kommunizieren. 6 zeigt einen Pfad für Befehle des Zubehörvorrichtungs-Kommunikationsprotokolls in der Ausführungsform der 4. Zusätzlich zum Senden von Anwendungsprotokoll-Mitteilungen über eine Sitzung 406 kann die Anwendung 404 Zubehörvorrichtungsprotokoll-Befehle aufrufen durch das Ausführen von geeigneten API-Aufrufen an die Unterstützungsschicht 406, welche den Protokoll-Manager 410 anweisen kann Zubehörvorrichtungsprotokoll-Befehle (hier repräsentiert als „mobile computing deviceProtCmdOut“) zu senden über den Anschluss 414 an die Zubehörvorrichtung 402. Auf gleiche Weise kann ein Zubehörvorrichtungsprotokoll-Befehl, der von der Zubehörvorrichtung 402 empfangen wird (hier als „mobile computing deviceProtCmdIn“ repräsentiert), empfangen werden und durch den Protokoll-Manager 410 verarbeitet werden, und der Protokoll-Manager kann den Befehl an die Unterstützungsschicht 406 kommunizieren. Die Unterstützungsschicht 406 kann wiederum entsprechend auf die Anwendung 404 einwirken.
-
In einigen Anwendungen kann ein Anwendungsprotokoll Sprachen und/oder Befehle umfassen, die durch das Zubehörvorrichtungs-Kommunikationsprotokoll spezifiziert sind. Zum Beispiel kann das Zubehörvorrichtungs-Kommunikationsprotokoll eine Tuner-Sprache definieren, RFTuner, die es einem Benutzer ermöglicht eine Funkfrequenz-Tuner-Zubehörvorrichtung durch die mobile Rechenvorrichtung zu steuern. Zum Beispiel kann die RFTimer-Sprache Befehle enthalten, um den Empfänger an- und auszuschalten, den Sender zu ändern, etc. In einigen Ausführungsformen kann die Radio-Tuner-Anwendung auf der mobilen Rechenvorrichtung ausgeführt werden, und die Radio-Tuner-Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt wird, und die Radio-Tuner-Zubehörvorrichtung können ein Radio-Tuner-Anwendungsprotokoll unterstützen, das es einer Radio-Tuner-Zubehörvorrichtung ermöglicht mit der Radio-Tuner-Anwendung zu kommunizieren. Einige oder alle Befehle der RFTuner-Sprache können mit dem Radio-Tuner-Anwendungsprotokoll verwendet werden, und das Radio-Tuner-Anwendungsprotokoll kann andere Befehle ebenso umfassen (zum Beispiel Befehle, um eine voreingestellte Liste von Sendern zu steuern, die der Benutzer mag). Damit kann die Radio-Tuner-Anwendung die RFTuner-Sprache als Teil des Radio-Tuner-Anwendungsprotokolls verwenden, um mit der Radio-Tuner-Zubehörvorrichtung zu kommunizieren, zum Beispiel zum Ändern des Senders und kann auch andere Befehle des Radio-Tuner-Anwendungsprotokolls für andere Operationen verwenden. Die mobile Rechenvorrichtung kann die RFTuner-Sprache auch als Teil des Zubehörvorrichtungs-Kommunikationsprotokolls verwenden, um mit der Radio-Tuner-Zubehörvorrichtung unabhängig von der Anwendung zu kommunizieren. Damit kann die Radio-Tuner-Zubehörvorrichtung Befehle und/oder Mitteilungen an die mobile Rechenvorrichtung senden mithilfe einer einzigen Sprache in einem der beiden Protokolle.
-
Als ein anderes Beispiel kann die RFTuner-Sprache einen RFSetFreq-Befehl umfassen, der von der mobilen Rechenvorrichtung gesendet wird (zum Beispiel, die Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt wird), um die Radio-Tuner-Zubehörvorrichtung auf die Frequenz einzustellen, die in dem Befehl enthalten ist. Die Radio-Tuner-Anwendung kann ein Paket erzeugen mit dem geeigneten Header und/oder Abschluss, wie durch das Anwendungsprotokoll definiert, und kann den RFSetFreq-Befehl und die benötigte Frequenz in der Paketnutzlast einschließen. Das Paket kann dann an den Protokoll-Manager gesendet werden, welcher das Paket in ein Zubehörvorrichtungsprotokoll-Paket bündeln kann mit einem Befehl des Zubehörvorrichtungs-Kommunikationsprotokolls, zum Beispiel ein TunnelToAcc-Befehl, wie oben beschrieben. Das Zubehörvorrichtungsprotokoll-Paket kann dann an die Zubehörvorrichtung gesendet werden. Als ein anderes Beispiel kann der RFSetFreq-Befehl benutzt werden, ohne eine Radio-Tuner-Zubehörvorrichtung und ohne getunnelt zu werden. Die mobile Rechenvorrichtung kann ein Paket mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls unter Verwendung des RFSetFreq-Befehls senden, und die zugehörige Frequenz an die Zubehörvorrichtung als ein eigenständiges Paket.
-
Eine Zubehörvorrichtung kann in einem weiteren Beispiel die RFTuner-Sprache verwenden, um mit der mobilen Rechenvorrichtung zu kommunizieren mithilfe entweder des Anwendungsprotokolls und/oder des Zubehörvorrichtungs-Kommunikationsprotokolls. Zum Beispiel kann die Zubehörvorrichtung den TunnelToHost-Befehl verwenden, um RFTuner-Befehle an die mobile Rechenvorrichtung zu tunneln, beim Kommunizieren mit einer spezifischen Anwendung auf der mobilen Rechenvorrichtung. Als ein anderes Beispiel kann die Zubehörvorrichtung RFTuner-Befehle senden, ohne tunneln zu der mobilen Rechenvorrichtung.
-
In einer anderen Ausführungsform kann eine Zubehörvorrichtung, wie ein Lautsprecherdock, eine Fernsteuerung der Medienwiedergabe auf der mobilen Rechenvorrichtung, bereitstellen. Die Fernsteuerungsfunktionen können mithilfe von Befehlen des Zubehörvorrichtungs-Kommunikationsprotokolls implementiert werden; zum Beispiel kann das Zubehörvorrichtungs-Kommunikationsprotokoll einen ButtonStatus-Befehl umfassen, den die Zubehörvorrichtung senden kann, um eine bestimmte Funktion zu identifizieren, die durch dem Benutzer aufgerufen wird (zum Beispiel Wiedergabe, Pause, nächstes Lied, vorhergehendes Lied, etc.). Die mobile Rechenvorrichtung kann eine Wiedergabemaschine haben für gespeicherte Medien, die den ButtonStatus-Befehl verarbeiten kann und entsprechend reagieren kann. Eine Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt wird, kann die Wiedergabe von anderen Medienquellen bereitstellen, zum Beispiel von einem Internetdatenstrom. Für den Benutzer wäre es wünschenswert in der Lage zu sein, die Wiedergabe des gestreamten Inhalts fern zu steuern durch das Bedienen der Zubehörvorrichtung in derselben Weise, wie der Benutzer die Wiedergabe von gespeicherten Medien kontrolliert. Demgemäß kann ein „Streaming-Steuerungs“-Anwendungsprotokoll definiert werden, das Befehle oder andere Steuersignale umfasst, um die Wiedergabe des gestreamten Inhalts zu steuern. Der Benutzer kann die Zubehörvorrichtung in exakt derselben Weise bedienen, um die Wiedergabe von entweder gespeichertem oder gestreamten Medieninhalt zu steuern. Wenn gespeicherter Inhalt wiedergegeben wird, kann die Zubehörvorrichtung die Fernsteuerfunktion an die Wiedergabemaschine kommunizieren mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls (zum Beispiel der ButtonStatus-Befehl). Wenn der gestreamte Inhalt gespielt wird, kann die Zubehörvorrichtung die Fernsteuerinformation an die Anwendung kommunizieren mithilfe des Streaming-Steuerungs-Anwendungsprotokolls. In einer Ausführungsform kann der ButtonStatus-Befehl des Zubehörvorrichtungs-Kommunikationsprotokolls in das Streaming-Steuerungs-Anwendungsprotokoll eingefügt sein.
-
In einer weiteren Ausführungsform könnte die Zubehörvorrichtung Positionsinformation an die mobile Rechenvorrichtung senden. Positionsinformation kann irgendeine Information beinhalten, die die Position der Zubehörvorrichtung und/oder der mobilen Rechenvorrichtung repräsentiert und kann auf verschiedene Weisen bestimmt werden, wie zum Beispiel mithilfe eines Global Positioning Systems (GPS)-Empfängers und/oder Triangulation einer Position, basierend auf Informationen über nahe Mobiltelefon-Netzwerk-Zugriffspunkte. Das Zubehörvorrichtungs-Kommunikationsprotokoll kann eine „Position“-Sprache bereitstellen, die durch eine Zubehörvorrichtung verwendbar ist, um Positionsinformation an die mobile Rechenvorrichtung zu übertragen. Eine Anwendung könnte jedoch Positionsinformation verwenden, die nicht in der Positionssprache bereitgestellt wird. Solche Information kann durch die Zubehörvorrichtung an die Anwendung übertragen werden mithilfe eines zubehörvorrichtungs-spezifischen Protokolls. Damit, abhängig davon, wie die Positionsinformation verwendet wird, kann dieselbe Zubehörvorrichtung Positionsinformation an die mobile Rechenvorrichtung übertragen mithilfe entweder der Positionssprache des Zubehörvorrichtungs-Kommunikationsprotokolls oder des zubehörvorrichtungs-spezifischen Protokolls.
-
Es wird verstanden werden, dass die Kommunikationspfade, die hierin beschrieben sind, beispielhaft sind, und dass Variationen und Modifikationen möglich sind. Zum Beispiel kann ein Pfad mehr oder weniger Schichten an der Zubehörvorrichtung und/oder mobilen Rechenvorrichtungsseite umfassen. In einigen Ausführungsformen wird jedes mobile Rechenvorrichtungs-Tunnel-Paket eine Zubehörvorrichtungsprotokoll-Mitteilung umfassen, aber dies ist nicht notwendig. Zum Beispiel könnte eine einzige Zubehörvorrichtungsprotokoll-Mitteilung mithilfe von mehreren mobilen Rechenvorrichtungs-Tunnel-Paketen gesendet werden, vorausgesetzt, dass der Empfänger (die Zubehörvorrichtung oder Anwendung je nachdem) in der Lage ist eine Mitteilung von mehreren empfangenen Datenbündeln zu rekonstruieren. Auf ähnliche Weise könnte ein einziges mobile Rechenvorrichtungs-Tunnel-Paket erlaubt sein, mehrere Zubehörvorrichtungsprotokoll-Mitteilungen zu umfassen, vorausgesetzt, dass der Empfänger in der Lage ist, das Bündel in mehrere Mitteilungen aufzuteilen. Beim Beschreiben der 4 war es angenommen, dass die Anwendung 404 schon die Sitzung 406 hergestellt hat mit der kompatiblen Zubehörvorrichtung 402. Beispiele von Techniken, die es einer Anwendung ermöglichen, eine kompatible Zubehörvorrichtung zu identifizieren (oder umgekehrt) und eine Sitzung herzustellen, werden nun beschrieben.
-
7 ist ein Flussdiagramm des Prozesses 700 zum Identifizieren einer Zubehörvorrichtung und einer kompatiblen Anwendung gemäß einer Ausführungsform der vorliegenden Erfindung. Der Prozess 700 kann bei Block 702 beginnen. Die mobile Rechenvorrichtung kann bestimmen, ob eine Zubehörvorrichtung bei Block 704 verbunden worden ist. Zum Beispiel kann die mobile Rechenvorrichtung detektieren, ob eine Zubehörvorrichtung physikalisch mit einem Verbinder gekoppelt wurde, zum Beispiel wie in 1a gezeigt, oder wenn eine Zubehörvorrichtung drahtlos mit der mobilen Rechenvorrichtung gekoppelt wurde, wie in 1b gezeigt. Wie oben bemerkt, kann eine Zubehörvorrichtung als verbunden betrachtet werden, wann immer ein drahtgebundener oder drahtloser Kommunikationskanal zwischen der mobilen Rechenvorrichtung und der Zubehörvorrichtung offen ist, und Block 704 kann das Erfassen des Öffnens solch eines Kanals umfassen. Ein Anwendungsmanager, der auf der mobilen Rechenvorrichtung ausgeführt wird, kann Hardwareverbindungen oder Kommunikationsmodule überwachen, um zu bestimmen, ob ein Kommunikationskanal zwischen der mobilen Rechenvorrichtung und der Zubehörvorrichtung offen ist.
-
Bei Block 706 kann die mobile Rechenvorrichtung Anwendungsprotokoll-Information von der Zubehörvorrichtung empfangen. In einigen Ausführungsformen kann diese Information kommuniziert werden mithilfe von Paketen, die durch das Zubehörvorrichtung-Kommunikationsprotokoll definiert werden. In anderen Ausführungsformen kann die Anwendungsprotokoll-Information auf irgendeine Weise kommuniziert werden, die entweder von der Zubehörvorrichtung oder der mobilen Rechenvorrichtung oder beiden verstanden wird. Zum Beispiel kann die Anwendungsprotokoll-Information mithilfe irgendeines Industriestandard-Kommunikationsprotokolls kommuniziert werden, wie zum Beispiel das USB-Protokoll, Bluetooth-Protokoll oder WiFi-Protokoll. Zum Beispiel kann das Zubehörvorrichtungs-Kommunikationsprotokoll ein oder mehrere Befehle und zugehörige Datenformate spezifizieren, die eine Zubehörvorrichtung an eine mobile Rechenvorrichtung senden kann, um Information über sie und ihre Fähigkeiten bereitzustellen; in einigen Ausführungsformen können diese Befehle Teil der allgemeinen Sprache des Zubehörvorrichtung-Kommunikationsprotokolls sein. Die Information, die durch die Zubehörvorrichtung bereitgestellt wird, kann Text-Zeichenfolgen für den (die) Name(n) des (der) Anwendungs-Kommunikationsprotokolls(e) umfassen, die durch die Zubehörvorrichtung unterstützt werden. Die Namen können beispielsweise spezifiziert werden mithilfe der umgekehrten-Domänen-Namenkonvention, wie oben beschrieben oder mithilfe irgendeiner anderen gewünschten Namenskonvention. Die Zubehörvorrichtung kann auch andere identifizierende Information senden. Zum Beispiel kann die Zubehörvorrichtung Information senden, die ihren Typ identifiziert; den Hersteller, den Modellnamen; die Seriennummer; Hardware-, Software- und/oder Firmware-Versionen; etc. Die Zubehörvorrichtung kann auch Informationen senden, die Fähigkeiten der mobilen Rechenvorrichtung anzeigen, zu denen sie fähig ist oder sie beabsichtigt zu benutzen. Zum Beispiel kann die Zubehörvorrichtung spezifizieren, welche Sprache des Zubehörvorrichtungs-Kommunikationsprotokolls sie verwenden möchte, ob sie Audio und/oder Videosignale von oder zu der mobilen Rechenvorrichtung empfängt oder bereitstellt, bevorzugte initiale Betriebszustände der mobilen Rechenvorrichtung (zum Beispiel, ob ein Audio- und/oder Video-Signalaustausch anfänglich aktiviert oder deaktiviert sein sollte, ein bevorzugtes Format für Audio- und/oder Videosignalisierung), und so weiter.
-
In anderen Ausführungsformen kann das Anwendungsprotokoll durch das Spezifizieren eines Anwendungsladens oder von einem Server über das Internet spezifiziert werden. Zum Beispiel, wenn eine Zubehörvorrichtung mit der mobilen Rechenvorrichtung gekoppelt ist, kann die mobile Rechenvorrichtung Anwendungsprotokoll-Information von dem Anwendungsladen und/oder von einem Server über das Internet anfordern. In einer Ausführungsform kann die mobile Rechenvorrichtung zubehörvorrichtungs-identifizierende Information senden, wie den Zubehörvorrichtungshersteller, Modellnamen, und/oder serielle Nummer, an den Anwendungsladen oder anderen Server und Anwendungsprotokoll-Information in Antwort darauf empfangen. Anwendungsprotokoll-Information, die von der Zubehörvorrichtung gesendet wird, kann, zum Beispiel, den Anwendungsprotokoll-Namen umfassen; eine Datei, die verschiedene Anwendungsprotokoll-Befehle spezifiziert, Mitteilungen und/oder Paketspezifikationen; eine Auflistung von Zubehörvorrichtungen mit denen das Anwendungsprotokoll kompatibel ist; eine Liste von Anwendungen, mit denen das Anwendungsprotokoll kompatibel ist; ein Hinweis auf einen Netzwerk-Ort, wo eine Anwendung oder ein Anwendungsupdate heruntergeladen werden können; etc. Die Anwendungsprotokoll-Information kann in einem Metadatenformat gesendet werden. In einigen Ausführungsformen können verschiedene Versionen des Anwendungsprotokolls verfügbar gemacht werden durch den Anwendungsladen oder durch das Internet. Zum Beispiel können verschiedene Versionen eines Anwendungsprotokolls verschiedene Niveaus an Funktionalität ermöglichen und können zur Verwendung mit einer mobilen Rechenvorrichtung zu unterschiedlichen Preisen bereitgestellt werden. Zum Beispiel können „Lite“-Versionen, freie Versionen, Vollversionen, Demo-Versionen, etc. verfügbar gemacht werden. Zum Beispiel kann eine Vollversion einen Satz an Befehlen definieren, die durch die mobile Rechenvorrichtung und/oder Zubehörvorrichtung verwendbar sind, wohingegen eine „Lite“-Version eine Untergruppe der Befehle definiert, die durch die Vollversion definiert werden.
-
In einigen Ausführungsformen können Anwendungsprotokolle aufgezählt werden, wenn sie zu der mobilen Rechenvorrichtung kommuniziert werden. Die Zubehörvorrichtung kann jedes unterstützte Anwendungsprotokoll mit einer Index-Nummer oder einem anderen Typ von Hinweis identifizieren, der sich auf jede Anwendung bezieht. Zum Beispiel kann die Zubehörvorrichtung eine Mitteilung senden, die anzeigt, dass Index 1 ein Anwendungsprotokoll 1 ist, Index 2 ein Anwendungsprotokoll 2 ist und Index 3 ein Anwendungsprotokoll 3 ist.
-
Jedes Anwendungsprotokoll kann mithilfe irgendeines Typs von Hinweis angezeigt werden, wie zum Beispiel unter Verwendung der umgekehrten-Domänen-Namenkonvention. Später können diese Protokolle mithilfe ihrer Index-Zahl referenziert werden. Solch eine Aufzählung kann in Ausführungsformen verwendet werden, die durchgängig in dieser Offenbarung beschrieben sind.
-
Die mobile Rechenvorrichtung kann die Zubehörvorrichtung authentifizieren mithilfe von Authentifizierungsprozeduren in Übereinstimmung mit dem Zubehörvorrichtungs-Kommunikationsprotokoll bei Block 708. Diese Prozeduren können zum Beispiel Authentifizierungstechniken umfassen, basierend auf öffentlichen Schlüsselzertifikaten, die in der mobilen Rechenvorrichtung gespeichert sind und privaten Schlüsseln, die durch verschiedene Zubehörvorrichtungen gehalten werden und/oder andere Techniken. In einigen Ausführungsformen kann die mobile Rechenvorrichtung jede Zubehörvorrichtung authentifizieren, nach der Verbindung und Identifikation (zum Beispiel nach Block 706). In anderen Ausführungsformen kann die mobile Rechenvorrichtung jede Zubehörvorrichtung authentifizieren vor oder während der Identifikation bei Block 706, und in weiter anderen Ausführungsformen kann die Authentifizierung später in dem Prozess geschehen oder gar nicht. Zum Beispiel erlaubt die mobile Rechenvorrichtung in einigen Ausführungsformen, dass auf bestimmte Funktionen und/oder Operationen, die mit dem Zubehörvorrichtungs-Kommunikationsprotokoll assoziiert sind, nur durch authentifizierte Zubehörvorrichtungen zugegriffen wird; solche „restriktierte Zugriffs“-funktionen können Funktionen sein, die auf die Kommunikation von Zubehörvorrichtungs-Protokollbefehlen bezogen sind (zum Beispiel die Tunnelbefehle, die oben beschrieben sind, können restriktierte Zugriffsbefehle sein). Die mobile Rechenvorrichtung kann damit warten eine Zubehörvorrichtung zu authentifizieren, bis die Zubehörvorrichtung versucht eine zugriffsbeschränkte Funktion zu verwenden, oder die mobile Rechenvorrichtung kann die Zubehörvorrichtung zu jeder Zeit authentifizieren nach dem Empfangen von Information, die anzeigt, dass die Zubehörvorrichtung zugriffsbeschränkte Funktionen benutzen wird oder versuchen könnte zu benutzen.
-
Die mobile Rechenvorrichtung kann dann eine „verbundene“ Anwendungsprotokoll-Liste bei Block 710 erzeugen und/oder aktualisieren mithilfe der Anwendungsprotokoll-Information, die bei Block 706 bereitgestellt wird. Zum Beispiel kann, bezogen auf 3, die Anschlussabbildung 325 und/oder die Zubehörvorrichtungsinformationstabelle 330 aktualisiert werden, um die neuverbundene Zubehörvorrichtung und ihr€ Anwendungsprotokoll(e) mit einem Anschluss zu assoziieren. Jede der zubehörvorrichtungsidentifizierenden Information wird bei Block 706 bereitgestellt und kann in einer Protokoll-Liste für verbundene Anwendungen durch die mobile Rechenvorrichtung gespeichert werden. Ein Beispiel einer verbundene-Protokoll-Liste wird in 8 als Tabelle 820 gezeigt. Die Tabelle 820 listet jedes Anwendungsprotokoll auf, das eine gegenwärtig verbundene Zubehörvorrichtung identifiziert hat, im Zusammenhang mit dem Anschluss, mit dem die Zubehörvorrichtung verbunden ist. (Demgemäß kann die Tabelle 820 ein Beispiel einer Anschlussabbildung 325 von 3 sein). Es sollte verstanden werden, dass das Format und der Informationsinhalt der Tabelle 820, wie gewünscht, variiert werden kann.
-
Wieder 7 betrachtend, kann bei Block 712 die mobile Rechenvorrichtung bestimmen, ob Anwendungen verfügbar sind, die das (die) Anwendungsprotokoll(e), das (die) der Zubehörvorrichtung zugeordnet ist (sind), verfügbar sind (solche Anwendungen werden hierin als „kompatible“ Anwendungen bezeichnet). Zum Beispiel kann die mobile Rechenvorrichtung eine Tabelle von unterstützten Anwendungsprotokollen speichern, wobei jedes Protokoll mit der Anwendung (oder Anwendungen) assoziiert ist, die es unterstützt. Ein Beispiel einer unterstützten Anwendungsprotokoll-Tabelle wird in 8 als Tabelle 810 gezeigt. Die Tabelle 810 beinhaltet eine Liste von Anwendungsprotokoll-Namen, und jeder Anwendungsprotokoll-Name ist mit einem Identifizierer von einer oder mehreren Anwendungen assoziiert. In einigen Ausführungsformen kann die Tabelle 810 als eine Nachschlag-Tabelle implementiert sein, auf die mithilfe des Namens eines Anwendungsprotokolls zugegriffen werden kann, um einen Anwendungs-Identifizierer auszugeben; auf die Tabelle 810 kann auch mithilfe eines Anwendungs-Identifizierers zugegriffen werden, um eine Liste von Anwendungsprotokollen auszugeben, die mit einer bestimmten Anwendung assoziiert sind.
-
In einigen Ausführungsformen kann die Tabelle 810 nur Anwendungsprotokolle umfassen, die mit gerade ausgeführten Anwendungen assoziiert sind. Zum Beispiel, wenn eine Anwendung gestartet wird, kann sie einen Systemprozess der mobilen Rechenvorrichtung (zum Beispiel Unterstützungsschicht 315 von 3) mit einer Liste von jeglichen Anwendungsprotokollen, die sie benötigt und/oder verwenden kann, versorgen. Der Systemprozess der mobilen Rechenvorrichtung kann die Tabelle 810 entsprechend aktualisieren. In anderen Ausführungsformen kann die Tabelle 810 eine permanente Tabelle sein, die für alle Anwendungen, die auf der mobilen Rechenvorrichtung installiert sind, beibehalten wird. Zum Beispiel kann das Installieren (oder Aktualisieren) einer Anwendung das Benachrichtigen eines Systemprozesses der mobilen Rechenvorrichtung (zum Beispiel die Unterstützungsschicht 315) umfassen von jeglichen Anwendungsprotokollen, die die Anwendung benötigt und/oder fähig ist zu verwenden ist; die mobile Rechenvorrichtung kann die Tabelle 810 entsprechend aktualisieren.
-
In einigen Ausführungsformen, wenn eine Zubehörvorrichtung mit der mobilen Rechenvorrichtung gekoppelt ist, kann die Zubehörvorrichtung sich selbst identifizieren durch das Senden von Identifikationsinformation, zum Beispiel, mithilfe einer Zubehörvorrichtungs-Identifikationssprache, die mit dem Zubehörvorrichtungs-Kommunikationsprotokoll assoziiert ist. Die Identifikationsinformation kann durch die mobile Rechenvorrichtung verwendet werden, um ein geeignetes Anwendungs-Kommunikationsprotokoll zu wählen, zum Beispiel durch den Bezug auf die Tabelle 810. In einigen Ausführungsformen kann die mobile Rechenvorrichtung Zubehörvorrichtungs-Identifikationsinformation an einen Anwendungsladen und/oder Server über das Internet senden, um ein Anwendungs-Kommunikationsprotokoll zu identifizieren, das mit der Zubehörvorrichtung kompatibel ist. In einigen Ausführungsformen kann ein Anwendungsladen und/oder Server eine Datei senden, die Details enthält, über ein Anwendungs-Kommunikationsprotokoll, das mit der Zubehörvorrichtung kompatibel ist. In einigen Ausführungsformen muss die Zubehörvorrichtung nicht Anwendungsprotokoll-Information an die mobile Rechenvorrichtung senden, stattdessen kann die Zubehörvorrichtung Zubehörvorrichtungs-Identifikationsinformation senden, die dann durch die mobile Rechenvorrichtung verwendet wird, um das geeignete Anwendungs-Kommunikationsprotokoll zu wählen.
-
Wiederum bezogen auf Block 712 der 7, in einigen Ausführungsformen, in denen eine unterstützte Anwendungsprotokoll-Tabelle (zum Beispiel Tabelle 810 von 8) bereitgestellt wird, kann die mobile Rechenvorrichtung bestimmen, ob eine kompatible Anwendung verfügbar ist durch das Zugreifen auf die unterstützte Protokoll-Tabelle mithilfe des Protokoll-Namens der neuverbundenen Zubehörvorrichtung. Zum Beispiel, wie in 8 gezeigt, wenn die neuverbundene Zubehörvorrichtung protocolString {c} als ihren Anwendungsprotokoll-Identifizierer bereitgestellt hat, kann Block 712 des Prozesses 700 das Nachschlagen des protocolString {c} beinhalten in der unterstützten Protokoll-Tabelle 810 und damit bestimmen, dass eine Anwendung „App8“ mit dem Anwendungsprotokoll assoziiert ist. In diesem Fall würde der Block 712 in einer Bestimmung resultieren, das eine Anwendung verfügbar ist. Wie weiter in 8 gezeigt, wenn die neu verbundene Zubehörvorrichtung protocolString {x} bereitgestellt hat, als ihr Anwendungsprotokoll, kann keine Übereinstimmung in der Tabelle 810 gefunden werden, und der Block 712 des Prozesses 700 würde zu einer Bestimmung führen, das eine kompatible Anwendung nicht verfügbar ist.
-
Wenn eine kompatible Anwendung nicht verfügbar ist, kann der Prozess 700 das Lokalisieren und Erhalten einer kompatiblen Anwendung beim Block 714 ermöglichen. Zum Beispiel, kann die mobile Rechenvorrichtung den Benutzer zu einem Anwendungsladen (zum Beispiel den iTunes Store der durch Apple Inc. bereitgestellt wird) führen oder einer anderen Quelle zum Erwerben und/oder Herunterladen von Anwendungen. Verschiedene Typen von Assistenz können bereitgestellt werden. Zum Beispiel kann, in einigen Ausführungsformen, die Zubehörvorrichtungsinformation, die der mobilen Rechenvorrichtung bei Block 706 bereitgestellt wird, einen Identifizierer der bevorzugten Anwendung zur Verwendung mit der Zubehörvorrichtung umfassen. Diese Identifizierer kann eine URL (uniform resource locator, zum Beispiel eine World Wide Web Seitenadresse) sein, ein einmaliger Produkt-Identifizierer für die bevorzugte Anwendung in einem bestimmten Anwendungsladen, oder ähnliches. Die mobile Rechenvorrichtung kann diese Information verwenden, um die bevorzugte Anwendung zu lokalisieren und den Benutzer auffordern, die Anwendung zu erwerben und/oder herunterzuladen.
-
In anderen Ausführungsformen kann die mobile Rechenvorrichtung die Anwendungsprotokoll-Information verwenden, mit oder ohne andere Zubehörvorrichtungs-Identifizierungsinformation, um nach einer kompatiblen Anwendung zu suchen, zum Beispiel innerhalb eines Anwendungsladens. Zum Beispiel, wie in 9 gezeigt, kann die mobile Rechenvorrichtung eine Abfrage 825 formulieren mithilfe eines oder mehreren der verbundenen Anwendungsprotokolle und/oder eines Identifizierers für die bevorzugte Anwendung, die von der Zubehörvorrichtung bereitgestellt wird (repräsentiert als appCode 830). Die mobile Rechenvorrichtung kann die Anfrage 825 an eine URL 840 senden, die mit dem Suchen in einem Anwendungsladen oder einem anderen Ziel assoziiert ist. In dem gezeigten Beispiel umfasst die Anfrage eine Liste von allen verbundenen Anwendungsprotokollen (die mit einem Logischen „oder“ Operanden verbunden sind), zusammen mit dem appCode 830 für die bevorzugte Anwendung. In dem Fall, das mehrere Anwendungen der Anfrage entsprechen, kann eine bevorzugte Anwendung 830 durch den Anwendungsladen verwendet werden, um die bevorzugte Anwendung hervorzuheben (angenommen, dass sie auf der Liste der Treffer vorhanden ist). Damit, obwohl eine Anzahl von Anwendungen aufgelistet sein kann, die ein oder mehrere Anwendungsprotokolle der verbundenen Protokoll-Liste 820 unterstützen, kann die bevorzugte Anwendung 830 die Standard-Anwendung sein und kann als solche aufgelistet sein, zum Beispiel an der Spitze der Resultateliste und/oder mit einem Symbol markiert, einem Wort oder Logo, das sie als bevorzugt identifiziert. In einigen Ausführungsformen kann mehr als eine Version der bevorzugten Anwendung bereitgestellt werden innerhalb der Rangfolge, sodass dem Benutzer eine geordnete Liste präsentiert werden kann. Zum Beispiel kann eine Pro-Version, eine Standard-Version und/oder eine freie Version der bevorzugten Anwendung bereitgestellt werden.
-
In Antwort auf eine Anfrage kann der Anwendungsladen eine Liste von einer oder mehreren kompatiblen Anwendungen ausgeben, und die mobile Rechenvorrichtung kann den Benutzer auffordern eine kompatible Anwendung zum Herunterladen auszuwählen. In einigen Ausführungsformen können die Anwendungen direkt nach dem Herunterladen installiert werden; in anderen Ausführungsformen kann der Benutzer separat aufgefordert werden, die Anwendung herunterzuladen, und dann zu installieren. In weiter anderen Ausführungsformen kann es nötig sein, dass der Benutzer die Anwendung erwirbt. In einigen Ausführungsformen kann der Erwerb durch einen Anwendungsladen ausgeführt werden mithilfe eines Guthabens und/oder durch ein vorhergehend erstelltes Konto.
-
In weiter anderen Ausführungsformen kann eine kompatible Anwendung auf der Zubehörvorrichtung selbst vorgespeichert sein und das Zubehörvorrichtungs-Kommunikationsprotokoll kann Befehle umfassen, die es der Zubehörvorrichtung ermöglichen, anzuzeigen, das sie eine darauf gespeicherte kompatible Anwendung hat; in Antwort auf solch einen Hinweis kann die mobile Rechenvorrichtung die kompatible Anwendung von der Zubehörvorrichtung hochladen und sie installieren. (In einigen Ausführungsformen kann die mobile Rechenvorrichtung den Benutzer auffordern zur Zustimmung vor dem Herunterladen und/oder Installieren von den von der Zubehörvorrichtung bereitgestellten Anwendungen).
-
Wieder mit Bezug auf 7 wird bei Block 716 bestimmt, ob eine kompatible Anwendung nun verfügbar ist und installiert ist. (Zum Beispiel könnte eine kompatible Anwendung nicht gefunden worden sein oder der Benutzer könnte gewählt haben sie nicht zu kaufen oder herunter zu laden). Wenn nicht, kann der Prozess 700 bei Block 718 enden.
-
Wenn, bei Block 716 eine kompatible Anwendung verfügbar ist (entweder vorhergehend installiert oder gerade installiert über Block 714), dann kann die mobile Rechenvorrichtung bei Block 720 bestimmen, ob die kompatible Anwendung bereits läuft. Wenn nicht, kann die Anwendung bei Block 722 gestartet werden. Abhängig von der Implementierung kann Block 722 das Auffordern des Benutzers umfassen, zu bestätigen, dass die Anwendung gestartet werden sollte.
-
Bei Block 724 kann die Anwendung mit der Zubehörvorrichtung kommunizieren. In einigen Ausführungsformen kann Block 724 das Erzeugen einer Sitzung und Senden und/oder Empfangen von Anwendungsprotokoll-Befehlen, wie bei der Sitzung, wie zum Beispiel oben beschrieben, umfassen. Der Block 724 kann auch das Senden und/oder Empfangen von Befehlen und anderer Information umfassen mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. Damit kann dieselbe Anwendung und Zubehörvorrichtung Funktionen verwenden, die durch das Zubehörvorrichtungs-Kommunikationsprotokoll unterstützt werden, und kann andere Informationen, Steuersignale, Daten, etc. austauschen mithilfe eines Anwendungsprotokolls, die mit den Funktionen, die durch das Zubehörvorrichtungs-Kommunikationsprotokoll unterstützt werden, überlappen könnten oder nicht überlappen könnten. Die Kommunikation kann unendlich lange bestehen, zum Beispiel, bis die Zubehörvorrichtung von der mobilen Rechenvorrichtung getrennt wird und/oder die Anwendung existiert. An diesem Punkt kann der Prozess 700 enden (Block 718).
-
Der Prozess 700 kann implementiert werden mithilfe von Hardware, Software und/oder Firmware auf einer mobilen Rechenvorrichtung. Zum Beispiel können Systemprozesse und/oder Anwendungen ausgeführt werden zum Steuern der Funktionalität der mobilen Rechenvorrichtung, um die oben beschriebenen Aktionen auszuführen.
-
In einigen Ausführungsformen kann die mobile Rechenvorrichtung eine dauerhafte Liste von allen oder einer Anzahl von Anwendungsprotokollen führen, die durch irgendeine Zubehörvorrichtung unterstützt werden, die jemals mit der mobilen Rechenvorrichtung verbunden wurde, selbst nachdem die Zubehörvorrichtung getrennt wird. Wenn die mobile Rechenvorrichtung mit einem Anwendungsladen kommuniziert, kann die mobile Rechenvorrichtung einige oder alle der Protokolle auf der dauerhaften Liste an den Anwendungsladen bereitstellen (zum Beispiel als eine Suchanfrage an einen Server, der den Anwendungsladen beherbergt), und der Anwendungsladen kann Anwendungen vorschlagen, die dem Benutzer interessieren könnten, basierend auf der Liste. Zum Beispiel kann der Anwendungsladen andere Anwendungen identifizieren, die das (die) selbe(n) Anwendungsprotokoll(e) verwenden. Wenn die dauerhafte Liste auch Information umfasst, die bestimmte Zubehörvorrichtungen identifizieren, die mit jedem Anwendungsprotokoll assoziiert sind, kann die Information, die durch den Anwendungsladen bereitgestellt wird, bestimmte Zubehörvorrichtungen als kompatibel mit den identifizierten Anwendungen identifizieren. Dies kann dem Benutzer helfen beim Auswählen von zu erwerbenden und/oder herunterzuladenden Anwendungen.
-
10 ist ein Flussdiagramm des Prozesses 1000, der durch eine Anwendung ausgeführt werden kann, zum Initiieren einer Kommunikation mit einer Zubehörvorrichtung, gemäß einer Ausführungsform der vorliegenden Erfindung. Der Prozess 1000 kann beginnen (Block 1002), zum Beispiel wenn die Anwendung auf der mobilen Rechenvorrichtung gestartet wird. Zum Beispiel kann der Benutzer manuell die Anwendung starten, oder die Anwendung kann automatisch durch die mobile Rechenvorrichtung gestartet werden, in Antwort auf das Verbinden einer Zubehörvorrichtung (zum Beispiel, wie oben mit Bezug auf 7 beschrieben).
-
Bei Block 1004 prüft die Anwendung, um zu bestimmen, ob eine kompatible Zubehörvorrichtung verbunden ist. (Wie hierin verwendet, ist eine Zubehörvorrichtung „kompatibel“ mit einer bestimmten Anwendung, wenn die Zubehörvorrichtung ein Anwendungsprotokoll unterstützt, das von der Anwendung benötigt wird und/oder verwendet werden kann.) Zum Beispiel, in Ausführungsformen, in denen die mobile Rechenvorrichtung eine Tabelle mit verbundenen Zubehörvorrichtungen führt, wie Tabelle 820 von 8, kann die Anwendung die Tabelle abfragen mithilfe des Namens eines gewünschten Anwendungsprotokolls, um zu bestimmen, ob eine kompatible Zubehörvorrichtung verbunden ist. Diese Abfrage kann zum Beispiel das Aufrufen eines API-Funktionsaufrufes beinhalten zum Kommunizieren mit einer Unterstützungsschicht (zum Beispiel Unterstützungsschicht 315 von 3).
-
Wenn, bei Block 1006, eine kompatible Zubehörvorrichtung nicht verbunden ist, kann die Anwendung bei Block 1008 für eine bestimmte Zeitdauer warten und es dann erneut versuchen. Zum Beispiel, wenn eine Zeitüberschreitung erreicht wird, endet der Prozess 1000 bei Block 1020. In einigen Ausführungsformen beim Warten bei Block 1008, kann die Anwendung eine Mitteilung an den Benutzer erzeugen, die den Benutzer auffordert, eine kompatible Zubehörvorrichtung zu verbinden. In einigen Ausführungsformen kann die Anwendung sich bei einem mobilen Rechenvorrichtungssystemdienst registrieren und eine Benachrichtigung erbeten, wenn eine kompatible Zubehörvorrichtung verfügbar wird, anstelle dem wiederholten Prüfen. In weiter anderen Ausführungsformen kann die Anwendung beendet werden, wenn eine kompatible Zubehörvorrichtung nicht verbunden wird, und kann den Benutzer darauf hinweisen, dass die Anwendung nicht laufen wird, bis eine kompatible Zubehörvorrichtung verbunden ist, oder dass die Anwendung mit reduzierter Funktionalität laufen kann.
-
Wenn eine kompatible Zubehörvorrichtung beim Block 1010 erfasst wird, kann die Anwendung eine Sitzung mit dieser Zubehörvorrichtung initiieren. Zum Beispiel kann die Zubehörvorrichtung einen API-Aufruf von Unterstützungsschicht 408 (siehe 4) oder eines Anwendungsmanagers (siehe 14) aufrufen, um eine Sitzung zu erzeugen, die mit einer bestimmten Zubehörvorrichtung und Anwendungsprotokoll (zum Beispiel Sitzung 406 von 4) assoziiert ist. Die Sitzung, die in 10 durch Block 1012 repräsentiert ist, kann unendlich fortdauern. Wie oben beschrieben, kann die Anwendung während der Sitzung Mitteilungen senden und/oder empfangen (zum Beispiel Steuersignale, Daten, Status und/oder andere Information) mithilfe des Anwendungsprotokolls, das mit der Sitzung assoziiert ist, und die Anwendung kann auch Mitteilungen senden und/oder empfangen mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls, in dem Umfang, indem die gewünschte Funktionalität innerhalb des Zubehörvorrichtungs-Kommunikationsprotokolls unterstützt wird.
-
Eine Sitzung kann schlussendlich enden. Zum Beispiel kann die Anwendung bei Block 1014 bestimmen, das die Sitzung enden sollte (zum Beispiel in Antwort auf eine Benutzeranweisung, wie das Beenden der Anwendung oder dem Hinweisen, dass die Zubehörvorrichtung nicht länger zu verwenden ist) und kann die Sitzung bei Block 1016 beenden in Antwort auf solch ein Bestimmen. Als ein anderes Beispiel kann die Anwendung bei Block 1018 darauf hingewiesen werden, dass die Zubehörvorrichtung getrennt worden ist; dies kann auch in der Sitzungsbeendigung bei Block 1016 resultieren. Die Sitzungsbeendigung bei Block 1016 kann umfassen, zum Beispiel das Aufrufen eines API-Aufrufs, um das Sitzungsobjekt zu zerstören oder zu schließen und zugeordnete Ressourcen freizugeben. Zum Beispiel, in Ausführungsformen, in denen nur eine Sitzung zu einer Zeit erlaubt ist für eine gegebene Kombination von Zubehörvorrichtung und Anwendungsprotokoll kann die Sitzungsbeendigung der mobilen Rechenvorrichtung signalisieren, dass die Zubehörvorrichtung und ihr Protokoll jetzt frei sind zur Verwendung in einer anderen Sitzung, zum Beispiel mit einer anderen Anwendung. In einigen Ausführungsformen kann die Beendigung der Sitzung in dem Trennen der Zubehörvorrichtung resultieren (zum Beispiel, die mobile Rechenvorrichtung kann den Anschluss schließen); in anderen Ausführungsformen kann die Zubehörvorrichtung verbunden bleiben, nachdem die Sitzung endet; und in weiter anderen Ausführungsformen kann die Anwendung die mobile Rechenvorrichtungssystemdienste anweisen, dass die Zubehörvorrichtung zu trennen ist, wenn die Sitzung endet.
-
Sobald die Sitzung endet, kann der Prozess 1000 enden. In einigen Ausführungsformen, wenn die Anwendung noch ausgeführt wird, nach dem Sitzungsbeendigungsprozess, kann 1000 wieder zum Block 1004 zurückkehren, um nach einer kompatiblen Zubehörvorrichtung zu suchen und eine neue Sitzung zu starten. Es wird verstanden werden, dass das hierin beschriebene Zubehörvorrichtungskommunikationsprotokoll beispielhaft ist, und dass Variationen und Modifikationen möglich sind. Handlungen, die als sequenziell beschrieben sind, können parallel ausgeführt werden, die Reihenfolge von Handlungen kann modifiziert werden und/oder Handlungen können hinzugefügt, weggelassen oder kombiniert werden.
-
In einigen Ausführungsformen kann eine mobile Rechenvorrichtung gleichzeitige Verbindungen zu mehreren Zubehörvorrichtungen und/oder die gleichzeitige Ausführung von mehreren Anwendungen unterstützen. Damit kann eine einzelne Anwendung gleichzeitig mit mehreren Zubehörvorrichtungen interagieren, oder eine einzelne Zubehörvorrichtung kann gleichzeitig mit mehreren Anwendungen interagieren.
-
Zum Beispiel zeigt 11 eine Anwendung 1100 auf der mobilen Rechenvorrichtung 1102, die gleichzeitig mit einer Zubehörvorrichtung A 1106 und Zubehörvorrichtung B 1108 interagiert, gemäß einigen Ausführungsformen der Erfindung. Die Zubehörvorrichtungen A 1106 und Zubehörvorrichtung B 1108 können unterschiedliche Typen von Zubehörvorrichtungen sein, oder sie können ähnliche oder sogar identische Zubehörvorrichtungen sein. In diesem Beispiel wird jede Zubehörvorrichtung mit einem anderen Anschluss verbunden; d.h. die Zubehörvorrichtung A 1106 wird mit dem Anschluss 1110 verbunden und die Zubehörvorrichtung B 1106 wird mit dem Anschluss 1112 verbunden. Die Anwendung 1100 hat zwei Sitzungen 1114, 1116 erzeugt Die Sitzung 1112 ist mit der Zubehörvorrichtung 1104 assoziiert und verwendet ein Anwendungsprotokoll A1, wohingegen die Sitzung 1114 mit einer Zubehörvorrichtung A 1106 assoziiert ist und ein Anwendungsprotokoll B1 verwendet. Die Sitzungen 1112 und 1114 sind unabhängig voneinander; jede kann initiiert, verwendet und/oder beendet werden, ohne die andere zu beeinflussen. In einigen Ausführungsformen kann die Sitzung protokollspezifisch sein. Der Anschluss 1110 kann das Zubehörvorrichtungs-Kommunikationsprotokoll verwenden, um einen „Tunnel“ für Mitteilungen bereitzustellen, die dem Protokoll A1 entsprechen, zum Austausch zwischen der mobilen Rechenvorrichtung 1102 und der Zubehörvorrichtung 1106, und der Anschluss 1112 kann das (selbe) Zubehörvorrichtungs-Kommunikationsprotokoll verwenden, um ein separaten Tunnel für Mitteilungen bereitzustellen, die dem Protokoll B1 entsprechen, zum Weiterreichen zwischen der mobilen Rechenvorrichtung 1102 und der Zubehörvorrichtung 1108. Es wird verstanden, dass die Anwendungsprotokolle A1 und B1 unterschiedliche Protokolle sein können oder dasselbe Protokoll, falls gewünscht. Weiterhin, während zwei Zubehörvorrichtungen und zwei Sitzungen gezeigt sind, kann jede Anzahl von Zubehörvorrichtungen und Sitzungen mit einer bestimmten Anwendung verbunden werden, in der hierin beschriebenen Weise, nur vorausgesetzt, dass ausreichende Hardware- und/oder Softwareressourcen (zum Beispiel Anschlüsse und/oder Sitzungen) auf der mobilen Rechenvorrichtung verfügbar sind.
-
12 zeigt zwei Anwendungen; Anwendung 1 1200 und Anwendung 2 1202, die auf der mobilen Rechenvorrichtung 1204 ausgeführt werden und gleichzeitig mit der Zubehörvorrichtung A 1206 und Zubehörvorrichtung B 1208 interagieren, gemäß einigen Ausführungsformen der Erfindung. Die Zubehörvorrichtungen A 1206 und B 1208 können unterschiedliche Typen von Zubehörvorrichtungen sein, oder sie können gleiche oder sogar identische Zubehörvorrichtungen sein. In diesem Beispiel wird jede Zubehörvorrichtung an einen anderen Anschluss verbunden; d.h. die Zubehörvorrichtung A 1206 wird mit dem Anschluss 1210 verbunden und die Zubehörvorrichtung B 1208 wird mit dem Anschluss 1212 verbunden. Die Anwendung 1 1200 hat eine Sitzung 1214 erzeugt, die mit der Zubehörvorrichtung A 1206 und Anwendungsprotokoll A1 assoziiert ist, und die Anwendung 2 1202 hat eine Sitzung 1216 erzeugt, die mit der Zubehörvorrichtung B 1208 und dem Anwendungsprotokoll B1 assoziiert ist. Die Sitzungen 1212 und 1214 sind voneinander unabhängig; jede kann initiiert, verwendet und/oder beendet werden, ohne die andere zu beeinflussen. Der Anschluss 1210 kann das Zubehörvorrichtungs-Kommunikationsprotokoll verwenden, um einen Tunnel für Mitteilungen bereitzustellen, die dem Anwendungsprotokoll A1 entsprechen, zum Weiterreichen zwischen der mobilen Rechenvorrichtung 1204 und der Zubehörvorrichtung 1106, und der Anschluss 1212 kann das (selbe) Zubehörvorrichtungs-Kommunikationsprotokoll verwenden, um einen separaten Tunnel für Mitteilungen bereitzustellen, die dem Anwendungsprotokoll B1 entsprechen zum Weiterreichen zwischen der mobilen Rechenvorrichtung 1204 und der Zubehörvorrichtung 1208. Wie bei 11 wird es verstanden werden, dass die Anwendungsprotokolle A1 und B1 unterschiedliche Protokolle oder dasselbe Protokoll sein können, falls gewünscht. Weiterhin, während zwei Zubehörvorrichtungen, zwei Anwendungen und zwei Sitzungen gezeigt werden, kann jede Anzahl von Zubehörvorrichtungen, Sitzungen und/oder Anwendungen gleichzeitig in der hierin beschriebenen Weise unterstützt werden, nur vorausgesetzt, das ausreichende Hardware und/oder Softwareressourcen (zum Beispiel Anschlüsse und/oder Sitzungen) auf der mobilen Rechenvorrichtung verfügbar sind.
-
13 zeigt zwei Anwendungen, Anwendung 1 1300 und Anwendung 2 1302, die auf der mobilen Rechenvorrichtung 1304 ausgeführt werden und gleichzeitig mit einer Zubehörvorrichtung 1306 interagieren, gemäß einigen Ausführungsformen der Erfindung. In diesem Beispiel unterstützt die Zubehörvorrichtung 1306 zwei verschiedene Anwendungsprotokolle (A1 und A2). Die Protokolle A1 und A2 können sich nur vom Namen her unterscheiden oder sie können zwei unterschiedliche und potenziell inkompatible Protokolle sein. Die Zubehörvorrichtung 1306 ist mit der mobilen Rechenvorrichtung 1304 auf dem Anschluss 1310 verbunden, welcher mit dem Protokoll A1 assoziiert ist und ist auch mit der mobilen Rechenvorrichtung 1304 auf dem Anschluss 1312 verbunden, welcher mit dem Protokoll A2 assoziiert ist. Die Anwendung 1 1300 hat eine Sitzung 1314 erzeugt, die mit der Zubehörvorrichtung 1306 und dem Anwendungsprotokoll A1 assoziiert ist und kann damit mit der Zubehörvorrichtung 1306 über den Anschluss 1310 kommunizieren. Auf ähnliche Weise hat die Anwendung 2 1302 eine Sitzung 1316 erzeugt, die mit der Zubehörvorrichtung 1306 und dem Anwendungsprotokoll A2 assoziiert ist, und kann dann deshalb mit der Zubehörvorrichtung 1306 über den Anschluss 1312 kommunizieren. Die Sitzungen 1312 und 1314 sind voneinander unabhängig; jede kann initiiert, verwendet und/oder beendet werden, ohne die andere zu beeinflussen. Der Anschluss 1310 kann das Zubehörvorrichtungs-Kommunikationsprotokoll verwenden, um einen Tunnel für Mitteilungen bereitzustellen, die dem Anwendungsprotokoll A1 entsprechen, zum Austausch zwischen der mobilen Rechenvorrichtung 1304 und der Zubehörvorrichtung 1306, und der Anschluss 1312 kann (dasselbe) Zubehörvorrichtungs-Kommunikationsprotokoll verwenden, um einen separaten Tunnel für Mitteilungen bereitzustellen, die dem Anwendungsprotokoll A2 entsprechen, zum Weiterreichen zwischen der mobilen Rechenvorrichtung 1304 und der Zubehörvorrichtung 1306. Während zwei Anwendungen und zwei Sitzungen gezeigt wird, kann jede Anzahl von Zubehörvorrichtungen, Sitzungen und/oder Anwendungen gleichzeitig mit derselben Zubehörvorrichtung in der hierin beschriebenen Weise verbunden werden, nur vorausgesetzt, dass ausreichende Hardware-und/oder Softwareressourcen (zum Beispiel Anschlüsse und/oder Sitzungen) auf der mobilen Rechenvorrichtung verfügbar sind.
-
Es wird verstanden werden, dass die Systemkonfigurationen von 11 bis 13 lediglich beispielhaft sind, und das Variationen und Modifikationen möglich sind. Zum Beispiel kann jede Anzahl von Anwendungen und jede Anzahl von Zubehörvorrichtungen verbunden werden mithilfe irgendeiner Anzahl von Sitzungen und Anschlüssen. Wie oben beschrieben, kann die Sitzung eine Softwareeinheit sein, die die Details der physikalischen Verbindungen (zum Beispiel Anschlüsse und ähnliches) vor der Anwendung versteckt. Damit muss die Anwendung nicht wissen, zu welchem Anschluss eine kompatible Zubehörvorrichtung verbunden ist, um mit ihr zu kommunizieren. Weiterhin kann der Kommunikationspfad auch andere Zwischenschichten umfassen (zum Beispiel einen Protokoll-Manager und/oder eine Protokoll-Dämon-Schicht, wie unten beschrieben).
-
Ein Anwendungsmanager kann verwendet werden, um eine Kommunikationsverbindung zwischen einer Anwendung und einem Kommunikations-Port zu abstrahieren, um die Details eines Kommunikationsprotokolls für die Anwendungsprogramme transparent zu machen. In einigen Ausführungsformen, wenn eine Kommunikationsverbindung abstrahiert wird, kann das Anwendungsprogramm mit einer Zubehörvorrichtung kommunizieren, durch das Schreiben von Daten in einen Ausgabestrom und das Lesen von Daten von einem Eingangsstrom, ohne irgendwelche Details der Zubehörvorrichtung zu kennen, mit der sie kommuniziert. Dies kann mit einem Anwendungsmanager ausgeführt werden.
-
In einigen Ausführungsformen kann ein Anwendungsmanager Teile von der Unterstützungsschicht 408 oder dem Protokoll-Manager 410, der in 4 gezeigt ist, umfassen oder durch diese implementiert sein. Die 14 zeigt ein Beispiel solch einer Abstrahierung. Die Figur zeigt den Fluss von Daten zwischen der Anwendungsschicht 1402, dem Anwendungsmanager 1404 und der Hardware-Transportschicht 1406 einer mobilen Rechenvorrichtung, gemäß einigen Ausführungsformen der Erfindung. Die Anwendungsschicht 1402 kann jede Art von Prozess sein, die auf der mobilen Rechenvorrichtung läuft. Die Hardware-Transportschicht 1402 kann jeden Typ von Hardware-Schnittstelle oder Software-Schnittstelle zwischen der mobilen Rechenvorrichtung und der Zubehörvorrichtung umfassen. Der Anwendungsmanager 1404 kann eine Kommunikationsschnittstelle zwischen den Zubehörvorrichtungen durch die Hardware-Transportschicht 1406 und durch die Anwendungsschicht 1402 bereitstellen. Dadurch kann die Kommunikation so abstrahiert werden, dass die Anwendung 1402 nicht die Details der Zubehörvorrichtung kennt, mit der sie kommuniziert, oder die Details des Anschlusses, mit dem die Zubehörvorrichtung gekoppelt ist. Der Anwendungsmanager 1404 kann ein Hintergrund-Prozess sein, der Teil des Betriebssystems der mobilen Rechenvorrichtung ist oder ein anderer Hintergrundprozess, der auf der mobilen Rechenvorrichtung ausgeführt wird. Der Anwendungsmanager 1404 kann Eingabe- und Ausgabeströme an eine Anwendung bereitstellen, die verwendet werden können, um mit einer Zubehörvorrichtung zu kommunizieren.
-
In einigen Ausführungsformen kann der Anwendungsmanager 1404 verbundene Zubehörvorrichtungen verwalten, die mit der mobilen Rechenvorrichtung gekoppelt sind, und auf die durch die Hardwaretransportschicht 1406 zugegriffen werden kann. Der Anwendungsmanager 1404 kann auch Zubehörvorrichtungs-Kommunikationsmerkmale von Anwendungen verwalten, die auf der mobilen Rechenvorrichtung ausgeführt werden oder installiert sind. In beiden Fällen kann der Anwendungsmanager 1404 Anwendungsprotokoll-Information speichern, die mit Zubehörvorrichtungen und/oder Anwendungen assoziiert sind. Die 15 bis 18 zeigen verschiedene Prozesse, die implementiert werden können, um Sitzungen zu etablieren und Kommunikation zwischen einer Anwendung und einer Zubehörvorrichtung bereitzustellen mithilfe des Anwendungsmanagers.
-
15 ist ein Flussdiagramm des Prozesses 1500, der durch einen Anwendungsmanager auf einer mobilen Rechenvorrichtung ausgeführt werden kann, um eine Sitzung zu erstellen und zu verwalten, gemäß einigen Ausführungsformen der Erfindung. Der Prozess 1500 kann bei Block 1502 beginnen. Bei Block 1504 überwacht der Anwendungsmanager die Kommunikationsanschlüsse, um zu bestimmen, ob eine Zubehörvorrichtung verbunden wurde (d.h. in Kommunikation ist) mit der mobilen Rechenvorrichtung. In einigen Ausführungsformen kann der Anwendungsmanager den Hardware-Zustand eines physikalischen Verbinders überwachen, um zu bestimmen, ob eine Zubehörvorrichtung mit der mobilen Rechenvorrichtung gekoppelt wird. In einigen Ausführungsformen kann der Anwendungsmanager einen Hinweis von einem WiFi- oder Bluetooth-Modul empfangen, der anzeigt, dass eine drahtlose Verbindung hergestellt worden ist. Unabhängig von dem Typ des Anschlusses kann der Anwendungsmanager bestimmen, ob ein Kommunikationskanal mit der Zubehörvorrichtung hergestellt worden ist. Bei Block 1506 fährt der Prozess 1500 fort zu überwachen, ob eine Zubehörvorrichtung mit der mobilen Rechenvorrichtung gekoppelt wird.
-
Sobald ein Kommunikationskanal hergestellt worden ist, wie bei Block 1506 bestimmt, kann der Prozess 1500 dann Authentifizierungsprozesse bei Block 1508 ausführen. Die Authentifizierung kann durch das Senden verschiedener Mitteilungen zwischen der mobilen Rechenvorrichtung und der Zubehörvorrichtung fortfahren mithilfe des Zubehörvorrichtungs-Protokolls. Sobald die Zubehörvorrichtung authentifiziert ist, und ihr die Erlaubnis gegeben ist, mit der mobilen Rechenvorrichtung zu kommunizieren, kann die Zubehörvorrichtungsfähigkeitsinformation bei Block 1510 empfangen werden. Die Fähigkeitsinformation kann Information umfassen, die ein oder mehrere Anwendungsprotokolle anzeigt, mit welchen die Zubehörvorrichtung kompatibel ist. Die Anwendungsprotokolle können angezeigt werden mithilfe zum Beispiel einer umgekehrten-Domänen-Namenkonvention, wie oben beschrieben, oder irgendeiner anderen Konvention, um das Anwendungsprotokoll anzuzeigen. Einige oder alle der Informationen können im Speicher bei der mobilen Rechenvorrichtung bei Block 1512 gespeichert werden. Insbesondere können die Anwendungsprotokolle in einer Nachschlag-Tabelle gespeichert werden (zum Beispiel die Protokoll-Tabelle für verbundene Anwendungen 820 von 8), die Anwendungsprotokolle mit dem Kommunikationsanschluss assoziiert, an den die Zubehörvorrichtung gekoppelt ist.
-
Bei Block 1514 kann der Anwendungsmanager bestimmen, ob Kommunikation zwischen der Zubehörvorrichtung und der mobilen Rechenvorrichtung oder einer Anwendung erlaubt wird, die auf der mobilen Rechenvorrichtung ausgeführt wird, mithilfe eines Anwendungsprotokolls, das durch die Zubehörvorrichtung unterstützt wird. In einigen Ausführungsformen kann die Kommunikation erlaubt werden, wenn eine Anwendung (oder anderer Prozess) auf der mobilen Rechenvorrichtung ausgeführt wird, der ein Anwendungsprotokoll unterstützt, das durch die Zubehörvorrichtung unterstützt wird. Zum Beispiel kann der Anwendungsmanager Anwendungsprotokolle vergleichen, die durch Anwendungen unterstützt werden, die auf der mobilen Rechenvorrichtung ausgeführt werden, mit Anwendungsprotokollen, die in der Nachschlag-Tabelle gespeichert sind. Die Kommunikation zwischen der Zubehörvorrichtung und Anwendung kann mithilfe des Anwendungsprotokolls geschehen. In einigen Ausführungsformen kann eine Anwendungsprotokoll-Mitteilung getunnelt werden, oder in eine Zubehörvorrichtungsprotokoll-Mitteilung miteingebettet werden (zum Beispiel durch das Einhüllen der Anwendungsprotokoll-Mitteilung in eine Zubehörvorrichtungsprotokoll-Mitteilung). Solange wie die Zubehörvorrichtung nicht von der mobilen Rechenvorrichtung bei Block 1516 getrennt wird, und/oder die Ausführung der Anwendung bei Block 1518 beendet wird, kann die Kommunikation fortfahren. Ansonsten können Anwendungsprotokolle, in einigen Ausführungsformen, die in der Nachschlagtabelle gespeichert sind, bei Block 1520 entfernt werden, und der Prozess 1500 kann bei Block 1522 enden.
-
16 ist ein anderes Flussdiagramm eines Prozesses, der durch einen Anwendungsmanager auf der mobilen Rechenvorrichtung ausgeführt werden kann, um die Kommunikation zwischen einer Zubehörvorrichtung und einer Anwendung zu koordinieren, die auf der mobilen Rechenvorrichtung ausgeführt wird, gemäß einigen Ausführungsformen der Erfindung. Der Prozess 1600 kann bei Block 1605 beginnen. Bei Block 1610 kann der Anwendungsmanager eine Anfrage für Zubehörvorrichtungsinformation von einer Anwendung erhalten, die auf der mobilen Rechenvorrichtung ausgeführt wird. Wenn eine Zubehörvorrichtung nicht bei Block 1615 angeschlossen ist, kann eine Mitteilung an die Anwendung gesendet werden, die dies anzeigt, und der Prozess 1600 kann zu Block 1610 zurückkehren und warten, bis eine Zubehörvorrichtung mit der MCD gekoppelt ist, oder der Prozess 1600 kann in einigen Ausführungsformen enden. Wenn eine Zubehörvorrichtung mit der mobilen Rechenvorrichtung gekoppelt ist, dann kann der Anwendungsmanager die Anwendung mit Zubehörvorrichtungsinformation versorgen, die einen Hinweis einschließt, auf jedes Anwendungsprotokoll, das von jeder Zubehörvorrichtung unterstützt wird, die mit der mobilen Rechenvorrichtung bei Block 1620 gekoppelt ist. Der Anwendungsmanager kann eine beliebige oder alle der Anwendungsprotokoll-Informationen senden, was die Anwendungsprotokolle einschließt, die durch die Zubehörvorrichtung unterstützt werden, als Metadaten, zum Beispiel mithilfe der umgekehrten-Domänen-Namenkonvention. Jedes Anwendungsprotokoll kann mit einem Anwendungsprotokoll-Identifizier assoziiert sein. In einigen Ausführungsformen kann die Anwendung Anwendungsprotokolldaten an den Anwendungsmanager senden, anstelle des Abfragens von Zubehörvorrichtungsinformation. Und der Anwendungsmanager kann ein Anwendungsprotokoll von einer Nachschlagtabelle auswählen (zum Beispiel die Protokoll-Tabelle 820 für verbundene Anwendungen), das mit den Anwendungsprotokoll-Daten kompatibel ist, die von der Anwendung gesendet werden, falls eine existiert.
-
Bei Block 1625 kann die Anwendung eine Kommunikationssitzung für ein Anwendungsprotokoll öffnen und das Protokoll an den Anwendungsmanager anzeigen; zum Beispiel mithilfe des Anwendungsprotokolls-Identifizierers. Dadurch kann die Anwendung eine Anfrage tätigen, ohne irgendetwas über die Zubehörvorrichtung oder den Anschluss zu spezifizieren. In Antwort auf das Öffnen der Kommunikationssitzung kann der Anwendungsmanager einen Ausgabestrom und ein Eingabestrom bereitstellen, der mit der Sitzung assoziiert ist, an die Anwendung bei Block 1630. In einigen Ausführungsformen wird die Kommunikationssitzung für ein bestimmtes Protokoll geöffnet, das mit einer bestimmten Zubehörvorrichtung assoziiert ist. Auf diese Weise können mehrere Sitzungen erzeugt werden mithilfe mehrerer Protokolle zur Kommunikation mit einer oder mehreren Zubehörvorrichtungen.
-
Bei Block 1635 kann der Anwendungsmanager eine Anwendungsprotokoll-Mitteilung von der Anwendung empfangen mithilfe des Anwendungsprotokolls, das mit der Kommunikationssitzung assoziiert ist. Die Anwendungsprotokoll-Mitteilung kann an dem Anwendungsmanager empfangen werden mithilfe des Ausgabestroms, der bei Block 1630 bereitgestellt wird. Der Anwendungsmanager kann die Anwendungsprotokollnachricht einpacken mit einem Zubehörvorrichtungs-Protokoll-Einpacker (wrapper) bei Block 1640. In einigen Ausführungsformen kann dieses Einpacken das Einbetten der Anwendungsprotokoll-Mitteilung in einer Zubehörvorrichtungs-Protokoll-Mitteilung umfassen (zum Beispiel, wie in 5a, 5b und 5c gezeigt). In einigen Ausführungsformen kann dieses Einpacken die Anwendungsprotokoll-Mitteilung tunneln mithilfe des Zubehörvorrichtungs-Protokolls. Bei Block 1645 kann die eingepackte Anwendungsprotokoll-Mitteilung an die Zubehörvorrichtung gesendet werden. Der Prozess 1600 kann dann zu Block 1650 fortschreiten. Zurückkehrend zu Block 1635, wenn der Anwendungsmanager eine Anwendungsprotokoll-Mitteilung bei Block 1635 nicht empfängt, kann der Prozess 1600 dann zu Block 1650 fortschreiten. Bei Block 1650 kann der Anwendungsmanager eine Zubehörvorrichtungsprotokoll-Mitteilung von der Zubehörvorrichtung empfangen. Die Zubehörvorrichtungsprotokoll-Mitteilung kann eine Anwendungsprotokoll-Mitteilung umfassen, die in eine Zubehörvorrichtungsprotokoll-Mitteilung eingepackt ist. Bei Block 1655 kann der Zubehörvorrichtungsprotokoll-Einpacker von der Anwendungsprotokoll-Mitteilung abgestreift werden; und die Anwendungsprotokoll-Mitteilung kann an die Anwendung bei Block 1660 gesendet werden.
-
Wenn entweder die Zubehörvorrichtung von der mobilen Rechenvorrichtung 1670 getrennt wird oder die Anwendung aufhört auf der mobilen Rechenvorrichtung 1665 ausgeführt zu werden, dann kann der Prozess 600 bei Block 1675 enden. Ansonsten kehrt der Prozess zu Block 1635 zurück.
-
Ein Prozess, der an einer Zubehörvorrichtung ausgeführt werden kann, die mit einer mobilen Rechenvorrichtung gekoppelt ist, wird in 17 gezeigt. Der Prozess 1700 kann bei Block 1712 starten, wenn eine Zubehörvorrichtung mit der mobilen Rechenvorrichtung verbunden wird. Bei Block 1704 kann die Zubehörvorrichtung eine Mitteilung an die mobile Rechenvorrichtung senden, die die Anwendungsprotokolle anzeigt, die von der Zubehörvorrichtung unterstützt werden. Diese Mitteilung kann Teil der Zubehörvorrichtungsfähigkeiten sein, die mit Bezug auf Block 1510 von 15 beschrieben werden. Diese Mitteilung kann in Übereinstimmung mit dem Zubehörvorrichtungsprotokoll gesendet werden. Die Zubehörvorrichtung kann die Anwendungsprotokolle anzeigen, mithilfe einer umgekehrten-Domänen-Namenkonvention (zum Beispiel wie oben beschrieben). Wenn eine Kommunikationssitzung mit dem Anwendungsmanager hergestellt wurde, bei Block 1706, kann die mobile Rechenvorrichtung der Zubehörvorrichtung eine Mitteilung senden mithilfe des Zubehörvorrichtungs-Protokolls, die anzeigt, dass eine Kommunikationssitzung erzeugt wurde. Die Mitteilung, oder eine nachfolgende Mitteilung, kann das Anwendungsprotokoll anzeigen, das verwendet wurde, um die Sitzung zu erzeugen, wie in Block 1708 angezeigt. In einigen Ausführungsformen kann, bei Block 1708 eine Sitzungsidee kommuniziert werden, anstelle von oder zusätzlich zu dem Anwendungsprotokoll. Bei Block 1710 kann eine Empfangsbestätigungsmitteilung an die mobile Rechenvorrichtung von der Zubehörvorrichtung gesendet werden, mithilfe des Zubehörvorrichtungs-Protokolls vor dem Kommunizieren mit der mobilen Rechenvorrichtung mithilfe des Anwendungsprotokolls bei Block 1712. Der Prozess 1700 kann bei Block 1714 enden. Der Prozess 1700 kann zum Beispiel enden, wenn die Anwendung durch den Benutzer oder das Betriebssystem geschlossen wird, wenn die Anwendung oder das Betriebssystem die Sitzung schließt, und/oder wenn die Zubehörvorrichtung getrennt wird.
-
18 ist ein Flussdiagramm eines Prozesses 1800, der durch eine Anwendung auf einer mobilen Rechenvorrichtung ausgeführt wird, um eine Kommunikation mit einer Zubehörvorrichtung zu öffnen, gemäß einigen Ausführungsformen der Erfindung. Der Prozess 1800 kann bei Block 1805 beginnen. Bei Block 1810 kann die Anwendung Information über die verbundenen Zubehörvorrichtungen von dem Anwendungsmanager abfragen. Der Anwendungsmanager kann antworten durch das Senden von Zubehörvorrichtungsinformation an die Anwendung, welche durch die Anwendung bei Block 1815 empfangen werden kann. Eine Antwort von dem Anwendungsmanager kann bei Block 1815 empfangen werden, die Zubehörvorrichtungsinformation umfasst. Die Zubehörvorrichtungsinformation kann Information umfassen, die Zubehörvorrichtungen anzeigt, die mit der mobilen Rechenvorrichtung gekoppelt sind, das (die) Anwendungsprotokoll(e), die mit der Zubehörvorrichtung kompatibel sind, und/oder Identifizierer, die mit dem (den) Anwendungsprotokoll(en) assoziiert sind. In einigen Ausführungsformen kann der Zubehörvorrichtungsmanager die Anwendung zu dem Speicherort leiten, wo eine Liste oder Tabelle der verbundenen Anwendungsprotokolle lokalisiert sein kann.
-
Bei Block 1820 kann die Anwendung (oder die mobile Vorrichtung) bestimmen, ob irgendeins der Anwendungsprotokolle oder ein einzelnes Anwendungsprotokoll, das mit der verbundenen Zubehörvorrichtung kompatibel ist, einem Anwendungsprotokoll entspricht, das mit der Anwendung kompatibel ist. Wenn eine Übereinstimmung gefunden wird, fahrt der Prozess 1800 mit Block 1835 fort. Wenn es keine Übereinstimmungen gibt, kann nach einer Anwendung gesucht werden, die mit einem Anwendungsprotokoll kompatibel ist, das mit der Zubehörvorrichtung assoziiert ist, im Internet (zum Beispiel bei einem Online-Anwendungsladen) oder auf der mobilen Rechenvorrichtung bei Block 1825. In einigen Ausführungsformen kann die Zubehörvorrichtungsinformation Information umfassen, die eine bevorzugte Anwendung zur Verwendung mit der Zubehörvorrichtung anzeigt. In einigen Ausführungsformen kann eine Anwendung heruntergeladen und ausgeführt werden, auf der mobilen Rechenvorrichtung bei Block 1830, und der Prozess 1800 kann zu Block 1835 fortschreiten. In einigen Ausführungsformen kann ein Anwendungs-Add-on oder Patch von einer Netzwerkstelle heruntergeladen werden (zum Beispiel ein Online-Anwendungsladen), das Kompatibilität mit einem Anwendungsprotokoll bereitstellt, das mit der Zubehörvorrichtung auch kompatibel ist. Wenn eine neue Anwendung nicht heruntergeladen wird und keine kompatiblen Anwendungen gefunden werden, dann kann der Prozess 1800 bei Block 1865 enden.
-
In einigen Ausführungsformen, bei Block 1820, in dem Fall, dass keine kompatiblen Anwendungen gefunden werden oder auf der mobilen Rechenvorrichtung verfügbar sind, kann eine von drei Optionen ausgeführt werden. Erstens, der Benutzer wird gefragt, ob er nach einer kompatiblen Anwendung suchen und/oder herunterladen möchte von einer Netzwerkstelle oder einem Anwendungsladen. Der Prozess kann dann in Übereinstimmung mit der Auswahl des Benutzers fortfahren. Zweitens, die mobile Rechenvorrichtung kann eine kompatible Anwendung suchen und/oder herunterladen, ohne den Benutzer zu fragen. Drittens, die mobile Rechenvorrichtung kann den Benutzer weder fragen noch nach einer kompatiblen Anwendung suchen. In einigen Ausführungsformen kann die Zubehörvorrichtung eine Mitteilung senden, die anzeigt, welche der obigen drei Optionen durch die mobile Rechenvorrichtung verfolgt werden sollte. Diese Mitteilung kann vor dem Block 1810 oder 815 gesendet werden. In anderen Ausführungsformen kann ein System, das die mobile Rechenvorrichtung einstellt, durch den Benutzer eingestellt werden, durch das Anzeigen, welche der obigen Optionen für alle Zubehörvorrichtungen verfolgt werden sollte.
-
Bei Block 1835 kann die Anwendung eine Kommunikationssitzung öffnen, die an ein kompatibles Anwendungsprotokoll gebunden ist. Sobald eine Sitzung erzeugt ist, kann der Anwendungsmanager Eingabe- und Ausgabeströme an die Anwendung bei Block 1840 bereitstellen. Bei Block 1845 kann die Anwendung mit der Zubehörvorrichtung kommunizieren durch das Schreiben von Daten, die gemäß dem Anwendungsprotokoll formatiert sind, in den Ausgabestrom und durch Lesen von Anwendungsprotokolldaten von dem Eingabestrom.
-
Solange wie die Zubehörvorrichtung mit der mobilen Rechenvorrichtung gekoppelt ist, wie bei Block 1850 bestimmt, beendet die Anwendung nicht die Sitzung bei Block 1855, die Anwendung kann mit der Zubehörvorrichtung kommunizieren mithilfe der Eingabe-/Ausgabeströme, die durch den Anwendungsmanager bereitgestellt werden. Ansonsten kann die Sitzung bei Block 1860 beendet werden, und der Prozess 1800 kann bei Block 1855 enden.
-
In einigen Ausführungsformen der Erfindung, wenn eine Zubehörvorrichtung sich mit einer mobilen Rechenvorrichtung verbindet, kann die Zubehörvorrichtung Zubehörvorrichtungsinformation senden, die Metadaten enthält, die eine bevorzugte Anwendung spezifizieren. Diese Information kann zum Beispiel, während einer Identifizierungsphase gesendet werden, Authentifizierungsphase oder Fähigkeiten-Phase. In einigen Ausführungsformen, wenn die bevorzugte Anwendung nicht ausgeführt wird und in dem Speicher bei der mobilen Rechenvorrichtung gespeichert ist, kann die Anwendung automatisch gestartet werden. In einigen Ausführungsformen kann die mobile Rechenvorrichtung eine Notiz an den Benutzer bereitstellen, die fragt, ob der Benutzer die bevorzugte Anwendung starten möchte, und die Anwendung starten, wenn der Benutzer bestätigend antwortet.
-
In einigen Ausführungsformen, wenn irgendeine der bevorzugten Anwendungen (d.h. durch die Zubehörvorrichtung bevorzugte Anwendung) auf die mobile Rechenvorrichtung geladen wird, kann die mobile Rechenvorrichtung ein Icon hervorheben, das auf eine oder jede der bevorzugten Anwendungen bezogen ist, auf einem Heimbildschirm der Benutzerschnittstelle. Damit kann ein Benutzer einfach kompatible Anwendung zur Verwendung mit der Zubehörvorrichtung lokalisieren. Zum Beispiel, beim Hervorheben des Anwendungs-Icons, kann die mobile Rechenvorrichtung die Farbe oder die Schattierung des Icons ändern, schütteln oder das Icon vibrieren, das Icon vergrößern, die Gestalt des Icons verändern, das Bild des Icons verändern, etc. Jeder Aspekt des Icons kann verändert werden. In anderen Ausführungsformen der Erfindung, wenn die bevorzugte Anwendung nicht auf der mobilen Rechenvorrichtung gespeichert oder geladen ist, kann die mobile Rechenvorrichtung zu einer Netzwerkstelle geleitet werden, wie ein Anwendungsladen, um die bevorzugte Anwendung herunterzuladen. In einigen Ausführungsformen können Metadaten gespeichert werden und die bevorzugte Anwendung kann von einer Netzwerkstelle zu einer späteren Zeit heruntergeladen werden. Zum Beispiel kann die Anwendung heruntergeladen werden, wenn ein Benutzer einen Webbrowser oder Anwendungsladen an eine bestimmte Netzwerkstelle führt, wo die bevorzugte Anwendung heruntergeladen werden kann. Als ein anderes Beispiel kann die Anwendung heruntergeladen werden, wenn der Benutzer das geeignete Niveau von drahtloser Verbindung hat, um die bevorzugte Anwendung herunterzuladen. In einigen Ausführungsformen kann die bevorzugte Anwendung heruntergeladen werden, wenn die mobile Rechenvorrichtung mit einem Host-Computer verbunden ist.
-
Weiterhin, in einigen Ausführungsformen, können die Metadaten, die von der Zubehörvorrichtung an die mobile Rechenvorrichtung gesendet werden, auch einen Hinweis umfassen, der spezifiziert, wie sich zu verhalten ist, wenn die bevorzugte Anwendung nicht mit einer Anwendung übereinstimmt, die auf die mobile Rechenvorrichtung geladen ist. Dieser Hinweis kann Teil eines Befehls oder einer Mitteilung sein. Zum Beispiel kann die Zubehörvorrichtung spezifizieren, dass die bevorzugte Anwendung mit einer Anwendung auf der mobilen Rechenvorrichtung übereinstimmen muss, und dass die bevorzugte Anwendung heruntergeladen werden muss, um mit der Zubehörvorrichtung zu interagieren. Als ein anderes Beispiel kann die Zubehörvorrichtung eine bevorzugte Anwendung spezifizieren, aber wird mit jeder Anwendung mit einem kompatiblen Anwendungsprotokoll interagieren. In diesem Fall kann die mobile Rechenvorrichtung die bevorzugte Anwendung herunterladen, dies ist aber nicht notwendig. Weiterhin kann die mobile Rechenvorrichtung in einigen Fällen eine Rückmeldung von dem Benutzer erfragen, ob die bevorzugte Anwendung herunterzuladen ist oder eine kompatible Anwendung zu verwenden ist. Als ein weiteres Beispiel kann die Zubehörvorrichtung spezifizieren, dass die mobile Rechenvorrichtung niemals eine Anwendung von einer Netzwerkstelle oder einem Anwendungsladen herunterladen soll oder danach suchen soll. Weiterhin kann die Zubehörvorrichtung in einigen Situationen spezifizieren, dass der Benutzer niemals zu fragen ist, ob die Anwendung herunterzuladen ist. In diesem Szenario kann die Zubehörvorrichtung betrieben werden, ohne Interaktion mit einer Anwendung auf der mobilen Rechenvorrichtung.
-
In einer weiteren Ausführungsform der Erfindung kann eine Zubehörvorrichtung mit einer mobilen Rechenvorrichtung gekoppelt werden, und eine erste Anwendung kann auf der mobilen Rechenvorrichtung ausgeführt werden. Die erste Anwendung kann mit einem Anwendungsprotokoll assoziiert sein, das mit der Zubehörvorrichtung kompatibel sein kann oder nicht, und die Anwendung kann mit der Zubehörvorrichtung kommunizieren oder nicht. Die Zubehörvorrichtung kann einen Befehl an die mobile Rechenvorrichtung senden, der eine zweite Anwendung zur Ausführung spezifiziert. Dies kann in Antwort auf eine Interaktion mit einem Benutzer initiiert werden; zum Beispiel durch das Drücken eines Knopfes auf der Zubehörvorrichtung durch den Benutzer. Die mobile Rechenvorrichtung kann dann die zweite Anwendung in Antwort auf das Empfangen des Befehls ausführen. In einigen Ausführungsformen kann die erste Anwendung parallel mit der zweiten Anwendung laufen. In einigen Ausführungsformen kann die erste Anwendung geschlossen werden und die zweite Anwendung geladen werden. In einigen Ausführungsformen kann der Befehl die Anwendung durch eine serielle Nummer und/oder einen Namen anzeigen. In einigen Ausführungsformen kann der Befehl eine Netzwerkstelle spezifizieren, wo die Anwendung heruntergeladen und dann ausgeführt werden kann. Weiterhin kann in einigen Ausführungsformen die Zubehörvorrichtung anfragen, dass die zweite Anwendung ausgeführt wird, wenn keine Anwendung auf der mobilen Rechenvorrichtung ausgeführt wird, oder wenn das Betriebssystem auf der mobilen Rechenvorrichtung ausgeführt wird.
-
Obwohl diese Erfindung mit Bezug auf spezifische Ausführungsformen beschrieben worden ist, wird der Fachmann verstehen, dass verschiedene Modifikationen möglich sind. Zum Beispiel ist ein Anschluss in bestimmten hierin beschriebenen Ausführungsformen höchstens mit einem Anwendungsprotokoll zu einem Zeitpunkt assoziiert. In anderen Ausführungsformen können Kommunikationen mithilfe von verschiedenen Anwendungsprotokollen auf demselben Anschluss gemultiplext werden, und/oder Kommunikationen mit verschiedenen Anwendungen mithilfe desselben Anwendungsprotokolls können auf demselben Anschluss gemultiplext werden. In solchen Ausführungsformen können Protokollbefehle für mobile Rechenvorrichtungen, die zum Tunneln von Zubehörvorrichtungsprotokoll-Mitteilungen (in jeder Richtung) verwendet werden, einen Sitzungs- und/oder Anwendungsprotokoll-Identifizierer umfassen, um die richtige Handhabung der Zubehörvorrichtungsprotokoll-Mitteilungen zu ermöglichen. In einer solchen Ausführungsform, wenn eine Anwendung eine Sitzung erstellt, die mit einer bestimmten Zubehörvorrichtung und einem bestimmten Anwendungsprotokoll assoziiert ist, kann ein Identifizierer dieser Sitzung an die Zubehörvorrichtung bereitgestellt werden, mithilfe eines Befehls des Zubehörvorrichtungs-Kommunikationsprotokolls. Nachfolgend können Pakete des mobilen Rechenvorrichtungsprotokolls (zum Beispiel Tunnelbefehlspakete), die mit der Sitzung assoziiert sind, den Sitzungs-Identifizierer umfassen. Damit kann die Zubehörvorrichtung irgendwelche Zubehörvorrichtungsprotokoll-Mitteilungen, die sie senden oder empfangen kann, mit einer bestimmten Sitzung assoziieren, selbst wenn mehrere Sitzungen gleichzeitig im Vorgang sind und selbst wenn Kommunikationen, die sich auf verschiedene Sitzungen beziehen, auf denselben Anschluss gemultiplext werden. Die Zubehörvorrichtung kann dann separate Zustandsinformation für mehrere Sitzungen vorhalten, selbst wenn die Kommunikationen für mehrere Sitzungen auf einen einzelnen Anschluss gemultiplext werden. Ausführungsformen der Erfindung sind beschrieben worden, die ein Beispiel bereitstellen, wie ein Anwendungs-Kommunikationsprotokoll zur Kommunikation zwischen einer Anwendung und einer Zubehörvorrichtung verwendet werden können. In vielen Fällen kann die mobile Rechenvorrichtung unbeeindruckt bezüglich des Anwendungs-Kommunikationsprotokolls sein. Einige Ausführungsformen beschreiben Schemen, in denen die Zubehörvorrichtung und/oder die Anwendung Informationen kommunizieren, die das Anwendungs-Kommunikationsprotokoll spezifizieren. Verschiedene andere Techniken können verwendet werden, sodass die Zubehörvorrichtung und/oder die Anwendung wissen, welches Anwendungsprotokoll zu verwenden ist. Zum Beispiel kann die mobile Rechenvorrichtung eine Tabelle umfassen mit allen bekannten Anwendungsprotokollen. Die Zubehörvorrichtung und/oder Anwendung kann das Anwendungsprotokoll spezifizieren durch das Zeigen auf den Tabelleneintrag. Als ein anderes Beispiel kann die Anwendung Anwendungsprotokoll-Information von der Zubehörvorrichtung anfragen mithilfe irgendeiner Anzahl von Kommunikationsprotokollen. Als ein anderes Beispiel kann die Anwendung der Zubehörvorrichtung irgendwelche Protokolle spezifizieren, die durch die Anwendung unterstützt werden, und die Zubehörvorrichtung kann das zu verwendende Anwendungsprotokoll wählen. Als ein weiteres Beispiel kann eine Bit-Maske verwendet werden, wo vorbestimmte unterschiedliche Bit-Masken verwendet werden können, um verschiedene Anwendungsprotokolle zu spezifizieren. Verschiedene andere Mittel zum Identifizieren des Anwendungsprotokolls können auch verwendet werden.
-
Verschiedene andere Ausführungsformen werden auch offenbart. Zum Beispiel, ein Verfahren zum Kommunizieren zwischen einer Zubehörvorrichtung und einer Anwendung, die auf einer mobilen Rechenvorrichtung ausgeführt wird, wird offenbart, das die Zubehörvorrichtung betreibt. Das Verfahren kann ein Kommunizieren von Information umfassen, die zumindest ein Anwendungs-Kommunikationsprotokoll zu der mobilen Vorrichtung spezifiziert mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls; und/oder Kommunizieren mit einer Anwendung, die auf der mobilen Vorrichtung ausgeführt wird, mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann das Verfahren auch ein Kommunizieren mit einem Betriebssystem umfassen, das auf der mobilen Rechenvorrichtung ausgeführt wird, mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls.
-
In einigen Ausführungsformen kann ein Anwendungskommunikationsprotokoll-Paket innerhalb eines Zubehörvorrichtungs-Kommunikationsprotokoll-Pakets getunnelt werden. In einigen Ausführungsformen kann das Verfahren ein Empfangen von Anwendungs-Kommunikationsprotokoll-Befehlen von der Anwendung umfassen, die auf der mobilen Kommunikationsvorrichtung ausgeführt wird, und ein Ändern des Zustands der Zubehörvorrichtung in Antwort darauf. In einigen Ausführungsformen kann das Verfahren ein Senden von Daten an die Anwendung umfassen, die auf der mobilen Rechenvorrichtung ausgeführt wird, in Antwort auf einen Befehl von einer Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt wird, wobei die Daten gesendet werden können mithilfe des Anwendungs-Kommunikationsprotokolls und der Befehl kann mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls empfangen werden. In einigen Ausführungsformen kann die Information, die zumindest ein Anwendungs-Kommunikationsprotokoll spezifiziert, in einer umgekehrten Domänen-Namenkonvention bereitgestellt werden. In einigen Ausführungsformen kann das Verfahren ein Steuern einer Funktionalität der mobilen Rechenvorrichtung durch die Zubehörvorrichtung umfassen mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls.
-
Eine Zubehörvorrichtung wird offenbart, die ein Gehäuse umfassen kann; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet ist und dazu konfiguriert ist Befehle und Daten mit einer mobilen Rechenvorrichtung auszutauschen, wobei die Kommunikationsschnittstelle zumindest einen Anschluss aufweist; und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und kommunikativ mit der Kommunikationsschnittstelle gekoppelt ist. Die Steuerlogik kann dazu konfiguriert sein mit einem Betriebssystem zu kommunizieren, das auf der mobilen Rechenvorrichtung ausgeführt wird durch die Kommunikationsschnittstelle mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls. Die Steuerlogik kann dazu konfiguriert sein mit einer Anwendung zu kommunizieren, die auf der mobilen Rechenvorrichtung ausgeführt wird durch die Kommunikationsschnittstelle mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls.
-
In einigen Ausführungsformen kann die Steuerlogik auch dazu konfiguriert sein Information zu kommunizieren, die das Anwendungs-Kommunikationsprotokoll spezifiziert mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann die Steuerlogik auch dazu konfiguriert sein Information, die das Anwendungs-Kommunikationsprotokoll spezifiziert mithilfe eines Standard-Kommunikationsprotokolls, das anders ist als das Zubehörvorrichtungs-Kommunikationsprotokoll. In einigen Ausführungsformen kann die Anwendungs-Kommunikationsprotokoll-Information zu der mobilen Rechenvorrichtung kommuniziert werden mithilfe einer umgekehrten Domänen-Namenkonvention. In einigen Ausführungsformen kann die Kommunikationsschnittstelle eine drahtlose Kommunikationsschnittstelle umfassen.
-
Ein Verfahren zum Kommunizieren zwischen einer Zubehörvorrichtung und einer Anwendung, die auf einer mobilen Rechenvorrichtung ausgeführt wird, wobei das Verfahren auf der Zubehörvorrichtung betrieben wird. Das Verfahren kann ein Kommunizieren von Zubehörvorrichtungsinformation an die mobilen Rechenvorrichtung umfassen mithilfe eines Zubehörvorrichtungsinformations-Kommunikationsprotokolls; Empfangen von zumindest einem Sitzungs-Identifizierers, eines Anwendungsprotokoll-Identifizierers oder eines Befehls zum Öffnen einer Verbindung von einer mobilen Rechenvorrichtung; und/oder danach Kommunizieren mit der Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt wird, mithilfe eines Anwendungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann das Anwendungs-Kommunikationsprotokoll ein Protokoll sein, das mit der Anwendungsprotokoll-Zeichenfolge assoziiert ist, der zu der mobilen Rechenvorrichtung kommuniziert wurde. In einigen Ausführungsformen kann die Zubehörvorrichtungsinformation zumindest eines von einer Anwendungsprotokoll-Zeichenfolge, einem Anwendungsprotokoll-Index, der der Anwendungsprotokoll-Zeichenfolge entspricht, bevorzugte Anwendungsinformation oder Zubehörvorrichtungs-Kommunikationsprotokoll-Information umfassen. In einigen Ausführungsformen spezifiziert die bevorzugte Anwendungsinformation eine Anwendung, welche die Kommunikation unterstützt mithilfe eines Anwendungs-Kommunikationsprotokolls, das mit den Anwendungsprotokoll-Zeichenfolgen assoziiert ist, die zu der mobilen Rechenvorrichtung kommuniziert werden. In einigen Ausführungsformen kann das Kommunizieren das Steuern der Funktionalität der mobilen Rechenvorrichtung durch die Zubehörvorrichtung umfassen. In einigen Ausführungsformen kann die Anwendungs-Kommunikationsprotokoll-Zeichenkette in einer umgekehrten-Domänen-Namenkonvention sein.
-
Eine andere Zubehörvorrichtung ist auch offenbart. Die Zubehörvorrichtung kann ein Gehäuse umfassen; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet ist und/oder dazu konfiguriert ist, kommunikativ mit einer mobilen Rechenvorrichtung zu koppeln; Zubehörvorrichtungs-Hardware; und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und kommunikativ mit der Kommunikationsschnittstelle und der zubehörvorrichtungs-spezifischen Hardware gekoppelt ist. Die Steuerlogik kann dazu konfiguriert sein Anwendungs-Kommunikationsprotokoll-Informationen an eine mobile Rechenvorrichtung zu kommunizieren durch die Kommunikationsschnittstelle mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls. Die Steuerlogik kann dazu konfiguriert sein eine Kommunikationssitzung mit einer Anwendung herzustellen, die auf der mobilen Rechenvorrichtung ausgeführt wird, durch die Kommunikationsschnittstelle, wobei die Kommunikationssitzung das Anwendungskommunikationsprotokoll verwendet, um zwischen der Zubehörvorrichtung und der Anwendung zu kommunizieren, die auf der mobilen Rechenvorrichtung ausgeführt wird. Die Steuerlogik kann dazu konfiguriert sein Daten von der Anwendung zu empfangen, die auf der mobilen Rechenvorrichtung ausgeführt wird, mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. Die Steuerlogik kann dazu konfiguriert sein den Betrieb der Zubehörvorrichtungs-Hardware zu steuern, in Antwort auf die Daten, die von der Anwendung empfangen werden, die auf der mobilen Rechenvorrichtung ausgeführt wird.
-
In einigen Ausführungsformen kann die Kommunikationsschnittstelle eine drahtlose Kommunikationsschnittstelle umfassen. In einigen Ausführungsformen kann die Steuerlogik weiter dazu konfiguriert sein Hardwaredaten von der Zubehörvorrichtungshardware zu empfangen und/oder die Hardwaredaten zu der Anwendung zu senden, die auf der mobilen Rechenvorrichtung ausgeführt wird mithilfe des Anwendungskommunikationsprotokolls. In einigen Ausführungsformen kann die Zubehörvorrichtungshardware umfassen, und die Hardwaredaten können umfassen Daten, die mithilfe des Sensors gesammelt wurden. In einigen Ausführungsformen kann die Zubehörvorrichtungshardware eine Hardware-Schnittstelle mit einer elektrischen Vorrichtung umfassen und die Hardwaredaten können Daten umfassen, die von der elektrischen Vorrichtung empfangen werden durch die Hardware-Schnittstelle. In einigen Ausführungsformen kann die Zubehörvorrichtungshardware eine Hardware-Schnittstelle mit einer elektrischen Vorrichtung umfassen, und die Daten von der Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt werden, umfassen Daten zum Steuern der elektrischen Vorrichtung mithilfe einer Hardware-Schnittstelle. In einigen Ausführungsformen kann die Zubehörvorrichtungshardware eine Anzeige umfassen, und die Daten von der Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt werden, können anzeigbare Information umfassen.
-
Ein anderes Verfahren zum Kommunizieren zwischen einer Zubehörvorrichtung und einer Anwendung, die auf einer mobilen Vorrichtung ausgeführt wird, wird offenbart. Dieses Verfahren kann auf der mobilen Vorrichtung arbeiten. Das Verfahren kann ein Identifizieren einer Zubehörvorrichtung umfassen, wobei die Identifikation ein Zubehörvorrichtungs-Kommunikationsprotokoll verwendet; Empfangen von Information von der Zubehörvorrichtung, die ein Anwendungs-Kommunikationsprotokoll spezifiziert, wobei die Information empfangen wird mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls; Ausführen einer Anwendung auf der mobilen Rechenvorrichtung; und/oder Kommunizieren mit der Zubehörvorrichtung von der Anwendung mithilfe des Anwendungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann das Verfahren auch ein Bestimmen umfassen, ob ein Anwendungsprotokoll in einer Protokoll-Tabelle auf der mobilen Rechenvorrichtung gelistet werden kann, wobei die Protokoll-Tabelle Protokolle umfassen kann, die von Anwendungen auf der mobilen Rechenvorrichtung unterstützt werden.
-
In einigen Ausführungsformen kann das Verfahren ein Herunterladen einer Anwendung umfassen, die das Anwendungsprotokoll unterstützt, indem Fall, dass die Protokoll-Tabelle kein Anwendungsprotokoll umfasst. In einigen Ausführungsformen spezifiziert die Information von der Zubehörvorrichtung, die ein Anwendungsprotokoll spezifiziert, das eine Anwendungs-Kommunikationsprotokoll mithilfe der umgekehrten Domänen-Namenkonvention. In einigen Ausführungsformen kann die Information von der Zubehörvorrichtung, die das Anwendungs-Kommunikationsprotokoll spezifiziert, auch einen Identifizierer umfassen, der mit dem Anwendungs-Kommunikationsprotokoll assoziiert ist. In einigen Ausführungsformen kann die Kommunikation mit der Zubehörvorrichtung mithilfe des Anwendungs-Kommunikationsprotokolls weiter ein Einkapseln von Anwendungs-Kommunikationsprotokoll-Paketen in Zubehörvorrichtungs-Kommunikationsprotokoll-Pakete umfassen. In einigen Ausführungsformen kann das Anwendungs-Kommunikationsprotokoll Befehle umfassen, die innerhalb des Zubehörvorrichtungs-Kommunikationsprotokolls umfasst sind.
-
Eine mobile Rechenvorrichtung wird auch offenbart, die umfassen kann ein Gehäuse; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet sein kann und/oder dazu konfiguriert sein kann Befehle und Daten mit einer Zubehörvorrichtung auszutauschen, wobei die Kommunikationsschnittstelle zumindest einen Anschluss hat; Speicher, der innerhalb des Gehäuses angeordnet ist, und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und/oder kommunikativ mit dem Speicher und der Kommunikationsschnittstelle gekoppelt ist. Die Steuerlogik kann dazu konfiguriert sein einen Hinweis zu empfangen, der ein Anwendungs-Kommunikationsprotokoll spezifiziert, von einer Zubehörvorrichtung durch die Kommunikationsschnittstelle mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls. Die Steuerlogik kann dazu konfiguriert sein eine Anwendung auszuführen, die in dem Speicher gespeichert ist. Die Steuerlogik kann dazu konfiguriert sein eine Kommunikation zwischen der Zubehörvorrichtung und der Anwendung herzustellen, mithilfe des Anwendungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann zumindest ein Anschluss ein drahtgebundener oder drahtloser Anschluss sein. In einigen Ausführungsformen kann die Steuerlogik weiter dazu konfiguriert sein zu bestimmen, ob ein Anwendungs-Kommunikationsprotokoll, das durch die Anwendung spezifiziert ist, mit einem Anwendungs-Kommunikationsprotokoll assoziiert werden kann, das in dem Speicher gespeichert ist. In einigen Ausführungsformen kann die Steuerlogik dazu konfiguriert sein Anwendungs-Kommunikationsprotokolldaten an die Zubehörvorrichtung zu tunneln mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann die Steuerlogik weiter dazu konfiguriert sein ein Anwendungs-Kommunikationsprotokoll-Paket in ein Zubehörvorrichtungs-Kommunikationsprotokoll-Paket einzukapseln und das Zubehörvorrichtungs-Kommunikationsprotokoll-Paket an den Anschluss bereitzustellen.
-
Eine andere mobile Rechenvorrichtung wird offenbart, die ein Gehäuse umfassen kann; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet sein kann und/oder dazu konfiguriert sein kann Befehle und Daten mit einer Zubehörvorrichtung auszutauschen; Speicher, der innerhalb des Gehäuses angeordnet ist; und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und/oder kommunikativ mit dem Speicher und der Kommunikationsschnittstelle gekoppelt ist. Die Steuerlogik kann dazu konfiguriert sein Anwendungs-Kommunikationsprotokoll-Information von einer Zubehörvorrichtung zu empfangen durch die Kommunikationsschnittstelle, wobei die Anwendungs-Kommunikationsprotokoll-Information eine Identifikation eines Anwendungs-Kommunikationsprotokolls umfassen kann, das von der Zubehörvorrichtung unterstützt wird und/oder wobei die Anwendungs-Kommunikationsprotokoll-Information von der Zubehörvorrichtung empfangen werden kann mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls. Die Steuerlogik kann dazu konfiguriert sein eingekapselte Pakete zu erzeugen durch das Einkapseln von Anwendungs-Kommunikationsprotokoll-Paketen innerhalb von Zubehörvorrichtungs-Kommunikationsprotokoll-Pakten. Die Steuerlogik kann dazu konfiguriert sein die eingekapselten Pakete an die Zubehörvorrichtung zu senden über die Kommunikationsschnittstelle. In einigen Ausführungsformen kann die Kommunikationsschnittstelle eine drahtlose Kommunikationsschnittstelle sein. In einigen Ausführungsformen kann die mobile Rechenvorrichtung eine Protokoll-Tabelle umfassen, die in dem Speicher gespeichert ist, wobei die Protokoll-Tabelle eine Liste von Anwendungsprotokollen umfassen kann, die von den Anwendungen unterstützt werden, die auf der mobilen Rechenvorrichtung installiert sind.
-
Ein computerlesbares Medium wird offenbart, dass Programmanweisungen umfassen kann, die, wenn sie durch einen Prozessor auf einer mobilen Rechenvorrichtung ausführt werden, den Prozessor veranlassen ein Verfahren auszuführen. Dieses Verfahren kann ein Empfangen von Anwendungs-Kommunikationsprotokoll-Information von einer Zubehörvorrichtung umfassen mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls, Empfangen von Daten von der Zubehörvorrichtung mithilfe des Anwendungs-Kommunikationsprotokolls und/oder Manipulieren der Daten, die von der Zubehörvorrichtung empfangen werden. In einigen Ausführungsformen kann das Verfahren auch umfassen, anzeigen zumindest eines Teils der manipulierten Daten auf eine Anzeige der mobilen Rechenvorrichtung. In einigen Ausführungsformen kann das Verfahren auch das Steuern der Funktionalität der Zubehörvorrichtung umfassen durch das Senden von Befehlen an die Zubehörvorrichtung mithilfe des Anwendungs-Kommunikationsprotokolls.
-
Ein anderes Verfahren wird bereitgestellt zum Herstellen einer Kommunikationssitzung zwischen einer Zubehörvorrichtung und einer Anwendung, die auf einer mobilen Vorrichtung installiert ist. Das Verfahren kann auf der mobilen Vorrichtung betrieben werden und kann ein Vergleichen einer Liste von unterstützten Anwendungsprotokollen mit einer Liste von gesammelten Anwendungsprotokollen umfassen; in dem Fall, dass eine Übereinstimmung zwischen einem Anwendungsprotokoll in der unterstützten Anwendungsprotokoll-Liste und einem Anwendungsprotokoll in der gesammelten Anwendungsprotokoll-Liste gefunden wird, Kommunizieren von Information, die das übereinstimmende Anwendungsprotokoll spezifiziert, an die Zubehörvorrichtung; und/oder in dem Fall, dass keine Übereinstimmung zwischen einem Anwendungsprotokoll in der unterstützten Anwendungsprotokoll-Liste und einem Anwendungsprotokoll in der gesammelten Anwendungsprotokoll-Liste gefunden wird, Leiten eines Benutzers der mobilen Vorrichtung zu einem Anwendungsladen, wo eine Anwendung, die zumindest einem Anwendungsprotokoll innerhalb der gesammelten Anwendungsprotokoll-Liste assoziiert ist, verfügbar ist, herunterzuladen ist. In einigen Ausführungsformen kann die Liste von unterstützten Anwendungsprotokollen ein oder mehrere Kommunikationsprotokolle umfassen, die durch die Anwendung unterstützt werden und/oder die Liste von gesammelten Anwendungsprotokollen kann ein oder mehr Kommunikationsprotokolle umfassen, die von einer oder mehreren Zubehörvorrichtungen empfangen wurden, die mit der mobilen Rechenvorrichtung gekoppelt sind. In einigen Ausführungsformen, in dem Fall, dass eine Übereinstimmung zwischen einem Anwendungsprotokoll in der unterstützten Anwendungsprotokoll-Liste und einem Anwendungsprotokoll in der gesammelten Anwendungsprotokoll-Liste gefunden wird, anfragen einer Kommunikationssitzung mit der Zubehörvorrichtung. In einigen Ausführungsformen, in dem Fall, dass die Kommunikationsinformation, die das übereinstimmende Anwendungsprotokoll spezifiziert, einen Sitzungs-Identifizierer umfassen kann. In einigen Ausführungsformen, wenn eine Übereinstimmung zwischen einem Anwendungsprotokoll in der unterstützten Anwendungsprotokoll-Liste und einen Anwendungsprotokoll in der gesammelten Anwendungsprotokoll-Liste gefunden wird, kommunizieren mit der Zubehörvorrichtung mithilfe des übereinstimmenden Anwendungsprotokolls. In einigen Ausführungsformen kann der Anwendungsladen ein internetbasierter Anwendungsladen sein.
-
Ein computerlesbares Medium wird bereitgestellt, das Programmanweisungen umfasst, die, wenn sie durch einen Prozessor auf einer mobilen Vorrichtung ausgeführt werden, den Prozessor dazu veranlassen ein Verfahren auszuführen. Das Verfahren kann ein Bestimmen umfassen, ob ein unterstützter Anwendungsprotokoll-Identifizierer in einer unterstützten Protokoll-Liste mit einem Anwendungsprotokoll-Identifizier in einer gesammelten Protokoll-Liste übereinstimmt; und/oder in Antwort auf das Finden einer Übereinstimmung zwischen dem unterstützten Anwendungsprotokoll und einem Anwendungsprotokoll in der Liste von gesammelten Anwendungsprotokollen, Ausführen eines Unterverfahrens. Das Unterverfahren umfasst Initiieren einer Kommunikationssitzung zwischen der mobilen Rechenvorrichtung und einer Zubehörvorrichtung, die mit der mobilen Rechenvorrichtung gekoppelt ist; Kommunizieren an die Zubehörvorrichtung von Information, die das unterstützte Anwendungsprotokoll spezifiziert; und/oder Kommunizieren mit der Zubehörvorrichtung von der mobilen Rechenvorrichtung mithilfe des unterstützten Anwendungsprotokolls. In einigen Ausführungsformen kann die gesammelte-Protokoll-Liste ein oder mehrere Kommunikationsprotokoll-Identifizierer umfassen, die Anwendungsprotokolle repräsentieren, die mit der Zubehörvorrichtung kompatibel sind, und/oder die unterstützte Protokoll-Liste kann ein oder mehrere Kommunikationsprotokoll-Identifizierer umfassen, die Anwendungsprotokolle repräsentieren, die mit einer Anwendung kompatibel sind, die auf der mobilen Rechenvorrichtung installiert ist. In einigen Ausführungsformen kann das unterstützte Anwendungsprotokoll sich von einem Zubehörvorrichtungs-Kommunikationsprotokoll unterscheiden. In einigen Ausführungsformen können die Programmanweisungen dem Prozessor weiter veranlassen eine Anwendung herunterzuladen, die ein Protokoll unterstützt, das mit dem Anwendungsprotokoll in der gesammelten Protokoll-Liste übereinstimmt, in Antwort auf das Nichtfinden einer Übereinstimmung zwischen dem unterstützten Anwendungsprotokolls und einem Anwendungsprotokoll in der Liste von gesammelten Anwendungsprotokollen.
-
Ein anderes Verfahren, das auf einer mobilen Rechenvorrichtung betrieben wird, wird bereitgestellt, das umfassen kann: Empfangen eines Anwendungsprotokoll-Identifizierers von einer Zubehörvorrichtung, wobei der empfangene Anwendungsprotokoll-Identifizierer einen Datenstrang umfassen kann in einem umgekehrten-Domänen-Namenformat und mit einem Anwendungs-Kommunikationsprotokoll assoziiert sein kann; und/oder Bestimmen ob der empfangene Anwendungsprotokoll-Identifizierer mit einem Anwendungsprotokoll-Identifizierer übereinstimmt, der innerhalb einer Protokoll-Tabelle gelistet ist, die in einem Speicher auf der mobilen Rechenvorrichtung gespeichert ist, danach Kommunizieren mit der Zubehörvorrichtung mithilfe des Anwendungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann die Protokoll-Tabelle ein oder mehrere Anwendungsprotokoll-Identifizierer umfassen, die mit Anwendungen assoziiert sind, die auf der mobilen Rechenvorrichtung ausführbar sind. In einigen Ausführungsformen kann das Verfahren auch ein Ausführen der Anwendung umfassen, die mit einem Anwendungsprotokoll-Identifizierer in der Protokoll-Tabelle assoziiert ist, in dem Fall, dass der empfangene Protokoll-Identifizierer mit einem Anwendungsprotokoll-Identifizierer in der Protokoll-Tabelle übereinstimmt. In einigen Ausführungsformen kann das Verfahren auch das Herunterladen eines Anwendungsprotokolls mit einem assoziierten Anwendungsprotokoll-Identifizierer umfassen, der mit dem empfangenen Anwendungsprotokoll-Identifizierer übereinstimmt.
-
Eine mobile Rechenvorrichtung wird auch offenbart, die ein Gehäuse umfasst; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet ist, und/oder dazu konfiguriert ist, Befehle und Daten mit einer Zubehörvorrichtung auszutauschen; Speicher, der innerhalb des Gehäuses angeordnet ist, wobei der Speicher dazu konfiguriert ist eine unterstützte Anwendungsprotokoll-Liste zu führen; und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und/oder kommunikativ mit dem Speicher und der Kommunikationsschnittstelle gekoppelt ist. In einigen Ausführungsformen kann die Steuerlogik dazu konfiguriert sein Information, die ein Anwendungs-Kommunikationsprotokoll identifiziert, das von der Zubehörvorrichtung unterstützt wird, von der Zubehörvorrichtung zu empfangen durch die Kommunikationsschnittstelle. In einigen Ausführungsformen kann die Steuerlogik dazu konfiguriert sein zu bestimmen, ob ein Anwendungs-Kommunikationsprotokoll, das durch die Zubehörvorrichtung unterstützt wird, einem Protokoll entspricht, das in einer Liste von unterstützten Anwendungsprotokollen identifiziert wird, wobei die Liste von unterstützten Anwendungsprotokollen ein oder mehrere Protokolle umfasst, die durch die Anwendung unterstützt werden, die auf der mobilen Vorrichtung installiert sind. In einigen Ausführungsformen kann die Steuerlogik dazu konfiguriert sein Information zu kommunizieren, die das übereinstimmende Anwendungsprotokoll spezifiziert, an die Zubehörvorrichtung mithilfe eines mobilen Rechenvorrichtungsprotokolls, in dem Fall, dass eine Entsprechung zwischen dem Anwendungsprotokoll, das durch die Zubehörvorrichtung unterstützt wird und einem Protokoll, das in einer Liste von unterstützten Anwendungsprotokoll identifiziert wird, bestimmt wird. In einigen Ausführungsformen kann die Steuerlogik dazu konfiguriert sein mit der Zubehörvorrichtung zu kommunizieren mithilfe des übereinstimmenden Anwendungsprotokolls.
-
Ein anderes Verfahren wird auch bereitgestellt, dass ein Empfangen von Anwendungsprotokoll-Information von einer Zubehörvorrichtung umfasst mithilfe eines mobilen Rechenvorrichtungsprotokolls, wobei die Anwendungsprotokoll-Information zumindest ein Anwendungsprotokoll identifiziert, das mit der Zubehörvorrichtung kompatibel ist. Das Verfahren umfasst auch ein Bestimmen, ob das Anwendungsprotokoll mit einem Protokoll übereinstimmt, das innerhalb einer unterstützten Protokoll-Liste gelistet ist, wobei die unterstützte Protokoll-Liste ein oder mehrere Kommunikationsprotokolle umfassen kann, die zumindest durch eine Anwendung unterstützt werden, die auf der mobilen Vorrichtung installiert ist, und/oder wobei jedes Protokoll, das innerhalb der unterstützten Protokoll-Liste aufgelistet ist, mit einer Anwendung assoziiert sein kann. Und in dem Fall, dass ein Anwendungsprotokoll mit einem Protokoll in der unterstützten Protokoll-Liste übereinstimmt, kann das Verfahren weiter umfassen ein Ausführen der Anwendung, die mit dem übereinstimmenden Protokoll in der unterstützten Liste assoziiert ist. In einigen Ausführungsformen, in dem Fall, dass ein Anwendungsprotokoll nicht mit einem Protokoll in der unterstützten Protokoll-Liste übereinstimmt, Herunterladen einer Anwendung, die mit dem Protokoll in der unterstützten Protokoll-Liste assoziiert ist, von dem Internet.
-
Ein anderes Verfahren wird bereitgestellt, das das Empfangen von Information an einer mobilen Rechenvorrichtung von einer Zubehörvorrichtung umfasst, wobei die Information eine Identifikation eines Anwendungsprotokolls umfassen kann; Vergleichen des Anwendungsprotokolls mit Protokollen, die in einer unterstützten Protokoll-Tabelle gelistet sind, die in einem Speicher auf der mobilen Rechenvorrichtung gespeichert ist, wobei die unterstützte Protokoll-Tabelle zumindest ein Anwendungsprotokoll umfassen kann, das mit einer Anwendung assoziiert ist; und/oder in dem Fall, dass das Anwendungsprotokoll mit einem Protokoll übereinstimmt, das in der unterstützten Protokoll-Tabelle gelistet ist, Ausführen der Anwendung, die mit dem Anwendungsprotokoll auf der mobilen Rechenvorrichtung assoziiert ist. In einigen Ausführungsformen kann die Information eine Identifikation einer bevorzugten Anwendung umfassen, die das Anwendungsprotokoll unterstützt und/oder in dem Fall, dass das Anwendungsprotokoll nicht mit einem Protokoll übereinstimmt, das in der unterstützten Protokoll-Tabelle gelistet ist, Herunterladen der bevorzugten Anwendung. In einigen Ausführungsformen identifiziert die Information, die ein Anwendungsprotokoll identifiziert, das Anwendungsprotokoll mithilfe eines umgekehrten Domänen-Namenformat. In einigen Ausführungsformen kann das Verfahren auch ein Kommunizieren mit der Zubehörvorrichtung umfassen mithilfe des Anwendungsprotokolls. In einigen Ausführungsformen kann die Information, die ein Anwendungsprotokoll identifiziert, formatiert werden, gemäß einem mobilen Rechenvorrichtungsprotokoll.
-
Eine mobile Rechenvorrichtung wird bereitgestellt, die ein Gehäuse umfasst; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet ist und/oder dazu konfiguriert ist Befehle und Daten mit einer Zubehörvorrichtung auszutauschen; Speicher, der innerhalb des Gehäuses angeordnet ist, wobei der Speicher eine unterstützte Anwendungsprotokoll-Liste umfasst, die Protokolle auflistet, die mit einer Anwendung kompatibel sind, wobei ein unterstütztes Anwendungsprotokoll ein Anwendungsprotokoll umfassen kann, das durch eine Anwendung unterstützt wird, die auf einer mobilen Rechenvorrichtung installiert ist; und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und/oder kommunikativ mit dem Speicher und der Kommunikationsschnittstelle gekoppelt ist. Wobei die Steuerlogik dazu konfiguriert ist eine Mitteilung von einer Zubehörvorrichtung zu empfangen, die ein Anwendungsprotokoll identifiziert, das durch die Zubehörvorrichtung unterstützt wird; Bestimmen, ob das Anwendungsprotokoll mit einem unterstützten Anwendungsprotokoll übereinstimmt, das innerhalb der unterstützten Anwendungsprotokoll-Liste gespeichert ist; und/oder in dem Fall, dass ein Übereinstimmung gefunden wird, Ausführen einer Anwendung, die mit der unterstützten Zubehörvorrichtung assoziiert ist, die mit dem Anwendungsprotokoll übereinstimmt. In einigen Ausführungsformen kann die Mitteilung von der Zubehörvorrichtung empfangen werden, identifiziert eine Internetbasierte Adresse, wo eine Anwendung gefunden werden kann, die das Anwendungsprotokoll unterstützt. In einigen Ausführungsformen kann das Verfahren auch ein Herunterladen einer Anwendung von der Internetbasierten Adresse umfassen. In einigen Ausführungsformen kann das Verfahren auch ein Installieren der Anwendung auf der mobilen Rechenvorrichtung umfassen und das Ausführen der Anwendung.
-
Eine mobile Kommunikationsvorrichtung wird offenbart, die ein Gehäuse umfasst; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet ist und/oder dazu konfiguriert ist Befehle und Daten mit einer Zubehörvorrichtung auszutauschen, wobei die Kommunikationsschnittstelle einen ersten Kommunikationsanschluss und einen zweiten Kommunikationsanschluss aufweist; Speicher, der innerhalb des Gehäuses angeordnet ist; und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und kommunikativ mit dem Speicher und der Kommunikationsschnittstelle gekoppelt ist. Die Steuerlogik kann dazu konfiguriert sein mit einer ersten Zubehörvorrichtung zu kommunizieren durch den ersten Kommunikationsanschluss mithilfe eines ersten Anwendungskommunikationsprotokolls; und/oder mit einer zweiten Zubehörvorrichtung zu kommunizieren durch den zweiten Kommunikationsanschuss mithilfe eines zweiten Anwendungskommunikationsprotokolls. In einigen Ausführungsformen kann zumindest einer von dem ersten Kommunikationsanschluss und dem zweiten Kommunikationsanschluss einen drahtlosen Kommunikationsanschluss umfassen. In einigen Ausführungsformen sind das erste Anwendungskommunikationsprotokoll und das zweite Anwendungskommunikationsprotokoll unterschiedlich. In einigen Ausführungsformen kann die Steuerlogik weiterhin dazu konfiguriert sein mit der ersten Zubehörvorrichtung zu kommunizieren durch den ersten Kommunikationsanschluss und die zweite Zubehörvorrichtung durch den zweiten Zubehörvorrichtungskommunikationsanschluss mithilfe eines Zubehörvorrichtungskommunikationsprotokolls. In einigen Ausführungsformen kann die Steuerlogik weiter dazu konfiguriert sein eine erste Kommunikationssitzung herzustellen zum Kommunizieren mit der ersten Zubehörvorrichtung durch den ersten Anschluss. In einigen Ausführungsformen kann die Steuerlogik dazu konfiguriert sein eine zweite Kommunikationssitzung herzustellen zum Kommunizieren mit der zweiten Zubehörvorrichtung durch den ersten Anschluss. In einigen Ausführungsformen kann die Kommunikationsschnittstelle einen dritten Kommunikationsanschluss umfassen und die Steuerlogik kann weiter dazu konfiguriert sein mit einer dritten Zubehörvorrichtung zu kommunizieren durch den dritten Kommunikationsanschluss mithilfe eines dritten Anwendungs-Kommunikationsprotokolls.
-
Ein computerlesbares Medium, das Programmanweisungen umfasst, die, wenn sie durch einen Prozessor auf einer mobilen Rechenvorrichtung ausgeführt werden, dem Prozessor dazu veranlassen ein Verfahren auszuführen. Dieses Verfahren kann das Anfragen einer ersten Kommunikationssitzung zur Kommunikation mit einer ersten Zubehörvorrichtung umfassen; Empfangen eines Sitzungs-Identifizierers für die erste Kommunikationssitzung; Kommunizieren mit der ersten Zubehörvorrichtung durch die erste Kommunikationssitzung mithilfe eines ersten Anwendungsprotokolls; Anfragen einer zweiten Kommunikationssitzung zu Kommunikation mit einer zweiten Zubehörvorrichtung; Empfangen eines Sitzungs-Identifizierers für die zweite Kommunikationssitzung; und/oder Kommunizieren mit der zweiten Zubehörvorrichtung durch die zweite Kommunikationssitzung mithilfe eines zweiten Anwendungsprotokolls. In einigen Ausführungsformen sind das erste Anwendungsprotokoll und das zweite Anwendungsprotokoll unterschiedlich. In einigen Ausführungsformen sind das erste Anwendungsprotokoll und das zweite Anwendungsprotokoll dieselben. In einigen Ausführungsformen veranlassen die Programmanweisungen den Prozessor weiterhin dazu zu bestimmen, ob die erste Zubehörvorrichtung oder die zweite Zubehörvorrichtung kommunikativ mit der mobilen Rechenvorrichtung gekoppelt sind.
-
Eine mobile Rechenvorrichtung, die ein Gehäuse umfasst; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet ist, und/oder dazu konfiguriert ist Befehle und Daten mit einer ersten Zubehörvorrichtung und einer zweiten Zubehörvorrichtung auszutauschen, wobei die Kommunikationsschnittstelle einen ersten Kommunikationsanschluss und einen zweiten Kommunikationsanschluss hat; Speicher, der innerhalb des Gehäuses angeordnet ist; und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und/oder kommunikativ mit dem Speicher und der Kommunikationsschnittstelle gekoppelt ist. Wobei die Steuerlogik dazu konfiguriert ist eine erste Kommunikationssitzung zwischen dem ersten Kommunikationsanschluss und einer ersten Anwendung herzustellen, die durch die Steuerlogik ausgeführt wird; mit einer ersten Zubehörvorrichtung zu kommunizieren durch die erste Kommunikationssitzung mithilfe eines ersten Anwendungsprotokolls; eine zweite Kommunikationssitzung herzustellen zwischen dem zweiten Kommunikationsanschluss und einer zweiten Anwendung, die durch die Steuerlogik ausgeführt wird; und/oder mit einer zweiten Zubehörvorrichtung zu kommunizieren durch die zweite Kommunikationssitzung mithilfe eines zweiten Anwendungsprotokolls. In einigen Ausführungsformen kann die Steuerlogik weiter dazu konfiguriert sein einen Tunnel für erste Anwendungs-Kommunikationsprotokoll-Mitteilungen bereitzustellen mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann das Zubehörvorrichtungs-Kommunikationsprotokoll sich von dem ersten Anwendungs-Kommunikationsprotokoll unterscheiden. In einigen Ausführungsformen kann die Steuerlogik dazu konfiguriert sein einen Tunnel für zweite Anwendungs-Kommunikationsprotokoll-Mitteilungen bereitzustellen mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann das Zubehörvorrichtungs-Kommunikationsprotokoll sich von dem zweiten Anwendungs-Kommunikationsprotokoll unterscheiden.
-
Ein anderes Verfahren, das auf einer mobilen Rechenvorrichtung ausgeführt wird, wird bereitgestellt. Das Verfahren kann das Empfangen eines Hinweises umfassen, dass eine Zubehörvorrichtung kommunikativ mit der mobilen Rechenvorrichtung an einen Kommunikationsanschluss gekoppelt werden kann; Bestimmen, dass die Zubehörvorrichtung Kommunikation mit der mobilen Rechenvorrichtung unterstützt mithilfe sowohl eines Zubehörvorrichtungsprotokolls als auch eines Anwendungsprotokolls; Herstellen einer Kommunikationssitzung zwischen der Zubehörvorrichtung durch den Kommunikationsanschluss und einer Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt wird, durch den Kommunikationsanschluss; und/oder Senden von Mitteilungen von der Anwendung an die Zubehörvorrichtung mithilfe der Kommunikationssitzung, wobei die Mitteilungen Anwendungsprotokoll-Mitteilungen sind. In einigen Ausführungsformen unterscheiden sich das Zubehörvorrichtungsprotokoll und das Anwendungsprotokoll. In einigen Anwendungen kann das Verfahren das Empfangen eines Hinweises von der Zubehörvorrichtung umfassen, dass die Zubehörvorrichtung das Anwendungsprotokoll unterstützt. In einigen Ausführungsformen kann das Verfahren auch ein Einkapseln von Anwendungsprotokoll-Mitteilungen in Zubehörvorrichtungsprotokoll-Mitteilungen umfassen.
-
Ein Verfahren zum Herstellen einer Kommunikationssitzung zwischen einer Anwendung, die auf einer mobilen Rechenvorrichtung ausgeführt wird und einer Zubehörvorrichtung, die in Kommunikation mit der mobilen Rechenvorrichtung ist, wird bereitgestellt. Das Verfahren kann auf der mobilen Rechenvorrichtung ausgeführt werden und kann das Empfangen einer Anfrage von der Anwendung nach Information umfassen, die sich auf die Zubehörvorrichtung bezieht; Bereitstellen von Zubehörvorrichtungsinformation an die Anwendung, wobei die Zubehörvorrichtungsinformation einen Identifizierer umfassen kann von zumindest einem Anwendungs-Kommunikationsprotokoll, mit dem die Zubehörvorrichtung kompatibel sein kann; Empfangen einer Anfrage nach einer Kommunikationssitzung zwischen der Zubehörvorrichtung und der Anwendung zur Kommunikation mithilfe des Anwendungskommunikationsprotokolls; Empfangen einer Mitteilung von der Anwendung, wobei die Mitteilung formatiert sein kann, gemäß dem Anwendungs-Kommunikationsprotokoll; Einpacken der Mitteilung mit einem Zubehörvorrichtungs-Kommunikationsprotokoll-Einpacker; und/oder Kommunizieren der Mitteilung an die Zubehörvorrichtung, wobei die Mitteilung kommuniziert werden kann, gemäß einem Zubehörvorrichtungs-Kommunikationsprotokoll; das sich von dem Anwendungs-Kommunikationsprotokoll unterscheiden kann. In einigen Ausführungsformen kann der Zubehörvorrichtungs-Kommunikationsprotokoll-Einpacker einen Tunnelbefehl umfassen. In einigen Ausführungsformen kann der Identifizierer des zumindest einen Anwendungs-Kommunikationsprotokolls den Identifizierer umfassen, der in einem umgekehrten Domänen-Namenformat bereitgestellt wird. In einigen Ausführungsformen kann das Verfahren auch ein Empfangen einer Mitteilung von der Zubehörvorrichtung umfassen, wobei die Mitteilung gemäß eines Zubehörvorrichtungs-Kommunikationsprotokolls formatiert sein kann, Abstreifen des Zubehörvorrichtungs-Kommunikationsprotokoll-Einpackers von der Mitteilung und/oder Senden der Mitteilung an die Anwendung, wobei die Mitteilung gemäß dem Anwendungs-Kommunikationsprotokoll kommuniziert werden kann. In einigen Ausführungsformen kann das Verfahren auch das Überwachen einer Kommunikationsschnittstelle nach Zubehörvorrichtungsverbindbarkeit umfassen; und/oder in dem Fall, das eine Zubehörvorrichtung kommunikativ mit der Kommunikationsschnittstelle gekoppelt werden kann, Empfangen einer Fähigkeiten-Mitteilung, die Zubehörvorrichtungsfähigkeiten umfasst, wobei die Mitteilung einen Identifizier umfassen kann für zumindest ein Anwendungs-Kommunikationsprotokoll, mit welchem die Zubehörvorrichtung kompatibel sein kann. In einigen Ausführungsformen kann die Fähigkeiten-Mitteilung formatiert sein, gemäß dem Zubehörvorrichtungs-Kommunikationsprotokoll.
-
Eine mobile Rechenvorrichtung kann ein Gehäuse umfassen; eine Kommunikationsschnittstelle, die zumindest teilweise innerhalb des Gehäuses angeordnet ist und /oder dazu konfiguriert ist Befehle und Daten mit einer Zubehörvorrichtung auszutauschen mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls; Speicher, der innerhalb des Gehäuses angeordnet ist; und/oder Steuerlogik, die innerhalb des Gehäuses angeordnet ist und/oder kommunikativ mit dem Speicher und der Kommunikationsschnittstelle gekoppelt ist, wobei die Steuerlogik dazu konfiguriert ist einen Zubehörvorrichtungs-Manager als einen Hintergrundprozess und eine Anwendung auszuführen. Die Steuerlogik, die als ein Zubehörvorrichtungsmanager ausgeführt wird, kann dazu konfiguriert sein die Kommunikationsschnittstelle für eine Zubehörvorrichtung zu überwachen, die mit der Kommunikationsschnittstelle gekoppelt wird; in dem Fall, dass eine Zubehörvorrichtung mit der Kommunikationsschnittstelle gekoppelt wird, Empfangen von Zubehörvorrichtungs-Fähigkeitsinformation, die kompatible Anwendungsprotokolle umfasst, von der Zubehörvorrichtung mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls; Empfangen von der Zubehörvorrichtung, Anwendungs-Kommumkationsprotokoll formatierte Mitteilungen, die mit einem Zubehörvorrichtungs-Kommunikationsprotokoll-Einpacker eingepackt sind; Entfernen des Zubehörvorrichtungs-Kommunikationsprotokoll-Einpackers von den Mitteilungen; und/oder Kommunizieren von Mitteilungen an die Anwendung. In einigen Ausführungsformen werden die Zubehörvorrichtungsfähigkeiten empfangen, mithilfe des Zubehörvorrichtungs-Kommunikationsprotokolls. In einigen Ausführungsformen kann die Steuerlogik, die als ein Zubehörvorrichtungs-Manager ausgeführt wird, weiter dazu konfiguriert sein einen Eingabedatenstrom herzustellen, so dass Daten von dem Eingabedatenstrom gelesen werden können. In einigen Ausführungsformen kommuniziert die Steuerlogik, die als ein Zubehörvorrichtungs-Manager ausgeführt wird, Mitteilungen, die von der Zubehörvorrichtung empfangen wurden, an die Anwendung mithilfe des Eingabedatenstroms. In einigen Ausführungsformen kann die Steuerlogik, die als ein Zubehörvorrichtungs-Manager ausgeführt wird, weiterhin konfiguriert sein zum: Empfangen von der Anwendung, Anwendungs-Kommunikationsprotokoll formatierte Mitteilungen, Einpacken der Zubehörvorrichtungs-Kommunikationsprotokoll-Mitteilungen mit einen Zubehörvorrichtungs-Kommunikationsprotokoll-Einpacker und/oder Kommunizieren der Mitteilungen an die Zubehörvorrichtung. In einigen Ausfiihrungsformen kann die Steuerlogik, die als ein Zubehörvorrichtungs-Manager ausgeführt wird, weiter dazu konfiguriert sein einen Ausgabedatenstrom zu erstellen, so dass Daten zu dem Ausgabedatenstrom geschrieben werden können durch die Anwendung und an die Zubehörvorrichtung gesendet werden können. In einigen Ausführungsformen kommuniziert die Steuerlogik, die als ein Zubehörvorrichtungs-Manager ausgeführt wird, Mitteilungen, die von dem Ausgabedatenstrom empfangen werden, an die Zubehörvorrichtung.
-
Ein anderes Verfahren wird bereitgestellt. Dieses Verfahren kann das Überwachen einer Zubehörvorrichtungsschnittstelle der mobilen Rechenvorrichtung nach einem Hinweis umfassen, dass eine Zubehörvorrichtung kommunikativ mit der Zubehörvorrichtungs-Schnittstelle gekoppelt wurde; in dem Fall, dass eine Zubehörvorrichtung kommunikativ mit der Zubehörvorrichtungs-Schnittstelle gekoppelt werden kann, Empfangen von Fähigkeitsinformation von der Zubehörvorrichtung, wobei die Fähigkeitsinformation mithilfe eines Zubehörvorrichtungs-Kommunikationsprotokolls empfangen werden kann und/oder die Fähigkeitsinformation kann Information umfassen, die eine oder mehrere Anwendungs-Kommunikationsprotokolle anzeigen, die kompatibel mit der Zubehörvorrichtung sind; Herstellen eines Eingabedatenstroms für eine Anwendung, die auf der mobilen Rechenvorrichtung ausgeführt wird, wobei eine Anwendungs-Mitteilung, die von der Zubehörvorrichtung empfangen wird, in einen Zubehörvorrichtungs-Kommunikationsprotokoll-Einpacker eingepackt ist, von dem Zubehörvorrichtungs-Kommunikationsprotokoll-Einpacker befreit werden kann und zu der Anwendung geschrieben werden kann mithilfe des Eingabe-Datenstroms; und/oder Herstellen eines Ausgabedatenstroms für die Anwendung, wobei eine Anwendungsmitteilung, die zu dem Ausgabedatenstrom geschrieben wird, von der Anwendung, in einen Zubehörvorrichtungs-Kommunikationsprotokoll-Einpacker eingepackt werden kann und an die Zubehörvorrichtung durch die Zubehörvorrichtung-Schnittstelle gesendet werden kann. In einigen Ausführungsformen kann die Zubehörvorrichtungs-Schnittstelle eine drahtlose Kommunikationsschnittstelle umfassen. In einigen Ausführungsformen kann die Information, die ein oder mehrere Anwendungs-Kommunikationsprotokolle anzeigt, bereitgestellt werden unter Verwendung eines umgekehrten Domänen-Namenformats.
-
Ein Verfahren, das auf einer mobilen Rechenvorrichtung ausgeführt wird, wird auch bereitgestellt. Das Verfahren kann ein Empfangen von einer Anwendung umfassen, die auf der mobilen Rechenvorrichtung ausgeführt wird, einer Anfrage nach einer Kommunikationssitzung zwischen der mobilen Rechenvorrichtung und einer externen Zubehörvorrichtung mithilfe eines Anwendungsprotokolls; Bestimmen, ob das Anwendungsprotokoll durch die Zubehörvorrichtung unterstützt werden kann; in dem Fall, dass das Anwendungsprotokoll durch die Zubehörvorrichtung unterstützt werden kann, Bereitstellen eines Eingabestroms und eines Ausgabestroms zu der Anwendung zur Kommunikation mit der Zubehörvorrichtung mithilfe des Anwendungsprotokolls; Empfangen einer Mitteilung von der Anwendung durch den Ausgabestrom, wobei die Mitteilung formatiert sein kann, gemäß dem Protokoll; Einpacken der Mitteilung in eine Zubehörvorrichtungsprotokoll-Mitteilung; und/oder Senden der Mitteilung an die Zubehörvorrichtung.
-
In einigen Ausführungsformen kann das Bestimmen weiter umfassen Nachschlagen des Anwendungsprotokolls in einer Nachschlagtabelle. In einigen Ausführungsformen kann das Verfahren weiter ein Empfangen einer Mitteilung von der Zubehörvorrichtungen umfassen, wobei die Mitteilung eine Anwendungsprotokoll-Mitteilung sein kann, die in eine Zubehörvorrichtungsprotokoll-Mitteilung eingepackt ist; Auspacken des Anwendungsprotokoll-Einpackers von der Anwendungsprotokoll-Mitteilung; und/oder Schreiben der Anwendungsprotokoll-Mitteilung in den Eingabestrom der Anwendung.
-
Ein anderes Verfahren, das auf einer mobilen Rechenvorrichtung ausgeführt wird, wird bereitgestellt. Das Verfahren umfasst Öffnen einer ersten Kommunikationssitzung zwischen einer ersten Anwendung und einer ersten Zubehörvorrichtung, wobei die Kommunikationssitzung Kommunikation zwischen der ersten Anwendung und der ersten Zubehörvorrichtung bereitstellt mithilfe eines ersten Kommunikationsprotokolls; Empfangen einer ersten Mitteilung von der ersten Anwendung; Senden der ersten Mitteilung an die Zubehörvorrichtung, die mit einem Zubehörvorrichtungsprotokoll-Einpacker eingepackt ist; Öffnen einer zweiten Kommunikationssitzung zwischen einer zweiten Anwendung und der ersten Zubehörvorrichtung, wobei die Kommunikationssitzung Kommunikation zwischen der ersten Anwendung und der ersten Zubehörvorrichtung bereitstellt mithilfe eines zweiten Kommunikationsprotokolls, wobei das erste und das zweite Anwendungsprotokoll unterschiedlich sind; und/oder Empfangen einer zweiten Mitteilung von der zweiten Anwendung, und Senden der zweiten Mitteilung an die Zubehörvorrichtung, die mit dem Zubehörvorrichtungsprotokoll-Einpacker eingepackt ist.
-
Ein computerlesbares Medium, das Programmanweisungen umfasst, die, wenn sie durch einen Prozessor einer mobilen Rechenvorrichtung ausgeführt werden, den Prozessor dazu veranlassen ein bereitgestelltes Verfahren auszuführen. Das Verfahren kann umfassen Abfragen von Zubehörvorrichtungsinformation von einem Zubehörvorrichtungs-Manager, wobei der Zubehörvorrichtungs-Manager ein Hintergrundprozess sein kann, der auf der mobilen Rechenvorrichtung ausgeführt wird, und Kommunikationsverbindung zwischen Anwendungen bereitstellt, die auf der mobilen Rechenvorrichtung ausgeführt werden, und eine Zubehörvorrichtung, die kommunikativ mit der mobilen Rechenvorrichtung gekoppelt ist; in dem Fall, dass eine Zubehörvorrichtung kommunikativ mit der mobilen Rechenvorrichtung gekoppelt werden kann, Empfangen von dem Zubehörvorrichtungs-Manager eines Zubehörvorrichtungs-Identifizierers und eines oder mehrerer Protokoll-Identifizierer, die zumindest ein Anwendungs-Kommunikationsprotokoll spezifizieren, das mit der Zubehörvorrichtung kompatibel ist; Bestimmen, ob eine Anwendung mit zumindest einem Anwendungsprotokoll kompatibel sein kann; in dem Fall, dass die Anwendung kompatibel sein kann, Öffnen einer Sitzung zur Kommunikation mit der Zubehörvorrichtung durch den Zubehörvorrichtungs-Manager mithilfe des Anwendungs-Kommunikationsprotokolls und/oder Kommunizieren mit der Zubehörvorrichtung mithilfe des Anwendungs-Kommunikationsprotokolls. In einigen Ausführungsformen, kann ein Protokoll-Identifizierer mithilfe von umgekehrter Domänen-Namenkonvention formatiert werden. In einigen Ausführungsformen kann das Kommunizieren mit der Zubehörvorrichtung ein Empfangen eines Ausgabestroms von dem Zubehörvorrichtungs-Manager umfassen und/oder das Schreiben von Daten, gemäß dem Anwendungs-Kommunikationsprotokoll zu dem Eingabestrom. In einigen Ausführungsformen kann das Kommunizieren mit der Zubehörvorrichtung ein Empfangen eines Eingabestroms von dem Zubehörvorrichtungs-Manager umfassen; und/oder Empfangen von Daten, die gemäß dem Anwendungs-Kommunikationsprotokoll formatiert sind, von dem Eingabestrom.
-
Ein Verfahren für eine Anwendung, um eine Kommunikation mit einer Zubehörvorrichtung herzustellen mithilfe eines Anwendungsmanagers. Das Verfahren kann umfassen, Empfangen eines Hinweises von dem Anwendungsmanager, der ein Anwendungsprotokoll spezifiziert, das mit der Zubehörvorrichtung kompatibel ist; Empfangen eines Eingabestroms und eines Ausgabestroms von dem Anwendungsmanager zur Kommunikation mit der Zubehörvorrichtung, mithilfe des Anwendungsprotokolls; und/oder danach Schreiben von einer Anwendungsprotokoll-Mitteilung für die Zubehörvorrichtung in den Ausgabestrom. In einigen Ausführungsformen kann das Verfahren umfassen, Senden von Anwendungsprotokoll-Information an den Anwendungsmanager, wobei die Anwendungsprotokoll-Information einen Hinweis die Anwendungsprotokolle umfassen kann, die durch die Anwendung unterstützt werden. In einigen Ausführungsformen kann das Anwendungsprotokoll, das mit der Zubehörvorrichtung kompatibel ist, ein Anwendungsprotokoll sein, das durch die Anwendungsprotokoll-Information angezeigt wird, die durch die Anwendung gesendet wird. In einigen Ausführungsformen zeigt das Anwendungsprotokoll, das durch die Anwendungsprotokoll-Information angezeigt wird, ein Anwendungsprotokoll an mithilfe einer umgekehrten Domänen-Namenkonvention.
-
Ein Verfahren, das durch die Anwendung ausführt, die auf einer mobilen Rechenvorrichtung ausführt wird, wird offenbart. Das Verfahren beinhaltet das Anfragen von Zubehörvorrichtungs-Information von einem Anwendungsmanager, wobei die Zubehörvorrichtungsinformation Information umfassen kann, die ein oder mehrere Anwendungsprotokolle anzeigt, die durch eine Zubehörvorrichtung unterstützt werden, die kommunikativ mit einer mobilen Rechenvorrichtung gekoppelt ist; Bestimmen, ob ein Anwendungsprotokoll, das durch die Zubehörvorrichtung unterstützt wird, einem Anwendungsprotokoll entspricht, dass durch die Anwendung unterstützt wird; in dem Fall, dass die Anwendungsprotokolle übereinstimmen, Anfragen eines Eingabestroms und eines Ausgabestroms zur Kommunikation mit der Zubehörvorrichtung mithilfe des Anwendungsprotokolls; Empfang eines Eingabestroms und eines Ausgabestroms; und/oder danach, Schreiben von Anwendungsprotokoll-Mitteilungen für die Zubehörvorrichtung in den Ausgabestrom. In einigen Ausführungsformen kann das Verfahren umfassen, Lesen von Anwendungsprotokoll-Mitteilungen von der Zubehörvorrichtung mithilfe des Eingabestroms. In einigen Ausführungsformen zeigt die Zubehörvorrichtungsinformation Anwendungsprotokolle an, mithilfe der umgekehrten Domänen-Namenkonvention. In einigen Ausführungsformen kann die Zubehörvorrichtungsinformation in einer Tabelle gespeichert werden und die Zubehörvorrichtungsinformation kann ein Zeiger auf den Speicherort von Metadaten sein, die mit der Zubehörvorrichtungsinformation assoziiert sind.
-
Ein Verfahren, das durch eine Anwendung ausgeführt wird, die auf einer mobilen Rechenvorrichtung ausgeführt wird, wird bereitgestellt. Das Verfahren beinhaltet Zugreifen auf eine Tabelle, die Information umfasst, die ein Anwendungsprotokoll anzeigen, das durch eine Zubehörvorrichtung unterstützt wird, die mit der mobilen Rechenvorrichtung gekoppelt ist; Bestimmen, ob ein Anwendungsprotokoll, das durch die Anwendung unterstützt wird, dem Anwendungsprotokoll in der Tabelle entspricht; in dem Fall, dass die Anwendungsprotokolle übereinstimmen, Öffnen einer Kommunikationssitzung zu Kommunikation mit der Zubehörvorrichtung mithilfe der übereinstimmenden Anwendung; Empfangen eines Eingabestroms und eines Ausgabestroms; und/oder danach, Schreiben einer Anwendungsprotokoll-Mitteilung für die Zubehörvorrichtung in den Ausgabestrom. In einigen Ausführungsformen kann die Tabelle eine Mehrzahl von Anwendungsprotokollen umfassen, die mit der Zubehörvorrichtung assoziiert sind, und/oder die Anwendung bestimmt, ob ein Anwendungsprotokoll, das durch die Anwendung unterstützt wird, mit irgendeinem der Anwendungsprotokolle in der Tabelle übereinstimmt. In einigen Ausführungsformen kann das Verfahren auch ein Lesen einer Anwendungsprotokoll-Mitteilung von der Zubehörvorrichtung mithilfe des Eingabestroms umfassen. In einigen Ausführungsformen zeigt die Zubehörvorrichtungsinformation Anwendungsprotokolle an, die mit Hilfe der umgekehrten Domänen-Namenkonvention formiert sind.
-
Schaltkreise, Logikmodule, Prozessoren und/oder andere Komponenten können hierin als „konfiguriert“ beschrieben sein, um verschiedene Operationen auszuführen. Fachleute werden verstehen, dass abhängig von der Implementierung, solche Konfigurationen durch den Entwurf, Set-Up, Verbindung und/oder Programmieren der bestimmten Komponenten erreicht werden kann und das wiederum abhängig von der Implementierung eine konfigurierte Komponente rekonfiguriert werden kann für eine unterschiedliche Operation oder nicht. Zum Beispiel kann ein programmierbarer Prozessor durch das Bereitstellen von geeigneten ausführbaren Code konfiguriert sein; ein dedizierter Logikschaltkreis kann durch das geeignete Verbinden von logischen Gattern und anderen Schaltkreiselementen konfiguriert werden; usw.
-
Während die oben beschriebenen Ausführungsformen Bezug auf spezifische Hardware und Softwarekomponenten machen, werden jene Fachleute verstehen, dass unterschiedliche Kombinationen von Hardware- und/oder SoftwareKomponenten verwendet werden können, und dass bestimmte Operationen, die als in Hardware-Implementiert beschrieben sind, auch in Software implementiert sein können und umgekehrt.
-
Computerprogramme, die die verschiedene Eigenschaften der vorliegenden Erfindung einschließen, können auf verschiedenen computerlesbaren Speichermedien codiert sein; geeignete Medien umfassend magnetische Scheiben oder Bänder, optische Speichermedien wie Compact Disc (CD) oder DVD (digital versatile disc), Flash-Speicher und ähnliches. Compuerlesbare Speichermedien, auf denen der Programmcode codiert ist, können mit einer kompatiblen Vorrichtung eingepackt sein oder separate von anderen Vorrichtungen bereitgestellt werden. Zusätzlich kann Programmcode codiert und übertragen werden über drahtgebundene optische und/oder drahtlose Netzwerke, die mit einer Vielzahl von Protokollen kompatibel sind, darunter das Internet, wodurch die Verteilung ermöglicht wird, zum Beispiel über einen Internetdownload.
-
Während Beispiele und/oder Details in dieser Offenbarung mit Bezug auf eine einzige Ausführungsform beschrieben sind, können solche Beispiele oder Details in Verbindung mit jeder Ausführungsform, die hierin beschrieben ist, verwendet werden.
-
Damit, obwohl die Erfindung mit Bezug auf spezifische Ausführungsformen beschrieben wurde, wird es verstanden werden, dass die Erfindung beabsichtigt alle Modifikationen und Äquivalente abzudecken, die in dem Umfang der folgenden Ansprüche fallen.