Ranging: Out-of-band message sequence and payload specification

В Android 16 появился модуль определения расстояния. В этой спецификации определена последовательность сообщений и полезная нагрузка для внеполосной (OOB) связи. В ходе этого обмена данными между устройствами инициатора и ответчика, участвующими в определении расстояния, передаются конфигурации определения расстояния, а также команды на его запуск и остановку.

Основная цель этой страницы – помочь производителям устройств, отличных от Android, реализовать эту спецификацию, чтобы их устройства могли определять расстояние до устройств Android.

Реализация этой спецификации на языке описания пакетов (PDL) от Google доступна на GitHub. На основе этой реализации компилятор PDL может генерировать код сериализации и десериализации для сообщений, определенных в этой спецификации. Он поддерживает разные целевые языки, в том числе C++, Rust и Java.

Сообщения и их последовательность

В этом разделе описаны сообщения и последовательность их обмена.

В таблице ниже перечислены все сообщения, которые передаются при обмене данными вне диапазона.

Сообщение Идентификатор сообщения
Ranging Capability Request 0x0
Ranging Capability Response 0x1
Ranging Configuration 0x2
Ranging Configuration Response (необязательно) 0x3
Stop Ranging 0x6
Stop Ranging Response (необязательно) 0x7

Как показано на рисунках 1 и 2, запуск обмена сообщениями зависит от канала связи.

В каналах связи на основе подключения, таких как Bluetooth с низким энергопотреблением (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 или любые другие сообщения, отправленные устройством-инициатором не по порядку.

Идентификаторы технологий определения расстояния

В этом разделе перечислены идентификаторы технологий определения расстояния: сверхширокополосная связь (UWB), Bluetooth с низким энергопотреблением (BLE) и зондированием каналов (CS), Wi-Fi Neighbor Awareness Networking (NAN) и время прохождения сигнала (RTT), а также индикатор уровня принимаемого сигнала (RSSI).

Идентификаторы используются в таблицах, где требуется идентификатор технологии определения расстояния. Для полей, содержащих битовое поле технологии определения расстояния, бит, соответствующий индексу идентификатора технологии, устанавливается, когда эта технология включена в битовое поле.

Например, у RSSI идентификатор 3. Если RSSI включен в битовое поле технологии определения расстояния, то бит с позицией идентификатора (3) должен быть включен (первый бит находится в позиции 0), в результате чего значение битового поля будет равно 0x8. Если включены оба параметра UWB и RSSI, то значение битового поля будет 0x0A (включены биты 0 и 3).

Идентификаторы технологий определения расстояния приведены в таблице ниже.

Технология определения расстояния ID
СШП 0x0
CS 0x1
Wi-Fi NAN RTT 0x2
RSSI 0x3
RFU 0x4 - 0xFF

Формат сообщений

Каждое сообщение состоит из заголовка и полезной нагрузки.

Формат сообщений

Рисунок 3. Формат сообщений.

Размер: 2 байта.

Описание. Заголовок есть у всех писем. Это первая часть письма. Заголовок содержит версию и идентификатор типа сообщения. В поле версии указывается версия спецификации, которой соответствует содержимое сообщения. Текущая версия спецификации – 1. Подробнее о том, как используется управление версиями на устройствах с разными версиями. Заголовок сохраняет обратную совместимость с разными версиями, поэтому вариант использования всегда может обработать его, чтобы определить версию и идентификатор сообщения.

Заголовок описан в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Версия 0x1 – текущая версия.
1 unit8 Идентификатор сообщения
  • 0x0 – сообщение Ranging Capability Request
  • 0x1 – Ranging Capability Response сообщение
  • 0x2 – сообщение Ranging Configuration
  • 0x3 – сообщение Ranging Configuration Response (необязательно).
  • 0x6 – сообщение Stop Ranging
  • 0x7 – сообщение Stop Ranging Response (необязательно)
  • 0x4–0x5, 0x8 – 0xFF RFU

Payload

Размер: зависит от типа сообщения.

Описание. Полезная нагрузка – это последняя часть сообщения, которая следует за заголовком. Содержимое зависит от типа сообщения. Формат полезной нагрузки для каждого типа сообщений описан в следующих разделах.

Полезная нагрузка сообщения с запросом на определение расстояния

Размер (без учета размера заголовка): 2 байта

Описание. Отправляется устройством-инициатором для начала обмена сообщениями. Это сообщение необязательно, если канал связи основан на рекламе. В этом случае устройство, отвечающее на запрос, должно сначала передать сообщение Ranging Capability. Устройство-инициатор (первый сканер) считывает объявление и напрямую отвечает сообщением Ranging Capability, поэтому это сообщение не требуется.

Полезная нагрузка сообщения Ranging Capability Request описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8*2 Битовое поле запрошенных технологий определения расстояния
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT;
  • 0x08 – BLE RSSI
  • RFU

Полезная нагрузка ответного сообщения о возможности определения расстояния

Размер (без учета размера заголовка): варьируется (общая часть – 2 байта, плюс размер байтов каждой включенной технологии определения расстояния).

Описание: отправляется респондентом в ответ на сообщение Ranging Capability Request. Полезная нагрузка сообщения состоит из общей части и частей, относящихся к конкретной технологии определения расстояния (BLE CS, Wi-Fi NAN RTT, BLE RSSI), как показано в таблицах ниже. Каждый раздел, относящийся к определенной технологии определения расстояния, должен быть добавлен только в том случае, если эта технология поддерживается устройством-ответчиком и запрашивается в сообщении Ranging Capability Request. Если канал используется для рекламы, необходимо включить все поддерживаемые технологии определения расстояния.

Ниже приведена сводная информация о полезной нагрузке сообщения Ranging Capability Response.

Октет Тип данных Описание Значение
0 uint8*2 Битовое поле поддерживаемых технологий определения расстояния. Указывает набор возможностей технологий определения расстояния, которые следуют в остальной части полезной нагрузки.
  • 0x01 – СШП.
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT;
  • 0x08 – BLE RSSI
  • RFU
2 массив байтов Байты, описывающие возможности технологии определения расстояния. Повторяющиеся блоки структур, определенных для каждой технологии.

Полезная нагрузка сообщения UWB Ranging Capability Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x0 – СШП
1 uint8 Размер Размер возможностей UWB в байтах (включая поля Technology ID и Size).
2 uint8*2 Адрес СШП Двухбайтовый адрес СШП устройства.
4 uint8*4 Битовое поле поддерживаемых каналов Битовое поле поддерживаемых каналов. Если бит равен 0, функция не поддерживается, а если 1 – поддерживается. Бит 0 соответствует каналу 0.
LSB == channel 0
MSB == channel 31
8 uint8*4 Битовое поле поддерживаемых индексов преамбулы Битовое поле поддерживаемых индексов преамбулы. Бит, установленный на 0, указывает на то, что функция не поддерживается, а на 1 – что поддерживается. Бит 0 соответствует индексу преамбулы 1.
LSB == preamble index 1
MSB == preamble index 32
12 uint8*4 Битовое поле поддерживаемых идентификаторов конфигурации Битовое поле поддерживаемых идентификаторов конфигурации UWB. Бит, равный 0, указывает на отсутствие поддержки, а равный 1 – на ее наличие.
LSB == config Id 0
>MSB == config Id 31
16 uint8*2 Минимальный поддерживаемый интервал определения расстояния Указывает самый быстрый поддерживаемый интервал определения расстояния в миллисекундах. Допустимые значения (в миллисекундах):
  • 96
  • 120
  • 240
  • 600
18 uint8 Минимальная поддерживаемая продолжительность временного интервала Указывает минимальную поддерживаемую продолжительность рекламного места в миллисекундах. Например, если устройство возвращает значение 1 мс, предполагается, что оно также поддерживает длительность слота 2 мс и более. Допустимые значения (в миллисекундах):
  • 1
  • 2
19 Битовое поле роли поддерживаемого устройства СШП Битовое поле поддерживаемых ролей СШП. Например, если оба поддерживают конечное значение поля, оно будет равно 0x3.
  • 0x1 – поддерживается роль инициатора.
  • 0x2 – роль ответственного лица поддерживается.

Полезная нагрузка сообщения BLE CS Ranging Capability Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x1 – BLE CS
1 uint8 Размер Размер в байтах возможностей BLE CS (включая поля Technology ID и Size).
2 uint8 Поддерживаемое битовое поле типа безопасности Битовое поле поддерживаемых типов безопасности для BLE CS.
  • 0x01 – CS_SECURITY_LEVEL_UNKNOWN
  • 0x02 – CS_SECURITY_LEVEL_ONE
  • 0x04 – CS_SECURITY_LEVEL_TWO
  • 0x08 – CS_SECURITY_LEVEL_THREE
  • 0x10 – CS_SECURITY_LEVEL_FOUR
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 Поле битов поддерживаемых функций Битовое поле поддерживаемых функций.
  • 0x01 – поддержка 11mc.
  • 0x02 – поддержка 11az.
3 uint8 Поддержка периодического ранжирования
  • 0x0 – периодическое определение расстояния не поддерживается.
  • 0x1 – поддерживается диапазон периодов.
4 uint8 Поддерживаемая пропускная способность Эта информация помогает определить достижимую точность определения расстояния с помощью Wi-Fi NAN и позволяет приложениям решить, использовать ли UWB, BLE CS, BLE RSSI или Wi-Fi NAN для определения расстояния.
  • 0x00 – 20 МГц
  • 0x01 – 40 МГц;
  • 0x02 – 80 МГц
  • 0x03 – 160 МГц
  • 0x04 – 80+80 МГц
  • 0x05 – 320 МГц
  • RFU
5 uint8 Поддерживаемое количество цепочек приема Эта информация помогает определить достижимую точность определения расстояния с помощью Wi-Fi NAN и позволяет приложениям решить, использовать ли UWB, BLE CS, BLE RSSI или Wi-Fi NAN для определения расстояния.
  • 0x00 – не определено.
  • 0x01 – 1 цепочка RX
  • 0x02 – две цепочки RX.
  • 0x03 – 3 цепочки RX.
  • 0x04 – 4 цепочки RX.

Полезная нагрузка сообщения 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 Битовое поле набора конфигураций технологий определения расстояния Битовое поле технологий определения расстояния, для которых это сообщение содержит данные конфигурации и для которых должны быть заданы параметры конфигурации.
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT;
  • 0x08 – BLE RSSI
  • RFU
2 uint8*2 Битовое поле RFU. Значение должно быть таким же, как в поле Ranging technologies configuration set bitfield (Битовое поле набора конфигурации технологий определения расстояния).
4 массив байтов Байты конфигураций технологий определения расстояния Повторяющиеся блоки структур, определенные для каждой технологии

Полезная нагрузка сообщения UWB Ranging Configuration описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x0 – СШП
1 uint8 Размер Размер конфигурации UWB (включая поля Technology ID и Size) в байтах.
2 uint8*2 Адрес СШП Двухбайтовый адрес устройства в сети СШП.
4 uint8*4 Идентификатор сеанса Сгенерированный идентификатор сеанса. Идентификатор сеанса – это уникальный идентификатор сеанса определения расстояния между телефоном и периферийным устройством.
8 uint8 Выбранный идентификатор конфигурации Выбранный идентификатор конфигурации в виде целого числа. Идентификатор конфигурации определяет параметры времени и тип защиты, которые должны использоваться для сеанса измерения расстояния с помощью СШП.
9 uint8 Выбранный канал Выбранный канал для сеанса определения расстояния с помощью сверхширокополосной связи
10 uint8 Индекс выбранных вводных инструкций Выбранный индекс преамбулы для сеанса определения расстояния с помощью СШП
11 uint8*2 Выбранный интервал ранжирования Выбранный интервал измерения расстояния в миллисекундах. Допустимые значения (в миллисекундах):
  • 96
  • 120
  • 240
  • 600
13 uint8 Выбранная длительность интервала Продолжительность выбранного интервала в миллисекундах. Допустимые значения (в миллисекундах):
  • 1
  • 2
14 uint8 Длина сеансового ключа Длина сеансового ключа в байтах.
15 массив байтов Сеансовый ключ Сеансовый ключ. Если используется S-STS, то первые два байта – это идентификатор поставщика, а следующие шесть байтов – это статический вектор инициализации STS. Если используется P-STS, это сеансовый ключ размером 16 или 32 байта. Тип безопасности определяется идентификатором конфигурации.
varies uint8*2 Код страны Двухбуквенный код страны в формате ISO 3166-1 alpha-2, представленный двумя символами ASCII.
varies uint8 Выбранная роль устройства
  • 0x01 – инициатор.
  • 0x02 – ответчик.
varies uint8 Выбран режим устройства
  • 0x01 – контроллер;
  • 0x02 – управляемый объект

Полезная нагрузка сообщения BLE CS Ranging Configuration описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x1 – BLE CS
1 uint8 Размер Размер конфигурации BLE CS (включая поля Technology ID и Size) в байтах.
2 uint8 Выбранный тип защиты Выбранный тип защиты. Допустимые значения:
  • 0x0 – CS_SECURITY_LEVEL_UNKNOWN
  • 0x1 – CS_SECURITY_LEVEL_ONE
  • 0x2 – CS_SECURITY_LEVEL_TWO
  • 0x3 – CS_SECURITY_LEVEL_THREE
  • 0x4 – CS_SECURITY_LEVEL_FOUR
3 uint8*6 Адрес устройства Адрес устройства, используемого для BLE CS; в порядке от старшего к младшему

Полезная нагрузка сообщения 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 в разделе 1.3.3 спецификации Wi-Fi Aware версии 4.0. Определения.
3 массив байтов Название сервиса Название сервиса. См. раздел 1.3.3 "Таблица 1" спецификации Wi-Fi Aware версии 4.0. Определения.
varies uint8 Роль устройства
  • 0x0 – респондент (издатель сервиса NAN)
  • 0x1 – инициатор (подписчик сервиса NAN).
varies uint8 Использовать периодическое определение расстояния
  • 0x0 – периодическое определение расстояния отключено.
  • 0x1 – периодическое измерение расстояния включено.

Полезная нагрузка сообщения BLE RSSI Ranging Configuration описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8 Идентификатор технологии определения расстояния 0x3 – BLE RSSI
1 uint8 Размер Размер конфигурации BLE RSSI (включая поля Technology ID и Size) в байтах.
2 uint8*6 Адрес устройства Адрес устройства, используемого для BLE RSSI; в порядке от старшего к младшему

Полезная нагрузка ответного сообщения о конфигурации определения расстояния

Размер (без учета размера заголовка): 2 байта

Описание. Это сообщение отправляется в ответ на сообщение Ranging Configuration. Это сообщение необязательно. Оно требуется, только если используемый канал связи требует явного ответа на каждый запрос.

Полезная нагрузка сообщения Ranging Configuration Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8*2 Поле битов "Конфигурация технологий определения расстояния задана успешно" Битовое поле успешно настроенных технологий определения расстояния. Если технология была запрошена и успешно задана, битовое поле устанавливает бит технологии определения расстояния в значение 1, в противном случае – в значение 0.
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT;
  • 0x08 – BLE RSSI
  • RFU

Полезная нагрузка сообщения об остановке определения расстояния

Размер (без учета размера заголовка): 2 байта.

Описание. Это сообщение отправляется устройством-инициатором, когда нужно прекратить определение расстояния с помощью указанной технологии.

Полезная нагрузка сообщения Stop Ranging приведена в таблице ниже.

Октет Тип данных Описание Значение
0 uint8*2 Технологии, позволяющие остановить битовое поле Битовое поле технологий определения местоположения, которые должны прекратить работу. Бит, установленный на 1, указывает, что технология определения расстояния должна прекратить работу, а 0 – что она либо не работала, либо должна продолжить работу, если уже работала. Для некоторых технологий определения расстояния (например, CS) это действие не имеет смысла, поскольку определение расстояния запускается и останавливается только на стороне инициатора.
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT;
  • 0x08 – BLE RSSI
  • RFU

Полезная нагрузка сообщения с ответом на запрос диапазона

Размер (без учета размера заголовка): 2 байта.

Описание. Это сообщение отправляется в ответ на сообщение Stop Ranging. Это сообщение необязательно. Оно требуется только в том случае, если используемый канал связи требует явного ответа на каждый запрос.

Полезная нагрузка сообщения Stop Ranging Response описана в таблице ниже.

Октет Тип данных Описание Значение
0 uint8*2 Битовое поле "Технологии определения расстояния успешно остановлены" Битовое поле технологий определения расстояния, которые успешно прекратили определение расстояния. Если технология была запрошена для остановки и успешно остановлена, битовое поле устанавливает бит технологии определения расстояния в значение 1, в противном случае – в значение 0.
  • 0x01 – СШП
  • 0x02 – зондирование канала BLE
  • 0x04 – Wi-Fi NAN RTT;
  • 0x08 – BLE RSSI
  • RFU

Управление версиями

Версия спецификации указана в заголовке каждого письма. В этом разделе описано, как осуществляется связь, если на одном из устройств (инициаторе или получателе) установлена более старая версия, чем на другом.

Случай 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, должны быть добавлены в конец полезной нагрузки, а существующие поля не должны быть изменены. Если при анализе конфигурации указанный размер больше ожидаемого, дополнительные поля должны игнорироваться любым устройством, которое может распознавать только более старую версию спецификации.

Фрагментация

Эта спецификация не зависит от канала связи, поэтому в ней не определяется, как фрагментировать полезную нагрузку сообщения, если одно сообщение слишком велико, чтобы поместиться в пакет передачи используемого канала связи. Модуль Ranging ожидает получить каждое сообщение в полном виде. Ответственность за фрагментацию несет тот, кто реализует канал связи OOB.

Особенности технологии определения расстояния

В этом разделе приведена информация, относящаяся к технологии определения расстояния.

Особенности сверхширокополосной связи (СШП)

В этом разделе описаны особенности сверхширокополосной связи.

Идентификаторы конфигураций

Данные конфигурации OOB, которыми обмениваются устройства с поддержкой СШП, не содержат полного набора доступных настраиваемых параметров, необходимых для начала сеанса определения расстояния с помощью СШП. Это связано с тем, что некоторые параметры неявно выбираются выбранным идентификатором конфигурации.

Каждый идентификатор конфигурации представляет собой набор заданных параметров конфигурации СШП, описанных в UwbRangingParams. Устройство-ответчик отправляет список всех поддерживаемых идентификаторов конфигурации в составе сообщения с ответом о возможностях, а инициатор выбирает один из поддерживаемых идентификаторов конфигурации, который будет использоваться. Это позволяет обмениваться меньшим набором параметров конфигурации во время OOB. Кроме того, это ограничивает количество возможных комбинаций параметров, которые можно использовать для определения расстояния с помощью UWB, что позволяет тестировать только разрешенные комбинации параметров.

Запрашивать возможности после каждого сеанса СШП

После завершения текущего сеанса UWB и перед началом нового устройство-инициатор должно запросить возможности устройства-ответчика и снова задать параметры конфигурации, поскольку UWB-адрес может измениться сразу после завершения текущего сеанса определения расстояния.

Особенности зондирования канала BLE (CS)

В этом разделе описаны особенности зондирования каналов.

Требуется связь между устройствами

Для определения расстояния с помощью зондирования канала требуется существующее подключение между инициатором и устройством, отвечающим на запрос. Эта спецификация не предусматривает возможности установления связи между устройствами. Пользователь API определения расстояния должен установить связь между устройствами.

Действие, которое должно выполнить устройство, отвечающее на запрос CS

В UWB оба устройства должны явно вызывать API start ranging и stop ranging. В отличие от этого, для CS требуется только устройство инициатора, чтобы запустить определение расстояния CS, вызвав стек Bluetooth (BT). Остальная часть инициализации на стороне отвечающего устройства выполняется в рамках Bluetooth. Это означает, что после получения сообщения Ranging Configuration или Stop Ranging для CS отвечающему устройству не нужно ничего делать, если Bluetooth включен. Устройство-ответчик может использовать эти сообщения в качестве триггера для обновления интерфейса или, например, мигания светодиодов.