Yêu cầu về HCI

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

Tài liệu này cung cấp danh sách các yêu cầu về 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 bộ đ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.

Trong tài liệu này, Thông số kỹ thuật Bluetooth Core 5.2 là "thông số kỹ thuật". Thông số kỹ thuật Bluetooth Core 5.2 có trên trang web Bluetooth SIG cùng với các tài liệu khác được sử dụng.

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 gồm 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 chức năng của nền tảng và chip.

Để quản lý các bối cảnh khác nhau và quản lý quá trình di chuyển, tài liệu này sẽ mô tả nguyên lý thiết kế cho phép các bộ điều khiển BT thể hiện khả 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 những khả năng này để xác định những tính năng cần bật.

Hỗ trợ các chuẩn mở

Một mục tiêu của Android là hỗ trợ các tiêu chuẩn mở sau khi phê duyệt thông số kỹ thuật Bluetooth. Nếu một tính năng được mô tả dưới đây có thể sử dụng trong các phương thức HCI tiêu chuẩn trong thông số kỹ thuật Bluetooth trong tương lai, thì chúng tôi sẽ dựa vào việc đặt phương thức đó làm phương thức 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ố Command trống

Một sự kiện Lệnh hoàn tất sẽ được tạo 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.
Tham số này không còn được dùng trong quy cách tính năng của Google phiên bản 0.98 trở lên và thay vào đó là Quảng cáo mở rộng LE có trong quy cách BT phiên bản 5.0 trở lên.
offloaded_resolution_of_private-address
(Không dùng nữa)
1 octet Chức năng chip BT của RPA.
Nếu được một khối hỗ trợ, thì khối này cần được máy chủ bật.
0 = Không có khả năng
1 = Có thể sử dụng

Được đặt trước sau phiên bản 0.98.
Tham số này không còn được dùng trong quy cách tính năng của Google phiên bản 0.98 trở lên và thay vào đó, thay vào đó là tính năng Quyền riêng tư có trong quy cách BT phiên bản 4.2 trở lên.
total_scan_results_storage 2 octet 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 chương trình 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 được hỗ trợ cho thông số tính năng của Google
byte[0] = Số chính
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 OnLost/OnFound mục đích
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ừ bộ đ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.
Tham số này không còn được dùng trong quy cách tính năng của Google phiên bản 0.98 trở lên và thay vào đó, thay vào đó là tính năng Quyền riêng tư có trong quy cách BT phiên bản 4.2 trở lên.
A2DP_source_offload_capability_mask 4 octet Hỗ trợ mặt nạ bit cho các loại bộ mã hoá và giải mã
Bit 0 – SBC
Bit 1 – AAC
Bit 2 – APTX
Bit 3 – APTX HD
Bit 4 – LDAC
Bit 5 – 31 được dành riêng
bluetooth_quality_report_support 1 octet Hỗ trợ tính năng báo cáo sự kiện Chất lượng Bluetooth
0 = Không có
1 = Có thể
dynamic_audio_buffer_support 4 octet Hỗ trợ vùng đệm âm thanh động trong bộ đ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 tải A2DP)
0 = Không được hỗ trợ
1 = Được hỗ trợ

Tạo hàng loạt kết quả quét

Mục tiêu thiết kế là cải thiện cách gửi các thông báo sự kiện Phản hồi quét năng lượng thấp qua Bluetooth đến máy chủ để tiết kiệm điện năng trong máy chủ.

Bằng cách giảm tần suất tay điều khiển thông báo cho trình xử lý ứng dụng lưu trữ quét kết quả, trình 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 làm 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 của khối để lưu trữ kết quả quét.

Tính năng này tập trung vào việc quản lý và cấu hình của thiết bị 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 theo nhóm, đồng thời quét dữ liệu và siêu dữ liệu mà bộ điều khiển nhận được để phân phối đến máy chủ sau này.

Chương trình cơ sở sẽ hỗ trợ 2 kiểu phân lô có thể được thao tác đồ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 thành phần thông tin sau: {MAC, TX Power, RSSI, Timestamp, Adv Data, Quét Response}

Lệnh LE_Batch_Quét

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 thông số bộ nhớ quét hàng loạt
0x3 – Đặt thông số quét hàng loạt
0x4 – Đọc thông số kết quả quét hàng loạt

Một sự kiện Lệnh hoàn tất sẽ được tạo cho lệnh này. Quá trình quét sẽ không bắt đầu khi bạn bật tính năng dành riêng cho khách hàng.

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 thông số bộ nhớ quét hàng loạt
0x3 – Đặt thông số quét hàng loạt
0x4 – Đọc thông số kết quả quét hàng loạt

LE_Batch_Quét_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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 thông số bộ nhớ quét hàng loạt
0x3 – Đặt thông số quét hàng loạt
0x4 – Đọc thông số kết quả quét hàng loạt

LE_Batch_Scan_Command: Đặt lệnh con cho tham số lưu trữ 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 Không gian lưu trữ tối đa (tính bằng %) đượ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 bằng %) được phân bổ cho kiểu bị cắt ngắn
[Phạm vi: 0 – 100]
Batch_Scan_Notify_Threshold 1 octet Thiết lập mức thông báo (tính bằng %) cho nhóm bộ nhớ riêng lẻ
[Phạm vi: 0-100]
Nếu bạn đặt thành 0, thông báo sẽ tắt. 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ớ)

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 thông số quét hàng loạt]

LE_Batch_Quét_Command: Đặt lệnh con cho thông 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ính năng quét hàng loạt đang tắt
0x01 – Chế độ cắt bớt đang bật
0x02 – Bật chế độ đầy đủ
0x03 – Đã cắt bớt và bật chế độ hoàn chỉnh
Duty_cycle_scan_window 4 octet Thời gian quét hàng loạt (# ô)
Duty_cyle_scan_interval 4 octet Khoảng thời gian Quét hàng loạt (# ô)
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 con này sẽ bắt đầu quét hàng loạt nếu được bật. Trong quá trình quét đã cắt bớt, kết quả sẽ được lưu trữ ở dạng cắt ngắn, trong đó khoá duy nhất cho kiểu được cắt bớt = {BD_ADDR, scan_interval}. Điều này có nghĩa là chỉ một BD_ADDR will được ghi lại cho mỗi khoảng thời gian quét. Bản ghi cần lưu giữ cho chế độ Cắt bớt là: {BD_ADDR, Tx Power, RSSI, Timestamp}

Khi bạn bật Chế độ đầy đủ, quá trình quét đang hoạt động sẽ được sử dụng và Phản hồi quét sẽ được ghi lại. Khoá duy nhất kiểu đầy đủ = {MAC, Gói quảng cáo}, bất kể khoảng thời gian quét. Bản ghi cần lưu giữ cho chế độ Toàn bộ là {BD_ADDR, Tx Power, RSSI, Timestamp, Ad packageet, Quét Response}. Ở Kiểu đầy đủ, cùng một gói AD chỉ được ghi lại một lần khi nhìn thấy nhiều lần trong các khoảng thời gian quét khác nhau. Tuy nhiên, ở chế độ được cắt bớt, bạn sẽ quan tâm đến khả năng hiển thị BA_ADDR trên nhiều khoảng thời gian quét (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.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 phụ của 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ế độ cắt bớt
0x02 – Dữ liệu ở chế độ đầy đủ

Một sự kiện Lệnh hoàn tất sẽ được tạo cho lệnh này. Khi máy chủ đưa ra lệnh này, tất cả kết quả trên trình điều khiển có thể không khớp trong một sự kiện Lệnh hoàn tất. Máy chủ lưu trữ 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 Lệnh hoàn tất biểu thị 0 trong số lượng bản ghi, điều này cho biết tay đ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 Lệnh hoàn tất có thể chứa nhiều bản ghi của một loại dữ liệu duy nhất (Đầy đủ hoặc Đã cắt bớt).

Tham chiếu thời gian của đơn vị kiểm soát 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 không dựa trên thời điểm Read_Batch_Scan_Results_Sub_cmd do máy chủ cung cấp. Nếu thời gian đến lệnh là T_c trong chương trình cơ sở, thì thời gian thực tế dấu thời gian được lấy trong chương trình cơ sở sẽ là T_fw. Thời gian báo cáo sẽ là: (T_cT_fw). T_cT_fw thuộc miền thời gian của chương trình cơ sở. Việc này cho phép máy chủ lưu trữ tính toán khoảng thời gian diễn 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ố lượng bản ghi của Batch_Scan_data_read
format_of_data Biến Chế độ bị cắt bớt:
Số octet của quảng cáo 0 [ octet_0] và số octet của quảng cáo: [ octet_0] và số octet của quảng cáo: [88.000.01]
Address_Type[0]: 1
Tx_Pwr[0]: 1 octet_














num_of_recordsnum_of_recordsScan_data_resp

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

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

Lệnh LE_APCF_

OCF: 0x157

Tham số lệnh Kích thước Mục đích
APCF_opcode 1 octet 0x00 – 0x03 – Dành riêng cho APCF 0 – 0x04 – 0x04 – 0x04 dành riêng cho dịch vụ APCF x 0 – 0x01 – Dùng cho nhà cung cấp bộ lọc APCF x 0 – 0x02 – Địa chỉ bộ phát APCF dành riêng cho thư viện phát sóng
0x03 – Mã APCF 0 dành riêng cho dịch vụ 0x 0 – 0x04 dành cho dịch vụ APCF












Một sự kiện Lệnh hoàn tất sẽ được tạo 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 – 0x03 – Dành riêng cho APCF 0 – 0x04 – 0x04 – 0x04 dành riêng cho dịch vụ APCF x 0 – 0x01 – Dùng cho nhà cung cấp bộ lọc APCF x 0 – 0x02 – Địa chỉ bộ phát APCF dành riêng cho thư viện phát sóng
0x03 – Mã APCF 0 dành riêng cho dịch vụ 0x 0 – 0x04 dành cho dịch vụ APCF












LE_APCF_Command: Bật_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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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ật/tắt được đặt qua APCF_enable

Lệnh LE_APCF_Command: set_filtering_parameters_sub_cmd

Lệnh con này dùng để thêm hoặc xoá quy cách 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 nhập tính năng có liên quan trong các bảng khác.
Thao tác xoá sẽ xoá tất cả bộ lọc và mục nhập liên quan 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 mã nhận dạng duy nhất (UUID) dịch vụ
Bit 3: Đặt để bật tính năng Kiểm tra mã nhận dạng cho dịch vụ truyền phát
Bit 4: Đặt để bật tính năng Kiểm tra tên cục bộ
Bit 5: Đặt thành bật dịch vụ Kiểm tra dữ liệu của nhà sản xuất
Bit 5: Đặt thành bật dịch vụ Kiểm tra dữ liệu của nhà sản xuất
Bit 5: Đặt thành bật dịch vụ Kiểm tra dữ liệu của nhà sản xuất
APCF_List_Logic_Type 2 octet Toán tử logic cho mỗi lựa chọn tính năng (vị trí trên mỗi 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: AND
Nếu logic "AND" được chọn, gói ADV sẽ chỉ vượt qua bộ lọc nếu chứa TẤT CẢ mục nhập trong danh sách.
Nếu logic "OR" được chọn, gói ADV sẽ vượt qua bộ lọc nếu chứa bất kỳ mục nhập nào trong danh sách.
APCF_Filter_Logic_Type 1 octet 0x00: OR
0x01: AND
Lưu ý: Loại logic là N/A cho 3 trường đầu tiên của APCF_Feature_Selection, luôn là logic "AND". Các mã 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 coi là có thể nhìn thấy nếu tín hiệu cao hơn ngưỡng cao RSSI. Nếu không, chương trình cơ sở phải hoạt động như thể chưa từng 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 để chương trình cơ sở ở lại và thu thập thêm quảng cáo 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 hiển thị trong chương trình cơ sở 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 quảng cáo đó sẽ được kiểm tra. Nếu số lượng vượt quá onfound_timeout_cnt, hệ thống sẽ 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 sẽ được coi là chưa được xác định nếu RSSI của gói nhận được không nằm trên 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 một quảng cáo sau khi được tìm thấy mà người dùng không nhìn thấy liền kề trong khoảng thời gian lost_timeout, thì quảng cáo đó sẽ bị báo cáo là bị mất ngay lập tức.
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.

Giá trị RSSI phải sử dụng bổ sung của 2 để thể hiện giá trị âm.

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

Lọc, phân lô và báo cáo là các khái niệm có liên quan lẫn nhau. Mọi quảng cáo và phản hồi quét có liên quan sẽ phải trải qua tất cả các bộ lọc. Do đó, các hành động thu được (delivery_mode) có liên quan chặt chẽ với hoạt động lọc. Sau đây là các chế độ phân phối: report_immediately, batchonFound. Giá trị OnLost liên quan đến OnFound vì 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 một khung quảng cáo (hoặc phản hồi quét), khung đó sẽ được áp dụng cho tất cả các bộ lọc theo thứ tự nối tiếp. Có khả năng một quảng cáo có thể khiến báo cáo ngay lập tức dựa trên một bộ lọc và việc phân lô cùng một bộ lọc do một hành động lọc khác.

Ngưỡng cấp RSSI (cao và thấp) cho phép kiểm soát thời điểm khung hình được hiển thị để xử lý bộ lọc, ngay cả khi đơn vị kiểm soát nhận được một gói hợp lệ. Trong trường hợp chế độ phân phối được đặt thành tức thì 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 hành vi báo cáo và hành vi phân lô khác nhau. Điều này cho phép nhiều ứng dụng đồng thời báo cáo trực tiếp và/hoặc phân lô kết quả trong chương trình cơ sở. Ví dụ như một quy trình quét hàng loạt đang hoạt động từ một ứng dụng, sau đó một ứng dụng khác thực hiện quy trình quét LE thông thường. Trước khi quét hàng loạt, khung/ứng dụng sẽ thiết lập các bộ lọc thích hợp. Sau đó, khi ứng dụng thứ hai thực hiện một lượt quét thông thường, hoạt động quét lô trước đó vẫn tiếp tục. Tuy nhiên, do quá trình quét thông thường, về mặt lý thuyết, thao tác này chỉ 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 hoạt động. Khi chế độ quét LE thông thường bị tắt, tay điều khiển sẽ quay lại chế độ 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 đã thiết lập. 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 onLost. Sự kiện tương ứng là sự kiện phụ theo dõi Advt 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:

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 – Tham số lọc bộ APCF
APCF_Action 1 octet APCF_Action của lệnh quay lại
APCF_AvailableSpaces 1 octet Số mục nhập có sẵn trong bảng bộ lọc

Lệnh LE_APCF_cmd: broadcast_address_sub_cmd

Lệnh con này dùng để thêm hoặc xoá địa chỉ của nhà quảng cáo hoặc xoá danh sách địa chỉ của 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ỉ đài phát được chỉ định trong bộ lọc được chỉ định.
Thao tác xoá sẽ xoá mọi địa chỉ đài phát sóng trong bộ lọc đượ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ỉ đài phát
APCF_Application_Address_type 1 octet 0x00: Công khai
0x01: Ngẫu nhiên
0x02: NA (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ỉ).

Một sự kiện Lệnh hoàn tất sẽ được tạo 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ỉ bộ phát sóng APCF
APCF_Action 1 octet APCF_Action của lệnh quay lại
APCF_AvailableSpaces 1 octet Số lượng mục nhập miễn phí vẫn còn trong bảng Địa chỉ phát sóng

Lệnh LE_APCF_Command: service_uuid_sub_cmd

Lệnh con này dùng để thêm hoặc xoá một mã nhận dạng duy nhất (UUID) dịch vụ hoặc để xoá danh sách mã nhận dạng duy nhất (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 của dịch vụ được chỉ định trong bộ lọc được chỉ định.
Thao tác xoá sẽ xoá tất cả mã nhận dạng duy nhất (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 octet 2,4,16 Mã nhận dạng duy nhất (UUID) của dịch vụ (16 bit, 32 bit hoặc 128 bit) để thêm hoặc xoá khỏi danh sách.
APCF_UUID_MASK octet 2,4,16 Mặt nạ UUID dịch vụ (16 bit, 32 bit hoặc 128 bit) để thêm vào danh sách. Thuộc tính này phải có cùng độ dài với APCF_UUID.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 – Mã nhận dạng duy nhất (UUID) của dịch vụ APCF
APCF_Action 1 octet APCF_Action của lệnh quay lại
APCF_AvailableSpaces 1 octet Số lượng mục miễn phí vẫn còn trong bảng Mã nhận dạng duy nhất (UUID) của dịch vụ

Lệnh LE_APCF_Command: gạ_gờ_uuid_sub_cmd

Lệnh con này dùng để thêm hoặc xoá mã nhận dạng duy nhất (UUID) chào mời hoặc để xoá danh sách mã nhận dạng duy nhất (UUID) gạ gẫm để 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ỉ mã nhận dạng duy nhất (UUID) trong bộ lọc được chỉ định.
Thao tác xoá sẽ xoá tất cả các mã nhận dạng duy nhất (UUID) chào 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 octet 2,4,16 UUID (16 bit, 32 bit hoặc 128 bit) để thêm vào hoặc xoá khỏi danh sách.
APCF_UUID_MASK octet 2,4,16 Mặt nạ UUID (16 bit, 32 bit hoặc 128 bit) để thêm vào danh sách. Thuộc tính này phải có cùng độ dài với APCF_UUID.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 – Mã nhận dạng duy nhất (UUID) gây quỹ APCF
APCF_Action 1 octet APCF_Action của lệnh quay lại
APCF_AvailableSpaces 1 octet Số mục nhập miễn phí vẫn còn trong bảng Mã nhận dạng duy nhất (UUID) để gây quỹ

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ộ được chỉ định trong bộ lọc được chỉ định.
Thao tác xoá sẽ xoá tất cả chuỗi tên cục bộ trong bộ lọc đượ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 Một chuỗi ký tự cho tên trên máy.

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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 địa phương APCF
APCF_Action 1 octet APCF_Action của lệnh quay lại
APCF_AvailableSpaces 1 octet Số lượng mục nhập miễn phí vẫn còn trong bảng Tên cục bộ

Lệnh LE_APCF_Command: manf_data_sub_cmd

Lệnh con này dùng để thêm hoặc xoá một chuỗi dữ liệu của nhà sản xuất hoặc xoá danh sách chuỗi dữ liệu của 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 được chỉ định trong bộ lọc đã chỉ định.
Thao tác xoá sẽ xoá mọi chuỗi dữ liệu nhà sản xuất trong bộ lọc đượ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 Một chuỗi ký tự cho dữ liệu của nhà sản xuất.

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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 của nhà sản xuất APCF
APCF_Action 1 octet APCF_Action của lệnh quay lại
APCF_AvailableSpaces 1 octet Số lượng mục nhập miễn phí vẫn còn trong bảng Dữ liệu của 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 đã chỉ định.
Thao tác xoá sẽ xoá mọi chuỗi dữ liệu dịch vụ trong bộ lọc đượ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 một chuỗi tên cục bộ là 29
  • Không áp dụng khi tác vụ là "Xoá" (0x2)
APCF_LocName_Mandata_or_SerData_Mask Kích thước biến Mặt nạ dữ liệu dịch vụ để thêm vào danh sách. Thuộc tính này phải có cùng độ dài với APCF_LocName_or_ManData_or_SerData.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 quay lại
APCF_AvailableSpaces 1 octet Số lượng mục miễn phí vẫn còn cho bảng Dữ liệu dịch vụ

Lệnh LE_APCF_cmd: ad_type_sub_cmd

Lệnh con này dùng để thêm hoặc xoá một loại quảng cáo hoặc xoá danh sách loại quảng cáo để lọc trên chip. Hãy 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 bằng 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 quảng cáo 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 được chỉ định trong bộ lọc được chỉ định.
Thao tác xoá sẽ xoá mọi loại quảng cáo trong bộ lọc đượ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 vào hoặc xoá khỏi danh sách. Bỏ qua khi APCF_Action là 0x02 (Xoá)
APCF_AD_DATA_Length 1 octet 0x00 – có nghĩa là không lọc nội dung dữ liệu
Bỏ qua khi APCF_Action có giá trị 0x02 (Xoá)
APCF_AD_DATA Kích thước biến Có kích thước thay đổi, 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 thay đổi, dựa trên APCF_AD_DATA_Length
Bỏ qua khi APCF_Action là 0x02 (Xoá sạch)
Thành phần này phải có cùng độ dài với APCF_AD_DATA.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 quay lại
APCF_AvailableSpaces 1 octet Số lượng mục miễn phí vẫn còn trong bảng Loại quảng cáo

LE_APCF_Command: read_Expand_features_sub_cmd

Lệnh con 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 có Tham số lệnh trống.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 Transport Discovery Service
  • Bit 1: Hỗ trợ bộ lọc Loại quảng cáo
  • Bit 2 ~15: Được dành riêng để 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ề năng lượng và hoạt động của bộ điều khiển

Mục tiêu của thông tin này là giúp các chức năng của hệ thống lưu trữ cấp cao hơn phân tích tổng 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 macro 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 phải cung cấp những thông tin sau từ ngăn xếp BT và bộ đ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 bộ điều khiển
  • Chương trình cơ sở: Báo cáo thông tin tổng hợp về năng lượng và hoạt động

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

  • Rảnh: [quét trang, advt LE, quét truy vấn, quét LE]
  • Quét: [phân trang/yêu cầu/đang cố gắng kết nối]
  • Đang hoạt động: [Liên kết ACL đang bật, liên kết SCO đang diễn ra, chế độ sniff]

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

LE_Get_Controller_Activity_Energy_Info

Đây là một 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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 (trạng thái pin yếu không 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 (mili giây)]

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

Bạn có thể dùng lệnh này để cho phép khoảng thời gian và cửa sổ quét lớn hơn trong bộ điều khiển. Theo Thông số kỹ thuật BT Core 5.2, cửa sổ 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ở khoảng thời gian quét dài hơn 10,24 giây của ứng dụng.

Tài liệu tham khảo cơ sở: Thông số kỹ thuật BT Core 5.2, trang 2493 (Lệnh thông số quét thiết lập 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 có gói SCAN_REQ nào được gửi (mặc định).
0x01 – Đang quét. Có thể gửi SCAN_REQ gói.
LE_Ex_Scan_Interval 4 octet Được xác định là khoảng thời gian từ khi Bộ điều khiển bắt đầu quét LE gần đây nhất cho đến khi bắt đầu 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 gian quét LE. LE_Scan_Window sẽ 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ả các gói quảng cáo (mặc định). Các gói quảng cáo định hướng không có địa chỉ cho 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 định hướng không có địa chỉ cho thiết bị này sẽ bị bỏ qua.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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

Nhận lệnh cung cấp 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 bộ điều khiển do máy chủ lưu trữ cung cấp, ở dạng nhị phân, để xử lý và phân tích hậu kỳ. Việc này giúp gỡ lỗi các vấn đề tại hiện trường và cung cấp cho kỹ sư một bộ công cụ để ghi nhật ký thông tin cho mục đích phân tích. Đơn vị kiểm soát có thể cung cấp thông tin khi được máy chủ lưu trữ yêu cầu thông qua sự kiện (sự kiện phụ Thông tin gỡ lỗi của đơn vị kiểm soát) hoặc tự cung cấp theo ý muốn của đơn vị kiểm soát. Ví dụ về cách sử dụng: báo cáo thông tin trạng thái chương trình cơ sở, thông tin tệp kết xuất sự cố, 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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 của quy trình mã hoá âm thanh A2DP cho một bộ xử lý âm thanh gắn với Bộ điều khiển BT. Luồng dữ liệu âm thanh được mã hoá sẽ truyền trực tiếp từ Bộ xử lý âm thanh đến Bộ điều khiển BT mà không có sự tham gia của máy chủ BT. Máy chủ BT vẫn chịu trách nhiệm về cấu hình và điều khiển phiên A2DP. Có hai phiên bản của các lệnh này. Các lệnh cũ có Sub OCF 0x01-0x02 chỉ hỗ trợ bộ mã hoá và giải mã nguồn mở. Các phiên bản có Sub-OCF 0x02-0x03 không phụ thuộc vào bộ mã hoá và giải mã được đị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 cả để định cấu hình quy 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 cho phép (tính bằng mili giây). Giá trị bằng 0 sẽ tắt tính năng xả dữ liệu.
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.

Phần tám 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ỗi mẫu
0x02 – 24 bit mỗi mẫu
0x04 – 32 bit mỗi mẫu
Channel_Mode 1 octet 0x01 – Đơn âm
0x02 – Âm thanh nổi
Encoded_Audio_Bitrate 4 octet Tốc độ bit âm thanh được mã hoá tính bằng bit/giây.
0x00000000 – Tốc độ bit âm thanh không được chỉ định&clientsp;/& Tự chế độ sử dụng.
0x00000001 - 0x00FFFFFF – Tốc độ bit âm thanh được mã hoá tính bằng bit/giây.
0x01000000 – 0xFFFFFFFF – Đã đặt trước.
Connection_Handle 2 octet Đang định cấu hình tên người dùng kết nối của kết nối A2DP
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 có chứa các gói âm thanh được 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ể của Bộ mã hoá và giải mã SBC trong A2DP phiên bản 1.3.
Bộ bát phân 0: Độ dài khối | Băng tần con | Phương pháp phân bổ
Bộ bát phân 1: Giá trị nhóm Bitpool tối thiểu
Bộ bát phân 2: Giá trị tối đa của nhóm Bitpool
Bộ tám 3: Tần suất lấy mẫu | Chế độ kênh
Bộ tám 4-31: được dành riêng

Codec AAC:

Tham khảo phần tử thông tin cụ thể của AAC Codec trong A2DP v1.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

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

Tháng 6: Chỉ số tốc độ bit:
0x00 – Cao
0x01 – Trung bình
0x02 – Thấp
0x03 – 0x7E – Đặt trước
0x7F – ABR (Tốc độ bit thích ứng)
0x80 – 0xFF – Đặt trước

Bộ tám 7: Chế độ kênh LDAC
0x01 – Âm thanh nổi
0x02 – Kép
0x04 – Đơn âm
Một số khác được đặt trước

Ngày 8-31 tháng 10: đặt trước

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

Ngày 31 tháng 10: đặt trước

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 cả để định cấu hình quy 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 Tên người dùng của kết nối HCI đang hoạt động
L2CAP_Channel_ID 2 octet Số nhận dạng của kênh L2CAP đã mở để truyền trực tuyến A2DP
Data_Path_Direction 1 octet 0x00 – Đầu ra (Nguồn AVDTP/Hợp nhất)
0x01 – Đầu vào (Chia sẻ/chia sẻ AVDTP)
Peer_MTU 2 octet Kích thước tối đa của gói L2CAP được thương lượng với ứng dụng 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ậ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 quy định trong Số chỉ định Bluetooth, mục 6.3.2.
Bị bỏ qua khi tính năng Bảo vệ nội dung SCMS-T chưa được bật.
Vendor_Specific_Parameters_Length 1 octet Độ dài của các thông số cụ thể của nhà cung cấp, trong khoảng từ 0 đến 128.
Giá trị 0 được sử dụng khi không có tham số bổ sung nào được cung cấp.
Vendor_Specific_Parameters Số octet từ 0 đến 128 Các tham số dành riêng cho nhà cung cấp do HAL âm thanh Bluetooth cung cấp, CodecParameters.vendorSpecificParameters[].

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 giảm 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 đang trống.

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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 giảm tải A2DP.

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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 BT sẽ 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: Đơn vị kiểm soát sẽ định kỳ gửi một sự kiện phụ BQR liên quan đến Chất lượng đường liên kết cho máy chủ.
  • Sắp tiếp cận LSTO: Nếu không nhận được gói nào từ thiết bị BT đã kết nối trong hơn một nửa giá trị Link Tracking Tracking Time (LSTO), thì trình điều khiển sẽ báo cáo sự kiện LSTO đang tiếp cận cho máy chủ.
  • A2DP Audio Choppy: Khi phát hiện các yếu tố gây ra âm thanh bị giật, bộ điều khiển sẽ báo cáo sự kiện Choppy âm thanh A2DP cho máy chủ.
  • (e)SCO Voice Choppy: Khi phát hiện các yếu tố gây ra tình trạng giọng nói bị giật, bộ điều khiển sẽ báo cáo một (e) sự kiện SCO Voice Choppy cho máy chủ.
  • Root Inflammation: Sự kiện này được tay điều khiển gửi tới ngăn xếp khi HAL hoặc tay đ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ằng cách bắt tay thiết bị từ xa đến máy chủ.
  • Theo dõi lên lịch đa cấu hình/Coex qua Bluetooth: Bộ điều khiển sẽ gửi thông tin lên lịch về cách xử lý nhiều cấu hình Bluetooth và khả năng cùng tồn tại của mạng không dây ở băng tần 2,4 Ghz đến máy chủ.
  • Cơ chế Thông tin gỡ lỗi của bộ điều khiển: Khi được bật, tay điều khiển có thể tự báo cáo thông tin ghi nhật ký gỡ lỗi thông qua sự kiện phụ của thông tin gỡ lỗi của bộ điều khiển cho máy chủ lưu trữ.
  • Âm thanh năng lượng thấp: Khi phát hiện các yếu tố gây ra âm thanh bị giật, bộ điều khiển sẽ báo cáo sự kiện Choppy âm thanh năng lượng thấp cho máy chủ.
  • Chế độ Thống kê RF nâng cao: Bộ điều khiển báo cáo số liệu thống kê RF (tần số vô tuyến) liên quan đến thông tin về máy chủ, 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 luồng và trình kích hoạt sự kiện liên kết có chất lượng).
  • BQR_Report_Action của lệnh báo cáo chất lượng Bluetooth: Máy chủ có thể 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ế độ số liệu thống kê nâng cao về RF.

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á báo cáo(các) sự kiện có chất lượng cụ thể.
Thao tác xoá sẽ xoá mọi 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 Tiếp cận LSTO (dành cho ACL/(e)SCO/ISO).
Bit 2: Đặt để bật sự kiện Choppy âm thanh A2DP.
Bit 3: Đặt để bật (e) sự kiện Voice Choppy SCO.
Bit 4: Đặt để bật sự kiện viêm gốc.
Bit 5: Đặt để bật chế độ giám sát năng lượng.
Bit 6: Đặt để bật sự kiện giật âm thanh năng lượng thấp.
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ế độ Thống kê RF nâng cao.
Bit 9: Đặt để bật báo cáo định kỳ Số liệu thống kê nâng cao về tần số vô tuyến.
Bit 10 ~ 14: Được đặt trước.
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ập lịch đa liên kết/Coex qua Bluetooth.
Bit 18: Được đặt để bật cơ chế Thông tin gỡ lỗi của tay điều khiển.
Bit 19 ~ 30: Được đặt trước.
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. Chương trình cơ sở của bộ điều khiển không được báo cáo sự kiện tiếp theo trong khoảng thời gian đã quy đị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 vào.

Đơn vị: ms
Mặc định: 0 (Không giới hạn 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: Được dành riêng.

BQR_Vendor_Specific_Trace_Mask 4 octet Mặt nạ bit cho báo cáo theo dõi theo nhà cung cấp cụ thể đã 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: Được dành riêng.

Report_interval_multiple 4 octet Số nhân cho BQR_Minimum_Report_Interval. Khi giá trị này >= 1, Khoảng thời gian báo cáo BQR sẽ tuân theo định dạng
Khoảng thời gian báo cáo BQR = BQR_Minimum_Report_Interval x Report_interval_multiple.
Chương trình cơ sở 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 đã quy định. Tùy chọn 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 vào.

Đơn vị: ms
Mặc định: 1
Dải ô: 0 ~ 4294967295 (0: bằng với 1)

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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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: Phương thức tiếp cận để bật tính năng báo cáo sự kiện LSTO.
Bit 2: Tính năng báo cáo sự kiện Bị giật âm thanh A2DP đang bật.
Bit 3: (e)Tính năng báo cáo sự kiện SCO Voice Choppy đã bật.
Bit 4: Đã bật tính năng báo cáo sự kiện viêm gốc.
Bit 5: Chế độ giám sát năng lượng đang bật.
Bit 6: Tính năng báo cáo sự kiện giật âm thanh năng lượng thấp đang bật.
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ế độ Thống kê RF nâng cao.
Bit 9: Đặt để bật báo cáo Định kỳ về Số liệu thống kê nâng cao về tần số vô tuyến.
Bit 10 ~ 14: Được đặt trước.
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: Theo dõi thông báo LMP/LL được bật.
Bit 17: Bật tính năng theo dõi lập lịch đa liên kết/Coex qua Bluetooth.
Bit 18: Cơ chế Thông tin gỡ lỗi của tay điều khiển đang bật.
Bit 19 ~ 30: Được đặt trước.
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. Giá trị này phải là giá trị nhỏ nhất trong khoảng từ 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 Dynamic Audio Buffer (Vùng đệm âm thanh động)

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

OCF: 0x15F

Nhận tính năng thời gian đệm âm thanh

OCF phụ: 0x01

Dùng lệnh này để nhận tính năng thời gian đệm âm thanh từ bộ đ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ố Command trống

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 đệ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 dành riêng
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 sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 0 không được hỗ trợ.
Đơn vị: ms
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 octet Thời gian đệ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 sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 0 không được hỗ trợ.
Đơn vị: ms
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 sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 0 không được hỗ trợ.
Đơn vị: ms
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 sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 1 không được hỗ trợ.
Đơn vị: ms
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 sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 1 không được hỗ trợ.
Đơn vị: ms
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 Audio_Codec_Type_Supported.
Giá trị này sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 1 không được hỗ trợ.
Đơn vị: ms
...... ...... ......
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 sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 31 không được hỗ trợ.
Đơn vị: ms
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 octet Thời gian đệ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 sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 31 không được hỗ trợ.
Đơn vị: ms
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 sẽ là 0 nếu loại bộ mã hoá và giải mã Bit 31 không được hỗ trợ.
Đơn vị: ms

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

OCF phụ: 0x02

Dùng lệnh này để đặt thời gian vùng đệm âm thanh cho bộ đ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 lưu vào bộ đệm âm thanh bắt buộc cho bộ mã hoá và giải mã hiện đang sử dụng.
Đơn vị: ms

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 hiện tại của vùng đệm âm thanh trong bộ điều khiển Bluetooth.
Đơn vị: ms

Sự kiện HCI (dành riêng cho nhà cung cấp)

Bắt buộc phải có sự kiện HCI dành riêng cho nhà cung cấp trong một số trường hợp. Tham khảo Hình 5.4 trên trang 1897 của Thông số kỹ thuật 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 mã đó, 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 bằng 1 octet, byte ngay sau Độ dài tham 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 rằng ngưỡng bộ nhớ đã bị vi phạm.

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

Thông 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 nhiều quảng cáo LE

Sự kiện này cho biết rằng một phiên bản 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 một kết nối.

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

Thông số sự kiện phụ Kích thước Mục đích
Advertising_instance 1 octet Xác định phiên bản quảng cáo cụ thể
Các 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 khi nào một nhà quảng cáo được tìm thấy hoặc bị mất.

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

Thông 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: Nhà quảng cáo tìm thấy
0x01: Nhà quảng cáo bị thua
Advt_Info_Present 1 octet 0x00: Hiện có thông tin về nhà quảng cáo (Advt_Info)
0x01: Không có thông tin về nhà quảng cáo (Advt_Info)
Advertiser_Address 6 octet Địa chỉ công khai hoặc 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

Sự kiện phụ cho thông tin gỡ lỗi bộ điều khiển

Sự kiện này được Đơn vị kiểm soát sử dụng để 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

Thông số sự kiện phụ Kích thước Mục đích
debug_block_byte_offset_start 2 octet Gỡ lỗi bù trừ byte của khối từ đầu
last_block 1 octet 0x00: Hiện có nhiều dữ liệu gỡ lỗi hơn
0x01: Khối nhị phân cuối cùng; không còn dữ liệu gỡ lỗi
cur_pay_load_sz 2 octet Kích thước khối nhị phân trong 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ụ Báo cáo chất lượng Bluetooth

Sự kiện này cho biết một trong những trường hợp sau: đã xảy ra sự kiện chất lượng Bluetooth, tay đ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 qua Bluetooth Multi-link/Coex, hoặc trình điều khiển đã kết xuất dữ liệu thông tin gỡ lỗi.

Thông 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 ở chế độ giám sát.
0x02: Sắp đạt đến LSTO.
0x03: Bị giật âm thanh A2DP.
0x04: (e)SCO Voice Bị gián đoạn.
0x05 ~ 0x06: Đặt trước.
0x07: Âm thanh năng lượng thấp.
0x08: Không kết nối được.
0x09 ~ 0xFF: Đặt trước.
Packet_Types 1 octet 0x01: ID
0x02: 2 b.=0-0x0x0="2-0-0x0=0x0=0-0x0=0-0x3 class="2.0-0.0-0x0=0.0x0=0.0-0.0.2="2.0-0x0x<br="2.0-0.0-0.<br="2



























Connection_Handle 2 octet Xử lý kết nối ACL/(e)SCO/ISO.
Connection_Role 1 octet Thực hiện Vai trò cho kết nối.
0x00: Trung tâm
0x01: Thiết bị ngoại vi
0x02 ~ 0xFF: Đã đặt trước.
TX_Power_Level 1 octet Mức công suất truyền hiện tại cho Connection_Handle được chỉ định.

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

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

Giá trị Chỉ báo cường độ tín hiệu (RSSI) đã nhận cho Connection_Handle được chỉ định.
Giá trị này phải là giá trị cường độ tín hiệu tuyệt đối 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 nhiễu (SNR) cho Connection_Handle được chỉ định.
Bộ điều khiển sẽ cung cấp SNR trung bình của tất cả các kênh mà liên kết sử dụng.

Unused_AFH_Channel_Count 1 octet Cho biết số lượng kênh không sử 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ị can thiệp và có chất lượng kém, nhưng vẫn được chọn cho AFH.
Số lượng kênh tối thiểu mà thông số kỹ thuật Bluetooth cho phép 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ờ giám sát đường liên kết hiện tại.
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 được chỉ định.
Giá trị này phải giống với phản hồi của bộ điều khiển với lệnh HCI_Read_Watch HCI có tham số "Some_Watch" là 0x01 (Đồng hồ Piconet).
Đơn vị: N * 0,3125 mili giây (1 Đồng hồ Bluetooth)
Retransmission_Count 4 octet Số lượt truyền lại kể từ sự kiện gần đây nhất.
Số lượng 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ố RX nào kể từ sự kiện cuối cùng.
Số lượng tăng lên khi không có gói nào nhận được tại khoảng thời gian đã lên lịch hoặc gói nhận được bị lỗi.
Số lượng 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ố lượng NAK (Xác nhận phủ định) kể từ sự kiện gần nhất.
Số lượng 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 TX ACK gần đây nhất. Tính năng này hoạt động dựa trên Đồng hồ Bluetooth của biểu tượng trung tâm (CLK).
Đơn vị: N * 0,3125 mili giây (1 Đồng hồ Bluetooth)
Flow_Off_Count 4 octet Số lần đơn vị điều khiển nhận được thông báo Flow-off (STOP) kể từ sự kiện cuối cùng.
Số lượng 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 Quy trình cuối cùng (GO). Tính năng này hoạt động dựa trên Đồng hồ Bluetooth của biểu tượng trung tâm (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 cuối cùng.
Đơn vị kiểm soát sẽ đếm số byte dữ liệu được thả.
Số lượng 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ượng vùng đệm bị thiếu kể từ sự kiện gần đây nhất.
Số lượng 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ố mục hiệu chỉnh không thành công
TX_Total_Packets 4 octet Số gói gửi đi.
TX_UnAcked_Packets 4 octet Số gói tin không nhận được xác nhận.
Số lượng 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ố gói không được gửi đi bằng điểm xả.
Số lượng 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 con cuối cùng của sự kiện CIS.
Số lượng này được đặt lại sau khi báo cáo cho máy chủ lưu trữ.
Giá trị sẽ 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ố gói đã nhận có lỗi CRC kể từ sự kiện gần đây nhất.
Số lượng 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ố gói hàng trùng lặp (truyền lại) đã nhận được kể từ sự kiện gần đây nhất.
Số lượng 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 chưa 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 được liên kết là CIS và BIS.
Khi giá trị này tăng lên, Lớp liên kết sẽ 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 mà lớp này được liên kết (trên BIS; xem Thông số kỹ thuật cốt lõi Bluetooth Phiên bản 5.4 Vol 6 Phần B, Mục 4.4.6.6).
Coex_Info_Mask 2 octet Bit 0 – CoexInvolvement: Đặt để biểu thị các hoạt động coex bị nghi ngờ có liên quan khi báo cáo này được tạo (ví dụ: A2DP Chops và Tiếp cận LSTO).
Bit 1 - WL 2G Radio Active: Đặt để cho biết WLAN 2G Radio đang hoạt động.
Bit 2 – Đã kết nối WL 2G: Đặt để cho biết WLAN 2G Radio đang hoạt động và được kết nối.
Bit 3 – WL 5G/6G Radio Active: Đặt để cho biết WLAN 5G/6G Radio đang hoạt động.
Bit 4-15 – Được đặt trước
Thông số dành riêng cho nhà cung cấp (tổng độ dài thông số - TBD) * octet Để nhà cung cấp thiết bị điều khiển có được các thông số cụ thể hơn dành cho nhà cung cấp.

Mã sự kiện phụ = 0x58 [Quality_Report_Id = 0x05, Sự kiện viêm gốc]

Sự kiện này cho biết HAL Bluetooth 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 trường hợp này rồi khởi động lại. Trong mọi trường hợp, tay điều khiển phải gửi một Root_Inflammation_Event tới 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.

Tham số Error_Code chứa mã lỗi được báo cáo từ HAL/Controller, 0 nếu đó là lỗi cụ thể của nhà cung cấp chipset. Provider_Specific_Error_Code chứa mã lỗi cụ thể của nhà cung cấp bộ vi mạch từ HAL/Controller. Bạn phải đặt giá trị này là 0 nếu tham số Error_Code không phải là 0. Cả hai thông số Error_Code và Provider_Specific_Error_Code không được bằng 0.

Thông số sự kiện phụ Kích thước Mục đích
Quality_Report_Id 1 octet 0x00 ~ 0x04: Đã đặt trước.
0x05: viêm gốc.
0x06 ~ 0xFF: Đặt trước.
Error_Code 1 octet 0x00: Bao gồm mã lỗi cụ thể của nhà cung cấp chipset.
0x01 ~ 0xFF: Đã xảy ra lỗi bộ điều khiển. Hãy xem Thông số kỹ thuật Bluetooth [Vol 2] Phần D, Mã lỗi để biết danh sách các mã lỗi và nội dung mô tả.
Vendor_Specific_Error_Code 1 octet 0x00: Không kèm theo mã lỗi cụ thể của nhà cung cấp chipset.
0x01 ~ 0xFF: Mã lỗi cụ thể của nhà cung cấp bộ vi mạch.
Thông số dành riêng cho nhà cung cấp (Tổng độ dài tham số - 4) * octet Để nhà cung cấp thiết bị điều khiển có được các thông số cụ thể hơn dành cho nhà cung cấp.
Thông số sự kiện phụ Kích thước Mục đích
Quality_Report_Id 1 octet 0x00 ~ 0x10: Đặt trước.
0x11: Dấu vết thông báo LMP/LL.
0x12: Theo dõi lập lịch đa liên kết/Coex qua Bluetooth.
0x13: Tệp kết xuất dữ liệu Thông tin gỡ lỗi của đơn vị kiểm soát.
0x14 ~ 0xFF: Đặt trước.
Connection_Handle 2 octet Ô điều khiển kết nối.
Thông số dành riêng cho nhà cung cấp (Tổng độ 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 qua Bluetooth Multi-link/Coex và tệp kết xuất dữ liệu Thông tin gỡ lỗi của đơn vị kiểm soát.

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

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

  • Có thể hỗ trợ nhiều quảng cáo (max_advt_instances)
  • Công suất phát khác nhau để cho phép phạm vi khác nhau
  • Nội dung quảng cáo khác nhau
  • 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) của mỗi nhà quảng cáo
  • Có thể kết nối

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

Lệnh 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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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ơ bản: Thông số kỹ thuật Bluetooth Core 4.1, trang 964 (Lệnh LE Set Advertising Parameters Command)

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 khả năng áp dụng của các tham số trên cho một thực thể
Tx_power 1 octet Truyền_Power
Đơn vị – tính bằng dBm (số nguyên đã ký)
Phạm vi (-70 đến +20)

Thông số Own_Address có thể là một địa chỉ do máy chủ định cấu hình tại thời điểm thiết lập phiên bản nhiều quảng cáo này. Điều này mang lại khả năng có một địa chỉ riêng tư có thể phân giải vào thời điểm truyền tín hiệu đầu tiên. Quảng cáo trong một phiên bản sẽ tiếp tục bất kể kết nối. Ngăn xếp BT 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.

Một sự kiện Lệnh hoàn tất sẽ được tạo cho lệnh này, như đã chỉ định trong Thông số kỹ thuật Bluetooth Core 4.1, theo lệnh trên. Bộ điều khiển sẽ phản hồi bằng một 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 0x01 [Set_Advt_Param_Multi_Sub_Cmd]

Lệnh LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd

Tài liệu tham khảo cơ sở: Thông số kỹ thuật Bluetooth Core 4.1, trang 969 (Lệnh LE Set Advertising Data)

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 khả năng áp dụng của các tham số trên cho một thực thể

Một sự kiện Lệnh hoàn tất sẽ được tạo cho lệnh này, như đã chỉ định trong Thông số kỹ thuật Bluetooth Core 4.1, theo lệnh trên. Bộ điều khiển sẽ phản hồi bằng một 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_Quét_Resp_Data_Multi_Sub_Cmd

Tài liệu tham khảo cơ sở: Thông số kỹ thuật Bluetooth Core 4.1, trang 970 (Lệnh dữ liệu phản hồi quét khi quét 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 khả năng áp dụng của các tham số trên cho một thực thể

Một sự kiện Lệnh hoàn tất sẽ được tạo cho lệnh này, như đã chỉ định trong Thông số kỹ thuật Bluetooth Core 4.1, theo lệnh trên. Bộ điều khiển sẽ phản hồi bằng một 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

Thông tin tham khảo cơ sở: Thông số kỹ thuật Bluetooth Core 4.1, trang 963 (Lệnh địa chỉ ngẫu nhiên đặt 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 khả năng áp dụng của các tham số trên cho một thực thể

Một sự kiện Lệnh hoàn tất sẽ được tạo 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]

Lệnh 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 (Bộ LE Set QUẢNG CÁO Bật lệnh 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. Bất kỳ giá trị nào khác có nghĩa là vô hiệu hoá.
Advertising_Instance 1 octet Chỉ định khả năng áp dụng của các tham số trên cho một thực thể. Phiên bản 0 là phiên bản HCI chuẩn.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 cho địa chỉ cá nhân

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

  • Độ trễ liên quan đến máy chủ 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ủ

Thời gian chờ_Đặt_RPA_LE_Đặt

OCF: 0x15C

Tham số lệnh Kích thước Mục đích
LE_local_IRK octet 16 IRK thiết bị cục bộ dùng để tạo(các) địa chỉ có thể phân giải ngẫu nhiên.
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 các địa chỉ mới có thể phân giả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ối đa để tạo RPA tính bằng giây. Bộ điều khiển phải tạo các địa chỉ mới có thể phân giả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.

Các giá trị trạng thái HCI nên dùng:
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ó bất kỳ tham số nào nằm ngoài phạm vi đã cho)

Lệnh 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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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: Bật_serve_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 giảm tải
0x00 – Tắt tính năng RPA giảm tải

Máy chủ lưu trữ yêu cầu bật tính năng giảm tải RPA dựa trên chức năng của chip. Tham khảo LE_Get_Vendor_Capabilities_Command. Mỗi chip có thể có một max_irk_list_sz khác nhau trong chương trình cơ sở.

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 (LSB byte thứ 1)
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 (LSB byte thứ 1)

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 IRS có sẵn sau hoạt động 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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 [Xóa IRK khỏi danh sách]
LE_IrkList_AvailableSpaces 1 octet Các mục trong danh sách IRS có sẵn sau hoạt động hiện tại

LE_RPA_offload: Xóa_IRK_list_sub_Command

OCF phụ: 0x04

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

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 nhập có sẵn trong danh sách Irl sau hoạt động 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]

Một sự kiện Lệnh hoàn tất sẽ được tạo 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 nhập 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 danh sách IRK tối đa 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 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ó thể giải quyết của IRK này