Интерфейс хост-контроллера (HCI) используется для взаимодействия с контроллером Bluetooth.
В этом документе представлен список требований Bluetooth (BT) и Bluetooth Low Energy (BLE) HCI. Цель состоит в том, чтобы поставщики стека Host BT и поставщики контроллеров BT соответствовали этим требованиям платформы, чтобы использовать набор функций, описанный ниже.
В этом документе спецификация Bluetooth Core 5.2 называется «спецификация». Спецификация Bluetooth Core 5.2 доступна на веб-сайте Bluetooth SIG вместе с другими принятыми документами.
Общий обзор конструкции
Возможности и конфигурация чипа
Будучи открытой платформой, Android имеет матрицу выпусков программного обеспечения, OEM-производителей, поставщиков, а также возможностей платформы и чипов.
Для управления меняющейся средой и управления миграциями в этом документе описана философия проектирования, позволяющая контроллерам BT раскрывать свои возможности (выходящие за рамки стандартной спецификации Bluetooth Core 5.2). Затем стек BT хоста может использовать эти возможности, чтобы определить, какие функции включить.
Поддержка открытых стандартов
Одной из целей Android является поддержка открытых стандартов после их ратификации в спецификации Bluetooth. Если описанная ниже функция станет доступной в стандартных методах HCI в будущей спецификации Bluetooth, мы будем склоняться к использованию этого подхода по умолчанию.
Возможности конкретного поставщика
Команда, зависящая от поставщика: LE_Get_Vendor_Capabilities_Command
Поле команды OpCode (OCF): 0x153
Параметр команды | Размер | Цель |
---|---|---|
NA | Пустой список параметров команды |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
max_advt_instances (Устарело) | 1 октет | Количество поддерживаемых экземпляров рекламы. Зарезервировано после версии 0.98. Этот параметр устарел в спецификации функций Google версии 0.98 и выше в пользу расширенной рекламы LE, доступной в спецификации BT версии 5.0 и выше. |
offloaded_resolution_of_private-address (Устарело) | 1 октет | Возможности чипа BT RPA. Если поддерживается чипом, ему необходимо разрешение хоста. 0 = Невозможно 1 = Способен Зарезервировано после версии 0.98. Этот параметр устарел в спецификации функции Google версии 0.98 и выше в пользу функции конфиденциальности, доступной в спецификации BT версии 4.2 и выше. |
total_scan_results_storage | 2 октета | Хранение результатов сканирования в байтах |
max_irk_list_sz | 1 октет | Количество записей IRK, поддерживаемых прошивкой |
filtering_support | 1 октет | Поддержка фильтрации в контроллере 0 = не поддерживается 1 = поддерживается |
max_filter | 1 октет | Количество поддерживаемых фильтров |
activity_energy_info_support | 1 октет | Поддерживает отчетность об активности и энергетической информации. 0 = Невозможно 1 = Способен |
version_supported | 2 октета | Указывает поддерживаемую версию спецификации функции Google. байт[0] = основной номер byte[1] = Младший номер v1.04 байт[0] = 0x01 байт[1] = 0x04 |
total_num_of_advt_tracked | 2 октета | Общее количество рекламодателей, отслеживаемых для целей OnLost / OnFound |
extended_scan_support | 1 октет | Поддерживает расширенное окно и интервал сканирования. |
debug_logging_supported | 1 октет | Поддерживает регистрацию двоичной отладочной информации с контроллера. |
LE_address_generation_offloading_support (Устарело) | 1 октет | 0 = не поддерживается 1 = поддерживается Зарезервировано после версии 0.98. Этот параметр устарел в спецификации функции Google версии 0.98 и выше в пользу функции конфиденциальности, доступной в спецификации BT версии 4.2 и выше. |
A2DP_source_offload_capability_mask | 4 октета | Битовые маски для поддерживаемых типов кодеков Бит 0 — SBC Бит 1 — AAC Бит 2 — APTX Бит 3 — APTX HD Бит 4 — LDAC Биты 5–31 зарезервированы. |
bluetooth_quality_report_support | 1 октет | Поддерживает отчеты о событиях качества Bluetooth 0 = Невозможно 1 = Способен |
dynamic_audio_buffer_support | 4 октета | Поддерживает динамический аудиобуфер в контроллере Bluetooth. Битовые маски для поддерживаемых типов кодеков Бит 0 — SBC Бит 1 — AAC Бит 2 — APTX Бит 3 — APTX HD Бит 4 — LDAC Биты 5–31 зарезервированы. |
a2dp_offload_v2_support | 1 октет | Поддерживает команды разгрузки A2DP v2 в контроллере Bluetooth (см. «Начать разгрузку A2DP» , «Остановить разгрузку A2DP »). 0 = не поддерживается 1 = поддерживается |
Результаты пакетного сканирования
Целью разработки является улучшение способа доставки уведомлений о событиях Bluetooth LE Scan Response на хост, чтобы сэкономить электроэнергию на хосте.
Уменьшая частоту, с которой контроллер уведомляет процессор главного приложения о результатах сканирования, процессор главного приложения может дольше оставаться в режиме ожидания/сна. Это снижает энергопотребление хоста. Возвращаемый параметр total_scan_results_storage
команды LE_Get_Vendor_Capabilities_Command
указывает на способность чипа хранить результаты сканирования.
Эта функция ориентирована на управление и настройку хранилища результатов сканирования LE в контроллере Bluetooth. Хранилище используется для временной пакетной обработки рекламных данных, а также данных сканирования и метаданных, полученных контроллером для последующей доставки на хост.
Прошивка должна поддерживать два типа пакетной обработки, которые можно использовать одновременно:
- Усечено. Содержит следующие информационные элементы: {MAC, мощность TX, RSSI, отметка времени}
- Полный. Содержит следующие информационные элементы: {MAC, мощность передачи, RSSI, временная метка, рекламные данные, ответ сканирования}
LE_Batch_Scan_Command
ОКФ: 0x156
Параметр команды | Размер | Цель |
---|---|---|
Batch_Scan_opcode | 1 октет | 0x1 — включить функцию, специфичную для клиента. 0x2 — установка параметров хранилища пакетного сканирования. 0x3 — установка параметров пакетного сканирования 0x4 — чтение параметров результата пакетного сканирования |
Для этой команды будет сгенерировано событие Command Complete. Включение функции, специфичной для клиента, не запускает сканирование.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Batch_Scan_opcode | 1 октет | 0x1 — включить функцию, специфичную для клиента. 0x2 — установка параметров хранилища пакетного сканирования. 0x3 — установка параметров пакетного сканирования 0x4 — чтение параметров результата пакетного сканирования |
LE_Batch_Scan_Command: включить функцию, специфичную для клиента.
Дополнительный OCF: 0x01
Параметр подкоманды | Размер | Цель |
---|---|---|
enable_customer_specific_feature_set | 1 октет | 0x01 — включить функцию пакетного сканирования. 0x00 — отключить функцию пакетного сканирования. |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Batch_Scan_opcode | 1 октет | 0x1 — включить функцию, специфичную для клиента. 0x2 — установка параметров хранилища пакетного сканирования. 0x3 — установка параметров пакетного сканирования 0x4 — чтение параметров результатов пакетного сканирования |
LE_Batch_Scan_Command: подкоманда установки параметров хранения пакетного сканирования.
Дополнительный OCF: 0x02
Параметр подкоманды | Размер | Цель |
---|---|---|
Batch_Scan_Full_Max | 1 октет | Максимальное пространство для хранения (в %), выделенное для полного стиля [Диапазон: 0–100] |
Batch_Scan_Truncated_Max | 1 октет | Максимальное пространство для хранения (в %), выделенное для усеченного стиля [Диапазон: 0–100] |
Batch_Scan_Notify_Threshold | 1 октет | Настройка уровня уведомления (в %) для отдельного пула носителей [Диапазон: 0–100] Установка значения 0 отключит уведомление. Генерируется событие HCI, зависящее от поставщика (подсобытие нарушения порога хранилища) |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Batch_scan_opcode | 1 октет | 0x02 [Установить параметры пакетного сканирования] |
LE_Batch_Scan_Command: подкоманда установки параметров пакетного сканирования.
Дополнительный OCF: 0x03
Параметр подкоманды | Размер | Цель |
---|---|---|
Batch_Scan_Mode | 1 октет | 0x00 — пакетное сканирование отключено. 0x01 – усеченный режим включен. 0x02 — полный режим включен. 0x03 — усеченный и полный режимы включены. |
Duty_cycle_scan_window | 4 октета | Время сканирования пакетного сканирования (количество слотов) |
Duty_cyle_scan_interval | 4 октета | Период интервала пакетного сканирования (количество слотов) |
own_address_type | 1 октет | 0x00 — адрес общедоступного устройства. 0x01 — Случайный адрес устройства. |
Batch_scan_Discard_Rule | 1 октет | 0 — удалить самое старое объявление. 1 – Отбросить рекламу с самым слабым RSSI |
Эта подкоманда запустит пакетное сканирование, если она включена. При усеченном сканировании результаты сохраняются в усеченной форме, где уникальный ключ для усеченного стиля = { BD_ADDR,
scan_interval}. Это означает, что для каждого интервала сканирования BD_ADDR will
. Для режима усеченного режима следует сохранять следующую запись: { BD_ADDR
, Tx Power, RSSI, Timestamp}
Если включен полный режим, будет использоваться активное сканирование и записываться ответы сканирования. Уникальный ключ полного стиля = {MAC, Ad package}, независимо от интервала сканирования. Для полного режима следует сохранять запись { BD_ADDR
, Tx Power, RSSI, Timestamp, Ad package, Scan Response}. В полном стиле один и тот же пакет AD, просматриваемый несколько раз в разные интервалы сканирования, записывается только один раз. Однако в усеченном режиме интерес представляет видимость BA_ADDR
в разных интервалах сканирования (один раз за интервал сканирования). RSSI — это усредненное значение всех дубликатов уникального рекламного объявления за интервал сканирования.
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Batch_scan_opcode | 1 октет | 0x03 [Установить параметры пакетного сканирования] |
LE_Batch_Scan_Command: подкоманда чтения результатов пакетного сканирования.
Дополнительный OCF: 0x04
Параметр подкоманды | Размер | Цель |
---|---|---|
Batch_Scan_Data_read | 1 октет | 0x01 — данные усеченного режима 0x02 — данные полного режима |
Для этой команды будет сгенерировано событие Command Complete. Когда хост выдает эту команду, все результаты в контроллере могут не уместиться в одно событие Command Complete. Хост будет повторять выдачу этой команды до тех пор, пока соответствующие результаты в событии Command Complete не будут указывать 0 в количестве записей, что указывает на то, что у контроллера больше нет записей для передачи хосту. Каждое событие выполнения команды может содержать несколько записей только одного типа данных (полные или усеченные).
Привязки времени контроллера и хоста не синхронизированы. Единица отметки времени — 50 мс. Значение временной метки зависит от того, когда хост предоставляет Read_Batch_Scan_Results_Sub_cmd
. Если время прибытия команды во встроенном ПО равно T_c
, то фактическое время, когда временная метка была получена во встроенном ПО, равно T_fw
. Время отчета будет: ( T_c
- T_fw
). T_c
и T_fw
находятся во временной области прошивки. Это позволяет хосту вычислить, как давно произошло событие.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Batch_scan_opcode | 1 октет | 0x03 [Установить параметры пакетного сканирования] |
Batch_Scan_data_read | 1 октет | Определяет формат (усеченный или полный) |
num_of_records | 1 октет | Количество записей Batch_Scan_data_read |
format_of_data | Переменная | Усеченный режим: Адрес[0]: 6 октетов Тип_адреса[0]: 1 октет Tx_Pwr[0]: 1 октет RSSI[0]: 1 октет Временная метка[0]: 2 октета. [несколько записей ( num_of_records ) в указанном выше формате]Полный режим: Адрес[0]: 6 октетов Тип_адреса[0]: 1 октет Tx_Pwr[0]: 1 октет RSSI[0]: 1 октет Временная метка[0]: 2 октета. Adv package_len[0]: 1 октет Adv_packet[0]: Adv_packet_len октетов Scan_data_resp_len[0]: 1 октет Scan_data_resp[0]: октеты Scan_data_resp [несколько записей в указанном выше формате ( num_of_records )] |
Фильтр содержимого рекламных пакетов
Используйте это, чтобы включить/отключить/настроить фильтр содержимого рекламных пакетов (APCF) в контроллере. APCF фильтрует отчеты о рекламе в контроллере, но не фильтрует периодическую рекламу.
LE_APCF_Команда
ОКФ: 0x157
Параметр команды | Размер | Цель |
---|---|---|
APCF_opcode | 1 октет | 0x00 — включение APCF 0x01 — APCF устанавливает параметры фильтрации 0x02 — адрес вещательной компании APCF 0x03 — UUID службы APCF 0x04 — UUID запроса службы APCF 0x05 — локальное имя APCF 0x06 — данные производителя APCF 0x07 — данные службы APCF 0x08 — Служба обнаружения транспорта APCF 0x09 — Фильтр типа AD APCF 0x10 ~ 0xAF — зарезервировано для будущего использования. 0xB0 ~ 0xDF — зарезервировано для поставщика. 0xE0 ~ 0xFE — зарезервировано для будущего использования. 0xFF — APCF Чтение расширенных функций |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус возврата |
APCF_opcode | 1 октет | 0x00 — включение APCF 0x01 — APCF устанавливает параметры фильтрации 0x02 — адрес вещательной компании APCF 0x03 — UUID службы APCF 0x04 — UUID запроса службы APCF 0x05 — локальное имя APCF 0x06 — данные производителя APCF 0x07 — данные службы APCF 0x08 — Служба обнаружения транспорта APCF 0x09 — Фильтр типа AD APCF 0x10 ~ 0xAF — зарезервировано для будущего использования. 0xB0 ~ 0xDF — зарезервировано для поставщика. 0xE0 ~ 0xFE — зарезервировано для будущего использования. 0xFF — APCF Чтение расширенных функций |
LE_APCF_Command: Enable_sub_cmd
Дополнительный OCF: 0x00
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_enable | 1 октет | 0x01 — включить функцию APCF. 0x00 — отключить функцию APCF. |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x0 — включение APCF |
APCF_Enable | 1 октет | Включение/выключение устанавливается через APCF_enable |
LE_APCF_Command: set_filtering_parameters_sub_cmd
Эта подкоманда используется для добавления или удаления спецификации фильтра или очистки списка фильтров для встроенной фильтрации.
Дополнительный OCF: 0x01
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_Action | 1 октет | 0x00 — Добавить 0x01 — Удалить 0x02 — Очистить Удалить очистит конкретный фильтр вместе со связанными записями функций в других таблицах. Очистить очистит все фильтры и связанные записи в других таблицах. |
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter-1 ) |
APCF_Feature_Selection | 2 октета | Битовые маски для выбранных функций: Бит 0: установлен для включения фильтра широковещательного адреса. Бит 1: установлен для включения фильтра изменения служебных данных. Бит 2: установлен для включения проверки UUID службы. Бит 3: установлен для включения проверки UUID запроса службы. Бит 4: установлен для включения проверки локального имени. Бит 5: установлен для включения проверки данных производителя. Бит 6: установлен для включения проверки служебных данных. Бит 7: установлен для включения проверки службы обнаружения транспорта. Бит 8: установлен для включения проверки типа AD. |
APCF_List_Logic_Type | 2 октета | Логическая операция для каждого выбора функции (побитовая позиция), указанная в APCF_Feature_Selection .Действует только в том случае, если функция включена. Значение позиции бита: 0: ИЛИ 1: И Если выбрана логика «И», пакет ADV пройдет фильтр только в том случае, если он содержит ВСЕ записи в списке. Если выбрана логика «ИЛИ», пакет ADV пройдет фильтр, если он содержит какие-либо записи в списке. |
APCF_Filter_Logic_Type | 1 октет | 0x00: ИЛИ 0x01: И Примечание. Тип логики — N/A для первых трех полей APCF_Feature_Selection , что всегда является логикой «И». Они применимы только для (бит 3 – бит 6) четырех полей APCF_Feature_Selection . |
rssi_high_thresh | 1 октет | [в дБм] Рекламодатель считается замеченным только в том случае, если сигнал превышает верхний порог RSSI. В противном случае прошивка должна вести себя так, как будто она ее никогда не видела. |
delivery_mode | 1 октет | 0x00 – immediate 0x01 — on_found 0x02 — batched |
onfound_timeout | 2 октета | Действует только в том случае, если delivery_mode имеет on_found .[в миллисекундах] Пора прошивкам задержаться и собрать дополнительную рекламу, прежде чем сообщать. |
onfound_timeout_cnt | 1 октет | Действует только в том случае, если delivery_mode имеет on_found .[считать] Если реклама в onFound задерживается в прошивке на время onfound_timeout , она соберет несколько рекламных объявлений и проверит счетчик. Если счетчик превышает onfound_timeout_cnt , об этом сразу же сообщается OnFound . |
rssi_low_thresh | 1 октет | Действует только в том случае, если delivery_mode имеет on_found .[в дБм] Пакет рекламодателя считается невидимым, если RSSI полученного пакета не превышает нижнего порога RSSI. |
onlost_timeout | 2 октета | Действует только в том случае, если delivery_mode имеет on_found .[в миллисекундах] Если рекламное объявление после того, как оно было найдено, не отображается непрерывно в течение периода lost_timeout , о нем немедленно будет сообщено, что оно потеряно. |
num_of_tracking_entries | 2 октета | Действует только в том случае, если delivery_mode имеет on_found .[считать] Общее количество рекламодателей для отслеживания по каждому фильтру. |
Значения RSSI должны использовать дополнение до 2 для представления отрицательных значений.
Хост должен иметь возможность настраивать несколько фильтров с APCF_Application_Address_type
установленным на 0x02 (для всех адресов широковещательных компаний), для управления различными комбинациями фильтров.
Фильтрация, пакетная обработка и отчетность — это взаимосвязанные понятия. Каждое рекламное объявление и связанный с ним ответ сканирования должны будут пройти через все фильтры, один за другим. Таким образом, результирующие действия ( delivery_mode
) тесно связаны с фильтрацией. Режимы доставки следующие: report_immediately
, batch
и onFound
. Значение OnLost
связано с OnFound
в том смысле, что в случае потери оно будет следовать после OnFound
.
Этот поток обработки описывает концептуальную модель:
Когда получен кадр объявления (или ответа на сканирование), он применяется ко всем фильтрам в последовательном порядке. Вполне возможно, что рекламное объявление может вызвать немедленные отчеты на основе одного фильтра и их группировку из-за другого действия фильтра.
Пороговые значения уровня RSSI (высокие и низкие) дают возможность контролировать, когда кадр виден для обработки фильтром, даже если контроллер получает действительный пакет. Если режим доставки установлен на немедленный или пакетный, RSSI кадра учитывается для дальнейшей обработки контроллером. Разным приложениям требуется различное поведение отчетов и пакетной обработки. Это позволяет нескольким приложениям одновременно получать прямые отчеты и/или группировать результаты во встроенном ПО. Примером может служить случай, когда в одном приложении активно пакетное сканирование, а затем другое приложение выполняет обычное сканирование LE. Перед запуском пакетного сканирования платформа/приложение устанавливает соответствующие фильтры. Позже, когда второе приложение выполнит обычное сканирование, предыдущая пакетная обработка продолжится. Однако из-за обычного сканирования концептуально это похоже на добавление нулевого фильтра (вместе со всеми существующими фильтрами) вместе с командой сканирования LE. Параметры команды сканирования LE имеют приоритет, когда они активны. Когда обычное сканирование LE отключено, контроллер вернется к предыдущему пакетному сканированию, если оно существовало.
Режим доставки OnFound
основан на настроенных фильтрах. Комбинация, которая вызывает успешное действие фильтра, считается объектом, отслеживаемым для onLost
. Соответствующим событием является подсобытие отслеживания LE Advt.
Переход OnFound/OnLost
для фильтра (если он включен) будет выглядеть следующим образом:
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x01 — параметры фильтрации установки APCF |
APCF_Action | 1 октет | APCF_Action команды Echo Back |
APCF_AvailableSpaces | 1 октет | Количество доступных записей в таблице фильтров |
LE_APCF_Command: Broadcast_address_sub_cmd
Эта подкоманда используется для добавления или удаления адреса рекламодателя или для очистки списка адресов рекламодателя для встроенной фильтрации.
Дополнительный OCF: 0x02
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_Action | 1 октет | 0x00 — Добавить 0x01 — Удалить 0x02 — Очистить Удалить удалит указанный адрес вещательной компании в указанном фильтре. Очистить очистит все адреса вещательных компаний в указанном фильтре. |
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter-1 ) |
APCF_Broadcaster_Address | 6 октет | 6-байтовый адрес устройства для добавления или удаления из списка адресов вещательной компании. |
APCF_Application_Address_type | 1 октет | 0x00: общедоступный 0x01: Случайный 0x02: NA (игнорировать тип адреса) Для фильтрации рекламных отчетов по типам идентификационных адресов (0x02, 0x03). Чтобы получать рекламные отчеты с типами адресов 0x02 и 0x03, установите в этом поле значение 0x02: NA (игнорируйте тип адреса). |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x02 — адрес вещательной компании APCF |
APCF_Action | 1 октет | APCF_Action команды Echo Back |
APCF_AvailableSpaces | 1 октет | Количество свободных записей, все еще доступных в таблице широковещательных адресов. |
LE_APCF_Command: service_uuid_sub_cmd
Эта подкоманда используется для добавления или удаления UUID службы или для очистки списка UUID службы для встроенной фильтрации.
Дополнительный OCF: 0x03
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_Action | 1 октет | 0x00 — Добавить 0x01 — Удалить 0x02 — Очистить Удалить удалит указанный адрес UUID службы в указанном фильтре. Очистить очистит все UUID служб в указанном фильтре. |
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter -1) |
APCF_UUID | 2,4,16 октет | UUID службы (16-битный, 32-битный или 128-битный) для добавления или удаления из списка. |
APCF_UUID_MASK | 2,4,16 октет | Маска UUID службы (16-, 32- или 128-битная), которую нужно добавить в список. Он должен иметь ту же длину, что и APCF_UUID. |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x03 — UUID службы APCF |
APCF_Action | 1 октет | APCF_Action команды Echo Back |
APCF_AvailableSpaces | 1 октет | Количество свободных записей, которые все еще доступны в таблице UUID службы. |
LE_APCF_Command: solicitation_uuid_sub_cmd
Эта подкоманда используется для добавления или удаления UUID запроса или для очистки списка UUID запроса для встроенной фильтрации.
Дополнительный OCF: 0x04
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_Action | 1 октет | 0x00 — Добавить 0x01 — Удалить 0x02 — Очистить Удалить удалит адрес UUID запроса в указанном фильтре. Очистить очистит все UUID запроса в указанном фильтре. |
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter -1) |
APCF_UUID | 2,4,16 октет | UUID запроса (16-битный, 32-битный или 128-битный), который нужно добавить в список или удалить из него. |
APCF_UUID_MASK | 2,4,16 октет | Маска UUID запроса (16-, 32- или 128-битная), которую нужно добавить в список. Он должен иметь ту же длину, что и APCF_UUID . |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x04 — UUID запроса APCF |
APCF_Action | 1 октет | APCF_Action команды Echo Back |
APCF_AvailableSpaces | 1 октет | Количество свободных записей, все еще доступных в таблице UUID запроса. |
LE_APCF_Command: local_name_sub_cmd
Эта подкоманда используется для добавления или удаления строки локального имени или для очистки списка строк локального имени для встроенной фильтрации.
Дополнительный OCF: 0x05
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_Action | 1 октет | 0x00 — Добавить 0x01 — Удалить 0x02 — Очистить Удалить удалит указанную строку локального имени в указанном фильтре. Очистить очистит все строки локальных имен в указанном фильтре. |
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Переменный размер | Строка символов для локального имени. Примечания:
|
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x05 — локальное имя APCF |
APCF_Action | 1 октет | APCF_Action команды Echo Back |
APCF_AvailableSpaces | 1 октет | Количество свободных записей, все еще доступных в таблице локальных имен. |
LE_APCF_Command: manf_data_sub_cmd
Эта подкоманда используется для добавления или удаления строки данных производителя или для очистки списка строк данных производителя для встроенной фильтрации.
Дополнительный OCF: 0x06
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_Action | 1 октет | 0x00 — Добавить 0x01 — Удалить 0x02 — Очистить Удалить удалит указанную строку данных производителя в указанном фильтре. Очистить очистит все строки данных производителя в указанном фильтре. |
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Переменный размер | Строка символов для данных производителя. Примечания:
|
APCF_ManData_Mask | Переменный размер | Маска данных производителя, которую нужно добавить в список. Он должен иметь ту же длину, что и APCF_LocName_or_ManData_or_SerData . |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x06 — данные производителя APCF |
APCF_Action | 1 октет | APCF_Action команды Echo Back |
APCF_AvailableSpaces | 1 октет | Количество свободных записей, доступных в таблице данных производителя. |
LE_APCF_Command: service_data_sub_cmd
Эта подкоманда используется для добавления или удаления строки служебных данных или для очистки списка строк служебных данных для встроенной фильтрации.
Дополнительный OCF: 0x07
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_Action | 1 октет | 0x00 — Добавить 0x01 — Удалить 0x02 — Очистить Удалить удалит указанную строку данных службы в указанном фильтре. Очистить очистит все строки служебных данных в указанном фильтре. |
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Переменный размер | Строка символов для служебных данных. Примечания:
|
APCF_LocName_Mandata_or_SerData_Mask | Переменный размер | Маска служебных данных, добавляемая в список. Он должен иметь ту же длину, что и APCF_LocName_or_ManData_or_SerData. |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x07 — данные службы APCF |
APCF_Action | 1 октет | APCF_Action команды Echo Back |
APCF_AvailableSpaces | 1 октет | Количество свободных записей, доступных для таблицы служебных данных |
LE_APCF_Command: ad_type_sub_cmd
Эта подкоманда используется для добавления или удаления типа AD или для очистки списка типов AD для встроенной фильтрации. Используйте read_extended_features_sub_cmd
чтобы проверить, поддерживается ли эта команда или нет.
Если APCF_AD_DATA_Length
равен 0, фильтруйте APCF_AD_TYPE
без сравнения данных AD и маски данных AD. Если длина данных полученного пакета ADV превышает AD_DATA_LENGTH
, сравнивайте только первые байты AD_DATA_LENGTH
данных AD и игнорируйте оставшиеся данные.
Дополнительный OCF: 0x09
Параметр подкоманды | Размер | Цель |
---|---|---|
APCF_Action | 1 октет | 0x00 — Добавить 0x01 — Удалить 0x02 — Очистить Удалить удалит указанный тип AD в указанном фильтре. Очистить очистит все типы AD в указанном фильтре. |
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter -1) |
APCF_AD_TYPE | 1 октет | Тип AD для добавления или удаления из списка. Игнорировать, когда APCF_Action имеет значение 0x02 (очистить) |
APCF_AD_DATA_Length | 1 октет | 0x00 — означает не фильтровать содержимое данных Игнорировать, когда APCF_Action имеет значение 0x02 (очистить) |
APCF_AD_DATA | Переменный размер | Переменного размера, на основе APCF_AD_DATA_Length Игнорировать, когда APCF_Action имеет значение 0x02 (очистить) |
APCF_AD_DATA_MASK | Переменный размер | Переменного размера, на основе APCF_AD_DATA_Length Игнорировать, когда APCF_Action имеет значение 0x02 (очистить)Он должен иметь ту же длину, что и APCF_AD_DATA . |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0x09 — Тип AD APCF |
APCF_Action | 1 октет | APCF_Action команды Echo Back |
APCF_AvailableSpaces | 1 октет | Количество свободных записей, все еще доступных в таблице типов AD. |
LE_APCF_Command: read_extended_features_sub_cmd
Эта подкоманда используется для чтения расширенных функций APCF.
Дополнительный OCF: 0xFF
Параметр подкоманды | Размер | Цель |
---|---|---|
Непригодный | Пустой параметр команды. |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
APCF_opcode | 1 октет | 0xFF — APCF_Read_Extended_Features |
APCF_extended_features | 2 октета | Поддерживаются битовые маски для расширенных функций:
Значение бита
|
Действия контроллера и команда информации об энергии
Целью этой информации является то, чтобы высшие функции хост-системы анализировали общую активность всех компонентов, включая контроллер BT и его макросостояние, в сочетании с тем, что происходит в приложениях и платформе. Для этого от БТ-стека и контроллера необходима следующая информация:
- Стек BT: отчет о текущем макрорабочем состоянии контроллера.
- Прошивка: отчетность по совокупной активности и информации об энергопотреблении.
Состояния макроса стека хоста BT, определенные на уровне пользователя:
- В режиме ожидания: [сканирование страницы, реклама LE, сканирование запроса, сканирование LE]
- Сканирование: [пейджинг/запрос/попытка подключения]
- Активно: [связь ACL включена, связь SCO активна, режим отслеживания]
Действия, которые контроллер отслеживает в течение всего срока службы, — это время передачи, время приема, время простоя и общий объем потребляемой энергии. Они очищаются при чтении с хоста.
LE_Get_Controller_Activity_Energy_Info
Это команда конкретного поставщика.
ОКФ: 0x159
Параметр подкоманды | Размер | Цель |
---|---|---|
NA | Пустые параметры команды |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
total_tx_time_ms | 4 октета | Общее время выполнения Tx |
total_rx_time_ms | 4 октета | Общее время выполнения приема |
total_idle_time_ms | 4 октета | Общее время в режиме ожидания (состояния с низким энергопотреблением без сна) |
total_energy_used | 4 октета | Общая использованная энергия [произведение тока (мА), напряжения (В) и времени (мс)] |
LE расширенная команда установки параметров сканирования
Эту команду можно использовать для включения большего окна и интервала сканирования в контроллере. Согласно спецификации BT Core 5.2, окно сканирования и интервал имеют верхний предел в 10,24 секунды, что ограничивает интервалы сканирования, превышающие 10,24 секунды для приложений.
Базовая ссылка: Спецификация BT Core 5.2, стр. 2493 (команда установки параметров сканирования LE).
ОКФ: 0x15А
Параметр команды | Размер | Цель |
---|---|---|
LE_Ex_Scan_Type | 1 октет | 0x00 — Пассивное сканирование. Пакеты SCAN_REQ не отправляются (по умолчанию).0x01 — Активное сканирование. Пакеты SCAN_REQ могут быть отправлены. |
LE_Ex_Scan_Interval | 4 октета | Определяется как интервал времени с момента запуска контроллером последнего сканирования LE до начала последующего сканирования LE. Диапазон: от 0x0004 до 0x00FFFFFF. По умолчанию: 0x0010 (10 мс). Время = Н * 0,625 мс Диапазон времени: от 2,5 мс до 10442,25 секунды. |
LE_Ex_Scan_Window | 4 октета | Продолжительность сканирования LE. LE_Scan_Window должен быть меньше или равен LE_Scan_Interval .Диапазон: от 0x0004 до 0xFFFF. По умолчанию: 0x0010 (10 мс). Время = Н * 0,625 мс Диапазон времени: от 2,5 мс до 40,95 секунды. |
Own_Address_Type | 1 октет | 0x00 — адрес общедоступного устройства (по умолчанию) 0x01 — случайный адрес устройства |
LE_Ex_Scan_Filter_Policy | 0x00 — принимать все рекламные пакеты (по умолчанию). Пакеты направленной рекламы, не адресованные этому устройству, игнорируются. 0x01 — игнорировать рекламные пакеты от устройств, не входящих в список «Только белый список». Пакеты направленной рекламы, не адресованные этому устройству, игнорируются. |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Получить команду отладочной информации контроллера
Целью этого информационного элемента является получение хостом отладочной информации контроллера в двоичной форме для последующей обработки и анализа. Это помогает устранять неполадки на местах и предоставляет инженерам набор инструментов для регистрации информации для анализа. Контроллер может предоставлять информацию по запросу хоста через событие (подсобытие «Информация об отладке контроллера») или автономно, когда этого требует контроллер. Примером использования может быть сообщение информации о состоянии встроенного ПО, информации о аварийном дампе, информации журнала и т. д.
ОКФ: 0x15B
Параметр команды | Размер | Цель |
---|---|---|
Н/Д | Пустой список параметров команды |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Поддержка аппаратной разгрузки A2DP
Функция разгрузки A2DP поддерживает разгрузку процесса кодирования звука A2DP на аудиопроцессор, подключенный к контроллеру BT. Поток закодированных аудиоданных передается непосредственно от аудиопроцессора к контроллеру BT без участия хоста BT. Хост BT по-прежнему отвечает за настройку и управление сеансом A2DP. Доступны две версии команд. Устаревшие команды с Sub OCF 0x01-0x02 поддерживают только кодеки с открытым исходным кодом. Версии с Sub-OCF 0x03-0x04 не зависят от настроенного кодека.
ОКФ: 0x15D
Запустить разгрузку A2DP (устаревшая версия)
Дополнительный OCF: 0x01
Используйте эту команду как для настройки процесса разгрузки A2DP, так и для запуска потока A2DP.
Параметр команды | Размер | Цель |
---|---|---|
Codec | 4 октета | Указывает тип кодека 0x01 — СБК 0x02 — ААС 0x04 — АПТХ 0x08 — APTX HD 0x10 — ЛДАК |
Max_Latency | 2 октета | Максимально допустимая задержка (в мс). Значение 0 отключает сброс. |
SCMS-T_Enable | 2 октета | Октет 0: Флаг, разрешающий добавление заголовка SCMS-T.
Октет 1: значение заголовка SCMS-T, если он включен. |
Sampling_Frequency | 4 октета | 0x01 – 44100 Гц 0x02 – 48000 Гц 0x04 – 88200 Гц 0x08 – 96000 Гц |
Bits_Per_Sample | 1 октет | 0x01 — 16 бит на выборку 0x02 — 24 бита на выборку 0x04 — 32 бита на выборку |
Channel_Mode | 1 октет | 0x01 — моно 0x02 — Стерео |
Encoded_Audio_Bitrate | 4 октета | Битрейт закодированного аудио в битах в секунду. 0x00000000 — Битрейт аудио не указан/не используется. 0x00000001 — 0x00FFFFFF — битрейт кодированного аудио в битах в секунду. 0x01000000 — 0xFFFFFFFF — Зарезервировано. |
Connection_Handle | 2 октета | Дескриптор соединения настраиваемого соединения A2DP |
L2CAP_Channel_ID | 2 октета | Идентификатор канала L2CAP, который будет использоваться для этого соединения A2DP. |
L2CAP_MTU_Size | 2 октета | Максимальный размер L2CAP MTU, содержащий закодированные аудиопакеты |
Codec_Information | 32 октета | Информация о кодеке. Кодек SBC: См. специальные информационные элементы кодека SBC в A2DP v1.3. Кодек AAC: См. специальные информационные элементы кодека AAC в A2DP v1.3. Кодек LDAC: Октет 0–3: идентификатор поставщика Октет 4–5: идентификатор кодека Октет 6: Индекс битрейта: Октет 7: Режим канала LDAC Октет 8–31: зарезервировано. Все остальные кодеки: Октет 0–31: зарезервировано. |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Sub_Opcode | 1 октет | 0x01 — начать разгрузку A2DP. |
Начать разгрузку A2DP
Дополнительный OCF: 0x03
Используйте эту команду как для настройки процесса разгрузки A2DP, так и для запуска потока A2DP.
Параметр команды | Размер | Цель |
---|---|---|
Connection Handle | 2 октета | Дескриптор активного соединения HCI |
L2CAP_Channel_ID | 2 октета | Идентификатор канала L2CAP, открытого для потоковой передачи A2DP. |
Data_Path_Direction | 1 октет | 0x00 — вывод (источник/объединение AVDTP) 0x01 — вход (приемник/разделение AVDTP) |
Peer_MTU | 2 октета | Максимальный размер пакетов L2CAP, согласованный с партнером. |
CP_Enable_SCMS_T | 1 октет | 0x00 — отключить заголовок защиты содержимого SCMS-T. 0x01 — включить заголовок защиты содержимого SCMS-T. |
CP_Header_SCMS_T | 1 октет | Когда заголовок защиты содержимого SCMS-T включен ( CP_SCMS_T_Enable установлен в 0x01), определяет значение заголовка, которое предшествует аудиоконтенту (см. A2DP, раздел 3.2.1-2), как определено в разделе «Назначенные номера Bluetooth», раздел 6.3.2.Игнорируется, если защита содержимого SCMS-T не включена. |
Vendor_Specific_Parameters_Length | 1 октет | Длина параметров, специфичных для поставщика, в диапазоне от 0 до 128. Значение 0 используется, когда дополнительные параметры не указаны. |
Vendor_Specific_Parameters | 0–128 октетов | Параметры, специфичные для поставщика, предоставляемые Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] . |
Для этой команды будет сгенерировано событие Command Complete.
Возвращаемый параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус завершения команды |
Sub_Opcode | 1 октет | 0x03 — начать разгрузку A2DP. |
Остановить разгрузку A2DP (устаревшая версия)
Дополнительный OCF: 0x02
Эта команда используется для остановки потока разгрузки A2DP.
Параметр команды | Размер | Цель |
---|---|---|
Н/Д | Пустой список параметров команды. |
Для этой команды не определены параметры.
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Sub_Opcode | 1 октет | 0x02 - остановить разгрузку A2DP |
Остановите разгрузку A2DP
Sub OCF: 0x04
Эта команда используется для остановки потока разгрузки A2DP.
Параметр команды | Размер | Цель |
---|---|---|
Connection Handle | 2 октета | Ручка активного соединения HCI |
L2CAP_Channel_ID | 2 октета | Идентификатор канала L2CAP открылся для потоковой передачи A2DP |
Data_Path_Direction | 1 октет | 0x00 - выход (AVDTP Source/Merge) 0x01 - Вход (AVDTP -раковина/сплит) |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Sub_Opcode | 1 октет | 0x04 - остановить разгрузку A2DP |
Команда отчета о качеством Bluetooth
Функция команды отчета BT качества запускает механизм в контроллере Bluetooth, чтобы сообщить о событиях качества Bluetooth для хоста. Вы можете включить четыре варианта:
- Режим мониторинга качества: Контроллер периодически отправляет на хост связь, связанный с качеством, связанный с качеством.
- Приближаясь к LSTO: Если с подключенного устройства BT не получается пакеты на более чем половину значения временного анаут (LSTO), контроллер сообщает о приближающемся событии LSTO для хоста.
- A2DP Audio Chappy: Когда контроллер обнаруживает факторы, которые вызывают прерывистый звук, контроллер сообщает об хосте A2DP -прерывистое событие.
- (e) Голосовой голос SCO: когда контроллер обнаруживает факторы, которые вызывают изменчивой голос, контроллер сообщает о (E) SCO голосовое событие для хоста.
- Воспаление корня: это событие отправляется контроллером в стек, когда HAL или контроллер сталкиваются с фатальной ошибкой и необходимо перезапустить Bluetooth.
- След в сообщении LMP/LL: Контроллер отправляет дистанционное управление сообщением LMP/LL с удаленным устройством на хост.
- Bluetooth Multi-Profile/Coex Prackuling Trace: Контроллер отправляет информацию о планировании для обработки нескольких профилей Bluetooth и беспроводного сосуществования в диапазоне 2,4 ГГц на хост.
- Информационный механизм отладки контроллера: при включении контроллер может автономно сообщать о ведении журнала отладки через информацию о отладке контроллера.
- LE Audio Choppy: Когда контроллер обнаруживает факторы, которые вызывают изменчивую аудио, контроллер сообщает о том, что LE Audio Crappy Event для хоста.
- Предварительный режим RF статистики: Контроллер сообщает о своей информации о статистике радиочастотной статистики на хосте, поддерживая два варианта использования отчетов:
- Периодические отчеты
- Триггеры события (Tream Start/STOP и STUCK CAVICE TRIGGER).
- BQR_REPORT_ACTION Команда отчета о качестве Bluetooth: хост может использовать эту команду HCI, чтобы получить единовременный запрос для режима мониторинга качества, режима мониторинга энергии или режима предварительной статистики RF.
OCF: 0x15e
Параметр команды | Размер | Цель |
---|---|---|
BQR_Report_Action | 1 октет | Действие по добавлению / удалению отчетности о качественных событиях, установленных в параметре bqr_quality_event_mask, или очистить все. 0x00 - добавить DELETE очистит конкретные отчеты о качествах. |
BQR_Quality_Event_Mask | 4 октета | Бит маски для выбранной качественной отчетности о событиях. Бит 0: Установите, чтобы включить режим мониторинга качества. |
BQR_Minimum_Report_Interval | 2 октета | Определите минимальный интервал времени качественной отчетности о событиях для выбранного события качества. Прошивка контроллера не должна сообщать о следующем событии в течение определенного интервала времени. Установка интервала должна быть соответствующей и выделенной для добавляемого качества событий. Блок: MS |
BQR_Vendor_Specific_Quality_Event_Mask | 4 октета | Бит маски для выбранной отчетности по качеству, специфичным для конкретного поставщика. Этот параметр действителен только тогда, когда установлен бит 15 из BQR_Quality_Event_Mask .Бит 0 ~ 31: зарезервирован. |
BQR_Vendor_Specific_Trace_Mask | 4 октета | Бит-маски для выбранной отчетности по следом поставщика. Этот параметр действителен только тогда, когда установлен бит 31 из BQR_Quality_Event_Mask .Бит 0 ~ 31: зарезервирован. |
Report_interval_multiple | 4 октета | Множитель для BQR_Minimum_Report_Interval . Когда это значение> = 1, интервал отчета BQR следует за форматомИнтервал отчета BQR = BQR_MINIMUM_REPORT_INTERVAL X Report_Interval_Multiple. Прошивка контроллера не должна сообщать о следующем событии в течение определенного интервала времени. Настройка интервала специально выделена для дополнительного качества событий. Блок: MS BQR_Report_Interval больше, чем способность контроллера, контроллер должен вернуть максимальное время BQR_Report_Interval по завершению команды. |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Current_Quality_Event_Mask | 4 октета | Указывает текущую настройку битовой маски. Бит 0: режим мониторинга качества включен. Бит 1: Подход к отчетности о событиях LSTO включена. Бит 2: A2DP Audio. Бит 3: (e) SCO голос. Бит 4: Отчеты о событиях воспаления корня включена. Бит 5: Режим мониторинга энергии включен. Бит 6: LE Audio Crappy Comply Reporting включена. Бит 7: Событие подключения Fail. Бит 8: Установите, чтобы включить запуск события Mode Advance Stats. Бит 9: Установка для периодического отчета о предоставлении Advance RF статистики. Бит 10 ~ 14: зарезервировано. Бит 15: включена отчетность по качеству, специфичное для поставщика. Бит 16: LMP/LL Trace включена. Бит 17: Bluetooth Multi-Link/Coex Prackuling Trace включена. Бит 18: Информационный механизм отладки контроллера включен. Бит 19 ~ 30: зарезервировано. Бит 31: Трассия, специфичная для поставщика, включена. |
Current_Vendor_Specific_Quality_Event_Mask | 4 октета | Указывает текущую настройку битовой маски. |
Current_Vendor_Specific_Trace_Mask | 4 октета | Указывает текущую настройку битовой маски. |
BQR_Report_interval | 4 октета | Указывает текущую настройку битовой маски. |
Current_Vendor_Specific_Trace_Mask | 4 октета | Настройка BQR_Report_interval . Это должно быть минимальное значение между bqr_minimum_report_interval * report_interval_multiple или максимальным интервалом поддержки контроллера. |
Динамическая команда аудио буфера
Динамический звуковой буфер уменьшает звуковой сбой, изменяя размер звукового буфера в контроллере Bluetooth на основе различных сценариев.
OCF: 0x15f
Получите возможность времени буфера аудио
Sub OCF: 0x01
Используйте эту команду, чтобы получить возможность времени буфера аудио от контроллера Bluetooth.
Параметр команды | Размер | Цель |
---|---|---|
Н/Д | Список параметров пустых команд |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Dynamic_Audio_Buffer_opcode | 1 октет | 0x01 - Получить время буфера аудио |
Audio_Codec_Type_Supported | 4 октета | Бит маски для поддерживаемых типов кодека Бит 0 - SBC Бит 1 - AAC Бит 2 - aptx Бит 3 - aptx hd Бит 4 - LDAC Бит 5-31 зарезервировано |
Audio_Codec_Buffer_Default_Time_For_Bit_0 | 2 октета | Время буфера по умолчанию типа кода бита 0, указанного в Audio_codec_type_supported. Это значение должно быть 0, если тип кода бита 0 не поддерживается. Блок: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 | 2 октета | Максимальное время буфера типа кода бита 0, указанного в Audio_codec_type_supported. Это значение должно быть 0, если тип кода бита 0 не поддерживается. Блок: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 | 2 октета | Минимальное время буфера типа кода бита 0, указанного в Audio_codec_type_supported. Это значение должно быть 0, если тип кода бита 0 не поддерживается. Блок: MS |
Audio_Codec_Buffer_Default_Time_For_Bit_1 | 2 октета | Время буфера по умолчанию типа бита 1 кодек, указанный в Audio_codec_type_supported. Это значение должно быть 0, если тип кода бита 1 не поддерживается. Блок: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 | 2 октета | Максимальное время буфера типа 1 бита 1, указанное в Audio_Codec_type_Supported. Это значение должно быть 0, если тип кода бита 1 не поддерживается. Блок: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 | 2 октета | Минимальное время буфера типа кода 1 бита 1, указанного в Audio_codec_type_supported. Это значение должно быть 0, если тип кода бита 1 не поддерживается. Блок: MS |
...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 | 2 октета | Время буфера по умолчанию типа кода 31, указанный в Audio_codec_type_supported. Это значение должно быть 0, если тип кодека BIT 31 не поддерживается. Блок: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 | 2 октета | Максимальное время буфера типа кода 31, указанное в AUDIO_CODEC_TYPE_SUPPORTED. Это значение должно быть 0, если тип кодека BIT 31 не поддерживается. Блок: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 | 2 октета | Минимальное время буфера типа кода 31, указанное в AUDIO_CODEC_TYPE_SUPPORTED. Это значение должно быть 0, если тип кодека BIT 31 не поддерживается. Блок: MS |
Установите время буфера аудио
Sub OCF: 0x02
Используйте эту команду, чтобы установить время буфера аудио на контроллер Bluetooth.
Параметр команды | Размер | Цель |
---|---|---|
Audio_Codec_Buffer_Time | 2 октета | Запрашивается время буфера аудио для текущего используемого кодека. Блок: MS |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Dynamic_Audio_Buffer_opcode | 1 октет | 0x02 - Установите время буфера аудио |
Audio_Codec_Buffer_Time | 2 октета | Текущий аудио буферный время в контроллере Bluetooth. Блок: MS |
Событие HCI (специфичный для поставщика)
В некоторых случаях требуются события HCI, специфичные для поставщика. См. Рисунок 5.4 на стр. 1897 Спецификации BT Core 5.2. Параметр события 0 всегда будет содержать первый код подв., На основе которого декодирована остальная часть события HCI.
Параметр события | Размер | Цель |
---|---|---|
HCI_vendor_specific_event_code | 1 октет | 0xFF |
sub_event_code | 1 октет | Код подв допуска будет размером 1 октета, байт сразу же после длины параметра в пакете событий HCI. |
Порог хранения.
Это событие указывает на то, что порог хранения был нарушен.
Subevent Code = 0x54
Параметр подв | Размер | Цель |
---|---|---|
Никто |
LE Multa-Adveding State Change Subsevent
Это событие указывает на то, что рекламный экземпляр изменил свое состояние. В настоящее время это событие используется только для того, чтобы указать, какой рекламный экземпляр был остановлен в результате соединения.
Subevent Code = 0x55
Параметр подв | Размер | Цель |
---|---|---|
Advertising_instance | 1 октет | Определяет конкретный рекламный экземпляр Допустимые значения: от 0 до max_advt_instances -1 |
State_Change_Reason | 1 октет | 0x00: Полученное соединение |
Connection_handle | 2 октета | Определяет соединение, которое вызвало отключение экземпляра advt (0xffff, если недействителен) |
LE Advertision отслеживание Subevent
Это событие указывает, когда рекламодатель найден или потерян.
Код субъекта = 0x56
Параметр подв | Размер | Цель |
---|---|---|
APCF_Filter_Index | 1 октет | Индекс фильтра (0, max_filter -1) |
Advertiser_State | 1 октет | 0x00: рекламодатель нашел 0x01: рекламодатель проиграл |
Advt_Info_Present | 1 октет | 0x00: информация о Advt_Info 0x01: информация о Advt_Info |
Advertiser_Address | 6 октетов | Публичный или случайный адрес |
Advertiser_Address_Type | 1 октет | 0x00: публичный адрес 0x01: случайный адрес |
Advt_Info | Tx_Pwr[0] : 1 октетRSSI[0] : 1 октетTimestamp[0] : 2 октетаAdv packet_len[0] : 1 октетAdv_packet[0] : Adv_packet_len octetsScan_data_resp_len[0] : 1 октетScan_data_resp[0] : Scan_data_resp octets |
Информация о отладке контроллера Subevent
Это событие используется контроллером для предоставления информации о бинарной отладке хозяину.
Subevent Code = 0x57
Параметр подв | Размер | Цель |
---|---|---|
debug_block_byte_offset_start | 2 октета | Отладочная байт смещение от начала |
last_block | 1 октет | 0x00: больше данных отладки присутствуют 0x01: последний двоичный блок; Больше нет данных отладки |
cur_pay_load_sz | 2 октета | Размер бинарного блока в текущем событии |
Debug_Data | Переменная | Данные отладки cur_payload_sz |
Bluetooth Quality Report Subevent
Это событие указывает на одно из следующих действий: произошло событие качества Bluetooth, контроллер загрузил трассировку сообщений LMP/LL и трассировку по планированию мультисвязанного/компонента Bluetooth или данные о сброшенной информационной отладке контроллера.
Subevent Code = 0x58 [Quality_report_id = 0x01 ~ 0x04, Событие, связанное с качеством ссылки]
Параметр подв | Размер | Цель |
---|---|---|
Quality_Report_Id | 1 октет | 0x01: качественная отчетность в режиме мониторинга. 0x02: приближается к LSTO. 0x03: A2DP Audio Chappy. 0x04: (e) Шоу голос SCO. 0x05 ~ 0x06: зарезервирован. 0x07: LE Audio Chappy. 0x08: подключить сбой. 0x09 ~ 0xff: зарезервирован. |
Packet_Types | 1 октет | 0x01: id 0x02: NULL 0x03: опрос 0x04: FHS 0x05: HV1 0x06: HV2 0x07: HV3 0x08: DV 0x09: ev3 0x0a: EV4 0x0b: ev5 0x0c: 2-ev3 0x0d: 2-ev5 0x0e: 3-ev3 0x0f: 3-ev5 0x11: DH1 0x12: DM3 0x13: DH3 0x14: DM5 0x15: DH5 0x16: AUX1 0x17: 2-DH1 0x18: 2-DH3 0x19: 2-DH5 0x1a: 3-DH1 0x1b: 3-DH3 0x1c: 3-DH5 0x1d ~ 0x50: зарезервированный 0x51: ISO Packet 0x52 ~ 0xff: зарезервирован |
Connection_Handle | 2 октета | ACL/(E) SCO/ISO -рукоятка подключения. |
Connection_Role | 1 октет | Выполнение роли для связи. 0x00: Центральный 0x01: периферийное 0x02 ~ 0xff: зарезервирован. |
TX_Power_Level | 1 октет | Текущий уровень передачи мощности для указанного connection_handle. Это значение должно быть таким же, как и контроллер, отвечающий на команду HCI_READ_TRANST_POWER_LEVEL HCI. |
RSSI | 1 октет | [в DBM] Значение индикации прочности сигнала (RSSI) для указанного connection_handle. |
SNR | 1 октет | [в дм] Значение отношения сигнал / шум (SNR) для указанного Connection_Handle. |
Unused_AFH_Channel_Count | 1 октет | Указывает количество неиспользованных каналов в AFH_CHANLER_MAP. 0x4f ~ 0xff: зарезервирован. |
AFH_Select_Unideal_Channel_Count | 1 октет | Указывает количество каналов, которые мешают и имеют плохое качество, но они все еще выбираются для AFH. Минимальное количество каналов, разрешенных спецификацией Bluetooth, составляет 20, поэтому даже если все 79 каналов вмешаются и имеют плохое качество, контроллер все еще должен выбрать не менее 20 каналов для AFH. |
LSTO | 2 октета | Текущая настройка тайм -аута контроля ссылок. Время = n * 0,625 мс Диапазон времени: от 0,625 мс до 40,9 с. |
Connection_Piconet_Clock | 4 октета | Piconet Clock для указанного connection_handle. Это значение должно быть таким же, как и контроллер, отвечающий на команду HCI_READ_CLOCK HCI с параметрами "What_clock" 0x01 (Piconet Clock). Блок: n * 0,3125 мс (1 часы Bluetooth) |
Retransmission_Count | 4 октета | Количество ретрансмиссий с момента последнего события. Этот счет должен быть сброшен после отчетности хозяину. |
No_RX_Count | 4 октета | Нет количества RX с момента последнего события. Подсчет увеличивается, когда пакет не получен в запланированном временном интервале или полученный пакет поврежден. Этот счет должен быть сброшен после отчетности хозяину. |
NAK_Count | 4 октета | Нак (негативное признание) считается с последнего события. Этот счет должен быть сброшен после отчетности хозяину. |
Last_TX_ACK_Timestamp | 4 октета | TimeStamp of Last TX ACK. Он основан на часах Bluetooth Piconet Central (CLK). Блок: n * 0,3125 мс (1 часы Bluetooth) |
Flow_Off_Count | 4 октета | Количество раз контроллер получает проточный офф (остановка) с последнего события. Этот счет должен быть сброшен после отчетности хозяину. |
Last_Flow_On_Timestamp | 4 октета | Временная метка последнего потока (Go). Он основан на часах Bluetooth Piconet Central (CLK). Блок: n * 0,3125 мс (1 часы Bluetooth) |
Buffer_Overflow_Bytes | 4 октета | [в байте] Буферное переполнение подсчет с момента последнего события. |
Buffer_Underflow_Bytes | 4 октета | [в байте] Буферный подсчет подсчета с момента последнего события. |
bdaddr | 6 октетов | Адрес удаленного устройства |
cal_failed_item_count | 1 октет | Подсчет калибровки не удалось |
TX_Total_Packets | 4 октета | Количество отправленных пакетов. |
TX_UnAcked_Packets | 4 октета | Количество пакетов, которые не получают подтверждения. Этот счет сброшен после отчетности хозяину. |
TX_Flushed_Packets | 4 октета | Количество пакетов, которые не отправляются его точкой. Этот счет сброшен после отчетности хозяину. |
TX_Last_Subevent_Packets | 4 октета | Количество пакетов, которые связывают слой, передает CIS Data PDU в последнем субцененте события CIS. Этот счет сброшен после отчетности хозяину. Значение равно нулю, если нет допустимого значения для ссылки. |
CRC_Error_Packets | 4 октета | Количество полученных пакетов с ошибкой CRC с момента последнего события. Этот счет сброшен после отчетности хозяину. |
RX_Duplicate_Packets | 4 октета | Количество дубликатов (ретрансмиссия), полученных с момента последнего события. Этот счет сброшен после отчетности хозяину. |
RX_Unreceived_Packets | 4 октета | Количество незавершенных пакетов совпадает с параметром команды качества ссылки LE Read ISO (см. Спецификацию ядра Bluetooth версии 5.4). Соответствующие потоки являются цис и бис. Когда это значение увеличивается, слой ссылки не получает определенную полезную нагрузку по ее точке промывки (на цис) или в конце события он связан (на BIS; см. Спецификация Bluetooth Sepicization Версия 5.4 VOL 6 Part 6 Part B, раздел 4.4.6.6). |
Coex_Info_Mask | 2 октета | Бит 0 - Coexinvomement: установлено, чтобы указать, что Coex Actions предположительно участвует, когда этот отчет генерируется (например, A2DP -отбивные и приближающиеся к LSTO). Бит 1 - WL 2G Radio Active: установлено, чтобы указать, что WLAN 2G -радио активно. Бит 2 - WL 2G подключено: установлено, чтобы указать радио WLAN 2G активно и подключено. Бит 3 - WL 5G/6G Радио Active: Установлено, чтобы указать, что WLAN 5G/6G Радио активен. Бит 4-15 - зарезервированный |
Специфический параметр поставщика | (Параметр Общая длина - TBD) * октеты | Для поставщика контроллера, чтобы получить больше специфических параметров поставщика. |
Subevent Code = 0x58 [Quality_report_id = 0x05, Событие воспаления корня]
Это событие указывает на то, что Bluetooth HAL или контроллер столкнулись с фатальной ошибкой и нуждаются в стеке Bluetooth для записи этой ситуации и перезапуска. Контроллер должен отправить root_inflammation_event в стек Bluetooth перед отправкой первого фрагмента событий Info Debug Info в любом случае.
Параметр error_code содержит код ошибки, сообщаемый от HAL/Controller, 0, если это конкретная ошибка поставщика Chipset. Vendor_specific_error_code содержит конкретный код ошибки поставщика чипсета от HAL/Controller. Он должен установить как 0, если параметр error_code не равен 0. Параметры error_code и vendor_specific_error_code не должны быть 0.
Параметр подв | Размер | Цель |
---|---|---|
Quality_Report_Id | 1 октет | 0x00 ~ 0x04: зарезервирован. 0x05: воспаление корня. 0x06 ~ 0xff: зарезервирован. |
Error_Code | 1 октет | 0x00: включен конкретный код ошибки поставщика Chipset. 0x01 ~ 0xff: произошел сбой контроллера. См. Spec Bluetooth [Vol 2] Часть D, коды ошибок для списка кодов ошибок и описаний. |
Vendor_Specific_Error_Code | 1 октет | 0x00: Код ошибки по поставщику чипсетов не включен. 0x01 ~ 0xff: конкретный код ошибки поставщика чипсетов. |
Специфический параметр поставщика | (Параметр Общая длина - 4) * Октеты | Для поставщика контроллера, чтобы получить больше специфических параметров поставщика. |
Subevent Code = 0x58 [Quality_Report_id = 0x11 ~ 0x13, событие, связанное с дампом журнала]
Параметр подв | Размер | Цель |
---|---|---|
Quality_Report_Id | 1 октет | 0x00 ~ 0x10: зарезервирован. 0x11: LMP/LL Trace Message Trace. 0x12: Bluetooth Multi-Link/Coex Prackuling Trace. 0x13: Информационный дамт данных контроллера. 0x14 ~ 0xff: зарезервирован. |
Connection_Handle | 2 октета | Подключение. |
Специфический параметр поставщика | (Параметр Общая длина - 4) * Октеты | Специфический формат поставщика трассировки сообщений LMP, Bluetooth Multi-Link/Coex Pragection Trace и Debug Debug Data Data Data. |
Поддержка с мультизвертификацией
Цели поддержки с мультизвертаксией следующие:
- Возможность поддерживать несколько рекламных объявлений (
max_advt_instances
) - Различные мощности передачи, чтобы обеспечить различный диапазон
- Различный рекламный контент
- Индивидуальный ответ для каждого рекламодателя
- Конфиденциальность (не отслеживаемой) для каждого рекламодателя
- Подключаемо
Чтобы сохранить эту спецификацию вблизи существующих стандартов, предоставляются следующие команды, специфичные для поставщика. Они получены из спецификации Bluetooth Core 4.1.
Le_multi_advt_command
OCF: 0x154
Параметр команды | Размер | Цель |
---|---|---|
Multi_advt_opcode | 1 октет | 0x01 - Set_Advt_Param_Multi_Sub_Cmd 0x02 - Set_Advt_Data_Multi_Sub_Cmd 0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd 0x04 - Set_Random_Addr_Multi_Sub_Cmd 0x05 - Set_Advt_Enable_Multi_Sub_Cmd |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Multi_advt_opcode | 1 октет | 0x01 - Set_Advt_Param_Multi_Command 0x02 - Set_Advt_Data_Multi_Command 0x03 - Set_Scan_Resp_Data_Multi_Command 0x04 - Set_Random_Addr_Multi_Command 0x05 - Set_Advt_Enable_Multi_Command |
Le_multi_advt_command: set_advt_param_multi_sub_cmd
Базовая ссылка: Bluetooth Core 4.1 Спецификация, стр. 964 (команда Set Set Advertising Parameter)
Sub OCF: 0x01
Параметр подкоманда | Размер | Цель |
---|---|---|
Advertising_Interval_Min | В соответствии с спецификацией | В соответствии с спецификацией |
Advertising_Interval_Max | В соответствии с спецификацией | В соответствии с спецификацией |
Advertising_Type | В соответствии с спецификацией | В соответствии с спецификацией |
Own_Address_Type | В соответствии с спецификацией | В соответствии с спецификацией |
Own_Address | В соответствии с спецификацией | В соответствии с спецификацией |
Direct_Address_Type | В соответствии с спецификацией | В соответствии с спецификацией |
Direct_Address | В соответствии с спецификацией | В соответствии с спецификацией |
Advertising_Channel_Map | В соответствии с спецификацией | В соответствии с спецификацией |
Adverstising_Filter_Policy | В соответствии с спецификацией | В соответствии с спецификацией |
Advertising_Instance | 1 октет | Указывает применимость приведенных выше параметров к экземпляру |
Tx_power | 1 октет | Передача_Поуэр Блок - в DBM (подписано целое число) Диапазон (от -70 до +20) |
Параметр Own_Address
может быть адресом, сфигурируемым в хосте во время настройки этого экземпляра с многопрофильной передачей. Это обеспечивает возможность иметь разрешаемый частный адрес во время передачи первого маяка. Реклама на экземпляре будет продолжаться независимо от связи. Стек -хост BT может выпустить команду для запуска рекламы на экземпляре, публиковать соединение.
Для этой команды будет сгенерировано командование, как указано в спецификации Bluetooth Core 4.1, согласно вышеуказанной команде. Контроллер ответит кодом без SUCCESS (неверный параметр), если экземпляр рекламы или параметры Tx_Power
недействительны.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Multi_advt_opcode | 1 октет | 0x01 [ Set_Advt_Param_Multi_Sub_Cmd] |
Le_multi_advt_command: set_advt_data_multi_sub_cmd
Базовая ссылка: Bluetooth Core 4.1 Спецификация, стр. 969 (LE SET SET Adverting Data Command)
Sub OCF: 0x02
Параметр подкоманда | Размер | Цель |
---|---|---|
Advertising_Data_Length | В соответствии с спецификацией | В соответствии с спецификацией |
Advertising_Data | В соответствии с спецификацией | В соответствии с спецификацией |
Advertising_Instance | 1 октет | Указывает применимость приведенных выше параметров к экземпляру |
Для этой команды будет сгенерировано командование, как указано в спецификации Bluetooth Core 4.1, согласно вышеуказанной команде. Контроллер ответит не-вышесленным кодом, если экземпляр рекламы или параметры Tx_Power
недействительны.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Multi_advt_opcode | 1 октет | 0x02 [ Set_Advt_Data_Multi_Sub_Cmd] |
Le_multi_advt_command: set_scan_resp_data_multi_sub_cmd
Базовая ссылка: Bluetooth Core 4.1 Спецификация, стр. 970 (команда данных на SET SET SCAN)
Sub OCF: 0x03
Параметр подкоманда | Размер | Цель |
---|---|---|
Scan_Response_Data_Length | В соответствии с спецификацией | В соответствии с спецификацией |
Scan_Response_Data | В соответствии с спецификацией | В соответствии с спецификацией |
Advertising_Instance | 1 октет | Указывает применимость приведенных выше параметров к экземпляру |
Для этой команды будет сгенерировано командование, как указано в спецификации Bluetooth Core 4.1, согласно вышеуказанной команде. Контроллер ответит кодом, несущественным (неверный параметр), если экземпляр рекламы или параметры Tx_Power
недействительны.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Multi_advt_opcode | 1 октет | 0x03 [ Set_Scan_Resp_Data_Multi_Sub_Cmd] |
Le_multi_advt_command: set_random_addr_multi_sub_cmd
Базовая ссылка: Bluetooth Core 4.1 Спецификация, стр. 963 (LE SET MANDED ADDREAD CONDARD)
Sub OCF: 0x04
Параметр подкоманда | Размер | Цель |
---|---|---|
Случайный адрес | В соответствии с спецификацией | В соответствии с спецификацией |
Advertising_Instance | 1 октет | Указывает применимость приведенных выше параметров к экземпляру |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Multi_advt_opcode | 1 октет | 0x04 [ Set_Random_Addr_Multi_Sub_Cmd] |
Le_multi_advt_command: set_advt_enable_multi_sub_cmd
Базовая ссылка: Bluetooth Core 4.1 Спецификация, стр. 971 (LE SET ADMALISE Включить команду в этой спецификации CORE)
OCF: 0x05
Параметр подкоманда | Размер | Цель |
---|---|---|
Advertising_Enable | 1 октет | Значение 1 означает включить. Любое другое значение означает отключение. |
Advertising_Instance | 1 октет | Указывает применимость приведенных выше параметров к экземпляру. Экземпляр 0 означает стандартный экземпляр HCI. |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Multi_advt_opcode | 1 октет | 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd] |
Разгруженное разрешение частного адреса
Эта функция разрешает частный адрес в прошивке или аппаратном обеспечении контроллера, который предоставляет следующие преимущества:
- Задержка, связанная с хостом в разрешении частного адреса
- Сохранение мощности, воздерживаясь от пробуждения хоста
LE_SET_RPA_TIMEOUT
OCF: 0x15c
Параметр команды | Размер | Цель |
---|---|---|
LE_local_IRK | 16 октет | Локальное устройство IRK используется для генерации случайного разрешаемого адреса (ES). |
tRPA_min | 2 октета | Минимальный тайм -аут генерации RPA за считанные секунды. Контроллер должен генерировать новые разрешаемые адреса для любых событий рекламы/сканирования/соединения в этом или после этого времени. Допустимый диапазон: 300-1800 |
tRPA_max | 2 октета | Максимальный тайм -аут генерации RPA за считанные секунды. Контроллер должен генерировать новые разрешаемые адреса для любых событий рекламы/сканирования/соединения в этот тайм -аут. Допустимый диапазон: tRPA_min -1800 |
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Статус команды. Предлагаемые значения статуса HCI: 0x00 успех 0x01 Неизвестная команда (если не поддерживается) 0x12 Неверные параметры команды (если какие -либо параметры находятся за пределами данного диапазона) |
LE_RPA_OFFLOAD_COMMAND
OCF: 0x155
Параметр команды | Размер | Цель |
---|---|---|
RPA_offload_opcode | 1 октет | 0x1 - включить функцию конкретной клиента 0x2 - добавить IRK в список 0x3 - удалить IRK из списка 0x4 - Очистить список IRK 0x5 - Читать запись в списке IRK |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Event_RPA_offload_opcode | 1 октет | 0x1 - включить функцию конкретной клиента 0x2 - добавить IRK в список 0x3 - удалить IRK из списка 0x4 - Очистить список IRK 0x5 - Читать запись в списке IRK |
LE_RPA_OFFLOAD: enable_cust_specific_sub_command
Sub OCF: 0x01
Параметр подкоманда | Размер | Цель |
---|---|---|
enable_customer_specific_feature_set | 1 октет | 0x01 - включить выгруженную функцию RPA 0x00 - Отключить функцию разгруженной RPA |
Выгрузка RPA должна быть включена хостом, на основе возможности чипа. См. LE_Get_Vendor_Capabilities_Command
. Каждый чип может иметь различную max_irk_list_sz
в прошивке.
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Event_cust_specific_feature_opcode | 1 октет | 0x01 [Включить функцию конкретной клиента] |
LE_RPA_OFFLOAD: ADD_IRK_TO_LIST_SUB_COMMAND
Sub OCF: 0x02
Параметр подкоманда | Размер | Цель |
---|---|---|
LE_IRK | 16 октетов | Le Irk (1 -й байт LSB) |
Address_Type | 1 октет | 0: публичный адрес 1: случайный адрес |
LE_Device_Address | 6 октетов | Публичный или случайный адрес, связанный с IRK (1 -й байт LSB) |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Event_cust_specific_feature_opcode | 1 октет | 0x02 [добавить IRK в список] |
LE_IrkList_AvailableSpaces | 1 октет | Доступные записи списка IRL после текущей работы |
LE_RPA_OFFLOAD: remove_irk_to_list_sub_command
Sub OCF: 0x03
Параметр подкоманда | Размер | Цель |
---|---|---|
Address_Type | 1 октет | 0: публичный адрес 1: случайный адрес |
LE_Device_Address | 6 октетов | Публичный или случайный адрес, который связывает IRK |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Event_cust_specific_feature_opcode | 1 октет | 0x03 [удалить IRK из списка] |
LE_IrkList_AvailableSpaces | 1 октет | Доступные записи списка IRL после текущей работы |
LE_RPA_OFFLOAD: clear_irk_list_sub_command
Sub OCF: 0x04
Параметр подкоманда | Размер | Цель |
---|---|---|
Никто |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Event_cust_specific_feature_opcode | 1 октет | 0x04 [Очистить список IRK] |
LE_IrkList_AvailableSpaces | 1 октет | Доступные записи списка IRL после текущей работы [ max_irk_list_sz] |
LE_RPA_OFFLOAD: read_irk_list_sub_command
Sub OCF: 0x05
Параметр подкоманда | Размер | Цель |
---|---|---|
LE_read_IRK_list_entry-index | 1 октет | Индекс списка IRK [0, max_irk_list_sz-1] |
Для этой команды будет создано полное событие команды.
Возвратный параметр | Размер | Цель |
---|---|---|
Status | 1 октет | Команда полного статуса |
Event_cust_specific_feature_opcode | 1 октет | 0x05 [Читать запись в списке IRK] |
LE_Read_IRK_List_entry | 1 октет | Индекс IRK, который хост хочет прочитать обратно (максимальный размер списка IRK - 32) |
LE_IRK | 16 октетов | IRK Value |
Address_Type | 1 октет | 0: публичный адрес 1: случайный адрес |
LE_Device_Address | 6 октетов | Публичный или случайный адрес, связанный с IRK |
LE_Resolved_Private_Address | 6 октетов | Текущий разрешенный разрешенный частный адрес этого IRK |