В Android 16 появился модуль определения расстояния. Этот протокол и спецификация полезной нагрузки определяют последовательность сообщений и полезную нагрузку для внеполосной связи, используемой для обмена конфигурациями определения расстояния, а также для запуска и остановки определения расстояния между инициатором и устройством-ответчиком, которые участвуют в определении расстояния. В Android 16 QPR3 представлена версия 2 этой спецификации.
Основная цель этой страницы – помочь производителям устройств, отличных от Android, реализовать эту спецификацию, чтобы их устройства могли определять расстояние до устройств Android.
Реализация этой спецификации на языке описания пакетов (PDL) от Google доступна на GitHub. На основе этой реализации компилятор PDL может генерировать код сериализации и десериализации для сообщений, определенных в этой спецификации. Он поддерживает разные целевые языки, в том числе C++, Rust и Java.
Что нового в версии 2
В версии 2 спецификации OOB представлены следующие изменения:
- Переход на другую технологию. Позволяет динамически переключаться между технологиями определения расстояния во время активного сеанса без прерывания потока данных.
- Ranging Capability Response
- Добавлено новое поле
Supported technology transitioning, которое указывает на поддержку технологии make-before-break. - Добавлено новое поле
Device type, которое инициатор может использовать для оптимизации энергопотребления между устройствами.
- Добавлено новое поле
Порядок байтов
Если не указано иное, все многобайтовые числовые поля в сообщениях представлены в порядке от младшего к старшему.
Сообщения и их последовательность
В этом разделе описаны сообщения и последовательность их обмена.
В таблице ниже перечислены все сообщения, которые передаются при обмене данными вне диапазона.
| Сообщение | Идентификатор сообщения |
|---|---|
Ranging Capability Request |
0x0 |
Ranging Capability Response |
0x1 |
Ranging Configuration |
0x2 |
Ranging Configuration Response (необязательно) |
0x3 |
Stop Ranging |
0x6 |
Stop Ranging Response (необязательно) |
0x7 |
Как показано на рисунках 1 и 2, запуск обмена сообщениями зависит от канала связи.
Для каналов связи, основанных на подключении, таких как BLE GATT, обмен сообщениями начинается с того, что устройство-инициатор отправляет Ranging Capability Request устройству-ответчику. Устройство, на которое отправляется запрос, отвечает, отправляя массив Ranging
Capability Response, как показано на рисунке 1:
Рисунок 1. Обмен сообщениями OOB с использованием канала связи на основе подключения.
Для каналов связи на основе объявлений устройство, отвечающее на запрос, начинает с рекламы Ranging Capability. В этом случае Ranging Capability Request
не отправляется с устройства, инициирующего передачу. Вместо этого после обнаружения объявления, когда инициирующее устройство (первый сканер) будет готово, оно ответит, отправив в качестве первого сообщения объявление Ranging Configuration, как показано на рисунке 2:
Рисунок 2. Обмен сообщениями OOB с использованием коммуникации на основе рекламы.
Остальная часть обмена сообщениями в обоих случаях одинакова. Устройство-ответчик начинает измерение расстояния сразу после получения сообщения Ranging Configuration.
Устройство, отвечающее на запрос, прекращает определение расстояния после получения или обнаружения сообщения Stop
Ranging.
При подключении устройство-ответчик заполняет только те возможности, которые были запрошены в сообщении Ranging Capability Request, а при передаче объявлений устройство-ответчик должно перечислить все свои возможности, поскольку предыдущего сообщения с запросом возможностей нет.
Устройство-инициатор предполагает, что на любой отправленный им запрос будет получен только один ответ. Устройство, отвечающее на запрос, не должно делать никаких предположений, чтобы иметь возможность отвечать на запросы в любом порядке. Это подтверждает, что устройство, отвечающее на запросы, может реагировать на несколько последовательных сообщений Ranging Capability Request или любые другие сообщения, отправленные устройством-инициатором не по порядку.
Переход на новые технологии
Спецификация OOB версии 2 поддерживает переход между технологиями. Это позволяет устройствам динамически переключаться между разными технологиями определения расстояния во время сеанса. Чтобы упростить этот процесс, инициатор может:
- Отправьте несколько сообщений
Ranging Configuration, чтобы запустить новые технологии. - Отправьте несколько сообщений
Stop Ranging, чтобы остановить активные технологии.
Порядок этих сообщений зависит от схемы перехода, поддерживаемой ответчиком:
- Разрыв перед установлением. Инициатор может перейти на новую технологию, только остановив первую с помощью сообщения
Stop Ranging, прежде чем запустить вторую с помощью сообщенияRanging Configuration. - Подключение до отключения. Инициатор может начать использовать новую технологию, отправив сообщение
Ranging Configuration, прежде чем прекратить использовать существующие технологии, отправив сообщениеStop Ranging.
Ответчик должен реализовать поддержку одной из этих схем перехода в соответствии со значением поля supported technology transitioning в своем Capability Response.
Идентификаторы технологий определения расстояния
Идентификаторы технологий определения расстояния приведены в таблице ниже.
| Технология определения расстояния | ID |
|---|---|
| СШП | 0x0 |
| CS | 0x1 |
| Wi-Fi NAN RTT | 0x2 |
| RSSI | 0x3 |
| RFU | 0x4 - 0xFF |
Эти идентификаторы используются в таблицах ниже, где требуется идентификатор технологии определения расстояния. Для полей, содержащих битовое поле технологии определения расстояния, устанавливается бит, соответствующий индексу идентификатора технологии, если эта технология включена в битовое поле.
Например, у RSSI идентификатор 3, но если RSSI включен в битовое поле технологии определения расстояния, то бит с позицией идентификатора (3) должен быть включен (первый бит находится в позиции 0), что делает результирующее значение битового поля равным 0x8. Если включены и СШП, и RSSI, то значение битового поля будет 0x0A (включены биты 0 и 3).
Формат сообщений
Каждое сообщение состоит из заголовка и полезной нагрузки.
Рисунок 3. Формат сообщения.
Заголовок
Размер: 2 байта.
Описание. Заголовок – это первая часть сообщения, которая есть во всех письмах. Заголовок содержит версию и идентификатор типа сообщения. Поле версии определяет версию спецификации, которой соответствует содержимое сообщения. Текущая версия спецификации – 2. Подробнее о том, как управление версиями используется на разных устройствах, рассказывается в статье Добавление информации о версии приложения. Заголовок остается обратно совместимым с разными версиями, поэтому его всегда можно проанализировать, чтобы определить версию и идентификатор сообщения.
Заголовок описан в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8 | Версия |
|
| 1 | unit8 | Идентификатор сообщения |
|
Payload
Размер: зависит от типа сообщения.
Описание. Полезная нагрузка – это последняя часть сообщения, которая следует за заголовком. Содержимое зависит от типа сообщения. Формат полезной нагрузки для каждого типа сообщений описан в разделах ниже.
Полезная нагрузка сообщения запроса возможности определения расстояния
Размер (без учета размера заголовка): 2 байта.
Описание. Отправляется устройством-инициатором для начала обмена сообщениями.
Это сообщение необязательно, если канал связи основан на рекламе. В этом случае устройство, отвечающее на запрос, должно сначала передать сообщение Ranging
Capability. Устройство-инициатор (первый сканер) считывает объявление и напрямую отвечает сообщением Ranging Capability, поэтому это сообщение не требуется.
Полезная нагрузка сообщения 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 | Указывает тип устройства, которое отвечает на запрос. |
|
Полезная нагрузка сообщения Ranging Capability Response СШП приведена в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения расстояния | 0x0 – СШП |
| 1 | uint8 | Размер | Размер возможностей UWB в байтах (включая поля Technology ID и Size). |
| 2 | uint8*2 | Адрес СШП | Двухбайтовый адрес СШП устройства. |
| 4 | uint8*4 | Битовая маска поддерживаемых каналов | Битовое поле поддерживаемых каналов. Если бит равен 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 | Поддерживаемые идентификаторы конфигураций (битовое поле) | Битовое поле поддерживаемых идентификаторов конфигурации UWB. Бит, равный 0, указывает на отсутствие поддержки, а равный 1 – на ее наличие.LSB == config Id 0> MSB == config Id 31 |
| 16 | uint8*2 | Минимальный поддерживаемый интервал определения расстояния | Указывает самый быстрый поддерживаемый интервал определения расстояния в миллисекундах. Допустимые значения (в миллисекундах):
|
| 18 | uint8 | Минимальная поддерживаемая продолжительность временного интервала | Указывает минимальную поддерживаемую продолжительность рекламного места в миллисекундах. Например, если устройство возвращает значение 1 мс, предполагается, что оно также поддерживает длительность слота 2 мс и более. Допустимые значения (в миллисекундах):
|
| 19 | Битовое поле роли поддерживаемого устройства СШП | Битовое поле поддерживаемых ролей СШП. Например, если оба поддерживают конечное значение поля, оно будет равно 0x3.
|
Полезная нагрузка сообщения BLE CS Ranging Capability Response описана в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения расстояния | 0x1 – BLE CS |
| 1 | uint8 | Размер | Размер байтов возможностей BLE CS (включая поля Идентификатор технологии и Размер) в байтах. |
| 2 | uint8 | Поддерживаемое битовое поле типа безопасности | Битовое поле поддерживаемых типов безопасности для BLE CS.
|
| 3 | uint8*6 | Адрес устройства | Адрес устройства, используемого для BLE CS; в порядке от старшего к младшему. |
Полезная нагрузка сообщения Wi-Fi NAN RTT Ranging Capability Response описана в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения расстояния | 0x2 – Wi-Fi NAN RTT; |
| 1 | uint8 | Размер | Размер возможностей BLE RSSI в байтах (включая поля Technology ID и Size). |
| 2 | uint8 | Поле битов поддерживаемых функций | Битовое поле поддерживаемых функций.
|
| 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, в порядке от старшего к младшему. |
Полезная нагрузка сообщения о конфигурации определения расстояния
Размер (без учета размера заголовка): варьируется (общая часть – 4 байта плюс размер каждого включенного байта технологии определения расстояния).
Описание. Это сообщение отправляется инициатором и содержит конфигурации, с помощью которых каждая технология определения расстояния может начать определение расстояния. При получении этого сообщения устройство-ответчик должно попытаться начать определение расстояния с помощью каждой указанной технологии. Полезная нагрузка этого сообщения состоит из общей части и частей, относящихся к определенным технологиям определения расстояния (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI), как показано в таблицах ниже.
Ниже приведена сводная информация о полезной нагрузке сообщения Ranging Configuration.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8*2 | Битовое поле набора конфигураций технологий определения расстояния | Битовое поле технологий определения расстояния, для которых сообщение содержит данные конфигурации и для которых необходимо задать параметры конфигурации.
|
| 2 | uint8*2 | Битовое поле | RFU. Значение должно быть таким же, как в поле Ranging technologies configuration set bitfield (Битовое поле набора конфигурации технологий определения расстояния). |
| 4 | массив байтов | Байты конфигураций технологий определения расстояния | Повторяющиеся блоки структур, определенных для каждой технологии |
Полезная нагрузка сообщения Ranging Configuration СШП описана в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения расстояния | 0x0 – СШП |
| 1 | uint8 | Размер | Размер конфигурации UWB (включая поля Technology ID и Size) в байтах. |
| 2 | uint8*2 | Адрес СШП | 2-байтовый адрес устройства UWB |
| 4 | uint8*4 | Идентификатор сеанса | Сгенерирован идентификатор сеанса. Идентификатор сеанса – это уникальный идентификатор сеанса определения расстояния между телефоном и периферийным устройством. |
| 8 | uint8 | Идентификатор выбранной конфигурации | Выбранный идентификатор конфигурации в виде целого числа. Идентификатор конфигурации определяет параметры времени и тип защиты, которые должны использоваться для сеанса измерения расстояния с помощью СШП. |
| 9 | uint8 | Выбранный канал | Выбранный канал для сеанса определения расстояния с помощью сверхширокополосной связи |
| 10 | uint8 | Индекс выбранных вводных инструкций | Выбранный индекс преамбулы для сеанса определения расстояния с помощью СШП |
| 11 | uint8*2 | Выбранный интервал ранжирования | Выбранная частота интервалов в миллисекундах. Допустимые значения (в миллисекундах):
|
| 13 | uint8 | Выбранная длительность интервала | Продолжительность выбранного интервала в миллисекундах. Допустимые значения (в миллисекундах):
|
| 14 | uint8 | Длина сеансового ключа | Длина сеансового ключа в байтах. |
| 15 | массив байтов | Сеансовый ключ | Сеансовый ключ. Если используется S-STS, то первые два байта – это идентификатор поставщика, а следующие шесть байтов – статический вектор инициализации STS. Если используется P-STS, это сеансовый ключ размером 16 или 32 байта. Тип безопасности определяется идентификатором конфигурации. |
| varies | uint8*2 | Код страны | Двухбуквенный код страны в формате ISO 3166-1 alpha-2, представленный двумя символами ASCII. |
| varies | uint8 | Выбранная роль устройства |
|
| varies | uint8 | Выбранный режим устройства |
|
Полезная нагрузка сообщения BLE CS Ranging Configuration описана в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения расстояния | 0x1 – BLE CS |
| 1 | uint8 | Размер | Размер конфигурации BLE CS (включая поля Technology ID и Size) в байтах. |
| 2 | uint8 | Выбранный тип защиты | Выбранный тип защиты. Допустимые значения:
|
| 3 | uint8*6 | Адрес устройства | Адрес устройства, используемого для BLE CS; в порядке от старшего к младшему |
Полезная нагрузка сообщения Wi-Fi NAN RTT Ranging Configuration описана в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения расстояния | 0x2 – Wi-Fi NAN RTT; |
| 1 | uint8 | Размер | Размер конфигурации Wi-Fi NAN RTT (включая поля Идентификатор технологии и Размер) в байтах. |
| 2 | uint8 | Длина названия сервиса | Длина поля "Название сервиса" в байтах. См. раздел 1.3.3 "Таблица 1" спецификации Wi-Fi Aware версии 4.0. Определения. |
| 3 | массив байтов | Название сервиса | Название сервиса. См. раздел 1.3.3 "Таблица 1" спецификации Wi-Fi Aware версии 4.0. Определения. |
| varies | uint8 | Роль устройства |
|
| varies | uint8 | Использовать периодическое определение расстояния |
|
Полезная нагрузка сообщения BLE RSSI Ranging Configuration описана в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8 | Идентификатор технологии определения расстояния | 0x3 – BLE RSSI |
| 1 | uint8 | Размер | Размер конфигурации RSSI BLE (включая поля Technology ID и Size) в байтах. |
| 2 | uint8*6 | Адрес устройства | Адрес устройства, используемого для BLE RSSI; в порядке от старшего к младшему |
Полезная нагрузка ответа на конфигурацию измерения расстояния
Размер (без учета размера заголовка): 2 байта
Описание. Это сообщение отправляется ответчиком в ответ на сообщение Ranging Configuration. Это сообщение необязательно. Оно требуется только в том случае, если используемый канал связи требует явного ответа на каждый запрос.
Полезная нагрузка сообщения Ranging Configuration Response описана в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8*2 | Поле битов "Конфигурация технологий определения расстояния задана успешно" | Битовое поле успешно настроенных технологий определения расстояния. Битовое поле устанавливает бит технологии определения расстояния равным 1, если технология была запрошена и успешно настроена, и 0 в противном случае.
|
Полезная нагрузка сообщения об остановке измерения расстояния
Размер (без учета размера заголовка): 2 байта
Описание. Это сообщение отправляется устройством-инициатором, когда нужно прекратить определение расстояния с помощью указанной технологии.
Полезная нагрузка сообщения Stop Ranging приведена в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8*2 | Технологии для остановки битового поля | Битовое поле технологий определения расстояния, которые должны прекратить работу. Если бит равен 1, технология определения расстояния должна прекратить работу. Если бит равен 0, технология определения расстояния либо не работала изначально, либо должна продолжить работу, если она уже была запущена. Для некоторых технологий определения расстояния (например, CS) это не имеет значения, поскольку определение расстояния запускается и останавливается только на стороне инициатора.
|
Полезная нагрузка сообщения Stop Ranging Response
Размер (без учета размера заголовка): 2 байта
Описание. Это сообщение отправляется в ответ на сообщение Stop Ranging. Это сообщение необязательно. Оно требуется только в том случае, если используемый канал связи требует явного ответа на каждый запрос.
Полезная нагрузка сообщения Stop Ranging Response описана в таблице ниже.
| Октет | Тип данных | Описание | Значение |
|---|---|---|---|
| 0 | uint8*2 | Битовое поле "Технологии определения расстояния успешно остановлены" | Битовое поле технологий определения расстояния, которые успешно прекратили работу. Битовое поле устанавливает бит технологии определения расстояния равным 1, если был отправлен запрос на остановку технологии и она была успешно остановлена, и 0 в противном случае.
|
Управление версиями
Версия спецификации указана в заголовке каждого письма. В этом разделе описано, как осуществляется связь, если на одном из устройств (инициаторе или получателе) установлена более старая версия, чем на другом.
Случай 1. Канал связи на основе подключения
В этом разделе описаны случаи, в которых используется канал связи на основе подключения, где Ranging Capability Request – первое сообщение, отправленное устройством-инициатором.
Случай 1а.Инициатор поддерживает более новую версию спецификации, а ответчик – более старую.
Устройство-инициатор отправляет сообщение Ranging Capability Request с более новой версией. Устройство, на которое отправляется запрос, поддерживает только более раннюю версию, поэтому оно отвечает, используя ее. В результате для обмена сообщениями используется более ранняя версия. Это означает, что сообщение Ranging Capability Request
должно быть обратно совместимо.
Случай 1б.Инициатор поддерживает более старую версию спецификации, а ответчик – более новую.
Устройство-ответчик видит, что устройство-инициатор не может использовать более новую версию, поэтому отправляет сообщения только с использованием более старой версии, изначально запрошенной устройством-инициатором.
Случай 2. Канал связи на основе рекламы
В этом разделе описаны случаи, когда используется канал связи на основе объявлений, в котором устройство, отвечающее на запрос, передает объявление Ranging Capability Request напрямую, без предварительного запроса.
Случай 2а.Инициатор поддерживает более новую версию спецификации, а ответчик – более старую.
Более старая версия, указанная в объявлении Ranging Capability Response, используется для остальной части коммуникации.
Случай 2б.Инициатор поддерживает более старую версию спецификации, а ответчик – более новую.
Более новая версия объявления Ranging Capability Response должна быть обратно совместима, чтобы устройство-инициатор могло прочитать сообщение, даже если оно использует более новую версию. Затем устройство инициатора отправляет сообщение Ranging
Configuration, используя более старую версию, которую оно поддерживает. Эта версия будет использоваться в дальнейшем.
Чтобы обеспечить обратную совместимость Ranging Capability Response, все новые поля, добавленные в следующую версию этой спецификации в полезной нагрузке сообщения Ranging
Capability Response, должны быть добавлены в конец полезной нагрузки, а существующие поля не должны быть изменены. При анализе конфигурации, если указанный размер больше ожидаемого, дополнительные поля должны игнорироваться любым устройством, которое может распознавать только более старую версию спецификации.
Фрагментация
Эта спецификация не зависит от канала связи, поэтому в ней не определяется, как фрагментировать полезную нагрузку сообщения, если одно сообщение слишком велико, чтобы поместиться в пакет передачи используемого канала связи. Модуль определения дальности должен получать каждое сообщение в полном виде. Ответственность за фрагментацию лежит на разработчике канала связи OOB.
Ranging-technology-specifics
В этом разделе приведена информация, относящаяся к технологии определения расстояния.
Особенности сверхширокополосной связи (СШП)
В этом разделе описаны особенности сверхширокополосной связи.
Идентификаторы конфигураций
Данные конфигурации OOB, которыми обмениваются устройства с поддержкой СШП, не содержат полного набора доступных настраиваемых параметров, необходимых для начала сеанса определения расстояния с помощью СШП. Это связано с тем, что некоторые параметры неявно выбираются с помощью идентификатора конфигурации.
Каждый идентификатор конфигурации – это набор предопределенных параметров конфигурации СШП, описанных в UwbRangingParams. Устройство-ответчик отправляет список всех поддерживаемых идентификаторов конфигурации в составе сообщения с ответом о возможностях, а инициатор выбирает один из поддерживаемых идентификаторов конфигурации, который будет использоваться. Это позволяет обмениваться меньшим набором параметров конфигурации во время OOB. Кроме того, это ограничивает количество возможных комбинаций параметров, которые можно использовать для определения расстояния с помощью UWB, что позволяет тестировать только разрешенные комбинации параметров.
Запрос возможностей после каждого сеанса UWB
После завершения текущего сеанса UWB и перед началом нового устройство-инициатор должно запросить возможности устройства-ответчика и снова задать параметры конфигурации, поскольку UWB-адрес может измениться сразу после завершения текущего сеанса определения расстояния.
Особенности зондирования каналов BLE
В этом разделе описываются особенности зондирования каналов.
Требуется связь между устройствами
Для определения расстояния с помощью зондирования каналов требуется существующая связь между инициатором и ответчиком. Эта спецификация не предусматривает возможности установления связи между устройствами. Пользователь Ranging API должен установить эту связь между устройствами.
Требуется действие со стороны отвечающего (CS)
В UWB оба устройства должны явно вызывать API start ranging и stop ranging. Для CS-измерения только инициирующее устройство должно запустить его, вызвав стек Bluetooth. Остальная часть инициализации на стороне ответчика происходит по Bluetooth. Это означает, что при получении сообщения Ranging Configuration или Stop Ranging для CS ответчику не нужно ничего делать, если Bluetooth включен. Устройство-ответчик может использовать эти сообщения как триггер для обновления интерфейса или, например, мигания светодиодов.