Mit Android 16 wurde das Messmodul eingeführt. Diese Protokoll- und Nutzlastspezifikation definiert die Nachrichtensequenz und die Nutzlast der Out-of-Band-Kommunikation, die zum Austausch von Positionsbestimmungskonfigurationen und zum Starten und Beenden der Positionsbestimmung zwischen dem Initiator und dem Responder verwendet wird, die an der Positionsbestimmung teilnehmen.
Das Hauptziel dieser Seite besteht darin, Anbietern von Geräten, die nicht von Android stammen, die Implementierung dieser Spezifikation zu ermöglichen, damit ihre Geräte mit Android-Geräten kompatibel sind.
Nachrichten und Nachrichtensequenz
In diesem Abschnitt werden die Nachrichten und die Reihenfolge des Nachrichtenaustauschs beschrieben.
In der folgenden Tabelle sind alle Nachrichten aufgeführt, die in der OOB-Austauschsitzung vorhanden sind:
Nachricht | Nachrichten-ID |
---|---|
Ranging Capability Request |
0x0 |
Ranging Capability Response |
0x1 |
Ranging Configuration |
0x2 |
Ranging Configuration Response (optional) |
0x3 |
Stop Ranging |
0x6 |
Stop Ranging Response (optional) |
0x7 |
Wie in Abbildung 1 und 2 dargestellt, hängt die Auslösung des Nachrichtenaustauschs vom Kommunikationskanal ab.
Bei verbindungsbasierten Kommunikationskanälen wie BLE GATT beginnt der Nachrichtenaustausch damit, dass das Initiatorgerät Ranging Capability Request
an das Responder-Gerät sendet. Das antwortende Gerät antwortet, indem es Ranging
Capability Response
sendet, wie in Abbildung 1 dargestellt:
Abbildung 1: OOB-Nachrichtenaustausch über einen verbindungsbasierten Kommunikationskanal.
Bei werbebasierten Kommunikationskanälen beginnt das Gerät des Teilnehmers mit der Werbung für Ranging Capability
. In diesem Fall wird Ranging Capability Request
nicht vom auslösenden Gerät gesendet. Stattdessen antwortet das auslösende Gerät (ursprünglicher Scanner), nachdem es die Werbung erkannt hat und bereit ist, indem es Ranging Configuration
als erste Nachricht sendet, wie in Abbildung 2 dargestellt:
Abbildung 2: OOB-Nachrichtenaustausch über eine anfragebasierte Kommunikation.
Der Rest des Nachrichtenaustauschs ist in beiden Fällen identisch. Das Gerät des Teilnehmers beginnt sofort nach Erhalt der Ranging Configuration
-Nachricht mit der Suche.
Das Gerät, das antwortet, beendet die Suche, nachdem es die Stop
Ranging
-Nachricht empfangen oder erkannt hat.
Im verbindungsbasierten Ablauf gibt das antwortende Gerät nur die Funktionen der in der Ranging Capability Request
-Nachricht angeforderten Abstandsmesstechnologien an. Im Werbeablauf muss das antwortende Gerät alle seine Funktionen auflisten, da es keine vorherige Nachricht zur Funktionsanfrage gibt.
Das Initiatorgerät geht davon aus, dass es nur eine Antwort auf jede gesendete Anfragenachricht erhält. Das antwortende Gerät darf keine solchen Annahmen treffen, damit es auf jede Anfrage in beliebiger Reihenfolge reagieren kann. So kann das antwortende Gerät auf mehrere aufeinanderfolgende Ranging Capability Request
-Nachrichten oder andere Nachrichten in falscher Reihenfolge vom Initiatorgerät reagieren.
IDs der Rangierungstechnologie
Die IDs der Entfernungsmesstechnologien sind in der folgenden Tabelle aufgeführt:
Entfernungsmessung | ID |
---|---|
UWB | 0x0 |
CS | 0x1 |
WLAN-NAN-RTT | 0x2 |
RSSI | 0x3 |
RFU | 0x4–0xFF |
Diese IDs werden in den folgenden Tabellen verwendet, wenn die ID der Entfernungstechnologie erforderlich ist. Bei Feldern mit dem Bitfeld für die Abstandsmessung wird ein Bit entsprechend dem Index der ID der Technologie gesetzt, wenn diese Technologie im Bitfeld enthalten ist.
Beispiel: RSSI hat den ID-Wert 3. Wenn RSSI jedoch im Bitfeld der Entfernungsmessung enthalten ist, muss das Bit an der Position der ID (3) aktiviert werden (erstes Bit an Position 0). Der resultierende Wert des Bitfelds ist dann 0x8. Wenn sowohl UWB als auch RSSI enthalten sind, ist der Wert des Bitfelds 0x0A (beide Bits 0 und 3 sind aktiviert).
Nachrichtenformat
Jede Nachricht besteht aus einem Header und einer Nutzlast.
Abbildung 3 Nachrichtenformat.
Header
Größe:2 Byte
Beschreibung:Der Header ist der erste Teil einer Nachricht und ist in allen Nachrichten gleich. Der Header enthält eine Version und die ID des Nachrichtentyps. Im Feld „version“ wird die Version dieser Spezifikation angegeben, der der Inhalt der Nachricht entspricht. Die aktuelle Version dieser Spezifikation ist 1
. Weitere Informationen zur Verwendung der Versionierung zwischen Geräten mit unterschiedlichen Versionen finden Sie unter Versionsverwaltung. Der Header bleibt abwärtskompatibel mit verschiedenen Versionen. Das bedeutet, dass er im Anwendungsfall immer geparst werden kann, um die Version und die ID der Nachricht zu ermitteln.
Die Kopfzeile ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | Version | 0x1 – aktuelle Version |
1 | unit8 | Nachrichten-ID |
|
Nutzlast
Größe:variiert (je nach Art der Nachricht)
Beschreibung:Die Nutzlast ist der letzte Teil der Nachricht nach dem Header. Die Nutzlast hängt vom Typ der Nachricht ab. Das Format der Nutzlast der einzelnen Nachrichtentypen wird in den folgenden Abschnitten definiert.
Nutzlast der Nachricht „Ranging Capability Request“
Größe (ohne Headergröße): 2 Byte
Beschreibung:Wird vom Initiatorgerät gesendet, um den Nachrichtenaustausch zu starten.
Diese Nachricht ist optional, wenn der Kommunikationskanal auf Werbung basiert. In diesem Fall muss das antwortende Gerät als ersten Schritt eine Ranging
Capability
-Nachricht senden. Das Initiatorgerät (erster Scanner) liest die Werbung und antwortet direkt mit einer Ranging Capability
-Nachricht, sodass diese Nachricht nicht erforderlich ist.
Die Nutzlast der Ranging Capability Request
-Nachricht wird in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8*2 | Bitfeld für angeforderte Entfernungsmesstechnologien |
|
Nutzlast der Antwortnachricht zur Positionsbestimmung
Größe (ohne Headergröße): Variiert (2 Byte für den gemeinsamen Teil plus die Größe der einzelnen Byte der enthaltenen Rangierungstechnologie)
Beschreibung:Wird vom Teilnehmer als Antwort auf eine Ranging Capability
Request
-Nachricht gesendet. Diese Nachrichtenn-Nutzlast besteht aus dem gemeinsamen Teil und technologiespezifischen Teilen für die Entfernungsmessung (BLE CS, Wi‑Fi NAN RTT CS, BLE RSSI), wie in den folgenden Tabellen dargestellt. Jeder trichterspezifische Teil muss nur hinzugefügt werden, wenn diese Trichtertechnologie vom Empfängergerät unterstützt und in der Ranging Capability Request
-Nachricht angefordert wird. Bei einem Werbekommunikationskanal müssen alle unterstützten Technologien zur Entfernungsmessung enthalten sein.
Die allgemeine Nutzlast von Ranging Capability Response
-Nachrichten ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8*2 | Bitfeld für unterstützte Abstandsmesstechnologien. Gibt die Funktionen der Reichweitentechnologien an, die im Rest der Nutzlast folgen. |
|
2 | Byte-Array | Bytes für die Reichweite der technischen Funktionen. | Wiederholte Blöcke von Strukturen, die pro Technologie definiert sind. |
Die UWB-Ranging Capability Response
-Nachrichtennutzlast ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | ID der Rangierungstechnologie | 0x0 – UWB |
1 | uint8 | Größe | Größe der UWB-Funktionen in Byte (einschließlich der Felder Technology ID und Size). |
2 | uint8*2 | UWB-Adresse | 2-Byte-UWB-Adresse des Geräts. |
4 | uint8*4 | Bitfeld für unterstützte Kanäle | Bitfeld der unterstützten Kanäle. Ein Bit mit dem Wert 0 gibt an, dass die Funktion nicht unterstützt wird. Ein Bit mit dem Wert 1 gibt an, dass die Funktion unterstützt wird. Bit 0 entspricht Kanal 0.LSB == channel 0 MSB == channel 31 |
8 | uint8*4 | Unterstütztes Bitfeld für den Präambelindex | Bitfeld der unterstützten Präambelindexe. Ein Bit mit dem Wert 0 gibt an, dass die Funktion nicht unterstützt wird. Ein Bit mit dem Wert 1 gibt an, dass die Funktion unterstützt wird. Bit 0 entspricht dem Präambelindex 1.LSB == preamble index 1 MSB == preamble index 32 |
12 | uint8*4 | Bitfeld für unterstützte Konfigurations-IDs | Bitfeld der unterstützten UWB-Konfigurations-IDs. Ein Bit mit dem Wert 0 gibt an, dass die Funktion nicht unterstützt wird, ein Bit mit dem Wert 1, dass sie unterstützt wird.LSB == config Id 0 > MSB == config Id 31 |
16 | uint8*2 | Unterstütztes minimales Intervall für die Reichweite | Gibt das schnellste unterstützte Intervall für die Reichweite in Millisekunden an. Zulässige Werte (in ms):
|
18 | uint8 | Unterstützte Mindestdauer für Slots | Gibt die kürzeste unterstützte Slotdauer in Millisekunden an. Wenn das Gerät beispielsweise 1 ms zurückgibt, wird davon ausgegangen, dass es auch Slotdauern von mindestens 2 ms unterstützt. Zulässige Werte (in ms):
|
19 | Bitfeld für unterstützte UWB-Geräterollen | Bitfeld der unterstützten UWB-Rollen. Wenn beide unterstützt werden, ist der endgültige Feldwert beispielsweise 0x3.
|
Die Nutzlast der BLE CS Ranging Capability Request
-Nachricht ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | ID der Rangierungstechnologie | 0x1 – BLE CS |
1 | uint8 | Größe | Größe der BLE CS-Funktionen in Byte (einschließlich der Felder Technology ID und Size). |
2 | uint8 | Bitfeld für unterstützte Sicherheitstypen | Bitfeld der unterstützten Sicherheitstypen für BLE CS.
|
3 | uint8*6 | Geräteadresse | Die Adresse des Geräts, die für BLE CS verwendet wird; in Big-Endian-Reihenfolge. |
Die Nutzlast der Wi‑Fi NAN RTT CS Ranging Capability Request
-Nachricht ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | ID der Rangierungstechnologie | 0x2 – Wi‑Fi NAN RTT |
1 | uint8 | Größe | Größe der BLE-RSSI-Funktionen in Byte (einschließlich der Felder Technology ID und Size). |
2 | uint8 | Bitfeld für unterstützte Funktionen | Bitfeld der unterstützten Funktionen.
|
3 | uint8 | Unterstützt periodische Abfragen |
|
4 | uint8 | Unterstützte Bandbreite | Anhand dieser Informationen lässt sich die erreichbare Genauigkeit der Standortbestimmung mit Wi‑Fi NAN ableiten. Außerdem können Apps so ermitteln, ob UWB, BLE CS, BLE RSSI oder Wi‑Fi NAN für die Standortbestimmung verwendet werden soll.
|
5 | uint8 | Unterstützte Anzahl von Empfangsketten | Anhand dieser Informationen lässt sich die erreichbare Genauigkeit der Standortbestimmung mit Wi‑Fi NAN ableiten. Außerdem können Apps so ermitteln, ob UWB, BLE CS, BLE RSSI oder Wi‑Fi NAN für die Standortbestimmung verwendet werden soll.
|
Die Nutzlast der BLE-RSSI-Ranging Capability Request
-Nachricht ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | ID der Rangierungstechnologie | 0x3 – BLE CS |
1 | uint8 | Größe | Die Größe der BLE-RSSI-Funktionen in Byte (einschließlich der Felder Technology ID und Size) |
2 | uint8*6 | Geräteadresse | Die Adresse des Geräts, die für BLE-RSSI verwendet wird; in Big-Endian-Reihenfolge |
Nutzlast der Nachricht „Ranging Configuration“
Größe (ohne Headergröße): Variiert (gemeinsamer Teil 4 Byte plus die Größe der einzelnen Byte der enthaltenen Abfragetechnologie).
Beschreibung:Diese Nachricht wird vom Initiator gesendet und enthält die Konfigurationen, mit denen die einzelnen Abstandsmesstechnologien die Abstandsmessung starten können. Das Antwortgerät muss nach Erhalt dieser Nachricht versuchen, die Entfernungsmessung mit jeder angegebenen Entfernungsmesstechnik zu starten. Diese Nachrichtenn-Nutzlast besteht aus dem gemeinsamen Teil und technologiespezifischen Teilen für die Entfernungsmessung (UWB, BLE CS, Wi‑Fi NAN RTT, BLE RSSI), wie in den folgenden Tabellen dargestellt.
Die allgemeine Nutzlast von Ranging Configuration
-Nachrichten ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8*2 | Bitfeld für die Konfiguration von Rangierungstechnologien | Bitfeld der Entfernungsmesstechnologien, für die diese Nachricht Konfigurationsdaten enthält und für die Konfigurationsparameter festgelegt werden müssen.
|
2 | uint8*2 | Bitfeld | RFU. Muss mit dem Wert des Felds Bitfeld für die Konfigurationsgruppe für die Abfragetechnologien übereinstimmen. |
4 | Byte-Array | Konfigurationsbytes für Rangierungstechnologien | Wiederholte Blöcke von Strukturen, die pro Technologie definiert sind |
Die UWB-Ranging Configuration
-Nachrichtennutzlast ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | ID der Rangierungstechnologie | 0x0 – UWB |
1 | uint8 | Größe | Größe der UWB-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte |
2 | uint8*2 | UWB-Adresse | UWB-Adresse des Geräts mit 2 Byte |
4 | uint8*4 | Sitzungs-ID | Generierte Sitzungs-ID. Die Sitzungs-ID ist eine eindeutige Kennung für die Abstandsmessung zwischen dem Smartphone und dem Peripheriegerät. |
8 | uint8 | Ausgewählte Konfigurations-ID | Die ausgewählte Konfigurations-ID als Ganzzahl. Die Konfigurations-ID gibt die Zeitparameter und die Art der Sicherheit an, die für die UWB-Messsitzung verwendet werden muss. |
9 | uint8 | Ausgewählter Kanal | Ausgewählter Kanal für die UWB-Messsitzung |
10 | uint8 | Ausgewählter Präambelindex | Ausgewählter Präambelindex für die UWB-Messsitzung |
11 | uint8*2 | Ausgewähltes Intervall | Ausgewählte Rate des Intervalls für die Standortbestimmung in Millisekunden. Zulässige Werte (in ms):
|
13 | uint8 | Ausgewählte Zeitblockdauer | Ausgewählte Slotdauer in Millisekunden. Zulässige Werte (in ms):
|
14 | uint8 | Länge des Sitzungsschlüssels | Länge des Sitzungsschlüssels in Byte |
15 | Byte-Array | Sitzungsschlüssel | Sitzungsschlüssel. Wenn S-STS verwendet wird, sind die ersten beiden Bytes die VENDOR-ID und die folgenden sechs Bytes STATIC STS IV. Wenn P-STS verwendet wird, ist dies entweder ein Sitzungsschlüssel mit 16 Byte oder 32 Byte. Die Art der verwendeten Sicherheit wird durch die Konfigurations-ID bestimmt. |
variiert | uint8*2 | Ländercode | ISO 3166-1 Alpha-2-Ländercode, dargestellt durch zwei ASCII-Zeichen |
variiert | uint8 | Ausgewählte Geräterolle |
|
variiert | uint8 | Ausgewählter Gerätemodus |
|
Die Nutzlast der BLE CS Ranging Configuration
-Nachricht ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | ID der Rangierungstechnologie | 0x1 – BLE CS |
1 | uint8 | Größe | Größe der BLE-CS-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte |
2 | uint8 | Ausgewählter Sicherheitstyp | Ausgewählter Sicherheitstyp. Zulässige Werte:
|
3 | uint8*6 | Geräteadresse | Die Adresse des Geräts, die für BLE CS verwendet wird; in Big-Endian-Reihenfolge |
Die Nutzlast der Wi‑Fi NAN RTT Ranging Configuration
-Nachricht ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | ID der Rangierungstechnologie | 0x2 – Wi‑Fi NAN RTT |
1 | uint8 | Größe | Größe der Wi‑Fi NAN RTT-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte |
2 | uint8 | Länge des Dienstnamens | Länge des Felds „Dienstname“ in Byte. Siehe Wi‑Fi Aware Specification Version 4.0, Abschnitt 1.3.3, Tabelle 1. Definitionen. |
3 | Byte-Array | Name des Dienstes | Dienstname. Siehe Wi‑Fi Aware Specification Version 4.0, Abschnitt 1.3.3, Tabelle 1. Definitionen. |
variiert | uint8 | Geräterolle |
|
variiert | uint8 | Regelmäßiges Abtasten verwenden |
|
Die Nutzlast der BLE-RSSI-Ranging Configuration
-Nachricht ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8 | ID der Rangierungstechnologie | 0x3 – BLE-RSSI |
1 | uint8 | Größe | Größe der BLE-RSSI-Konfiguration (einschließlich der Felder Technology ID und Size) in Byte |
2 | uint8*6 | Geräteadresse | Die Adresse des Geräts, die für BLE-RSSI verwendet wird; in Big-Endian-Reihenfolge |
Nutzlast der Antwortnachricht für die Abfrage der Funkschnittstelle
Größe (ohne Headergröße): 2 Byte
Beschreibung:Diese Nachricht wird vom Teilnehmer als Antwort auf die Ranging Configuration
-Nachricht gesendet. Diese Nachricht ist optional und nur erforderlich, wenn der verwendete Kommunikationskanal für jede Anfrage eine explizite Antwort erfordert.
Die Nutzlast der Ranging Configuration Response
-Nachricht ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8*2 | Konfiguration der Abstandsmessung wurde erfolgreich festgelegt | Bitfeld der erfolgreich festgelegten Entfernungsmesstechnologien. Im Bitfeld wird das Bit für die Entfernungsmessung auf „1“ gesetzt, wenn die Technologie angefordert und erfolgreich festgelegt wurde, andernfalls auf „0“.
|
Nutzlast der Stop-Ranging-Nachricht
Größe (ohne Headergröße): 2 Byte
Beschreibung:Diese Nachricht wird vom Initiatorgerät gesendet, wenn die Zeit für das Beenden der Standortbestimmung mit der angegebenen Standortbestimmungstechnologie gekommen ist.
Die Nutzlast der Stop Ranging
-Mitteilung ist in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8*2 | Rangierungstechnologien, um Bitfeld zu beenden | Bitfeld der Entfernungsmesstechnologien, die die Entfernungsmessung beenden müssen. Wenn das Bit auf „1“ gesetzt ist, muss die Abstandsmessung beendet werden. „0“ bedeutet, dass die Abstandsmessung entweder nicht durchgeführt wurde oder fortgesetzt werden muss, wenn sie bereits durchgeführt wurde. Bei einigen Technologien zur Entfernungsmessung (z. B. CS) ist dies nicht möglich, da die Entfernungsmessung nur auf der Initiatorseite gestartet und beendet wird.
|
Nutzlast der Antwortnachricht „Stop Ranging“
Größe (ohne Headergröße): 2 Byte
Beschreibung:Diese Nachricht wird vom Teilnehmer als Antwort auf die Stop Ranging
-Nachricht gesendet. Diese Nachricht ist optional und nur erforderlich, wenn für den verwendeten Kommunikationskanal eine explizite Antwort auf jede Anfrage erforderlich ist.
Die Nutzlast der Stop Ranging Response
-Nachricht wird in der folgenden Tabelle zusammengefasst:
Oktett | Datentyp | Beschreibung | Wert |
---|---|---|---|
0 | uint8*2 | Ranging-Technologien wurden erfolgreich angehalten (Bitfeld) | Bitfeld der Entfernungsmesstechnologien, bei denen die Entfernungsmessung erfolgreich beendet wurde. Im Bitfeld wird das Bit für die Entfernungsmessung auf „1“ gesetzt, wenn die Technologie angehalten werden soll und dies erfolgreich war. Andernfalls wird es auf „0“ gesetzt.
|
Versionsverwaltung
Die Version der Spezifikation ist in der Kopfzeile jeder Nachricht enthalten. In diesem Abschnitt wird beschrieben, wie die Kommunikation abläuft, wenn eines der Geräte (der Initiator oder der Responder) eine ältere Version als das andere Gerät verwendet.
Fall 1: Verbindungsbasierter Kommunikationskanal
In diesem Abschnitt werden Fälle beschrieben, in denen ein verbindungsbasierter Kommunikationskanal verwendet wird. Dabei ist Ranging Capability Request
die erste Nachricht, die vom Initiatorgerät gesendet wird.
Fall 1.a: Initiator unterstützt neuere Version, Responder unterstützt ältere Version der Spezifikation.
Das Initiatorgerät sendet die Ranging Capability Request
-Nachricht mit der neueren Version. Das antwortende Gerät unterstützt nur die ältere Version und antwortet daher damit. Die ältere Version des antwortenden Geräts wird dann für den Rest des Nachrichtenaustauschs verwendet. Das bedeutet, dass die Ranging Capability Request
-Nachricht abwärtskompatibel sein muss.
Fall 1.b: Initiator unterstützt ältere Version, Responder unterstützt neuere Version der Spezifikation.
Das antwortende Gerät erkennt, dass das Initiatorgerät die neuere Version nicht verwenden kann, und sendet Nachrichten nur mit der älteren Version, die ursprünglich vom Initiatorgerät angefordert wurde.
Fall 2: Werbebasierter Kommunikationskanal
In diesem Abschnitt werden Fälle beschrieben, in denen ein werbebasierter Kommunikationskanal verwendet wird, bei dem das antwortende Gerät Ranging Capability Request
direkt ohne vorherige Anfrage anbietet.
Fall 2.a: Initiator unterstützt neuere Version, Responder unterstützt ältere Version der Spezifikation.
Die ältere Version, die in der Ranging Capability Response
-Anzeige festgelegt ist, wird für die restliche Kommunikation verwendet.
Fall 2.b: Initiator unterstützt ältere Version, Responder unterstützt neuere Version der Spezifikation.
Die neuere Version der Ranging Capability Response
-Anzeige muss abwärtskompatibel sein, damit das Initiatorgerät die Nachricht lesen kann, auch wenn es eine neuere Version verwendet. Das Initiatorgerät sendet die Ranging
Configuration
-Nachricht dann mit der von ihm unterstützten älteren Version. Diese Version wird für die restliche Kommunikation verwendet.
Damit Ranging Capability Response
abwärtskompatibel ist, müssen alle neuen Felder, die der nächsten Version dieser Spezifikation in der Ranging
Capability Response
-Nachrichtennutzlast hinzugefügt werden, an das Ende der Nutzlast angehängt werden. Keines der vorhandenen Felder darf geändert werden. Wenn die angegebene Größe beim Parsen der Konfiguration größer als erwartet ist, müssen zusätzliche Felder von Geräten ignoriert werden, die nur die ältere Version der Spezifikation verstehen.
Fragmentierung
Diese Spezifikation ist unabhängig vom Kommunikationskanal. Daher wird nicht definiert, wie die Nachrichtenn-Nutzlast fragmentiert werden soll, wenn eine einzelne Nachricht zu groß ist, um in ein Übertragungspaket des verwendeten Kommunikationskanals zu passen. Das Rangierungsmodul erwartet, dass jede Nachricht in ihrer vollständigen Form empfangen wird. Die Verantwortung für die Fragmentierung liegt beim Implementierer des OOB-Kommunikationskanals.
Besonderheiten der Entfernungsmessung
Dieser Abschnitt enthält Details zur Entfernungsmessung.
Ultrabreitband (UWB) – Details
In diesem Abschnitt werden Ultrabreitband-spezifische Details beschrieben.
Konfigurations-IDs
Die OOB-Konfigurationsdaten, die für UWB ausgetauscht werden, enthalten nicht den vollständigen Satz verfügbarer konfigurierbarer Parameter, die UWB zum Starten einer UWB-Messsitzung benötigt. Das liegt daran, dass einige Parameter durch die ausgewählte Konfigurations-ID implizit ausgewählt werden.
Jede Konfigurations-ID ist eine Gruppe von vordefinierten UWB-Konfigurationsparametern, die in UwbRangingParams
dokumentiert sind. Das antwortende Gerät sendet im Rahmen der Antwortnachricht zu den Fähigkeiten eine Liste aller unterstützten Konfigurations-IDs und der Initiator wählt eine der unterstützten Konfigurations-IDs aus, die verwendet werden soll. So kann während der OOB-Phase eine kleinere Anzahl von Konfigurationsparametern ausgetauscht werden. Außerdem wird die Anzahl der möglichen Kombinationen von Parametern begrenzt, die für die Entfernungsmessung mit UWB verwendet werden können. So ist es nur möglich, zulässige Kombinationen von Parametern zu testen.
Funktionen nach jeder UWB-Sitzung anfordern
Nachdem eine UWB-Sitzung beendet wurde und bevor eine neue UWB-Sitzung gestartet wird, muss das Initiatorgerät die Funktionen des Responder-Geräts anfordern und die Konfigurationsparameter noch einmal festlegen, da sich die UWB-Adresse ändern kann, sobald die aktuelle Abstandsmessung endet.
Besonderheiten der BLE-Kanalsuche
In diesem Abschnitt werden spezifische Details zur Kanalsondierung beschrieben.
Erforderliche Verknüpfung zwischen Geräten
Für die Funktion des Abstandsmessverfahrens mit Kanalabfrage ist eine bestehende Verknüpfung zwischen dem Initiator und dem Antwortgerät erforderlich. Diese Spezifikation bietet keine Möglichkeit, eine Bindung zwischen Geräten herzustellen. Der Nutzer der Ranging APIs muss diese Verknüpfung zwischen den Geräten herstellen.
Erforderliche Maßnahme des antwortenden Kundenservicemitarbeiters
Bei UWB müssen beide Geräte die UWB-API zum Starten und Stoppen der Standortermittlung explizit aufrufen. Bei CS ist dagegen nur das Initiatorgerät erforderlich, um die CS-Messung durch Aufrufen des Bluetooth-Stacks (BT) zu starten. Die restliche Initialisierung auf der Seite des Responders erfolgt in Band über BT. Das bedeutet, dass die Seite des Responders nach Erhalt der Ranging Configuration
-Nachricht oder der Stop Ranging
-Nachricht für CS nichts tun muss, wenn BT aktiviert ist. Das Gerät könnte diese Nachrichten als Trigger verwenden, um die Benutzeroberfläche zu aktualisieren oder beispielsweise die LEDs des Geräts zum Blinken zu bringen.