В Android 16 был представлен модуль Ranging . Эта спецификация протокола и полезной нагрузки определяет последовательность сообщений и полезную нагрузку внеполосной (OOB) связи, используемой для обмена конфигурациями измерения расстояния, а также для запуска и остановки измерения расстояния между устройством-инициатором и устройством-ответчиком, участвующими в измерении расстояния. В Android 17 представлена версия 3 этой спецификации.
На этой странице описано, как производители устройств, не использующих Android, могут реализовать данную спецификацию, чтобы их устройства были совместимы с устройствами Android.
Реализация этой спецификации на языке описания пакетов (PDL) от Google доступна на GitHub . На основе этой реализации компилятор PDL может генерировать код сериализации и десериализации для сообщений, определенных в этой спецификации. Данная спецификация поддерживает различные целевые языки, включая C++, Rust и Java.
Что нового в версии 3?
В третьей версии спецификации OOB внесены следующие изменения:
- Уведомление о движении : сообщение, которое устройство-рекламодатель использует для уведомления устройства-инициатора об изменении состояния движения.
- Настройка определения расстояния : Включает новое поле
Motion support, позволяющее инициатору уведомлять отвечающего о любых изменениях периферийного перемещения отвечающего. - Добавлена поддержка новой технологии Wi-Fi PD в разделах «Возможности определения дальности» и «Настройка дальности» .
- Устаревать поля
Supported BandwidthиSupported number of Receive chainsвWi-Fi NAN RTT Ranging Capability.
Эндианность
Если не указано иное, все многобайтовые числовые поля в сообщениях представлены в порядке байтов little-endian.
Сообщения и последовательность сообщений
В этом разделе описываются сообщения и последовательность обмена сообщениями.
В следующей таблице показаны все сообщения, присутствующие в обмене данными внеполосным способом (OOB):
| Сообщение | Идентификатор сообщения |
|---|---|
Ranging Capability Request | 0x0 |
Ranging Capability Response | 0x1 |
Ranging Configuration | 0x2 |
Ranging Configuration Response (необязательно) | 0x3 |
Stop Ranging | 0x6 |
Stop Ranging Response (опционально) | 0x7 |
Motion Notification | 0x8 |
Обмен сообщениями начинается с того, что устройство-инициатор отправляет ответчику Ranging Capability Request . Ответчик отправляет ответ Ranging Capability Response , как показано на рисунке 1:

Рисунок 1. Обмен сообщениями внеполосным способом с использованием канала связи на основе соединения.
Устройство-ответчик начинает измерение расстояния сразу после получения сообщения « Ranging Configuration . Устройство-ответчик прекращает измерение расстояния после получения или обнаружения сообщения « Stop Ranging ».
Устройство-ответчик заполняет данные о возможностях только тех технологий измерения расстояния, которые запрошены в сообщении Ranging Capability Request .
Устройство-инициатор ожидает получить только один ответ на любое отправленное им сообщение-запрос. Устройство-ответчик не должно делать подобных предположений, чтобы иметь возможность отвечать на любые запросы в любом порядке. Это подтверждает, что устройство-ответчик может отвечать на несколько последовательных сообщений Ranging Capability Request или любые другие сообщения, отправляемые устройством-инициатором вне установленного порядка.
Технологический переход
В стандартной версии (OOB) устройства могут динамически переключаться между различными технологиями измерения расстояния в течение сеанса. Для этого инициатор может:
- Для запуска новых технологий отправьте несколько сообщений
Ranging Configuration. - Отправьте несколько сообщений
Stop Ranging, чтобы остановить работу активных технологий.
Порядок этих сообщений варьируется в зависимости от схемы перехода, поддерживаемой отвечающим:
- Принцип «разрыв до замыкания»: инициатор может перейти к новой технологии только путем остановки первой с помощью сообщения
Stop Rangingпрежде чем запустить вторую с помощью сообщенияRanging Configuration. - Принцип «сначала запусти, потом прерви»: инициатор может запустить новую технологию, используя сообщение
Ranging Configurationпрежде чем остановить существующие технологии с помощью сообщенияStop Ranging.
Ответственный за реагирование должен обеспечить поддержку одной из этих схем перехода в соответствии со значением supported technology transitioning в рамках своего Ranging Capability Response .
Идентификаторы технологий определения дальности
Идентификаторы технологий измерения расстояний приведены в следующей таблице:
| Технология определения дальности | ИДЕНТИФИКАТОР |
|---|---|
| UWB | 0x0 |
| КС | 0x1 |
| Wi-Fi NAN RTT | 0x2 |
| РССИ | 0x3 |
| Wi-Fi PD | 0x4 |
| РФУ | 0x5 - 0xFF |
Эти идентификаторы используются в таблицах на этой странице, где требуется идентификатор технологии измерения расстояний. Для полей, содержащих битовое поле технологии измерения расстояний, устанавливается бит, соответствующий индексу идентификатора технологии, если эта технология включена в битовое поле.
Например, RSSI имеет значение ID 3, но если RSSI включен в битовое поле технологии определения расстояния, то бит с позицией ID (3) должен быть включен (первый бит находится в позиции 0), что делает результирующее значение битового поля равным 0x8. Если включены и UWB, и RSSI, то значение битового поля равно 0x0A (оба бита 0 и 3 включены).
Формат сообщения
Каждое сообщение состоит из заголовка и полезной нагрузки.

Рисунок 3. Формат сообщения.
Заголовок
Размер: 2 байта
Описание: Заголовок, общий для всех сообщений, является первой частью сообщения. Заголовок содержит версию и идентификатор типа сообщения. Поле версии указывает версию данной спецификации, которой соответствует содержимое сообщения. Дополнительную информацию об использовании версионирования между устройствами разных версий см. в разделе «Версионирование» . Заголовок сохраняет обратную совместимость между различными версиями, что означает, что в сценарии использования его всегда можно проанализировать, чтобы определить версию и идентификатор сообщения.
Заголовок представлен в следующей таблице:
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Версия |
|
| 1 | uint8 | Идентификатор сообщения |
|
Полезная нагрузка
Размер: Варьируется (зависит от типа сообщения)
Описание: Полезная нагрузка — это последняя часть сообщения, после заголовка. Полезная нагрузка зависит от типа сообщения. Формат полезной нагрузки для каждого типа сообщения определен в следующих разделах.
Полезная нагрузка сообщения запроса на определение дальности
Размер (без учета размера заголовка): 2 байта
Описание: Отправляется устройством-инициатором для начала обмена сообщениями.
В следующей таблице приведена сводная информация о содержимом сообщения Ranging Capability Request :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8*2 | Запрашиваемые технологии определения диапазона битового поля |
|
Полезная нагрузка сообщения ответа о возможностях определения дальности
Размер (без учета размера заголовка): Варьируется (общий размер части 2 плюс размер каждого включенного байта технологии определения дальности).
Описание: Отправляется ответчиком в ответ на сообщение Ranging Capability Request . Полезная нагрузка этого сообщения состоит из общей части и частей, специфичных для конкретной технологии определения дальности (BLE CS, Wi-Fi NAN RTT, BLE RSSI), как показано в следующих таблицах. Каждая часть, специфичная для конкретной технологии определения дальности, должна быть добавлена только в том случае, если эта технология поддерживается устройством-ответчиком и запрашивается в сообщении Ranging Capability Request .
В следующей таблице приведена сводная информация о стандартном содержимом сообщения Ranging Capability Response :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8*2 | Поддерживаемые технологии определения расстояния (битовое поле). Указывает набор возможностей технологий определения расстояния, используемых в остальной части полезной нагрузки. |
|
| 2 | массив байтов | Байты возможностей технологии определения дальности. | Повторяющиеся блоки структур, определенные для каждой технологии. |
| Различный | uint8 | Выражает поддержку переходу на новые технологии . |
|
| Различный | uint16 | Указывает тип устройства реагирования. |
|
В следующей таблице приведена сводная информация о содержимом сообщения UWB Ranging Capability Response :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x0 - UWB |
| 1 | uint8 | Размер | Размер параметров UWB в байтах (включая поля «Идентификатор технологии» и «Размер» ). |
| 2 | uint8*2 | UWB-адрес | 2-байтовый UWB-адрес устройства. |
| 4 | uint8*4 | Поддерживаемые каналы bitfield | Битовое поле поддерживаемых каналов. Бит, установленный в 0, указывает на отсутствие поддержки, бит, установленный в 1, указывает на поддержку. Бит 0 соответствует каналу 0.LSB == channel 0MSB == channel 31 |
| 8 | uint8*4 | Поддерживаемое битовое поле индекса преамбулы | Битовое поле поддерживаемых индексов преамбулы. Бит, установленный в 0, указывает на отсутствие поддержки, бит 1 — на поддержку. Бит 0 соответствует индексу преамбулы 1.LSB == preamble index 1MSB == preamble index 32 |
| 12 | uint8*4 | Поддерживаемые идентификаторы конфигурации bitfield | Битовое поле с поддерживаемыми идентификаторами конфигурации UWB. Бит, установленный в 0, означает, что не поддерживается, 1 — что поддерживается.LSB == config Id 0MSB == config Id 31 |
| 16 | uint8*2 | Поддерживаемый минимальный интервал измерения диапазона | Указывает максимально возможный поддерживаемый интервал измерения расстояния в миллисекундах. Допустимые значения (в мс):
|
| 18 | uint8 | Поддерживаемая минимальная продолжительность слота | Указывает наименьшую поддерживаемую длительность слота в миллисекундах. Например, если устройство возвращает 1 мс, предполагается, что оно также поддерживает длительность слота 2 мс или более. Допустимые значения (в мс):
|
| 19 | uint8 | Поддерживаемые битовые поля роли устройств UWB | Битовое поле поддерживаемых ролей UWB. Например, если поддерживаются обе роли, итоговое значение поля будет равно 0x3.
|
В следующей таблице приведена сводная информация о содержимом сообщения BLE CS Ranging Capability Response :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x1 - BLE CS |
| 1 | uint8 | Размер | Размер параметров возможностей BLE CS в байтах (включая поля «Идентификатор технологии» и «Размер ») |
| 2 | uint8 | Поддерживаемые типы безопасности: битовое поле | Битовое поле поддерживаемых типов безопасности для BLE CS.
|
| 3 | uint8*6 | Адрес устройства | Адрес устройства, используемого для BLE CS; в порядке байтов big-endian. |
В следующей таблице приведена сводная информация о содержимом сообщения Wi-Fi NAN RTT Ranging Capability Response :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x2 - Wi-Fi NAN RTT |
| 1 | uint8 | Размер | Размер параметров Wi-Fi NAN RTT в байтах (включая поля Technology ID и Size ). |
| 2 | uint8 | Поддерживаемые функции bitfield | Битовое поле поддерживаемых функций.
|
| 3 | uint8 | Поддерживает периодическое измерение расстояния. |
|
| 4 | uint8 | Поддерживаемая пропускная способность | УСТАРЕЛО: Эта информация помогает определить достижимую точность измерения расстояния с использованием Wi-Fi NAN и может помочь приложениям определить, следует ли использовать UWB, BLE CS, BLE RSSI или Wi-Fi NAN для измерения расстояния.
|
| 5 | uint8 | Поддерживаемое количество цепочек приема | УСТАРЕЛО: Эта информация помогает определить достижимую точность измерения расстояния с использованием Wi-Fi NAN и может помочь приложениям определить, следует ли использовать UWB, BLE CS, BLE RSSI или Wi-Fi NAN для измерения расстояния.
|
В следующей таблице приведена сводная информация о содержимом сообщения BLE RSSI Ranging Capability Response :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x3 - BLE RSSI |
| 1 | uint8 | Размер | Размер параметров BLE RSSI в байтах (включая поля Technology ID и Size ) |
| 2 | uint8*6 | Адрес устройства | Адрес устройства, используемого для BLE RSSI; в порядке байтов big-endian. |
В следующей таблице приведена сводная информация о содержимом сообщения Wi-Fi PD Ranging Capability Response :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x4 - Wi-Fi PD |
| 1 | uint8 | Размер | Размер параметров Wi-Fi PD в байтах (включая поля «Идентификатор технологии» и «Размер» ) |
| 2 | uint8 | Поддерживаемые функции | Растровое изображение
|
| 3 | uint8 | режим PASN | Растровое изображение
|
| 4 | uint8*6 | Адрес устройства | Адрес устройства, используемого для Wi-Fi PD; в порядке байтов big-endian. |
| 10 | uint8*2 | Минимальный интервал измерения 802,11 мс | Поддерживается минимальный интервал измерения в формате big-endian для 11mc. |
| 12 | uint8*2 | Минимальный интервал измерения 802,11 аз | Поддерживается минимальный интервал определения дальности в формате big-endian для 11az. |
| 14 | uint8 | Максимальный тип преамбулы |
Это предполагает, что поддерживаются все типы преамбулы нижнего уровня. |
| 15 | uint8 | Максимальная ширина канала |
Это предполагает, что поддерживаются все меньшие ширины каналов. |
| 16 | uint8*2 | Поддерживаемая частота канала |
|
Полезная нагрузка сообщения конфигурации дальности
Размер (без учета размера заголовка): Варьируется (общий размер части 4 плюс размер каждого включенного байта технологии определения дальности).
Описание: Это сообщение отправляется инициатором и содержит конфигурации, с которыми может начаться измерение расстояния каждая технология. После получения этого сообщения устройство-ответчик должно попытаться начать измерение расстояния с использованием каждой указанной технологии. Полезная нагрузка сообщения состоит из общей части и частей, специфичных для каждой технологии измерения расстояния (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI), как показано в следующих таблицах.
В следующей таблице приведена сводная информация о стандартном содержимом сообщения Ranging Configuration :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8*2 | Битовое поле набора настроек технологий определения дальности | Битовое поле технологий определения расстояния, для которых данное сообщение содержит данные конфигурации и для которых необходимо установить параметры конфигурации.
|
| 2 | uint8*2 | Битфилд | RFU. Должен иметь то же значение, что и поле битового поля набора параметров конфигурации технологий определения дальности . |
| 4 | массив байтов | Конфигурации технологий определения дальности (байты) | Повторяющиеся блоки структур, определенные для каждой технологии. |
| Различный | uint8 | Поддержка движения | Запрос Motion Notification
|
В следующей таблице приведена сводная информация о Ranging Configuration UWB:
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x0 - UWB |
| 1 | uint8 | Размер | Размер конфигурации UWB (включая поля Technology ID и Size ) в байтах. |
| 2 | uint8*2 | UWB-адрес | 2-байтовый UWB-адрес устройства |
| 4 | uint8*4 | Идентификатор сессии | Сгенерированный идентификатор сессии. Идентификатор сессии — это уникальный идентификатор для сеанса измерения расстояния между телефоном и периферийным устройством. |
| 8 | uint8 | Выбранный идентификатор конфигурации | Выбранный идентификационный номер конфигурации в виде целого числа. Идентификатор конфигурации определяет параметры синхронизации и тип безопасности, которые должны использоваться для сеанса измерения расстояния UWB. |
| 9 | uint8 | Выбранный канал | Выбранный канал для сеанса измерения расстояния с помощью UWB-технологии. |
| 10 | uint8 | Избранный преамбульный указатель | Выбранный преамбульный указатель для сессии определения расстояния с помощью UWB-технологии. |
| 11 | uint8*2 | Выбранный интервал измерения расстояния | Выбранная частота интервалов измерения расстояния в миллисекундах. Допустимые значения (в мс):
|
| 13 | uint8 | Выбранная продолжительность слота | Выбранная длительность временного интервала в миллисекундах. Допустимые значения (в мс):
|
| 14 | uint8 | Длительность тональности сессии | Длина ключа сессии в байтах |
| 15 | массив байтов | Ключ сессии | Ключ сессии. Если используется S-STS, то первые два байта — это идентификатор поставщика (VENDOR ID), а следующие шесть байтов — это статический ключ STS IV. Если используется P-STS, то это либо 16-байтовый, либо 32-байтовый ключ сессии. Тип используемой безопасности определяется идентификатором конфигурации (config ID). |
| варьируется | uint8*2 | Код страны | Код страны ISO 3166-1 alpha-2, представленный двумя символами ASCII. |
| варьируется | uint8 | Выбранная роль устройства |
|
| варьируется | uint8 | Выбранный режим устройства |
|
В следующей таблице приведена сводная информация о содержимом сообщения Ranging Configuration BLE CS:
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x1 - BLE CS |
| 1 | uint8 | Размер | Размер конфигурации BLE CS (включая поля Technology ID и Size ) в байтах. |
| 2 | uint8 | Выбранный тип безопасности | Выбранный тип безопасности. Допустимые значения:
|
| 3 | uint8*6 | Адрес устройства | Адрес устройства, используемого для BLE CS; в порядке байтов big-endian. |
В следующей таблице приведена сводная информация о содержимом сообщения Wi-Fi NAN RTT Ranging Configuration :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x2 - Wi-Fi NAN RTT |
| 1 | uint8 | Размер | Размер конфигурации Wi-Fi NAN RTT (включая поля Technology ID и Size ) в байтах. |
| 2 | uint8 | длина названия услуги | Длина поля «Имя службы» в байтах. См. раздел 1.3.3 «Таблица 1. Определения» спецификации Wi-Fi Aware версии 4.0. |
| 3 | массив байтов | Название услуги | Название службы. См. раздел 1.3.3 «Таблица 1. Определения» спецификации Wi-Fi Aware версии 4.0. |
| варьируется | uint8 | роль устройства |
|
| варьируется | uint8 | Используйте периодический диапазон измерений. |
|
В следующей таблице приведена сводная информация о Ranging Configuration BLE RSSI:
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x3 - BLE RSSI |
| 1 | uint8 | Размер | Размер конфигурации BLE RSSI (включая поля Technology ID и Size ) в байтах. |
| 2 | uint8*6 | Адрес устройства | Адрес устройства, используемого для BLE RSSI; в порядке байтов big-endian. |
В следующей таблице приведена сводная информация о содержимом сообщения Wi-Fi PD Ranging Configuration :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения дальности | 0x4 - Wi-Fi PD |
| 1 | uint8 | Размер | Размер конфигурации Wi-Fi PD (включая поля Technology ID и Size ) в байтах. |
| 2 | uint8 | Особенность |
|
| 3 | uint8*6 | MAC-адрес | MAC-адрес инициатора |
| 9 | uint8*2 | Диапазон | Интервал измерения в мс |
| 11 | uint8 | Избранная преамбула |
|
| 12 | uint8 | Выбранная ширина канала |
|
| 13 | uint8 | Выбранный канал |
|
| 14 | uint8 | Выбранный режим PASN |
|
| 15 | массив байтов | Ключ идентификации устройства | 16-байтовый фиксированный массив Примечание: это поле действительно только для аутентифицированного режима PASN и не должно быть установлено для неаутентифицированного режима PASN. |
| 31 | uint8 | длина пароля | Длина пароля. Примечание: это поле действительно только для аутентифицированного режима PASN и не должно быть заполнено для неаутентифицированного режима PASN. |
| варьируется | массив байтов | Пароль | Пароль в виде массива байтов. Примечание: это поле действительно только для аутентифицированного режима PASN и не должно быть заполнено для неаутентифицированного режима PASN. |
Полезная нагрузка сообщения ответа на запрос конфигурации дальности
Размер (без учета размера заголовка): 2 байта
Описание: Это сообщение отправляется ответчиком в ответ на сообщение Ranging Configuration . Это сообщение необязательно; оно требуется только в том случае, если используемый канал связи требует явного ответа на каждый запрос.
В следующей таблице приведена сводная информация о содержимом сообщения Ranging Configuration Response :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8*2 | Конфигурация технологий определения дальности успешно установлена в битовом поле. | Битовое поле, отображающее успешно установленные технологии измерения расстояний. В этом битовом поле бит технологии измерения расстояний устанавливается в 1, если технология была запрошена и успешно установлена, и в 0 в противном случае.
|
Полезная нагрузка сообщения "Остановить определение дальности"
Размер (без учета размера заголовка): 2 байта
Описание: Это сообщение отправляется устройством-инициатором, когда приходит время прекратить измерение расстояния с использованием указанной технологии.
В следующей таблице приведена сводная информация о содержимом сообщения Stop Ranging :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8*2 | Различные технологии для предотвращения битового поля | Битовое поле технологий измерения расстояния, указывающее на необходимость прекращения измерения. Бит, установленный в 1, означает, что технология измерения расстояния должна прекратить измерение, а 0 означает, что технология измерения расстояния либо вообще не проводила измерение, либо должна продолжить измерение, если оно уже проводилось. Для некоторых технологий измерения расстояния (например, CS) это не оказывает никакого воздействия, поскольку измерение инициируется и останавливается только на стороне инициатора.
|
Полезная нагрузка сообщения ответа на запрос определения дальности (Stop Ranging Response message payload)
Размер (без учета размера заголовка): 2 байта
Описание: Это сообщение отправляется отвечающим в ответ на сообщение Stop Ranging . Это сообщение необязательно и требуется только в том случае, если используемый канал связи требует явного ответа на каждый запрос.
В следующей таблице приведена сводная информация о содержимом сообщения Stop Ranging Response :
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8*2 | Технологии определения дальности успешно остановили битовое поле | Битовое поле, отображающее технологии измерения расстояния, которые успешно остановили измерение. Битовое поле устанавливает бит технологии измерения расстояния в 1, если была запрошена остановка технологии и если она успешно завершилась, и в 0 в противном случае.
|
Полезная нагрузка сообщения уведомления о движении
Размер (без учета размера заголовка): 1 байт
Описание: Устройство-ответчик отправляет это сообщение, чтобы информировать устройство-инициатор о любых изменениях в его состоянии движения.
| Октет | Тип данных | Описание | Ценить |
|---|---|---|---|
| 0 | uint8 | Движение |
|
Версионирование
Версия спецификации указана в заголовке каждого сообщения. В этом разделе определяется порядок обмена данными, когда одно из устройств (инициатор или ответчик) использует более старую версию, чем другое устройство. Сообщение Ranging Capability Request (Запрос на определение дальности) является первым сообщением, отправляемым устройством-инициатором.
Инициатор поддерживает более новую версию, ответчик поддерживает более старую версию спецификации.
Устройство-инициатор отправляет сообщение Ranging Capability Request с более новой версией. Устройство-ответчик поддерживает только более старую версию, поэтому оно отвечает ею, а затем для дальнейшего обмена сообщениями используется более старая версия устройства-ответчика. Это означает, что сообщение Ranging Capability Request должно быть обратно совместимым.
Инициатор поддерживает более старую версию, ответчик поддерживает более новую версию спецификации.
Устройство-ответчик видит, что устройство-инициатор не может использовать более новую версию, поэтому оно отправляет сообщения, используя только более старую версию, запрошенную изначально устройством-инициатором.
Для обеспечения обратной совместимости сообщений любые новые поля, добавленные в следующую версию данной спецификации, должны быть добавлены в конец полезной нагрузки, и никакие существующие поля не могут быть изменены. При анализе конфигурации, если указанный размер превышает ожидаемый, дополнительные поля должны игнорироваться любым устройством, способным понимать только более старую версию спецификации.
Фрагментация
Данная спецификация не зависит от канала связи, поэтому она не определяет, как фрагментировать полезную нагрузку сообщения в случаях, когда одно сообщение слишком велико, чтобы поместиться в пакет передачи используемого канала связи. Модуль определения дальности ожидает получения каждого сообщения в полном виде. Ответственность за фрагментацию лежит на разработчике канала связи OOB.
Специфика технологий определения дальности
В этом разделе содержится информация, касающаяся именно технологий измерения расстояний.
Характеристики сверхширокополосной связи (UWB)
В этом разделе описываются специфические особенности сверхширокополосной связи.
Идентификаторы конфигурации
Внешние конфигурационные данные, передаваемые для UWB, не содержат полного набора доступных настраиваемых параметров, необходимых для начала сеанса измерения расстояния UWB. Это связано с тем, что некоторые параметры выбираются неявно на основе выбранного идентификатора конфигурации.
Каждый идентификатор конфигурации представляет собой набор предопределенных параметров конфигурации UWB, описанных в UwbRangingParams . Устройство-ответчик отправляет список всех поддерживаемых им идентификаторов конфигурации в составе сообщения ответа о возможности, а инициатор выбирает один из поддерживаемых идентификаторов конфигурации для использования. Это позволяет обмениваться меньшим набором параметров конфигурации во время OOB. Это также ограничивает количество возможных комбинаций параметров, которые можно использовать для определения расстояния с помощью UWB, что позволяет тестировать только разрешенные комбинации параметров.
Запрос возможностей после каждой сессии UWB
После завершения существующей UWB-сессии и перед началом новой UWB-сессии устройство-инициатор должно запросить у устройства-ответчика информацию о его возможностях и заново установить параметры конфигурации, поскольку UWB-адрес может измениться сразу после завершения текущей сессии измерения расстояния.
Специфика зондирования канала BLE (CS)
В этом разделе описываются специфические детали, касающиеся зондирования каналов.
Требуется шифрование канала связи между устройствами.
Для корректной работы определения расстояния с помощью зондирования канала необходимо наличие существующей связи между устройством-инициатором и устройством-ответчиком. Данная спецификация не предусматривает способа создания такой связи между устройствами. Необходимо установить эту связь между устройствами при использовании API определения расстояния.
Действия, необходимые со стороны службы реагирования для CS
В UWB оба устройства должны явно вызывать API запуска и остановки измерения диапазона UWB. В отличие от этого, в CS только инициирующее устройство должно запустить измерение диапазона CS, вызвав стек Bluetooth. Остальная инициализация на стороне ответчика происходит в полосе частот через Bluetooth. Это означает, что после получения сообщения Ranging Configuration или сообщения Stop Ranging для CS, стороне ответчика ничего не нужно делать, если Bluetooth включен. Устройство-ответчик может использовать эти сообщения в качестве триггера для обновления пользовательского интерфейса или, например, для мигания светодиодов устройства.