Android 16 a introduit le module Ranging. Cette spécification de protocole et de charge utile définit la séquence de messages et la charge utile de la communication hors bande (OOB) utilisée pour échanger des configurations de mesure de distance, et pour démarrer et arrêter la mesure de distance, entre l'appareil initiateur et l'appareil répondeur qui effectuent la mesure de distance. Android 17 introduit la version 3 de cette spécification.
Cette page permet aux fournisseurs d'appareils non Android d'implémenter cette spécification afin que leurs appareils soient compatibles avec les appareils Android.
Une implémentation de cette spécification dans le langage de description de paquets (PDL) de Google est disponible sur GitHub. À partir de cette implémentation, le compilateur PDL peut générer du code de sérialisation et de désérialisation pour les messages définis dans cette spécification. Cette spécification est compatible avec divers langages cibles, y compris C++, Rust et Java.
Nouveautés de la version 3
La version 3 de la spécification OOB introduit les modifications suivantes :
- Notification de mouvement : message utilisé par l'appareil de l'annonceur pour informer l'appareil initiateur d'un changement de mouvement.
- Configuration de la mesure de distance : inclut un nouveau champ
Motion supportpour indiquer à l'initiateur de notifier au répondeur tout changement dans le mouvement du périphérique par rapport au répondeur. - Ajout de la prise en charge de la nouvelle technologie Wi-Fi PD dans Ranging Capability (Capacité de mesure de distance) et Ranging Configuration (Configuration de mesure de distance).
- Les champs
Supported BandwidthetSupported number of Receive chainsdeWi-Fi NAN RTT Ranging Capabilitysont obsolètes.
Endianness
Sauf indication contraire, tous les champs numériques multi-octets des messages sont dans l'ordre little-endian.
Messages et séquence de messages
Cette section décrit les messages et la séquence de l'échange de messages.
Le tableau suivant présente tous les messages présents dans l'échange OOB :
| Message | ID du message |
|---|---|
Ranging Capability Request |
0x0 |
Ranging Capability Response |
0x1 |
Ranging Configuration |
0x2 |
Ranging Configuration Response (facultatif) |
0x3 |
Stop Ranging |
0x6 |
Stop Ranging Response (facultatif) |
0x7 |
Motion Notification |
0x8 |
Les figures 1 et 2 illustrent le déclenchement de l'échange de messages pour différents canaux de communication.
Pour les canaux de communication basés sur la connexion, tels que BLE GATT, l'échange de messages commence par l'envoi de Ranging Capability Request par l'appareil initiateur à l'appareil récepteur. L'appareil répondant envoie Ranging
Capability Response, comme indiqué sur la figure 1 :
Figure 1. Échange de messages hors bande à l'aide d'un canal de communication basé sur une connexion.
Pour les canaux de communication basés sur la publicité, l'appareil répondeur commence par diffuser une publicité Ranging Capability Response. Dans ce cas, l'appareil à l'origine de la requête n'envoie pas Ranging Capability Request. Au lieu de cela, après avoir détecté l'annonce, lorsque l'appareil initiateur (scanner initial) est prêt, il répond en annonçant Ranging Configuration comme premier message, comme illustré à la figure 2 :
Figure 2. Échange de messages OOB à l'aide d'une communication basée sur la publicité.
Le reste de l'échange de messages est identique dans les deux cas. L'appareil répondeur commence la mesure de distance immédiatement après avoir reçu le message Ranging Configuration.
L'appareil répondant arrête la mesure de distance après avoir reçu ou détecté le message Stop
Ranging.
Dans le flux basé sur la connexion, l'appareil répondant renseigne les capacités uniquement des technologies de mesure de distance demandées dans le message Ranging Capability Request. En revanche, dans le flux d'annonces, l'appareil répondant doit lister toutes ses capacités, car il n'y a pas de message de demande de capacité précédent.
L'appareil initiateur suppose qu'il ne recevra qu'une seule réponse à chaque message de requête qu'il envoie. L'appareil répondant ne doit faire aucune hypothèse de ce type afin de pouvoir répondre à n'importe quelle requête dans n'importe quel ordre. Cela permet de vérifier que l'appareil récepteur peut répondre à plusieurs messages Ranging Capability Request consécutifs ou à tout autre message hors séquence provenant de l'appareil émetteur.
Transition technologique
La version OOB permet aux appareils de passer dynamiquement d'une technologie de mesure de distance à une autre au cours d'une session. Pour faciliter cette opération, l'initiateur peut :
- Envoyez plusieurs messages
Ranging Configurationpour démarrer de nouvelles technologies. - Envoyez plusieurs messages
Stop Rangingpour arrêter les technologies actives.
L'ordre de ces messages varie en fonction du schéma de transition pris en charge par le répondeur :
- Break-before-make : l'initiateur ne peut passer à une nouvelle technologie qu'en arrêtant la première avec un message
Stop Rangingavant de démarrer la seconde avec un messageRanging Configuration. - Make-before-break : l'initiateur peut démarrer une nouvelle technologie à l'aide d'un message
Ranging Configurationavant d'arrêter les technologies existantes avec un messageStop Ranging.
Le répondeur doit implémenter la prise en charge de l'un de ces schémas de transition en fonction de la valeur du champ supported technology transitioning dans son Ranging Capability Response.
ID de la technologie de mesure de distance
Les ID des technologies de mesure de distance sont listés dans le tableau suivant :
| Technologie de mesure de distance | ID |
|---|---|
| UWB | 0x0 |
| CS | 0x1 |
| Wi-Fi NAN RTT | 0x2 |
| RSSI | 0x3 |
| Wi-Fi PD | 0x4 |
| RFU | 0x5 – 0xFF |
Ces ID sont utilisés dans les tableaux suivants, où l'ID de la technologie de mesure de distance est requis. Pour les champs contenant un bitfield de technologie de mesure de distance, un bit correspondant à l'index de l'ID de la technologie est défini lorsque cette technologie est incluse dans le bitfield.
Par exemple, le RSSI a une valeur d'ID de 3, mais si le RSSI est inclus dans le champ de bits de la technologie de mesure de distance, le bit avec la position de l'ID (3) doit être activé (le premier bit étant à la position 0), ce qui donne la valeur 0x8 au champ de bits. Si UWB et RSSI sont inclus, la valeur du champ de bits est 0x0A (bits 0 et 3 activés).
Format des messages
Chaque message se compose d'un en-tête et d'une charge utile.
Figure 3. Format du message.
En-tête
Taille : 2 octets
Description : L'en-tête est la première partie d'un message. Il est commun à tous les messages. L'en-tête contient une version et l'ID du type de message. Le champ "version" spécifie la version de cette spécification à laquelle le contenu du message est conforme. Pour en savoir plus sur la façon dont la gestion des versions est utilisée entre les appareils exécutant différentes versions, consultez Gestion des versions. L'en-tête reste rétrocompatible entre les différentes versions, ce qui signifie que le cas d'utilisation peut toujours l'analyser pour déterminer la version et l'ID du message.
Le tableau suivant récapitule l'en-tête :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | Version |
|
| 1 | uint8 | ID du message |
|
Charge utile
Taille : variable (selon le type de message)
Description : la charge utile est la dernière partie du message, après l'en-tête. La charge utile dépend du type de message. Le format de la charge utile de chaque type de message est défini dans les sections suivantes.
Charge utile du message de demande de capacité de mesure de distance
Taille (taille de l'en-tête non incluse) : 2 octets
Description : message envoyé par l'appareil initiateur pour lancer l'échange de messages.
Ce message est facultatif lorsque le canal de communication est basé sur la publicité. Dans ce cas, l'appareil de réponse doit diffuser un message Ranging
Capability Response comme première étape. L'appareil initiateur (scanner initial) lit l'annonce et répond directement avec un message Ranging Capability Request, ce qui évite d'avoir à envoyer ce message.
La charge utile du message Ranging Capability Request est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8*2 | Champ de bits des technologies de mesure de distance demandées |
|
Charge utile du message de réponse sur la capacité de mesure de distance
Taille (taille de l'en-tête non incluse) : variable (partie commune de 2 octets plus la taille de chaque octet de technologie de télémétrie inclus)
Description : envoyé par le répondeur en réponse à un message Ranging Capability
Request. La charge utile de ce message se compose de la partie commune et des parties spécifiques à la technologie de mesure de distance (BLE CS, Wi-Fi NAN RTT, BLE RSSI), comme indiqué dans les tableaux suivants. Chaque partie spécifique à une technologie de mesure de distance ne doit être ajoutée que si cette technologie est prise en charge par l'appareil répondant et est demandée dans le message Ranging Capability Request. Dans le cas d'un canal de communication publicitaire, toutes les technologies de mesure de distance compatibles doivent être incluses.
La charge utile du message Ranging Capability Response est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8*2 | Champ de bits des technologies de mesure de distance compatibles. Indique l'ensemble des fonctionnalités des technologies de mesure de distance qui suivent dans le reste de la charge utile. |
|
| 2 | tableau d'octets | Octets de capacité de technologie de télémétrie. | Blocs répétés de structs définis par technologie. |
| Variable | uint8 | Indique la compatibilité avec la transition technologique. |
|
| Variable | uint16 | Indique le type d'appareil de réponse. |
|
La charge utile du message UWB Ranging Capability Response est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x0 – UWB |
| 1 | uint8 | Taille | Taille des octets des fonctionnalités UWB (y compris les champs ID de technologie et Taille) en octets. |
| 2 | uint8*2 | Adresse UWB | Adresse UWB de l'appareil (2 octets). |
| 4 | uint8*4 | Champ de bits des canaux compatibles | Champ de bits des canaux compatibles. Si le bit est défini sur 0, cela signifie que la fonctionnalité n'est pas prise en charge. S'il est défini sur 1, cela signifie qu'elle l'est. Le bit 0 correspond au canal 0.LSB == channel 0MSB == channel 31 |
| 8 | uint8*4 | Champ de bits d'index de préambule compatible | Champ de bits des index de préambule compatibles. Si le bit est défini sur 0, cela signifie que la fonctionnalité n'est pas prise en charge. S'il est défini sur 1, cela signifie qu'elle l'est. Le bit 0 correspond à l'index de préambule 1.LSB == preamble index 1MSB == preamble index 32 |
| 12 | uint8*4 | Champ de bits des ID de configuration compatibles | Champ de bits des ID de configuration UWB compatibles. Si le bit est défini sur 0, cela signifie que la fonctionnalité n'est pas compatible. S'il est défini sur 1, cela signifie qu'elle l'est.LSB == config Id 0MSB == config Id 31 |
| 16 | uint8*2 | Intervalle de mesure de distance minimal accepté | Indique l'intervalle de mesure de distance le plus rapide pris en charge, en millisecondes. Valeurs autorisées (en ms) :
|
| 18 | uint8 | Durée minimale des créneaux acceptée | Indique la durée de créneau la plus courte acceptée, en millisecondes. Par exemple, si l'appareil renvoie 1 ms, il est supposé prendre également en charge les durées de créneau de 2 ms ou plus. Valeurs autorisées (en ms) :
|
| 19 | Champ de bits du rôle de l'appareil UWB compatible | Champ de bits des rôles UWB acceptés. Par exemple, si les deux sont compatibles, la valeur du champ final est 0x3.
|
La charge utile du message BLE CS Ranging Capability Response est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x1 : BLE CS |
| 1 | uint8 | Taille | Taille des octets des fonctionnalités BLE CS (y compris les champs ID de technologie et Taille) en octets. |
| 2 | uint8 | Champ de bits du type de sécurité compatible | Champ de bits des types de sécurité compatibles pour le service de configuration BLE.
|
| 3 | uint8*6 | Adresse de l'appareil | Adresse de l'appareil utilisé pour le service de configuration BLE, dans l'ordre big-endian. |
La charge utile du message Wi-Fi NAN RTT Ranging Capability Response est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x2 : Wi-Fi NAN RTT |
| 1 | uint8 | Taille | Taille des octets des fonctionnalités RSSI BLE (y compris les champs ID de technologie et Taille) en octets. |
| 2 | uint8 | Champ de bits des fonctionnalités compatibles | Champ de bits des fonctionnalités compatibles.
|
| 3 | uint8 | Compatible avec la mesure de distance périodique |
|
| 4 | uint8 | Bande passante disponible | OBSOLÈTE : Ces informations permettent de déterminer la précision de la mesure de distance réalisable à l'aide de Wi-Fi NAN. Elles peuvent également aider les applications à déterminer si elles doivent utiliser UWB, BLE CS, BLE RSSI ou Wi-Fi NAN pour la mesure de distance.
|
| 5 | uint8 | Nombre de chaînes de réception acceptées | OBSOLÈTE : Ces informations permettent de déterminer la précision de la mesure de distance réalisable à l'aide de Wi-Fi NAN. Elles peuvent également aider les applications à déterminer si elles doivent utiliser UWB, BLE CS, BLE RSSI ou Wi-Fi NAN pour la mesure de distance.
|
La charge utile du message RSSI BLE Ranging Capability Response est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x3 : RSSI BLE |
| 1 | uint8 | Taille | Taille des octets des capacités RSSI BLE (y compris les champs ID de technologie et Taille) en octets |
| 2 | uint8*6 | Adresse de l'appareil | Adresse de l'appareil utilisé pour le RSSI BLE, dans l'ordre big-endian |
La charge utile du message Ranging Capability Response du Wi-Fi PD est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x4 : Wi-Fi PD |
| 1 | uint8 | Taille | Taille des octets des fonctionnalités Wi-Fi PD (y compris les champs ID de technologie et Taille) en octets |
| 2 | uint8 | Fonctionnalités compatibles | Bitmap
|
| 3 | uint8 | PansMode | Bitmap
|
| 4 | uint8*6 | Adresse de l'appareil | Adresse de l'appareil utilisé pour Wi-Fi PD, dans l'ordre big-endian. |
| 10 | uint8*2 | Intervalle de mesure de distance minimal 802.11mc | Intervalle de mesure minimal accepté au format big-endian pour 11mc |
| 12 | uint8*2 | Intervalle de mesure de distance minimal 802.11az | Intervalle de mesure de distance minimal accepté au format big-endian pour 11az |
| 14 | uint8 | Type de préambule max. |
|
| 15 | uint8 | Largeur de canal maximale |
|
| 16 | uint8*2 | Fréquence des canaux compatibles |
|
Charge utile du message de configuration de la mesure de distance
Taille (taille de l'en-tête non incluse) : variable (partie commune de 4 octets plus la taille de chaque octet de technologie de portée inclus).
Description : ce message est envoyé par l'initiateur et contient les configurations avec lesquelles chaque technologie de mesure de distance peut commencer la mesure. L'appareil répondeur doit essayer de commencer la mesure de distance avec chaque technologie de mesure de distance indiquée à la réception de ce message. La charge utile de ce message se compose de la partie commune et des parties spécifiques à la technologie de mesure de distance (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI), comme indiqué dans les tableaux suivants.
La charge utile du message Ranging Configuration est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8*2 | Champ de bits de l'ensemble de configuration des technologies de mesure de distance | Champ de bits des technologies de mesure de distance pour lesquelles ce message contient des données de configuration et pour lesquelles des paramètres de configuration doivent être définis.
|
| 2 | uint8*2 | Bitfield | RFU. Doit être défini sur la même valeur que le champ Bitfield de l'ensemble de configuration des technologies de mesure de distance. |
| 4 | tableau d'octets | Octets de configuration des technologies de mesure de distance | Blocs répétés de structs définis par technologie |
| Variable | uint8 | Prise en charge du mouvement | Motion Notification a demandé
|
La charge utile du message UWB Ranging Configuration est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x0 – UWB |
| 1 | uint8 | Taille | Taille de la configuration UWB (y compris les champs ID de technologie et Taille) en octets |
| 2 | uint8*2 | Adresse UWB | Adresse UWB de l'appareil de 2 octets |
| 4 | uint8*4 | ID de session | ID de session généré. L'ID de session est un identifiant unique pour la session de mesure de distance entre le téléphone et le périphérique. |
| 8 | uint8 | ID de configuration sélectionné | Numéro d'ID de configuration sélectionné sous forme d'entier. L'ID de configuration spécifie les paramètres de timing et le type de sécurité à utiliser pour la session de mesure de distance UWB. |
| 9 | uint8 | Chaîne sélectionnée | Canal sélectionné pour la session de mesure de distance UWB |
| 10 | uint8 | Index du préambule sélectionné | Index du préambule sélectionné pour la session de mesure de distance UWB |
| 11 | uint8*2 | Intervalle de couverture sélectionné | Fréquence de l'intervalle de mesure sélectionné en millisecondes. Valeurs autorisées (en ms) :
|
| 13 | uint8 | Durée du créneau sélectionné | Durée du créneau sélectionné en millisecondes. Valeurs autorisées (en ms) :
|
| 14 | uint8 | Longueur de la clé de session | Longueur de la clé de session en octets |
| 15 | tableau d'octets | Clé de session | Clé de session. Si S-STS est utilisé, les deux premiers octets sont l'ID du fournisseur et les six octets suivants sont le STATIC STS IV. Si P-STS est utilisé, il s'agit d'une clé de session de 16 ou 32 octets. Le type de sécurité utilisé est déterminé par l'ID de configuration. |
| Variable | uint8*2 | Code de pays | Code pays ISO 3166-1 alpha-2, représenté par deux caractères ASCII |
| Variable | uint8 | Rôle de l'appareil sélectionné |
|
| Variable | uint8 | Mode appareil sélectionné |
|
La charge utile du message BLE CS Ranging Configuration est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x1 : BLE CS |
| 1 | uint8 | Taille | Taille de la configuration BLE CS (y compris les champs Technology ID et Size) en octets |
| 2 | uint8 | Type de sécurité sélectionné | Type de sécurité sélectionné. Valeurs autorisées :
|
| 3 | uint8*6 | Adresse de l'appareil | Adresse de l'appareil utilisé pour le BLE CS ; dans l'ordre big-endian |
La charge utile du message Wi-Fi NAN RTT Ranging Configuration est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x2 : Wi-Fi NAN RTT |
| 1 | uint8 | Taille | Taille de la configuration Wi-Fi NAN RTT (y compris les champs ID de technologie et Taille) en octets |
| 2 | uint8 | Longueur du nom du service | Longueur du champ "Nom du service" en octets. Reportez-vous à la section 1.3.3, tableau 1 de la spécification Wi-Fi Aware v4.0. Définitions. |
| 3 | tableau d'octets | Nom du service | Nom du service. Reportez-vous à la section 1.3.3, tableau 1 de la spécification Wi-Fi Aware v4.0. Définitions. |
| Variable | uint8 | Rôle de l'appareil |
|
| Variable | uint8 | Utiliser la mesure de distance périodique |
|
La charge utile du message RSSI BLE Ranging Configuration est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x3 : RSSI BLE |
| 1 | uint8 | Taille | Taille de la configuration RSSI BLE (y compris les champs ID de technologie et Taille) en octets |
| 2 | uint8*6 | Adresse de l'appareil | Adresse de l'appareil utilisé pour le RSSI BLE, dans l'ordre big-endian |
La charge utile du message Ranging Configuration du Wi-Fi PD est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | ID de la technologie de mesure de distance | 0x4 : Wi-Fi PD |
| 1 | uint8 | Taille | Taille de la configuration Wi-Fi NAN PD (y compris les champs ID de technologie et Taille) en octets |
| 2 | uint8 | Fonctionnalité |
|
| 3 | uint8*6 | Adresse MAC | Adresse MAC de l'initiateur |
| 9 | uint8*2 | Intervalle de mesure de la distance | Intervalle de mesure de la distance en ms |
| 11 | uint8 | Préambule sélectionné |
|
| 12 | uint8 | Largeur du canal sélectionné |
|
| 13 | uint8 | Chaîne sélectionnée |
|
| 14 | uint8 | Mode PASN sélectionné |
|
| 15 | tableau d'octets | Clé d'identité de l'appareil | Tableau fixe de 16 octets Remarque : Ce champ n'est valide que pour le mode PASN authentifié. Il ne doit pas être défini pour le mode PASN non authentifié. |
| 31 | uint8 | Longueur du mot de passe | Longueur du mot de passe. Remarque : Ce champ n'est valide que pour le mode PASN authentifié. Il ne doit pas être défini pour le mode PASN non authentifié. |
| Variable | tableau d'octets | Mot de passe | Mot de passe sous forme de tableau d'octets.
Remarque : Ce champ n'est valide que pour le mode PASN authentifié. Il ne doit pas être défini pour le mode PASN non authentifié. |
Charge utile du message de réponse à la configuration de la mesure de distance
Taille (taille de l'en-tête non incluse) : 2 octets
Description : ce message est envoyé par le répondant en réponse au message Ranging Configuration. Ce message est facultatif. Il n'est requis que lorsque le canal de communication utilisé nécessite une réponse explicite pour chaque demande.
La charge utile du message Ranging Configuration Response est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8*2 | Bitfield de configuration des technologies de mesure de distance défini avec succès | Champ de bits des technologies de mesure de distance qui ont été définies avec succès. Le champ de bits définit le bit de technologie de mesure de distance sur 1 si la technologie a été demandée et définie avec succès, et sur 0 dans le cas contraire.
|
Charge utile du message "Stop Ranging"
Taille (taille de l'en-tête non incluse) : 2 octets
Description : ce message est envoyé par l'appareil initiateur lorsqu'il est temps d'arrêter la mesure de distance avec la technologie de mesure de distance spécifiée.
La charge utile du message Stop Ranging est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8*2 | Arrêt du champ de bits des technologies de mesure de distance | Champ de bits des technologies de mesure de distance qui doivent arrêter la mesure de distance. Si le bit est défini sur 1, cela indique que la technologie de mesure de distance doit arrêter la mesure. Si le bit est défini sur 0, cela indique que la technologie de mesure de distance n'effectuait pas de mesure au départ ou qu'elle doit continuer à mesurer si elle le faisait déjà. Pour certaines technologies de mesure de distance (comme CS), il s'agit d'une opération sans effet, car la mesure de distance n'est lancée et arrêtée que du côté de l'initiateur.
|
Charge utile du message de réponse "Arrêter la mesure de distance"
Taille (taille de l'en-tête non incluse) : 2 octets
Description : ce message est envoyé par le répondant en réponse au message Stop Ranging. Ce message est facultatif. Il n'est requis que lorsque le canal de communication utilisé nécessite une réponse explicite pour chaque demande.
La charge utile du message Stop Ranging Response est résumée dans le tableau suivant :
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8*2 | Champ de bits indiquant que les technologies de mesure de distance ont été arrêtées avec succès | Bitfield des technologies de mesure de distance qui ont arrêté la mesure de distance avec succès. Le champ de bits définit le bit de technologie de mesure de distance sur 1 si l'arrêt de la technologie a été demandé et a abouti, et sur 0 dans le cas contraire.
|
Charge utile du message de notification de mouvement
Taille (taille de l'en-tête non incluse) : 1 octet
Description : l'appareil répondant envoie ce message pour informer l'appareil initiateur de toute modification de son état de mouvement.
| Octet | Type de données | Description | Valeur |
|---|---|---|---|
| 0 | uint8 | Mouvement |
|
Gestion des versions
La version de la spécification figure dans l'en-tête de chaque message. Cette section définit la manière dont la communication est menée lorsque l'un des appareils (l'initiateur ou le répondeur) utilise une version plus ancienne que l'autre appareil.
Cas 1 : Canal de communication basé sur la connexion
Cette section décrit les cas qui utilisent un canal de communication basé sur une connexion, où Ranging Capability Request est le premier message envoyé par l'appareil initiateur.
Cas 1.a : L'initiateur est compatible avec une version plus récente, tandis que le répondeur est compatible avec une version plus ancienne de la spécification.
L'appareil initiateur envoie le message Ranging Capability Request avec la version la plus récente. L'appareil répondant ne prend en charge que l'ancienne version. Il répond donc avec celle-ci, qui est ensuite utilisée pour le reste de l'échange de messages. Cela signifie que le message Ranging Capability Request doit être rétrocompatible.
Cas 1.b : L'initiateur est compatible avec une ancienne version, et le répondeur est compatible avec une version plus récente de la spécification.
L'appareil récepteur constate que l'appareil émetteur n'est pas compatible avec la version la plus récente. Il n'envoie donc des messages qu'avec l'ancienne version demandée initialement par l'appareil émetteur.
Cas 2 : Canal de communication basé sur les annonces
Cette section décrit les cas qui utilisent un canal de communication basé sur la publicité, où l'appareil répondant diffuse Ranging Capability Request directement, sans demande initiale.
Cas 2.a : L'initiateur est compatible avec une version plus récente, tandis que le répondeur est compatible avec une version plus ancienne de la spécification.
L'ancienne version définie dans l'annonce Ranging Capability Response est utilisée pour le reste de la communication.
Cas 2.b : L'initiateur est compatible avec une ancienne version, le répondeur est compatible avec une version plus récente de la spécification.
La version la plus récente de l'annonce Ranging Capability Response doit être rétrocompatible afin que l'appareil initiateur puisse lire le message même s'il utilise une version plus récente. L'appareil initiateur envoie ensuite le message Ranging
Configuration à l'aide de l'ancienne version qu'il prend en charge. Il s'agit de la version utilisée pour le reste de la communication.
Pour s'assurer que Ranging Capability Response est rétrocompatible, tous les nouveaux champs ajoutés à la prochaine version de cette spécification dans la charge utile du message Ranging
Capability Response doivent être ajoutés à la fin de la charge utile. Aucun des champs existants ne peut être modifié. Lors de l'analyse de la configuration, si la taille indiquée est plus grande que prévu, les champs supplémentaires doivent être ignorés par tout appareil qui ne peut comprendre que l'ancienne version de la spécification.
Fragmentation
Cette spécification est indépendante du canal de communication. Elle ne définit donc pas comment fragmenter la charge utile du message dans les cas où un seul message est trop volumineux pour tenir dans un paquet de transfert du canal de communication utilisé. Le module Ranging s'attend à recevoir chaque message dans son intégralité. La responsabilité de la fragmentation incombe à l'implémenteur du canal de communication OOB.
Spécificités de la technologie de mesure de distance
Cette section contient des informations spécifiques à la technologie de mesure de distance.
Spécificités de la bande ultralarge (UWB)
Cette section décrit les détails spécifiques à la bande ultralarge.
ID de configuration
Les données de configuration OOB échangées pour l'UWB ne contiennent pas l'ensemble complet des paramètres configurables disponibles dont l'UWB a besoin pour démarrer une session de mesure de distance UWB. En effet, certains paramètres sont sélectionnés de manière implicite par l'ID de configuration choisi.
Chaque ID de configuration est un ensemble de paramètres de configuration UWB prédéfinis qui sont documentés dans UwbRangingParams. L'appareil répondant envoie la liste de tous les ID de configuration qu'il prend en charge dans le cadre des ID de configuration supports_technology_transitioning utilisés. Cela permet d'échanger un plus petit ensemble de paramètres de configuration lors de la configuration hors bande. Il limite également le nombre de combinaisons de paramètres pouvant être utilisées pour la mesure de distance avec l'UWB, ce qui permet de tester uniquement les combinaisons de paramètres autorisées.
Demander des fonctionnalités après chaque session UWB
Après avoir arrêté une session UWB existante et avant d'en démarrer une nouvelle, l'appareil initiateur doit demander les capacités de l'appareil répondeur et définir à nouveau les paramètres de configuration, car l'adresse UWB peut changer dès la fin de la session de mesure de distance en cours.
Spécificités du sondage de canal BLE (CS)
Cette section décrit les détails spécifiques à la mesure de la réponse impulsionnelle du canal.
Liaison requise entre les appareils
Une liaison existante entre l'appareil initiateur et l'appareil récepteur est nécessaire pour que la mesure de distance à l'aide de la mesure de canal fonctionne. Cette spécification ne permet pas de créer une association entre les appareils. L'utilisateur des API Ranging doit établir ce lien entre les appareils.
Action requise par l'équipe CS
Dans UWB, les deux appareils sont tenus d'appeler explicitement les API de démarrage et d'arrêt de la mesure de distance UWB. En revanche, pour la technologie CS, seul l'appareil initiateur est requis pour démarrer la mesure de distance CS en appelant la pile Bluetooth (BT). Le reste de l'initialisation côté répondeur se fait dans la bande via BT. Cela signifie qu'à la réception du message Ranging Configuration ou du message Stop Ranging pour CS, le côté répondeur n'a rien à faire si BT est activé. L'appareil de réponse peut utiliser ces messages comme déclencheur pour mettre à jour l'UI ou, par exemple, faire clignoter les voyants de l'appareil.