Yêu cầu về HCI

Giao diện điều khiển máy chủ (HCI) được dùng để tương tác với tay điều khiển Bluetooth.

Tài liệu này cung cấp danh sách các yêu cầu về HCI của Bluetooth (BT) và Bluetooth Năng lượng thấp (BLE). Mục đích là để các nhà cung cấp ngăn xếp BT lưu trữ và nhà cung cấp tay điều khiển BT tuân thủ các yêu cầu này của nền tảng để sử dụng bộ tính năng được mô tả bên dưới.

Tài liệu này gọi Quy cách Bluetooth Core 5.2 là "quy cách". Bạn có thể xem Thông số kỹ thuật Bluetooth Core 5.2 trên trang web Bluetooth SIG cùng với các tài liệu được thông qua khác.

Tổng quan về thiết kế chung

Cấu hình và chức năng của khối

Là một nền tảng mở, Android có một ma trận các bản phát hành phần mềm, nhà sản xuất thiết bị gốc (OEM), nhà cung cấp cũng như các tính năng của nền tảng và chip.

Để quản lý nhiều chế độ và để quản lý việc di chuyển, tài liệu này mô tả triết lý thiết kế cho phép bộ điều khiển BT hiển thị các chức năng của chúng (ngoài Thông số kỹ thuật Bluetooth Core 5.2 tiêu chuẩn). Sau đó, ngăn xếp BT lưu trữ có thể sử dụng các chức năng này để xác định tính năng nào cần bật.

Hỗ trợ các tiêu chuẩn mở

Một mục tiêu của Android là hỗ trợ các tiêu chuẩn mở sau khi được phê chuẩn trong thông số kỹ thuật Bluetooth. Nếu một tính năng được mô tả dưới đây có sẵn trong các phương thức HCI chuẩn trong một thông số kỹ thuật Bluetooth trong tương lai, chúng tôi sẽ nghiêng về việc sử dụng phương pháp đó làm phương pháp mặc định.

Các chức năng dành riêng cho nhà cung cấp

Lệnh dành riêng cho nhà cung cấp: LE_Get_Vendor_Capabilities_Command

Trường lệnh OpCode (OCF): 0x153

Tham số lệnh Kích thước Mục đích
NA Danh sách tham số Lệnh trống

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
max_advt_instances
(Không dùng nữa)
1 octet Số lượng phiên bản quảng cáo được hỗ trợ.

Đã đặt trước sau phiên bản 0.98.
Thông số này không còn được dùng nữa trong thông số kỹ thuật tính năng của Google phiên bản 0.98 trở lên mà thay vào đó là Quảng cáo mở rộng LE có trong thông số kỹ thuật BT phiên bản 5.0 trở lên.
offloaded_resolution_of_private-address
(Không dùng nữa)
1 octet Khả năng của chip BT của RPA.
Nếu được một khối hỗ trợ, thì khối đó cần được máy chủ lưu trữ bật.
0 = Không có khả năng
1 = Có khả năng

Đã đặt trước sau phiên bản 0.98.
Thông số này không còn được dùng trong thông số kỹ thuật tính năng của Google phiên bản 0.98 trở lên mà thay vào đó là Tính năng quyền riêng tư có trong thông số kỹ thuật BT phiên bản 4.2 trở lên.
total_scan_results_storage 2 octet Dung lượng bộ nhớ cho kết quả quét (tính bằng byte)
max_irk_list_sz 1 octet Số mục nhập IRK được hỗ trợ trong phần mềm cơ sở
filtering_support 1 octet Hỗ trợ lọc trong bộ điều khiển
0 = Không được hỗ trợ
1 = Được hỗ trợ
max_filter 1 octet Số bộ lọc được hỗ trợ
activity_energy_info_support 1 octet Hỗ trợ báo cáo thông tin về hoạt động và năng lượng
0 = Không có khả năng
1 = Có khả năng
version_supported 2 octet Chỉ định phiên bản thông số kỹ thuật tính năng của Google được hỗ trợ
byte[0] = Số lớn
byte[1] = Số nhỏ

v1.04
byte[0] = 0x01
byte[1] = 0x04
total_num_of_advt_tracked 2 octet Tổng số nhà quảng cáo được theo dõi cho mục đích OnLost/OnFound
extended_scan_support 1 octet Hỗ trợ khoảng thời gian và cửa sổ quét mở rộng
debug_logging_supported 1 octet Hỗ trợ ghi nhật ký thông tin gỡ lỗi nhị phân từ tay điều khiển
LE_address_generation_offloading_support
(Không dùng nữa)
1 octet 0 = Không được hỗ trợ
1 = Được hỗ trợ

Được đặt trước sau phiên bản 0.98.
Thông số này không còn được dùng trong thông số kỹ thuật tính năng của Google phiên bản 0.98 trở lên mà thay vào đó là Tính năng quyền riêng tư có trong thông số kỹ thuật BT phiên bản 4.2 trở lên.
A2DP_source_offload_capability_mask 4 octet Mặt nạ bit cho các loại bộ mã hoá và giải mã được hỗ trợ
Bit 0 – SBC
Bit 1 – AAC
Bit 2 – APTX
Bit 3 – APTX HD
Bit 4 – LDAC
Bit 5-31 được đặt trước
bluetooth_quality_report_support 1 octet Hỗ trợ báo cáo sự kiện Chất lượng Bluetooth
0 = Không có khả năng
1 = Có khả năng
dynamic_audio_buffer_support 4 octet Hỗ trợ vùng đệm âm thanh động trong tay điều khiển Bluetooth
Mặt nạ bit cho các loại bộ mã hoá và giải mã được hỗ trợ
Bit 0 – SBC
Bit 1 – AAC
Bit 2 – APTX
Bit 3 – APTX HD
Bit 4 – LDAC
Bit 5-31 được đặt trước
a2dp_offload_v2_support 1 octet Hỗ trợ các lệnh giảm tải A2DP v2 trong bộ điều khiển Bluetooth (xem phần Bắt đầu giảm tải A2DP, Dừng giảm tải A2DP)
0 = Không được hỗ trợ
1 = Được hỗ trợ

Kết quả quét hàng loạt

Mục tiêu thiết kế là cải thiện cách thông báo sự kiện Phản hồi quét Bluetooth LE được phân phối đến máy chủ lưu trữ, nhằm tiết kiệm pin trong máy chủ lưu trữ.

Bằng cách giảm tần suất bộ điều khiển thông báo cho bộ xử lý ứng dụng lưu trữ để quét kết quả, bộ xử lý ứng dụng lưu trữ có thể ở trạng thái rảnh/ngủ lâu hơn. Điều này giúp giảm mức tiêu thụ điện năng trong máy chủ. Tham số trả về total_scan_results_storage của LE_Get_Vendor_Capabilities_Command cho biết khả năng lưu trữ kết quả quét của khối.

Tính năng này tập trung vào việc quản lý và định cấu hình cơ sở lưu trữ Kết quả quét LE trong bộ điều khiển Bluetooth. Bộ nhớ này được dùng để tạm thời phân lô dữ liệu quảng cáo, dữ liệu quét và siêu dữ liệu mà bộ điều khiển nhận được để phân phối cho máy chủ lưu trữ sau này.

Phần mềm sẽ hỗ trợ hai loại tính năng tạo lô, có thể được thực hiện đồng thời:

  • Đã cắt bớt. Chứa các phần tử thông tin sau: {MAC, TX Power, RSSI, Timestamp}
  • Đầy đủ. Chứa các phần tử thông tin sau: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}

LE_Batch_Scan_Command

OCF: 0x156

Tham số lệnh Kích thước Mục đích
Batch_Scan_opcode 1 octet 0x1 – Bật tính năng dành riêng cho khách hàng
0x2 – Đặt tham số Bộ nhớ quét hàng loạt
0x3 – Đặt tham số Quét hàng loạt
0x4 – Đọc tham số Kết quả quét hàng loạt

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này. Việc bật tính năng dành riêng cho khách hàng sẽ không bắt đầu quá trình quét.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Batch_Scan_opcode 1 octet 0x1 – Bật tính năng dành riêng cho khách hàng
0x2 – Đặt tham số Bộ nhớ quét hàng loạt
0x3 – Đặt tham số Quét hàng loạt
0x4 – Đọc tham số Kết quả quét hàng loạt

LE_Batch_Scan_Command: Bật tính năng dành riêng cho khách hàng

OCF phụ: 0x01

Tham số lệnh con Kích thước Mục đích
enable_customer_specific_feature_set 1 octet 0x01 – Bật tính năng Quét hàng loạt
0x00 – Tắt tính năng Quét hàng loạt

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Batch_Scan_opcode 1 octet 0x1 – Bật tính năng dành riêng cho khách hàng
0x2 – Đặt tham số Bộ nhớ quét hàng loạt
0x3 – Đặt tham số Quét hàng loạt
0x4 – Đọc tham số Kết quả quét hàng loạt

LE_Batch_Scan_Command: Đặt lệnh con tham số bộ nhớ quét hàng loạt

OCF phụ: 0x02

Tham số lệnh con Kích thước Mục đích
Batch_Scan_Full_Max 1 octet Dung lượng lưu trữ tối đa (tính theo %) được phân bổ cho kiểu đầy đủ
[Phạm vi: 0-100]
Batch_Scan_Truncated_Max 1 octet Dung lượng lưu trữ tối đa (tính theo %) được phân bổ cho kiểu bị cắt bớt
[Phạm vi: 0-100]
Batch_Scan_Notify_Threshold 1 octet Thiết lập cấp độ thông báo (theo %) cho từng nhóm bộ nhớ
[Dải ô: 0-100]
Việc đặt thành 0 sẽ tắt thông báo. Sự kiện HCI dành riêng cho nhà cung cấp được tạo (Sự kiện phụ vi phạm ngưỡng bộ nhớ)

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Batch_scan_opcode 1 octet 0x02 [Đặt tham số Quét hàng loạt]

LE_Batch_Scan_Command: Đặt lệnh con tham số quét hàng loạt

OCF phụ: 0x03

Tham số lệnh con Kích thước Mục đích
Batch_Scan_Mode 1 octet 0x00 – Tắt tính năng quét hàng loạt
0x01 – Bật chế độ Rút gọn
0x02 – Bật chế độ Đầy đủ
0x03 – Bật cả chế độ Rút gọn và Đầy đủ
Duty_cycle_scan_window 4 octet Thời gian quét của tính năng Quét hàng loạt (# of slot)
Duty_cyle_scan_interval 4 octet Khoảng thời gian quét hàng loạt (# of slot)
own_address_type 1 octet 0x00 – Địa chỉ thiết bị công khai
0x01 – Địa chỉ thiết bị ngẫu nhiên
Batch_scan_Discard_Rule 1 octet 0 – Loại bỏ quảng cáo cũ nhất
1 – Loại bỏ quảng cáo có RSSI yếu nhất

Lệnh phụ này sẽ bắt đầu quét hàng loạt, nếu được bật. Trong quy trình quét bị cắt bớt, kết quả được lưu trữ ở dạng bị cắt bớt, trong đó khoá duy nhất cho kiểu bị cắt bớt = {BD_ADDR, scan_interval}. Điều này có nghĩa là chỉ có một BD_ADDR will được ghi lại cho mỗi khoảng thời gian quét. Bản ghi cần giữ lại cho chế độ Rút gọn là: {BD_ADDR, Tx Power, RSSI, Timestamp}

Khi chế độ Đầy đủ được bật, tính năng quét chủ động sẽ được sử dụng và Phản hồi quét sẽ được ghi lại. Khoá duy nhất của kiểu Toàn bộ = {MAC, Gói quảng cáo}, bất kể khoảng thời gian quét. Bản ghi cần lưu cho chế độ Đầy đủ là {BD_ADDR, Tx Power, RSSI, Timestamp, Ad packet, Scan Response}. Ở kiểu Đầy đủ, cùng một gói quảng cáo, khi được thấy nhiều lần trong các khoảng thời gian quét khác nhau, chỉ được ghi lại một lần. Tuy nhiên, ở chế độ Rút gọn, điều quan tâm là chế độ hiển thị của BA_ADDR trên các khoảng thời gian quét khác nhau (một lần cho mỗi khoảng thời gian quét). RSSI là giá trị trung bình của tất cả các bản sao của một quảng cáo duy nhất trong một khoảng thời gian quét.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Batch_scan_opcode 1 octet 0x03 [Đặt thông số quét hàng loạt]

LE_Batch_Scan_Command: Đọc lệnh con kết quả quét hàng loạt

OCF phụ: 0x04

Tham số lệnh con Kích thước Mục đích
Batch_Scan_Data_read 1 octet 0x01 – Dữ liệu ở chế độ bị cắt bớt
0x02 – Dữ liệu ở chế độ đầy đủ

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này. Khi máy chủ phát lệnh này, tất cả kết quả trong bộ điều khiển có thể không vừa với một sự kiện Hoàn tất lệnh. Máy chủ sẽ lặp lại việc đưa ra lệnh này cho đến khi kết quả tương ứng trong sự kiện Command Complete (Hoàn tất lệnh) cho biết 0 trong số bản ghi, cho biết bộ điều khiển không còn bản ghi nào để giao tiếp với máy chủ. Mỗi sự kiện Command Complete (Hoàn tất lệnh) có thể chứa nhiều bản ghi chỉ của một loại dữ liệu (Full (Đầy đủ) hoặc Truncated (Bị cắt bớt)).

Tham chiếu thời gian của tay điều khiển và máy chủ không được đồng bộ hoá. Đơn vị của dấu thời gian là 50 mili giây. Giá trị của dấu thời gian dựa trên thời điểm máy chủ lưu trữ cung cấp Read_Batch_Scan_Results_Sub_cmd. Nếu thời gian đến của lệnh là T_c trong phần mềm, thì thời gian thực tế mà dấu thời gian được lấy trong phần mềm là T_fw. Thời gian báo cáo sẽ là: (T_cT_fw). T_cT_fw nằm trong miền thời gian của chương trình cơ sở. Điều này cho phép máy chủ tính toán thời gian xảy ra sự kiện.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Batch_scan_opcode 1 octet 0x03 [Đặt thông số Quét hàng loạt]
Batch_Scan_data_read 1 octet Xác định định dạng (Bị cắt bớt hoặc Đầy đủ)
num_of_records 1 octet Số bản ghi của Batch_Scan_data_read
format_of_data Biến Chế độ cắt bớt:
Address[0]: 6 octet
Address_Type[0]: 1 octet
Tx_Pwr[0]: 1 octet
RSSI[0] : 1 octet
Timestamp[0]: 2 octet
[nhiều bản ghi (num_of_records) có định dạng trên]

Chế độ đầy đủ:
Address[0]: 6 octet
Address_Type[0]: 1 octet
Tx_Pwr[0]: 1 octet
RSSI[0]: 1 octet
Timestamp[0]: 2 octet
Adv packet_len[0]: 1 octet
Adv_packet[0]: Adv_packet_len octet
Scan_data_resp_len[0]: 1 octet
Scan_data_resp[0]: Scan_data_resp octet
[nhiều bản ghi có định dạng trên (num_of_records)]

Bộ lọc nội dung gói quảng cáo

Sử dụng tuỳ chọn này để bật/tắt/thiết lập Bộ lọc nội dung gói quảng cáo (APCF) trong tay điều khiển. APCF lọc báo cáo quảng cáo trong trình điều khiển nhưng không lọc quảng cáo định kỳ.

LE_APCF_Command

OCF: 0x157

Tham số lệnh Kích thước Mục đích
APCF_opcode 1 octet 0x00 – APCF Bật
0x01 – APCF Đặt tham số lọc
0x02 – APCF Địa chỉ của trình phát
0x03 – APCF UUID dịch vụ
0x04 – APCF UUID yêu cầu dịch vụ
0x05 – APCF Tên cục bộ
0x06 – APCF Dữ liệu nhà sản xuất
0x07 – APCF Dữ liệu dịch vụ
0x08 – APCF Dịch vụ khám phá phương tiện
0x09 – APCF Bộ lọc loại quảng cáo
0x10 ~ 0xAF – Dành riêng cho mục đích sử dụng trong tương lai
0xB0 ~ 0xDF – Dành riêng cho nhà cung cấp
0xE0 ~ 0xFE – Dành riêng cho mục đích sử dụng trong tương lai
0xFF – APCF Đọc các tính năng mở rộng

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái trả lại hàng
APCF_opcode 1 octet 0x00 – APCF Bật
0x01 – APCF Đặt tham số lọc
0x02 – APCF Địa chỉ của trình phát
0x03 – APCF UUID dịch vụ
0x04 – APCF UUID yêu cầu dịch vụ
0x05 – APCF Tên cục bộ
0x06 – APCF Dữ liệu nhà sản xuất
0x07 – APCF Dữ liệu dịch vụ
0x08 – APCF Dịch vụ khám phá phương tiện
0x09 – APCF Bộ lọc loại quảng cáo
0x10 ~ 0xAF – Dành riêng cho mục đích sử dụng trong tương lai
0xB0 ~ 0xDF – Dành riêng cho nhà cung cấp
0xE0 ~ 0xFE – Dành riêng cho mục đích sử dụng trong tương lai
0xFF – APCF Đọc các tính năng mở rộng

LE_APCF_Command: Enable_sub_cmd

OCF phụ: 0x00

Tham số lệnh con Kích thước Mục đích
APCF_enable 1 octet 0x01 – Bật tính năng APCF
0x00 – Tắt tính năng APCF

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x0 – Bật APCF
APCF_Enable 1 octet Bạn có thể thiết lập chế độ bật/tắt thông qua APCF_enable

LE_APCF_Command: set_filtering_parameters_sub_cmd

Lệnh con này dùng để thêm hoặc xoá thông số kỹ thuật của bộ lọc hoặc xoá danh sách bộ lọc để lọc trên chip.

OCF phụ: 0x01

Tham số lệnh con Kích thước Mục đích
APCF_Action 1 octet 0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
Thao tác xoá sẽ xoá bộ lọc cụ thể cùng với các mục tính năng liên quan trong các bảng khác.
Thao tác Xoá sẽ xoá tất cả bộ lọc và các mục liên kết trong các bảng khác.
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
APCF_Feature_Selection 2 octet Mặt nạ bit cho các tính năng đã chọn:
Bit 0: Đặt để bật bộ lọc Địa chỉ truyền tin
Bit 1: Đặt để bật bộ lọc Thay đổi dữ liệu dịch vụ
Bit 2: Đặt để bật tính năng kiểm tra UUID của dịch vụ
Bit 3: Đặt để bật tính năng kiểm tra UUID của yêu cầu dịch vụ
Bit 4: Đặt để bật tính năng kiểm tra Tên cục bộ
Bit 5: Đặt để bật tính năng Kiểm tra dữ liệu của nhà sản xuất
Bit 6: Đặt để bật tính năng Kiểm tra dữ liệu dịch vụ
Bit 7: Đặt để bật tính năng Kiểm tra dịch vụ khám phá phương tiện
Bit 8: Đặt để bật tính năng Kiểm tra loại quảng cáo
APCF_List_Logic_Type 2 octet Toán tử logic cho mỗi lựa chọn tính năng (mỗi vị trí bit) được chỉ định trong APCF_Feature_Selection.
Chỉ hợp lệ khi một tính năng được bật.
Giá trị vị trí bit:
0: HOẶC
1: VÀ
Nếu bạn chọn logic "VÀ", thì gói ADV sẽ chỉ vượt qua bộ lọc nếu gói đó chứa TẤT CẢ các mục trong danh sách.
Nếu bạn chọn logic "OR", thì gói ADV sẽ vượt qua bộ lọc nếu gói đó chứa bất kỳ mục nhập nào trong danh sách.
APCF_Filter_Logic_Type 1 octet 0x00: HOẶC
0x01: VÀ
Lưu ý: Loại logic là KHÔNG ÁP DỤNG cho 3 trường đầu tiên của APCF_Feature_Selection, luôn là logic "VÀ". Các bit này chỉ áp dụng cho 4 trường (Bit 3 – Bit 6) của APCF_Feature_Selection.
rssi_high_thresh 1 octet [tính bằng dBm]
Nhà quảng cáo chỉ được xem là được nhìn thấy nếu tín hiệu cao hơn ngưỡng RSSI cao. Nếu không, phần mềm sẽ hoạt động như thể chưa bao giờ thấy.
delivery_mode 1 octet 0x00 – immediate
0x01 – on_found
0x02 – batched
onfound_timeout 2 octet Chỉ hợp lệ nếu delivery_modeon_found.
[tính bằng mili giây]
Thời gian để phần mềm cơ sở lưu lại và thu thập quảng cáo bổ sung trước khi báo cáo.
onfound_timeout_cnt 1 octet Chỉ hợp lệ nếu delivery_modeon_found.
[count]
Nếu một quảng cáo trong onFound vẫn tồn tại trong firmware trong khoảng thời gian onfound_timeout, thì quảng cáo đó sẽ thu thập một vài quảng cáo và số lượng được kiểm tra. Nếu số lượng vượt quá onfound_timeout_cnt, thì số lượng đó sẽ được báo cáo OnFound ngay sau đó.
rssi_low_thresh 1 octet Chỉ hợp lệ nếu delivery_modeon_found.
[tính bằng dBm]
Gói của nhà quảng cáo được coi là không được xem nếu RSSI của gói nhận được không vượt quá ngưỡng RSSI thấp.
onlost_timeout 2 octet Chỉ hợp lệ nếu delivery_modeon_found.
[tính bằng mili giây]
Nếu sau khi được tìm thấy, quảng cáo không được xem liên tục trong khoảng thời gian lost_timeout, thì quảng cáo đó sẽ ngay lập tức được báo cáo là bị mất.
num_of_tracking_entries 2 octet Chỉ hợp lệ nếu delivery_modeon_found.
[count]
Tổng số nhà quảng cáo cần theo dõi theo mỗi bộ lọc.

Các giá trị RSSI phải sử dụng số bổ trợ 2 để biểu thị các giá trị âm.

Máy chủ lưu trữ phải có thể định cấu hình nhiều bộ lọc với APCF_Application_Address_type được đặt thành 0x02 (đối với tất cả địa chỉ của trình phát) để quản lý nhiều tổ hợp bộ lọc.

Lọc, tạo lô và báo cáo là những khái niệm liên quan với nhau. Mọi quảng cáo và phản hồi quét liên quan sẽ phải trải qua tất cả các bộ lọc, lần lượt từng bộ lọc. Do đó, các hành động thu được (delivery_mode) liên quan chặt chẽ đến việc lọc. Các chế độ phân phối là: report_immediately, batchonFound. Giá trị OnLost liên quan đến OnFound theo nghĩa là giá trị này sẽ xuất hiện sau OnFound khi bị mất.

Quy trình xử lý này mô tả mô hình khái niệm:

Khi nhận được khung quảng cáo (hoặc phản hồi quét), khung này sẽ được áp dụng cho tất cả các bộ lọc theo thứ tự tuần tự. Một quảng cáo có thể gây ra báo cáo tức thì dựa trên một bộ lọc và phân lô cùng một quảng cáo do một hành động bộ lọc khác.

Các ngưỡng cấp độ RSSI (cao và thấp) cho phép kiểm soát thời điểm khung hình hiển thị để xử lý bộ lọc, ngay cả khi bộ điều khiển nhận được gói hợp lệ. Trong trường hợp chế độ phân phối được đặt thành ngay lập tức hoặc theo lô, RSSI của một khung sẽ được xem xét để xử lý thêm bộ điều khiển. Các ứng dụng khác nhau cần có hành vi báo cáo và tạo lô khác nhau. Điều này cho phép nhiều ứng dụng báo cáo trực tiếp và/hoặc kết hợp hàng loạt kết quả trong phần mềm cơ sở cùng một lúc. Ví dụ: trường hợp một ứng dụng đang quét hàng loạt và sau đó một ứng dụng khác phát hành một lần quét LE thông thường. Trước khi phát hành một lần quét hàng loạt, khung/ứng dụng sẽ đặt các bộ lọc thích hợp. Sau đó, khi ứng dụng thứ hai phát hành một lần quét thông thường, quá trình tạo lô trước đó sẽ tiếp tục. Tuy nhiên, do quá trình quét thường xuyên, nên về mặt khái niệm, bạn sẽ thêm một bộ lọc rỗng (cùng với tất cả các bộ lọc hiện có) cùng với lệnh quét LE. Các tham số lệnh quét LE sẽ được ưu tiên khi đang hoạt động. Khi tính năng quét LE thông thường bị tắt, trình điều khiển sẽ quay lại quy trình quét hàng loạt trước đó (nếu có).

Chế độ phân phối OnFound dựa trên các bộ lọc đã định cấu hình. Một tổ hợp kích hoạt hành động của bộ lọc để thành công được coi là thực thể cần theo dõi cho onLost. Sự kiện tương ứng là sự kiện phụ theo dõi Quảng cáo LE.

Hiệu ứng chuyển đổi OnFound/OnLost cho một bộ lọc (nếu được bật) sẽ có dạng như sau:

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x01 – APCF Đặt tham số lọc
APCF_Action 1 octet APCF_Action của lệnh phản hồi
APCF_AvailableSpaces 1 octet Số mục nhập có sẵn trong bảng bộ lọc

LE_APCF_Command: broadcast_address_sub_cmd

Lệnh con này dùng để thêm hoặc xoá địa chỉ nhà quảng cáo hoặc xoá danh sách địa chỉ nhà quảng cáo để lọc trên chip.

OCF phụ: 0x02

Tham số lệnh con Kích thước Mục đích
APCF_Action 1 octet 0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
Thao tác xoá sẽ xoá địa chỉ của đài truyền hình được chỉ định trong bộ lọc được chỉ định.
Thao tác Xoá sẽ xoá tất cả địa chỉ của đài truyền hình trong bộ lọc đã chỉ định.
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
APCF_Broadcaster_Address 6 octet Địa chỉ thiết bị 6 byte để thêm vào hoặc xoá khỏi danh sách địa chỉ của trình phát
APCF_Application_Address_type 1 octet 0x00: Công khai
0x01: Ngẫu nhiên
0x02: Không có (bỏ qua loại địa chỉ)
Để lọc báo cáo quảng cáo theo loại địa chỉ nhận dạng (0x02, 0x03). Để nhận báo cáo quảng cáo có loại địa chỉ 0x02 và 0x03, hãy đặt trường này thành 0x02: NA (bỏ qua loại địa chỉ).

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x02 – Địa chỉ của trình phát APCF
APCF_Action 1 octet APCF_Action của lệnh phản hồi
APCF_AvailableSpaces 1 octet Số mục nhập miễn phí còn trống trong bảng Broadcast Address (Địa chỉ truyền tin)

LE_APCF_Command: service_uuid_sub_cmd

Lệnh con này dùng để thêm hoặc xoá UUID dịch vụ hoặc xoá danh sách UUID dịch vụ để lọc trên chip.

OCF phụ: 0x03

Tham số lệnh con Kích thước Mục đích
APCF_Action 1 octet 0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
Thao tác xoá sẽ xoá địa chỉ UUID dịch vụ được chỉ định trong bộ lọc được chỉ định.
Thao tác Xoá sẽ xoá tất cả UUID dịch vụ trong bộ lọc đã chỉ định.
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
APCF_UUID 2,4,16 octet UUID dịch vụ (16 bit, 32 bit hoặc 128 bit) để thêm vào hoặc xoá khỏi danh sách.
APCF_UUID_MASK 2,4,16 octet Mặt nạ UUID của dịch vụ (16 bit, 32 bit hoặc 128 bit) để thêm vào danh sách. Mảng này phải có cùng độ dài với APCF_UUID.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x03 – UUID dịch vụ APCF
APCF_Action 1 octet APCF_Action của lệnh phản hồi
APCF_AvailableSpaces 1 octet Số mục nhập miễn phí còn trống trong bảng UUID của dịch vụ

LE_APCF_Command: solicitation_uuid_sub_cmd

Lệnh con này dùng để thêm hoặc xoá UUID yêu cầu hoặc xoá danh sách UUID yêu cầu để lọc trên chip.

OCF phụ: 0x04

Tham số lệnh con Kích thước Mục đích
APCF_Action 1 octet 0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
Thao tác xoá sẽ xoá địa chỉ UUID của nội dung mời chào trong bộ lọc đã chỉ định.
Thao tác Xoá sẽ xoá tất cả UUID của lời mời trong bộ lọc đã chỉ định.
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
APCF_UUID 2,4,16 octet UUID của yêu cầu (16 bit, 32 bit hoặc 128 bit) để thêm vào hoặc xoá khỏi danh sách.
APCF_UUID_MASK 2,4,16 octet Mặt nạ UUID của yêu cầu (16 bit, 32 bit hoặc 128 bit) để thêm vào danh sách. Chuỗi này phải có cùng độ dài với APCF_UUID.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x04 – UUID yêu cầu APCF
APCF_Action 1 octet APCF_Action của lệnh phản hồi
APCF_AvailableSpaces 1 octet Số mục nhập miễn phí còn trống trong bảng UUID của yêu cầu

LE_APCF_Command: local_name_sub_cmd

Lệnh con này dùng để thêm hoặc xoá chuỗi tên cục bộ hoặc xoá danh sách chuỗi tên cục bộ để lọc trên chip.

OCF phụ: 0x05

Tham số lệnh con Kích thước Mục đích
APCF_Action 1 octet 0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
Thao tác xoá sẽ xoá chuỗi tên cục bộ đã chỉ định trong bộ lọc đã chỉ định.
Thao tác xoá sẽ xoá tất cả chuỗi tên cục bộ trong bộ lọc đã chỉ định.
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Kích thước biến Chuỗi ký tự cho tên cục bộ.

Lưu ý:
  • Hiện tại, số ký tự tối đa trong chuỗi tên cục bộ là 29
  • Không áp dụng khi hành động là "Xoá" (0x2)

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x05 – Tên cục bộ APCF
APCF_Action 1 octet APCF_Action của lệnh phản hồi
APCF_AvailableSpaces 1 octet Số mục nhập miễn phí còn trống trong bảng Tên địa phương

LE_APCF_Command: manf_data_sub_cmd

Lệnh con này dùng để thêm hoặc xoá chuỗi dữ liệu nhà sản xuất hoặc để xoá danh sách chuỗi dữ liệu nhà sản xuất để lọc trên chip.

OCF phụ: 0x06

Tham số lệnh con Kích thước Mục đích
APCF_Action 1 octet 0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
Thao tác xoá sẽ xoá chuỗi dữ liệu nhà sản xuất đã chỉ định trong bộ lọc đã chỉ định.
Xoá sẽ xoá tất cả chuỗi dữ liệu nhà sản xuất trong bộ lọc đã chỉ định.
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Kích thước biến Chuỗi ký tự cho dữ liệu nhà sản xuất.

Lưu ý:
  • Hiện tại, số ký tự tối đa trong chuỗi tên cục bộ là 29
  • Không áp dụng khi hành động là "Xoá" (0x2)
APCF_ManData_Mask Kích thước biến Mặt nạ dữ liệu nhà sản xuất để thêm vào danh sách. Chuỗi này phải có cùng độ dài với APCF_LocName_or_ManData_or_SerData.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x06 – Dữ liệu nhà sản xuất APCF
APCF_Action 1 octet APCF_Action của lệnh phản hồi
APCF_AvailableSpaces 1 octet Số mục nhập miễn phí còn lại trong bảng Dữ liệu nhà sản xuất

LE_APCF_Command: service_data_sub_cmd

Lệnh con này dùng để thêm hoặc xoá một chuỗi dữ liệu dịch vụ hoặc xoá danh sách chuỗi dữ liệu dịch vụ để lọc trên chip.

OCF phụ: 0x07

Tham số lệnh con Kích thước Mục đích
APCF_Action 1 octet 0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
Thao tác xoá sẽ xoá chuỗi dữ liệu dịch vụ được chỉ định trong bộ lọc được chỉ định.
Thao tác Xoá sẽ xoá tất cả chuỗi dữ liệu dịch vụ trong bộ lọc đã chỉ định.
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
APCF_LocName_Mandata_or_SerData Kích thước biến Chuỗi ký tự cho dữ liệu dịch vụ.

Lưu ý:
  • Hiện tại, số ký tự tối đa trong chuỗi tên cục bộ là 29
  • Không áp dụng khi hành động là "Xoá" (0x2)
APCF_LocName_Mandata_or_SerData_Mask Kích thước biến Mặt nạ dữ liệu dịch vụ cần thêm vào danh sách. Chuỗi này phải có cùng độ dài với APCF_LocName_or_ManData_or_SerData.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x07 – Dữ liệu dịch vụ APCF
APCF_Action 1 octet APCF_Action của lệnh phản hồi
APCF_AvailableSpaces 1 octet Số mục nhập miễn phí còn lại cho bảng Dữ liệu dịch vụ

LE_APCF_Command: ad_type_sub_cmd

Lệnh con này dùng để thêm hoặc xoá một loại AD hoặc xoá danh sách loại AD để lọc trên chip. Sử dụng read_extended_features_sub_cmd để kiểm tra xem lệnh này có được hỗ trợ hay không.
Khi APCF_AD_DATA_Length là 0, hãy lọc APCF_AD_TYPE mà không so sánh Dữ liệu quảng cáo và Mặt nạ dữ liệu quảng cáo. Nếu độ dài dữ liệu của gói ADV đã nhận vượt quá AD_DATA_LENGTH, hãy chỉ so sánh AD_DATA_LENGTH byte đầu tiên của Dữ liệu AD và bỏ qua dữ liệu còn lại.

OCF phụ: 0x09

Tham số lệnh con Kích thước Mục đích
APCF_Action 1 octet 0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
Thao tác xoá sẽ xoá loại QUẢNG CÁO đã chỉ định trong bộ lọc đã chỉ định.
Thao tác xoá sẽ xoá tất cả các loại QUẢNG CÁO trong bộ lọc đã chỉ định.
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
APCF_AD_TYPE 1 octet Loại quảng cáo để thêm hoặc xoá khỏi danh sách. Bỏ qua khi APCF_Action là 0x02 (Xoá)
APCF_AD_DATA_Length 1 octet 0x00 – nghĩa là không lọc nội dung dữ liệu
Bỏ qua khi APCF_Action là 0x02 (Xoá)
APCF_AD_DATA Kích thước biến Kích thước biến, dựa trên APCF_AD_DATA_Length
Bỏ qua khi APCF_Action là 0x02 (Xoá)
APCF_AD_DATA_MASK Kích thước biến Có kích thước biến đổi, dựa trên APCF_AD_DATA_Length
Bỏ qua khi APCF_Action là 0x02 (Xoá)
Phải có cùng độ dài với APCF_AD_DATA.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0x09 – Loại quảng cáo APCF
APCF_Action 1 octet APCF_Action của lệnh phản hồi
APCF_AvailableSpaces 1 octet Số mục nhập miễn phí còn lại trong bảng Loại quảng cáo

LE_APCF_Command: read_extended_features_sub_cmd

Lệnh phụ này dùng để đọc các tính năng APCF mở rộng.

OCF phụ: 0xFF

Tham số lệnh con Kích thước Mục đích
Không áp dụng Tham số lệnh trống.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
APCF_opcode 1 octet 0xFF – APCF_Read_Extended_Features
APCF_extended_features 2 octet

Mặt nạ bit cho các tính năng mở rộng được hỗ trợ:

  • Bit 0: Hỗ trợ bộ lọc Dịch vụ phát hiện phương thức truyền tải
  • Bit 1: Hỗ trợ bộ lọc Loại quảng cáo
  • Bit 2 ~ 15: Dành để sử dụng trong tương lai

Giá trị của bit

  • 0 = Không được hỗ trợ
  • 1 = Được hỗ trợ

Lệnh thông tin về hoạt động và năng lượng của tay điều khiển

Mục tiêu của thông tin này là để các chức năng hệ thống lưu trữ cấp cao hơn phân tích tổng số hoạt động của tất cả các thành phần, bao gồm cả bộ điều khiển BT và trạng thái vĩ mô của bộ điều khiển đó, cùng với những gì đang diễn ra trong ứng dụng và khung. Để thực hiện việc này, bạn cần có các thông tin sau từ ngăn xếp BT và tay điều khiển:

  • Ngăn xếp BT: Báo cáo trạng thái hoạt động vĩ mô hiện tại của tay điều khiển
  • Phần mềm: Báo cáo thông tin tổng hợp về hoạt động và năng lượng

Trạng thái macro ngăn xếp máy chủ lưu trữ BT, được xác định ở cấp người dùng:

  • Rảnh: [quét trang, quảng cáo LE, quét yêu cầu, quét LE]
  • Quét: [paging/inquiry/trying to connect]
  • Đang hoạt động: [ACL link on, SCO link ongoing, sniff mode]

Các hoạt động mà bộ điều khiển theo dõi trong suốt thời gian hoạt động là thời gian Tx, thời gian Rx, thời gian rảnh và tổng năng lượng tiêu thụ. Các tệp này sẽ bị xoá khi đọc từ máy chủ lưu trữ.

LE_Get_Controller_Activity_Energy_Info

Đây là lệnh dành riêng cho nhà cung cấp.

OCF: 0x159

Tham số lệnh con Kích thước Mục đích
NA Tham số lệnh trống

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
total_tx_time_ms 4 octet Tổng thời gian thực hiện Tx
total_rx_time_ms 4 octet Tổng thời gian thực hiện Rx
total_idle_time_ms 4 octet Tổng thời gian ở trạng thái rảnh (không phải trạng thái tiết kiệm pin khi ngủ)
total_energy_used 4 octet Tổng năng lượng đã sử dụng [sản phẩm của dòng điện (mA), điện áp (V) và thời gian (ms)]

Lệnh tham số quét bộ mở rộng LE

Bạn có thể dùng lệnh này để bật khoảng thời gian và cửa sổ quét lớn hơn trong bộ điều khiển. Theo Quy cách BT Core 5.2, khoảng thời gian quét và khoảng thời gian quét có giới hạn trên là 10,24 giây, điều này cản trở các khoảng thời gian quét vượt quá 10,24 giây đối với ứng dụng.

Tài liệu tham khảo cơ sở: Quy cách BT Core 5.2, trang 2493 (Lệnh đặt thông số quét LE)

OCF: 0x15A

Tham số lệnh Kích thước Mục đích
LE_Ex_Scan_Type 1 octet 0x00 – Quét thụ động. Không gửi gói SCAN_REQ (mặc định).
0x01 – Quét đang hoạt động. Các gói SCAN_REQ có thể được gửi.
LE_Ex_Scan_Interval 4 octet Được xác định là khoảng thời gian từ khi Trình điều khiển bắt đầu lần quét LE gần đây nhất cho đến khi bắt đầu lần quét LE tiếp theo.
Phạm vi: 0x0004 đến 0x00FFFFFF
Mặc định: 0x0010 (10 mili giây)
Thời gian = N * 0,625 mili giây
Phạm vi thời gian: 2,5 mili giây đến 10442,25 giây
LE_Ex_Scan_Window 4 octet Thời lượng quét LE. LE_Scan_Window phải nhỏ hơn hoặc bằng LE_Scan_Interval.
Phạm vi: 0x0004 đến 0xFFFF
Mặc định: 0x0010 (10 mili giây)
Thời gian = N * 0,625 mili giây
Phạm vi thời gian: 2,5 mili giây đến 40,95 giây
Own_Address_Type 1 octet 0x00 – Địa chỉ thiết bị công khai (mặc định)
0x01 – Địa chỉ thiết bị ngẫu nhiên
LE_Ex_Scan_Filter_Policy 0x00 – Chấp nhận tất cả gói quảng cáo (mặc định). Các gói quảng cáo được nhắm mục tiêu không được gửi đến thiết bị này sẽ bị bỏ qua.
0x01 – Bỏ qua các gói quảng cáo từ các thiết bị không có trong danh sách Chỉ danh sách trắng. Các gói quảng cáo được định hướng không được gửi đến thiết bị này sẽ bị bỏ qua.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh

Lệnh nhận thông tin gỡ lỗi của tay điều khiển

Mục tiêu của phần tử thông tin này là thu thập thông tin gỡ lỗi của tay điều khiển bằng máy chủ, ở dạng tệp nhị phân, để xử lý và phân tích sau. Điều này giúp gỡ lỗi các vấn đề trên thực địa và cung cấp cho kỹ sư một bộ công cụ để ghi lại thông tin nhằm phân tích. Trình điều khiển có thể cung cấp thông tin khi máy chủ yêu cầu thông qua sự kiện (sự kiện con Thông tin gỡ lỗi của trình điều khiển) hoặc tự động khi trình điều khiển muốn. Ví dụ về cách sử dụng có thể là báo cáo thông tin trạng thái phần mềm, thông tin tệp báo lỗi, thông tin ghi nhật ký, v.v.

OCF: 0x15B

Tham số lệnh Kích thước Mục đích
Không áp dụng Danh sách tham số lệnh trống

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh

Hỗ trợ giảm tải phần cứng A2DP

Tính năng giảm tải A2DP hỗ trợ giảm tải quá trình mã hoá âm thanh A2DP sang một bộ xử lý âm thanh được đính kèm với Bộ điều khiển BT. Luồng dữ liệu âm thanh đã mã hoá sẽ chuyển trực tiếp từ Bộ xử lý âm thanh đến Bộ điều khiển BT mà không cần đến máy chủ BT. Máy chủ BT vẫn chịu trách nhiệm về cấu hình và kiểm soát phiên A2DP. Có hai phiên bản lệnh. Các lệnh cũ có OCF phụ 0x01-0x02 chỉ hỗ trợ bộ mã hoá và giải mã nguồn mở. Các phiên bản có Sub-OCF 0x03-0x04 không phụ thuộc vào bộ mã hoá và giải mã đã định cấu hình.

OCF: 0x15D

Bắt đầu giảm tải A2DP (cũ)

OCF phụ: 0x01

Sử dụng lệnh này để định cấu hình quá trình giảm tải A2DP và để bắt đầu luồng A2DP.

Tham số lệnh Kích thước Mục đích
Codec 4 octet Chỉ định loại bộ mã hoá và giải mã
0x01 – SBC
0x02 – AAC
0x04 – APTX
0x08 – APTX HD
0x10 – LDAC
Max_Latency 2 octet Độ trễ tối đa được phép (tính bằng mili giây). Giá trị 0 sẽ tắt tính năng xả.
SCMS-T_Enable 2 octet Octet 0: Cờ cho phép thêm tiêu đề SCMS-T.
  • 0x00 – Không bao gồm Tiêu đề SCMS-T.
  • 0x01 – Bao gồm Tiêu đề SCMS-T.

Octet 1: Giá trị cho tiêu đề SCMS-T, khi tiêu đề này được bật.

Sampling_Frequency 4 octet 0x01 – 44100 Hz
0x02 – 48000 Hz
0x04 – 88200 Hz
0x08 – 96000 Hz
Bits_Per_Sample 1 octet 0x01 – 16 bit/mẫu
0x02 – 24 bit/mẫu
0x04 – 32 bit/mẫu
Channel_Mode 1 octet 0x01 – Đơn âm
0x02 – Âm thanh nổi
Encoded_Audio_Bitrate 4 octet Tốc độ bit âm thanh đã mã hoá (tính bằng bit mỗi giây).
0x00000000 – Tốc độ bit âm thanh không được chỉ định / không được sử dụng.
0x00000001 – 0x00FFFFFF – Tốc độ bit âm thanh đã mã hoá tính bằng bit mỗi giây.
0x01000000 – 0xFFFFFFFF – Đã đặt trước.
Connection_Handle 2 octet Tên nhận dạng kết nối của kết nối A2DP đang được định cấu hình
L2CAP_Channel_ID 2 octet Mã nhận dạng kênh L2CAP sẽ được dùng cho kết nối A2DP này
L2CAP_MTU_Size 2 octet Kích thước tối đa của MTU L2CAP chứa các gói âm thanh đã mã hoá
Codec_Information 32 octet Thông tin dành riêng cho bộ mã hoá và giải mã.

Bộ mã hoá và giải mã SBC:

Tham khảo các phần tử thông tin cụ thể về Bộ mã hoá và giải mã SBC trong A2DP phiên bản 1.3.
Byte 0: Chiều dài khối | Ban nhạc phụ | Phương thức phân bổ
Byte 1: Giá trị Bitpool tối thiểu
Byte 2: Giá trị Bitpool tối đa
Byte 3: Tần số lấy mẫu | Chế độ kênh
Byte 4-31: dành riêng

Bộ mã hoá và giải mã AAC:

Tham khảo các phần tử thông tin cụ thể về Bộ mã hoá và giải mã AAC trong A2DP phiên bản 1.3
Octet 0: Loại đối tượng
Octet 1; b7: VBR
Octet 2-31: dành riêng

Bộ mã hoá và giải mã LDAC:

Octet 0-3: Mã nhà cung cấp
0x0000012D

Octet 4-5: Mã bộ mã hoá và giải mã
0x00AA – LDAC
Tất cả các giá trị khác đều được đặt trước

Octet 6: Chỉ mục tốc độ bit:
0x00 – Cao
0x01 – Trung bình
0x02 – Thấp
0x03 – 0x7E – Dành riêng
0x7F – ABR (Tốc độ bit thích ứng)
0x80 – 0xFF – Dành riêng

Octet 7: Chế độ kênh LDAC
0x01 – Âm thanh nổi
0x02 – Âm thanh kép
0x04 – Âm thanh đơn
Các giá trị khác được đặt trước

Octet 8-31: được đặt trước

Tất cả bộ mã hoá và giải mã khác:

Octet 0-31: dành riêng

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Sub_Opcode 1 octet 0x01 – Bắt đầu giảm tải A2DP

Bắt đầu giảm tải A2DP

OCF phụ: 0x03

Sử dụng lệnh này để định cấu hình quá trình giảm tải A2DP và để bắt đầu luồng A2DP.

Tham số lệnh Kích thước Mục đích
Connection Handle 2 octet Tay cầm của kết nối HCI đang hoạt động
L2CAP_Channel_ID 2 octet Giá trị nhận dạng của Kênh L2CAP được mở để truyền trực tuyến A2DP
Data_Path_Direction 1 octet 0x00 – Đầu ra (Nguồn/Hợp nhất AVDTP)
0x01 – Đầu vào (Bể/Phân tách AVDTP)
Peer_MTU 2 octet Kích thước tối đa của gói L2CAP, được thương lượng với máy ngang hàng.
CP_Enable_SCMS_T 1 octet 0x00 – Tắt Tiêu đề bảo vệ nội dung SCMS-T
0x01 – Bật Tiêu đề bảo vệ nội dung SCMS-T
CP_Header_SCMS_T 1 octet Khi bạn bật Tiêu đề bảo vệ nội dung SCMS-T (CP_SCMS_T_Enable được đặt thành 0x01), hãy xác định giá trị tiêu đề đứng trước nội dung âm thanh (tham khảo A2DP, mục 3.2.1-2) theo định nghĩa của Số được chỉ định của Bluetooth, mục 6.3.2.
Bị bỏ qua khi bạn không bật tính năng Bảo vệ nội dung SCMS-T.
Vendor_Specific_Parameters_Length 1 octet Độ dài của Thông số dành riêng cho nhà cung cấp, trong phạm vi từ 0 đến 128.
Giá trị 0 được sử dụng khi không có thông số bổ sung nào được cung cấp.
Vendor_Specific_Parameters 0-128 octet Các tham số dành riêng cho nhà cung cấp do Bluetooth Audio HAL cung cấp, CodecParameters.vendorSpecificParameters[].

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Sub_Opcode 1 octet 0x03 – Bắt đầu giảm tải A2DP

Dừng giảm tải A2DP (cũ)

OCF phụ: 0x02

Lệnh này dùng để dừng luồng truyền tải A2DP.

Tham số lệnh Kích thước Mục đích
Không áp dụng Danh sách tham số lệnh trống.

Không có thông số nào được xác định cho lệnh này.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Sub_Opcode 1 octet 0x02 – Dừng giảm tải A2DP

Dừng giảm tải A2DP

OCF phụ: 0x04

Lệnh này dùng để dừng luồng truyền tải A2DP.

Tham số lệnh Kích thước Mục đích
Connection Handle 2 octet Tay cầm của kết nối HCI đang hoạt động
L2CAP_Channel_ID 2 octet Giá trị nhận dạng của Kênh L2CAP được mở để truyền trực tuyến A2DP
Data_Path_Direction 1 octet 0x00 – Đầu ra (Nguồn/Hợp nhất AVDTP)
0x01 – Đầu vào (Bể/Phân tách AVDTP)

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Sub_Opcode 1 octet 0x04 – Dừng giảm tải A2DP

Lệnh Báo cáo chất lượng Bluetooth

Tính năng lệnh Báo cáo chất lượng Bluetooth khởi động cơ chế trong trình điều khiển Bluetooth để báo cáo các sự kiện Chất lượng Bluetooth cho máy chủ. Bạn có thể bật 4 tuỳ chọn:

  • Chế độ giám sát chất lượng: Trình điều khiển định kỳ gửi một sự kiện phụ BQR liên quan đến chất lượng đường liên kết đến máy chủ.
  • LSTO sắp diễn ra: Nếu không nhận được gói nào từ thiết bị BT đã kết nối trong thời gian dài hơn một nửa giá trị Thời gian chờ giám sát liên kết (LSTO), thì bộ điều khiển sẽ báo cáo sự kiện LSTO sắp diễn ra cho máy chủ.
  • Âm thanh A2DP bị giật: Khi phát hiện các yếu tố gây ra âm thanh bị giật, trình điều khiển sẽ báo cáo sự kiện Âm thanh A2DP bị giật cho máy chủ.
  • (e)SCO Voice Choppy (Giọng nói bị giật khi dùng (e)SCO): Khi phát hiện các yếu tố gây ra tình trạng giọng nói bị giật, tay điều khiển sẽ báo cáo sự kiện (e)SCO Voice Choppy (Giọng nói bị giật khi dùng (e)SCO) cho máy chủ.
  • Viêm rễ: Sự kiện này do bộ điều khiển gửi đến ngăn xếp khi HAL hoặc bộ điều khiển gặp lỗi nghiêm trọng và cần khởi động lại Bluetooth.
  • Theo dõi thông báo LMP/LL: Bộ điều khiển gửi thông báo LMP/LL bắt tay với thiết bị từ xa đến máy chủ.
  • Dấu vết lên lịch nhiều hồ sơ/Coex Bluetooth: Bộ điều khiển gửi thông tin lên lịch về việc xử lý nhiều hồ sơ Bluetooth và khả năng cùng tồn tại không dây trong băng tần 2,4 GHz cho máy chủ.
  • Cơ chế Thông tin gỡ lỗi của tay điều khiển: Khi được bật, tay điều khiển có thể tự động báo cáo thông tin ghi nhật ký gỡ lỗi thông qua sự kiện phụ thông tin gỡ lỗi của tay điều khiển cho máy chủ.
  • Âm thanh bị giật trên LE Audio: Khi phát hiện các yếu tố gây ra âm thanh bị giật, trình điều khiển sẽ báo cáo sự kiện Âm thanh bị giật trên LE Audio cho máy chủ.
  • Chế độ Số liệu thống kê RF nâng cao: Bộ điều khiển báo cáo thông tin liên quan đến số liệu thống kê RF cho máy chủ lưu trữ, hỗ trợ hai trường hợp sử dụng báo cáo:
    • Báo cáo định kỳ
    • Trình kích hoạt sự kiện (bắt đầu/dừng phát trực tuyến và trình kích hoạt sự kiện về chất lượng đường liên kết).
  • BQR_Report_Action của Lệnh báo cáo chất lượng Bluetooth: Máy chủ có thể sử dụng lệnh HCI này để nhận truy vấn một lần cho chế độ giám sát chất lượng, chế độ giám sát năng lượng hoặc chế độ thống kê RF nâng cao.

OCF: 0x15E

Tham số lệnh Kích thước Mục đích
BQR_Report_Action 1 octet Thao tác thêm / xoá báo cáo về(các) sự kiện chất lượng được đặt trong thông số BQR_Quality_Event_Mask hoặc xoá tất cả.

0x00 – Thêm
0x01 – Xoá
0x02 – Xoá
0x03 – Truy vấn một lần

Thao tác xoá sẽ xoá(các) báo cáo sự kiện cụ thể về chất lượng.
Xoá sẽ xoá tất cả báo cáo sự kiện chất lượng (có thể bỏ qua thông số BQR_Quality_Event_Mask).

BQR_Quality_Event_Mask 4 octet Mặt nạ bit cho báo cáo sự kiện chất lượng đã chọn.

Bit 0: Đặt để bật chế độ giám sát chất lượng.
Bit 1: Đặt để bật sự kiện LSTO sắp diễn ra (dành cho ACL/(e)SCO/ISO).
Bit 2: Đặt để bật sự kiện A2DP Audio Choppy (Âm thanh A2DP bị giật).
Bit 3: Đặt để bật sự kiện (e)SCO Voice Choppy.
Bit 4: Đặt để bật sự kiện Viêm rễ.
Bit 5: Đặt để bật chế độ giám sát năng lượng.
Bit 6: Đặt để bật sự kiện âm thanh LE bị giật.
Bit 7: Đặt để bật sự kiện kết nối không thành công.
Bit 8: Đặt để bật trình kích hoạt sự kiện ở chế độ Advanced RF Stats (Thống kê RF nâng cao).
Bit 9: Đặt để bật báo cáo định kỳ về Advanced RF Stats (Thống kê RF nâng cao).
Bit 10 ~ 14: Dành riêng.
Bit 15: Đặt để bật các sự kiện chất lượng dành riêng cho nhà cung cấp.
Bit 16: Đặt để bật tính năng theo dõi thông báo LMP/LL.
Bit 17: Đặt để bật tính năng theo dõi lịch biểu Bluetooth Đa liên kết/Coex.
Bit 18: Đặt để bật cơ chế Thông tin gỡ lỗi của tay điều khiển.
Bit 19 ~ 30: Dành riêng.
Bit 31: Đặt để bật tính năng theo dõi dành riêng cho nhà cung cấp.

BQR_Minimum_Report_Interval 2 octet Xác định khoảng thời gian tối thiểu để báo cáo sự kiện chất lượng cho(các) sự kiện chất lượng đã chọn. Firmware của tay điều khiển không được báo cáo sự kiện tiếp theo trong khoảng thời gian đã xác định. Chế độ cài đặt khoảng thời gian phải tương ứng và dành riêng cho(các) sự kiện chất lượng đang được thêm.

Đơn vị: ms
Mặc định: 0 (Không có giới hạn cho khoảng thời gian.)
Phạm vi: 0 ~ 65535 mili giây

BQR_Vendor_Specific_Quality_Event_Mask 4 octet Mặt nạ bit cho báo cáo sự kiện chất lượng dành riêng cho nhà cung cấp đã chọn.
Tham số này chỉ hợp lệ khi bạn đặt bit 15 của BQR_Quality_Event_Mask.

Bit 0 ~ 31: Dành riêng.

BQR_Vendor_Specific_Trace_Mask 4 octet Mặt nạ bit cho báo cáo theo dõi dành riêng cho nhà cung cấp đã chọn.
Tham số này chỉ hợp lệ khi bạn đặt bit 31 của BQR_Quality_Event_Mask.

Bit 0 ~ 31: Dành riêng.

Report_interval_multiple 4 octet Hệ số cho BQR_Minimum_Report_Interval. Khi giá trị này >= 1, Khoảng thời gian báo cáo BQR tuân theo định dạng
Khoảng thời gian báo cáo BQR = BQR_Minimum_Report_Interval x Report_interval_multiple.
Phần mềm điều khiển không được báo cáo sự kiện tiếp theo trong khoảng thời gian đã xác định. Chế độ cài đặt khoảng thời gian dành riêng cho(các) sự kiện chất lượng được thêm.

Đơn vị: ms
Mặc định: 1
Phạm vi: 0 ~ 4294967295 (0: bằng 1)

Lưu ý: nếu chế độ cài đặt của BQR_Report_Interval lớn hơn khả năng của trình điều khiển, thì trình điều khiển phải trả về thời gian BQR_Report_Interval tối đa khi hoàn tất lệnh.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Current_Quality_Event_Mask 4 octet Cho biết chế độ cài đặt mặt nạ bit hiện tại.
Bit 0: Chế độ giám sát chất lượng đang bật.
Bit 1: Đã bật tính năng báo cáo sự kiện LSTO sắp diễn ra.
Bit 2: Đã bật tính năng báo cáo sự kiện Âm thanh A2DP bị giật.
Bit 3: Đã bật tính năng báo cáo sự kiện (e)SCO Voice Choppy.
Bit 4: Đã bật tính năng báo cáo sự kiện viêm rễ.
Bit 5: Chế độ giám sát năng lượng được bật.
Bit 6: Đã bật tính năng báo cáo sự kiện âm thanh bị giật LE.
Bit 7: Sự kiện kết nối không thành công.
Bit 8: Đặt để bật trình kích hoạt sự kiện ở chế độ Advanced RF Stats (Thống kê RF nâng cao).
Bit 9: Đặt để bật tính năng báo cáo định kỳ Advanced RF Stats (Thống kê RF nâng cao).
Bit 10 ~ 14: Dành riêng.
Bit 15: Bật tính năng báo cáo sự kiện chất lượng dành riêng cho nhà cung cấp.
Bit 16: Đã bật tính năng theo dõi thông báo LMP/LL.
Bit 17: Tính năng theo dõi lịch biểu Bluetooth Đa liên kết/Coex đã được bật.
Bit 18: Cơ chế Thông tin gỡ lỗi của tay điều khiển đang bật.
Bit 19 ~ 30: Dành riêng.
Bit 31: Đã bật tính năng theo dõi dành riêng cho nhà cung cấp.
Current_Vendor_Specific_Quality_Event_Mask 4 octet Cho biết chế độ cài đặt mặt nạ bit hiện tại.
Current_Vendor_Specific_Trace_Mask 4 octet Cho biết chế độ cài đặt mặt nạ bit hiện tại.
BQR_Report_interval 4 octet Cho biết chế độ cài đặt mặt nạ bit hiện tại.
Current_Vendor_Specific_Trace_Mask 4 octet Chế độ cài đặt của BQR_Report_interval. Đây phải là giá trị tối thiểu giữa BQR_Minimum_Report_Interval * Report_interval_multiple hoặc khoảng thời gian hỗ trợ tối đa của bộ điều khiển.

Lệnh vùng đệm âm thanh động

Vùng đệm âm thanh động giúp giảm sự cố âm thanh bằng cách thay đổi kích thước vùng đệm âm thanh trong bộ điều khiển Bluetooth dựa trên nhiều tình huống.

OCF: 0x15F

Nhận khả năng thời gian vùng đệm âm thanh

OCF phụ: 0x01

Sử dụng lệnh này để lấy chức năng thời gian bộ đệm âm thanh từ trình điều khiển Bluetooth.

Tham số lệnh Kích thước Mục đích
Không áp dụng Danh sách tham số Lệnh trống

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Dynamic_Audio_Buffer_opcode 1 octet 0x01 – Nhận thời gian vùng đệm âm thanh
Audio_Codec_Type_Supported 4 octet Mặt nạ bit cho các loại bộ mã hoá và giải mã được hỗ trợ
Bit 0 – SBC
Bit 1 – AAC
Bit 2 – APTX
Bit 3 – APTX HD
Bit 4 – LDAC
Bit 5-31 được đặt trước
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 octet Thời gian đệm mặc định của loại bộ mã hoá và giải mã Bit 0 được chỉ định trong Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 0 không được hỗ trợ.
Đơn vị: mili giây
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 octet Thời gian bộ đệm tối đa của loại bộ mã hoá và giải mã Bit 0 được chỉ định trong Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 0 không được hỗ trợ.
Đơn vị: mili giây
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 octet Thời gian đệm tối thiểu của loại bộ mã hoá và giải mã Bit 0 được chỉ định trong Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 0 không được hỗ trợ.
Đơn vị: mili giây
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 octet Thời gian đệm mặc định của loại bộ mã hoá và giải mã Bit 1 được chỉ định trong Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 1 không được hỗ trợ.
Đơn vị: mili giây
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 octet Thời gian đệm tối đa của loại bộ mã hoá và giải mã Bit 1 được chỉ định trong Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 1 không được hỗ trợ.
Đơn vị: mili giây
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 octet Thời gian đệm tối thiểu của loại bộ mã hoá và giải mã Bit 1 được chỉ định trong thuộc tính Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 1 không được hỗ trợ.
Đơn vị: mili giây
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 octet Thời gian đệm mặc định của loại bộ mã hoá và giải mã Bit 31 được chỉ định trong Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 31 không được hỗ trợ.
Đơn vị: mili giây
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 octet Thời gian bộ đệm tối đa của loại bộ mã hoá và giải mã Bit 31 được chỉ định trong Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 31 không được hỗ trợ.
Đơn vị: mili giây
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 octet Thời gian đệm tối thiểu của loại bộ mã hoá và giải mã Bit 31 được chỉ định trong Audio_Codec_Type_Supported.
Giá trị này phải là 0 nếu loại bộ mã hoá và giải mã Bit 31 không được hỗ trợ.
Đơn vị: mili giây

Đặt thời gian vùng đệm âm thanh

OCF phụ: 0x02

Sử dụng lệnh này để đặt thời gian bộ đệm âm thanh cho tay điều khiển Bluetooth.

Tham số lệnh Kích thước Mục đích
Audio_Codec_Buffer_Time 2 octet Thời gian bộ đệm âm thanh được yêu cầu cho bộ mã hoá và giải mã đang dùng.
Đơn vị: mili giây

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Dynamic_Audio_Buffer_opcode 1 octet 0x02 – Đặt thời gian vùng đệm âm thanh
Audio_Codec_Buffer_Time 2 octet Thời gian đệm âm thanh hiện tại trong bộ điều khiển Bluetooth.
Đơn vị: mili giây

Sự kiện HCI (tuỳ theo nhà cung cấp)

Trong một số trường hợp, bạn phải có các sự kiện HCI dành riêng cho nhà cung cấp. Hãy tham khảo Hình 5.4 trên trang 1897 của Quy cách BT Core 5.2. Thông số sự kiện 0 sẽ luôn chứa mã sự kiện phụ đầu tiên, dựa trên đó, phần còn lại của sự kiện HCI sẽ được giải mã.

Thông số sự kiện Kích thước Mục đích
HCI_vendor_specific_event_code 1 octet 0xFF
sub_event_code 1 octet Mã sự kiện phụ sẽ có kích thước 1 octet, là byte ngay sau Chiều dài thông số trong gói sự kiện HCI.

Sự kiện phụ vi phạm ngưỡng bộ nhớ

Sự kiện này cho biết ngưỡng bộ nhớ đã bị vi phạm.

Mã sự kiện phụ = 0x54

Tham số sự kiện phụ Kích thước Mục đích
Không có

Sự kiện phụ thay đổi trạng thái quảng cáo nhiều LE

Sự kiện này cho biết một thực thể quảng cáo đã thay đổi trạng thái. Hiện tại, sự kiện này chỉ được dùng để cho biết phiên bản quảng cáo nào đã bị dừng do kết nối.

Mã sự kiện phụ = 0x55

Tham số sự kiện phụ Kích thước Mục đích
Advertising_instance 1 octet Xác định thực thể quảng cáo cụ thể
Giá trị hợp lệ là từ 0 đến max_advt_instances-1
State_Change_Reason 1 octet 0x00: Đã nhận được kết nối
Connection_handle 2 octet Xác định kết nối đã khiến thực thể advt bị tắt (0xFFFF nếu không hợp lệ)

Sự kiện phụ theo dõi quảng cáo LE

Sự kiện này cho biết thời điểm tìm thấy hoặc mất một nhà quảng cáo.

Mã sự kiện phụ = 0x56

Tham số sự kiện phụ Kích thước Mục đích
APCF_Filter_Index 1 octet Chỉ mục bộ lọc (0, max_filter-1)
Advertiser_State 1 octet 0x00: Tìm thấy nhà quảng cáo
0x01: Mất nhà quảng cáo
Advt_Info_Present 1 octet 0x00: Có thông tin nhà quảng cáo (Advt_Info)
0x01: Không có thông tin nhà quảng cáo (Advt_Info)
Advertiser_Address 6 octet Địa chỉ công khai hoặc địa chỉ ngẫu nhiên
Advertiser_Address_Type 1 octet 0x00: Địa chỉ công khai
0x01: Địa chỉ ngẫu nhiên
Advt_Info Tx_Pwr[0]: 1 octet
RSSI[0]: 1 octet
Timestamp[0]: 2 octet
Adv packet_len[0]: 1 octet
Adv_packet[0]: Adv_packet_len octet
Scan_data_resp_len[0]: 1 octet
Scan_data_resp[0]: Scan_data_resp octet

Sự kiện phụ thông tin gỡ lỗi của tay điều khiển

Bộ điều khiển sử dụng sự kiện này để cung cấp thông tin gỡ lỗi nhị phân cho máy chủ lưu trữ.

Mã sự kiện phụ = 0x57

Tham số sự kiện phụ Kích thước Mục đích
debug_block_byte_offset_start 2 octet Chênh lệch byte của khối gỡ lỗi từ đầu
last_block 1 octet 0x00: Có thêm dữ liệu gỡ lỗi
0x01: Khối nhị phân cuối cùng; không có thêm dữ liệu gỡ lỗi
cur_pay_load_sz 2 octet Kích thước khối nhị phân trong một sự kiện hiện tại
Debug_Data Biến Dữ liệu gỡ lỗi của cur_payload_sz

Sự kiện phụ trong Báo cáo chất lượng Bluetooth

Sự kiện này cho biết một trong những điều sau: một sự kiện chất lượng Bluetooth đã xảy ra, bộ điều khiển đã tải dấu vết thông báo LMP/LL và dấu vết lên lịch nhiều đường liên kết/Coex của Bluetooth hoặc bộ điều khiển đã kết xuất dữ liệu thông tin gỡ lỗi.

Tham số sự kiện phụ Kích thước Mục đích
Quality_Report_Id 1 octet 0x01: Báo cáo chất lượng về chế độ giám sát.
0x02: Đang tiếp cận LSTO.
0x03: Âm thanh A2DP bị giật.
0x04: (e)SCO Voice Choppy (Giọng nói (e)SCO bị giật).
0x05 ~ 0x06: Dành riêng.
0x07: Âm thanh LE bị giật.
0x08: Không kết nối được.
0x09 ~ 0xFF: Dành riêng.
Packet_Types 1 octet 0x01: Mã nhận dạng
0x02: Rỗng
0x03: POLL
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: Dành riêng
0x51: Gói ISO
0x52 ~ 0xFF: Dành riêng
Connection_Handle 2 octet Tay điều khiển kết nối ACL/(e)SCO/ISO.
Connection_Role 1 octet Vai trò thực hiện cho kết nối.
0x00: Trung tâm
0x01: Ngoại vi
0x02 ~ 0xFF: Dành riêng.
TX_Power_Level 1 octet Cấp độ truyền năng lượng hiện tại cho Connection_Handle đã chỉ định.

Giá trị này phải giống với giá trị mà bộ điều khiển phản hồi lệnh HCI HCI_Read_Transmit_Power_Level.

RSSI 1 octet [tính bằng dBm]

Giá trị Chỉ báo cường độ tín hiệu đã nhận (RSSI) cho Connection_Handle đã chỉ định.
Giá trị này phải là giá trị tuyệt đối của cường độ tín hiệu của bộ thu.
Phạm vi: -127 đến +20

SNR 1 octet [tính bằng dB]

Giá trị Tỷ lệ tín hiệu trên tạp âm (SNR) cho Connection_Handle đã chỉ định.
Bộ điều khiển phải cung cấp SNR trung bình của tất cả các kênh mà đường liên kết sử dụng.

Unused_AFH_Channel_Count 1 octet Cho biết số lượng kênh không dùng trong AFH_channel_map.
0x4F ~ 0xFF: Đã đặt trước.
AFH_Select_Unideal_Channel_Count 1 octet Cho biết số lượng kênh bị nhiễu và có chất lượng xấu nhưng vẫn được chọn cho tính năng Tự động điều chỉnh theo tần số.
Số lượng kênh tối thiểu được quy định trong thông số kỹ thuật của Bluetooth là 20, vì vậy, ngay cả khi tất cả 79 kênh đều bị can thiệp và có chất lượng kém, bộ điều khiển vẫn cần chọn ít nhất 20 kênh cho AFH.
LSTO 2 octet Chế độ cài đặt thời gian chờ hiện tại của tính năng giám sát đường liên kết.
Thời gian = N * 0,625 mili giây
Phạm vi thời gian: 0,625 mili giây đến 40,9 giây
Connection_Piconet_Clock 4 octet Đồng hồ Piconet cho Connection_Handle đã chỉ định.
Giá trị này phải giống với giá trị phản hồi của tay điều khiển đối với lệnh HCI_Read_Clock HCI với tham số "Which_Clock" là 0x01 (Đồng hồ Piconet).
Đơn vị: N * 0,3125 mili giây (1 Đồng hồ Bluetooth)
Retransmission_Count 4 octet Số lần truyền lại kể từ sự kiện gần nhất.
Số lượt này sẽ được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
No_RX_Count 4 octet Không có số lượng RX kể từ sự kiện gần đây nhất.
Số lượng tăng lên khi không có gói nào được nhận tại khung giờ đã lên lịch hoặc gói đã nhận bị hỏng.
Số lượt này sẽ được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
NAK_Count 4 octet Số NAK (Thông báo không xác nhận) kể từ sự kiện gần đây nhất.
Số lượt này sẽ được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
Last_TX_ACK_Timestamp 4 octet Dấu thời gian của ACK TX gần đây nhất. Dựa trên Đồng hồ Bluetooth của trung tâm piconet (CLK).
Đơn vị: N * 0,3125 mili giây (1 Đồng hồ Bluetooth)
Flow_Off_Count 4 octet Số lần bộ điều khiển nhận được Flow-off (DỪNG) kể từ sự kiện gần đây nhất.
Số lượt này sẽ được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
Last_Flow_On_Timestamp 4 octet Dấu thời gian của Flow-on (GO) gần đây nhất. Dựa trên Đồng hồ Bluetooth của trung tâm piconet (CLK).
Đơn vị: N * 0,3125 mili giây (1 Đồng hồ Bluetooth)
Buffer_Overflow_Bytes 4 octet [tính bằng Byte]

Số lần tràn bộ đệm kể từ sự kiện gần đây nhất.
Bộ điều khiển đếm số byte dữ liệu bị loại bỏ.
Số lượt này sẽ được đặt lại sau khi báo cáo cho máy chủ lưu trữ.

Buffer_Underflow_Bytes 4 octet [tính bằng Byte]

Số lần thiếu dữ liệu trong bộ đệm kể từ sự kiện gần đây nhất.
Số lượt này sẽ được đặt lại sau khi báo cáo cho máy chủ lưu trữ.

bdaddr 6 octet Địa chỉ thiết bị từ xa
cal_failed_item_count 1 octet Số lượng mục không điều chỉnh được
TX_Total_Packets 4 octet Số lượng gói được gửi đi.
TX_UnAcked_Packets 4 octet Số lượng gói không nhận được thông báo xác nhận.
Số lượt này được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
TX_Flushed_Packets 4 octet Số lượng gói không được gửi qua điểm xả.
Số lượt này được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
TX_Last_Subevent_Packets 4 octet Số gói mà Lớp liên kết truyền PDU dữ liệu CIS trong sự kiện phụ cuối cùng của sự kiện CIS.
Số lượt này được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
Giá trị bằng 0 nếu không có giá trị hợp lệ cho đường liên kết.
CRC_Error_Packets 4 octet Số lượng gói đã nhận được có lỗi CRC kể từ sự kiện gần đây nhất.
Số lượt này được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
RX_Duplicate_Packets 4 octet Số lượng gói trùng lặp (truyền lại) đã nhận được kể từ sự kiện gần đây nhất.
Số lượt này được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
RX_Unreceived_Packets 4 octet Số lượng gói không nhận được giống với tham số của lệnh LE READ ISO Link Quality (xem Thông số kỹ thuật cốt lõi Bluetooth Phiên bản 5.4). Các luồng liên quan là CIS và BIS.
Khi giá trị này tăng lên, Lớp liên kết không nhận được tải trọng cụ thể theo điểm xả (trên CIS) hoặc khi kết thúc sự kiện liên kết với tải trọng đó (trên BIS; xem Thông số kỹ thuật cốt lõi Bluetooth Phiên bản 5.4 Tập 6 Phần B, Mục 4.4.6.6).
Coex_Info_Mask 2 octet Bit 0 – CoexInvolvement: Đặt để cho biết các hoạt động đồng thời bị nghi ngờ có liên quan khi báo cáo này được tạo (ví dụ: A2DP Chops và Approaching LSTO).
Bit 1 – WL 2G Radio Active (Đang bật đài phát 2G của WL): Đặt để cho biết Đài phát 2G của WLAN đang hoạt động.
Bit 2 – WL 2G Connected (Đã kết nối với WL 2G): Đặt để cho biết WLAN 2G Radio đang hoạt động và đã kết nối.
Bit 3 – WL 5G/6G Radio Active (Đang bật đài phát sóng 5G/6G): Đặt để cho biết Đài phát sóng 5G/6G WLAN đang bật.
Bit 4-15 – Đã đặt trước
Tham số dành riêng cho nhà cung cấp (tổng chiều dài thông số – TBD) * octet Để nhà cung cấp tay điều khiển có thể lấy thêm các tham số dành riêng cho nhà cung cấp.

Mã sự kiện phụ = 0x58 [Quality_Report_Id = 0x05, sự kiện Viêm rễ]

Sự kiện này cho biết Bluetooth HAL hoặc tay điều khiển đã gặp lỗi nghiêm trọng và cần ngăn xếp Bluetooth để ghi lại tình huống này và khởi động lại. Trong mọi trường hợp, tay điều khiển phải gửi Root_Inflammation_Event đến ngăn xếp Bluetooth trước khi gửi mảnh đầu tiên của sự kiện thông tin gỡ lỗi.

Thông số Error_Code chứa mã lỗi được báo cáo từ HAL/Bộ điều khiển, 0 nếu đó là lỗi dành riêng cho nhà cung cấp chipset. Vendor_Specific_Error_Code chứa mã lỗi dành riêng cho nhà cung cấp chipset từ HAL/Bộ điều khiển. Bạn nên đặt giá trị này thành 0 nếu tham số Error_Code không phải là 0. Các tham số Error_Code và Vendor_Specific_Error_Code không được cùng bằng 0.

Tham số sự kiện phụ Kích thước Mục đích
Quality_Report_Id 1 octet 0x00 ~ 0x04: Dành riêng.
0x05: Viêm rễ.
0x06 ~ 0xFF: Đã đặt trước.
Error_Code 1 octet 0x00: Bao gồm mã lỗi dành riêng cho nhà cung cấp chipset.
0x01 ~ 0xFF: Đã xảy ra lỗi bộ điều khiển. Xem Bluetooth Spec [Vol 2] (Thông số kỹ thuật Bluetooth [Tập 2]) Phần D, Error Codes (Mã lỗi) để biết danh sách mã lỗi và nội dung mô tả.
Vendor_Specific_Error_Code 1 octet 0x00: Không có mã lỗi cụ thể của nhà cung cấp chipset.
0x01 ~ 0xFF: Mã lỗi dành riêng cho nhà cung cấp chipset.
Tham số dành riêng cho nhà cung cấp (Tổng chiều dài tham số – 4) * octet Để nhà cung cấp tay điều khiển có thể lấy thêm các tham số dành riêng cho nhà cung cấp.
Tham số sự kiện phụ Kích thước Mục đích
Quality_Report_Id 1 octet 0x00 ~ 0x10: Dành riêng.
0x11: Dấu vết tin nhắn LMP/LL.
0x12: Dấu vết lên lịch nhiều đường liên kết/Coex của Bluetooth.
0x13: Tệp kết xuất dữ liệu Thông tin gỡ lỗi của trình điều khiển.
0x14 ~ 0xFF: Dành riêng.
Connection_Handle 2 octet Handle (Tên xử lý) của kết nối.
Tham số dành riêng cho nhà cung cấp (Tổng chiều dài tham số – 4) * octet Định dạng dành riêng cho nhà cung cấp của dấu vết thông báo LMP, dấu vết lên lịch nhiều đường liên kết/Coex của Bluetooth và tệp kết xuất dữ liệu Thông tin gỡ lỗi của tay điều khiển.

Hỗ trợ nhiều nhà quảng cáo

Dưới đây là các mục tiêu của dịch vụ hỗ trợ nhiều nhà quảng cáo:

  • Khả năng hỗ trợ nhiều quảng cáo (max_advt_instances)
  • Nhiều mức công suất truyền để cho phép phạm vi thay đổi
  • Nội dung quảng cáo khác
  • Nội dung phản hồi riêng cho từng nhà quảng cáo
  • Quyền riêng tư (không thể theo dõi) cho mỗi nhà quảng cáo
  • Có thể kết nối

Để giữ cho thông số kỹ thuật này gần với các tiêu chuẩn hiện có, chúng tôi cung cấp các lệnh sau đây dành riêng cho nhà cung cấp. Các API này được lấy từ Quy cách Bluetooth Core 4.1.

LE_Multi_Advt_Command

OCF: 0x154

Tham số lệnh Kích thước Mục đích
Multi_advt_opcode 1 octet 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

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Multi_advt_opcode 1 octet 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

Tài liệu tham khảo cơ sở: Tiêu chuẩn Bluetooth Core 4.1, trang 964 (Lệnh tham số quảng cáo đặt LE)

OCF phụ: 0x01

Tham số lệnh con Kích thước Mục đích
Advertising_Interval_Min Theo thông số kỹ thuật Theo thông số kỹ thuật
Advertising_Interval_Max Theo thông số kỹ thuật Theo thông số kỹ thuật
Advertising_Type Theo thông số kỹ thuật Theo thông số kỹ thuật
Own_Address_Type Theo thông số kỹ thuật Theo thông số kỹ thuật
Own_Address Theo thông số kỹ thuật Theo thông số kỹ thuật
Direct_Address_Type Theo thông số kỹ thuật Theo thông số kỹ thuật
Direct_Address Theo thông số kỹ thuật Theo thông số kỹ thuật
Advertising_Channel_Map Theo thông số kỹ thuật Theo thông số kỹ thuật
Adverstising_Filter_Policy Theo thông số kỹ thuật Theo thông số kỹ thuật
Advertising_Instance 1 octet Chỉ định phạm vi áp dụng của các tham số trên cho một thực thể
Tx_power 1 octet Transmit_Power
Đơn vị – tính bằng dBm (số nguyên có dấu)
Phạm vi (-70 đến +20)

Tham số Own_Address có thể là địa chỉ do máy chủ lưu trữ định cấu hình tại thời điểm thiết lập thực thể nhiều quảng cáo này. Điều này cho phép có một địa chỉ riêng tư có thể phân giải tại thời điểm truyền beacon đầu tiên. Quảng cáo trên một thực thể sẽ tiếp tục bất kể kết nối. Ngăn xếp BT của máy chủ có thể đưa ra lệnh để bắt đầu quảng cáo trên một thực thể, sau khi kết nối.

Sự kiện Command Complete (Hoàn tất lệnh) sẽ được tạo cho lệnh này như được chỉ định trong Thông số kỹ thuật Bluetooth Core 4.1, theo lệnh ở trên. Trình điều khiển sẽ phản hồi bằng mã không thành công (thông số không hợp lệ) nếu thực thể quảng cáo hoặc thông số Tx_Power không hợp lệ.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Multi_advt_opcode 1 octet 0x01 [Set_Advt_Param_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd

Tài liệu tham khảo cơ sở: Tiêu chuẩn Bluetooth Core 4.1, trang 969 (Lệnh dữ liệu quảng cáo đặt LE)

OCF phụ: 0x02

Tham số lệnh con Kích thước Mục đích
Advertising_Data_Length Theo thông số kỹ thuật Theo thông số kỹ thuật
Advertising_Data Theo thông số kỹ thuật Theo thông số kỹ thuật
Advertising_Instance 1 octet Chỉ định phạm vi áp dụng của các tham số trên cho một thực thể

Sự kiện Command Complete (Hoàn tất lệnh) sẽ được tạo cho lệnh này như được chỉ định trong Thông số kỹ thuật Bluetooth Core 4.1, theo lệnh ở trên. Trình điều khiển sẽ phản hồi bằng mã không thành công nếu thực thể quảng cáo hoặc tham số Tx_Power không hợp lệ.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Multi_advt_opcode 1 octet 0x02 [Set_Advt_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd

Tài liệu tham khảo cơ sở: Tiêu chuẩn Bluetooth Core 4.1, trang 970 (Lệnh dữ liệu phản hồi quét thiết lập LE)

OCF phụ: 0x03

Tham số lệnh con Kích thước Mục đích
Scan_Response_Data_Length Theo thông số kỹ thuật Theo thông số kỹ thuật
Scan_Response_Data Theo thông số kỹ thuật Theo thông số kỹ thuật
Advertising_Instance 1 octet Chỉ định phạm vi áp dụng của các tham số trên cho một thực thể

Sự kiện Command Complete (Hoàn tất lệnh) sẽ được tạo cho lệnh này như được chỉ định trong Thông số kỹ thuật Bluetooth Core 4.1, theo lệnh ở trên. Trình điều khiển sẽ phản hồi bằng mã không thành công (tham số không hợp lệ) nếu thực thể quảng cáo hoặc tham số Tx_Power không hợp lệ.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Multi_advt_opcode 1 octet 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd

Tài liệu tham khảo cơ sở: Tiêu chuẩn Bluetooth Core 4.1, trang 963 (Lệnh đặt địa chỉ ngẫu nhiên LE)

OCF phụ: 0x04

Tham số lệnh con Kích thước Mục đích
Địa chỉ ngẫu nhiên Theo thông số kỹ thuật Theo thông số kỹ thuật
Advertising_Instance 1 octet Chỉ định phạm vi áp dụng của các tham số trên cho một thực thể

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Multi_advt_opcode 1 octet 0x04 [Set_Random_Addr_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd

Tài liệu tham khảo cơ sở: Thông số kỹ thuật Bluetooth Core 4.1, trang 971 (Lệnh bật quảng cáo của LE Set trong thông số kỹ thuật cốt lõi đó)

OCF: 0x05

Tham số lệnh con Kích thước Mục đích
Advertising_Enable 1 octet Giá trị 1 có nghĩa là bật. Mọi giá trị khác đều có nghĩa là tắt.
Advertising_Instance 1 octet Chỉ định phạm vi áp dụng của các thông số ở trên cho một thực thể. Thực thể 0 có nghĩa là một thực thể HCI tiêu chuẩn.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Multi_advt_opcode 1 octet 0x05 [Set_Advt_Enable_Multi_Sub_Cmd]

Giải pháp giảm tải địa chỉ riêng tư

Tính năng này phân giải địa chỉ riêng tư trong phần cứng hoặc phần mềm của tay điều khiển, mang lại các lợi ích sau:

  • Độ trễ liên quan đến máy chủ lưu trữ trong quá trình phân giải địa chỉ riêng tư
  • Tiết kiệm pin bằng cách hạn chế đánh thức máy chủ

LE_Set_RPA_Timeout

OCF: 0x15C

Tham số lệnh Kích thước Mục đích
LE_local_IRK 16 octet IRK của thiết bị cục bộ dùng để tạo(các) địa chỉ ngẫu nhiên có thể phân giải.
tRPA_min 2 octet Thời gian chờ tối thiểu để tạo RPA tính bằng giây. Bộ điều khiển phải tạo địa chỉ có thể phân giải mới cho mọi sự kiện quảng cáo/quét/kết nối vào hoặc sau thời gian chờ này.
Phạm vi hợp lệ: 300-1800
tRPA_max 2 octet Thời gian chờ tạo RPA tối đa tính bằng giây. Bộ điều khiển phải tạo địa chỉ có thể phân giải mới cho mọi sự kiện quảng cáo/quét/kết nối vào hoặc trước thời gian chờ này.
Phạm vi hợp lệ: tRPA_min-1800
Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái của lệnh.

Giá trị trạng thái HCI được đề xuất:
0x00 Thành công
0x01 Lệnh không xác định (nếu không được hỗ trợ)
0x12 Tham số lệnh không hợp lệ (nếu có tham số nào nằm ngoài phạm vi đã cho)

LE_RPA_offload_Command

OCF: 0x155

Tham số lệnh Kích thước Mục đích
RPA_offload_opcode 1 octet 0x1 – Bật tính năng dành riêng cho khách hàng
0x2 – Thêm IRK vào danh sách
0x3 – Xoá IRK khỏi danh sách
0x4 – Xoá danh sách IRK
0x5 – Đọc mục danh sách IRK

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Event_RPA_offload_opcode 1 octet 0x1 – Bật tính năng dành riêng cho khách hàng
0x2 – Thêm IRK vào danh sách
0x3 – Xoá IRK khỏi danh sách
0x4 – Xoá danh sách IRK
0x5 – Đọc mục danh sách IRK

LE_RPA_offload: Enable_cust_specific_sub_Command

OCF phụ: 0x01

Tham số lệnh con Kích thước Mục đích
enable_customer_specific_feature_set 1 octet 0x01 – Bật tính năng RPA được giảm tải
0x00 – Tắt tính năng RPA được giảm tải

Máy chủ phải bật tính năng giảm tải RPA dựa trên khả năng của chip. Tham khảo LE_Get_Vendor_Capabilities_Command. Mỗi khối có thể có một max_irk_list_sz khác nhau trong phần mềm.

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Event_cust_specific_feature_opcode 1 octet 0x01 [Bật tính năng dành riêng cho khách hàng]

LE_RPA_offload: Add_IRK_to_list_sub_Command

OCF phụ: 0x02

Tham số lệnh con Kích thước Mục đích
LE_IRK 16 octet LE IRK (bit LSB đầu tiên)
Address_Type 1 octet 0: Địa chỉ công khai
1: Địa chỉ ngẫu nhiên
LE_Device_Address 6 octet Địa chỉ công khai hoặc ngẫu nhiên được liên kết với IRK (byte 1 LSB)

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Event_cust_specific_feature_opcode 1 octet 0x02 [Thêm IRK vào danh sách]
LE_IrkList_AvailableSpaces 1 octet Các mục trong danh sách IRL hiện có sau thao tác hiện tại

LE_RPA_offload: Remove_IRK_to_list_sub_Command

OCF phụ: 0x03

Tham số lệnh con Kích thước Mục đích
Address_Type 1 octet 0: Địa chỉ công khai
1: Địa chỉ ngẫu nhiên
LE_Device_Address 6 octet Địa chỉ công khai hoặc ngẫu nhiên liên kết với IRK

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Event_cust_specific_feature_opcode 1 octet 0x03 [Xoá IRK khỏi danh sách]
LE_IrkList_AvailableSpaces 1 octet Các mục trong danh sách IRL hiện có sau thao tác hiện tại

LE_RPA_offload: Clear_IRK_list_sub_Command

OCF phụ: 0x04

Tham số lệnh con Kích thước Mục đích
Không có

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Event_cust_specific_feature_opcode 1 octet 0x04 [Xoá danh sách IRK]
LE_IrkList_AvailableSpaces 1 octet Các mục có trong danh sách IRL sau thao tác hiện tại [max_irk_list_sz]

LE_RPA_offload: Read_IRK_list_sub_Command

OCF phụ: 0x05

Tham số lệnh con Kích thước Mục đích
LE_read_IRK_list_entry-index 1 octet Chỉ mục của danh sách IRK [0, max_irk_list_sz-1]

Hệ thống sẽ tạo một sự kiện Command Complete (Hoàn tất lệnh) cho lệnh này.

Tham số trả về Kích thước Mục đích
Status 1 octet Trạng thái hoàn tất lệnh
Event_cust_specific_feature_opcode 1 octet 0x05 [Đọc mục danh sách IRK]
LE_Read_IRK_List_entry 1 octet Chỉ mục của IRK mà máy chủ lưu trữ muốn đọc lại (kích thước tối đa của danh sách IRK là 32)
LE_IRK 16 octet Giá trị IRK
Address_Type 1 octet 0: Địa chỉ công khai
1: Địa chỉ ngẫu nhiên
LE_Device_Address 6 octet Địa chỉ công khai hoặc địa chỉ ngẫu nhiên được liên kết với IRK
LE_Resolved_Private_Address 6 octet Địa chỉ riêng tư hiện đã được phân giải của IRK này