Giao diện bộ điều khiển máy chủ (HCI) được sử 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 HCI Bluetooth (BT) và Bluetooth Low Energy (BLE). Mục đích là để các nhà cung cấp ngăn xếp Host BT và nhà cung cấp bộ điều khiển BT tuân thủ các yêu cầu nền tảng này để sử dụng bộ tính năng được mô tả bên dưới.
Tài liệu này gọi 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ó sẵn 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
Khả năng và cấu hình chip
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, OEM, nhà cung cấp cũng như khả năng của nền tảng và chip.
Để quản lý bối cảnh khác nhau và quản lý việc di chuyển, triết lý thiết kế cho phép bộ điều khiển BT phát huy khả năng của chúng (ngoài Thông số kỹ thuật Bluetooth Core 5.2 tiêu chuẩn) được mô tả trong tài liệu này. Sau đó, ngăn xếp BT máy chủ có thể sử dụng các khả năng này để xác định nên bật tính năng nào.
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 đặc tả Bluetooth. Nếu một tính năng được mô tả bên dưới khả dụng trong các phương pháp HCI tiêu chuẩn trong thông số kỹ thuật Bluetooth trong tương lai, chúng tôi sẽ hướng tới việc đặt phương pháp đó thành mặc định.
Khả 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 cỡ | Mục đích |
---|---|---|
NA | Danh sách tham số lệnh trống |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành 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ợ. Dự trữ sau v0.98. Thông số này không được dùng nữa trong thông số tính năng của Google v0.98 trở lên và thay vào đó là Quảng cáo mở rộng LE có sẵn trong thông số 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 chip BT của RPA. Nếu được hỗ trợ bởi chip, nó cần được máy chủ hỗ trợ. 0 = Không có khả năng 1 = Có khả năng Dự trữ sau v0.98. Tham số này không được dùng nữa trong thông số kỹ thuật của Google v0.98 trở lên và thay vào đó là tính năng Bảo mật có sẵn trong thông số BT phiên bản 4.2 trở lên. |
total_scan_results_storage | 2 octet | Lưu trữ kết quả quét theo byte |
max_irk_list_sz | 1 octet | Số mục 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ố lượng bộ lọc được hỗ trợ |
activity_energy_info_support | 1 octet | Hỗ trợ báo cáo hoạt động và thông tin 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 tả tính năng của Google được hỗ trợ byte[0] = Số chính byte[1] = Số phụ 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ợ cửa sổ và khoảng thời gian quét mở rộng |
debug_logging_supported | 1 octet | Hỗ trợ ghi 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ợ Dự trữ sau v0.98. Tham số này không được dùng nữa trong thông số kỹ thuật của Google v0.98 trở lên và thay vào đó là tính năng Bảo mật có sẵn trong thông số 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 codec được hỗ trợ Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 được bảo lưu |
bluetooth_quality_report_support | 1 octet | Hỗ trợ báo cáo các 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ợ bộ đệm âm thanh động trong bộ điều khiển Bluetooth Mặt nạ bit cho các loại codec được hỗ trợ Bit 0 - SBC Bit 1 - AAC Bit 2 - APTX Bit 3 - APTX HD Bit 4 - LDAC Bit 5-31 được bảo lưu |
a2dp_offload_v2_support | 1 octet | Hỗ trợ các lệnh A2dp Offload v2 trong bộ điều khiển Bluetooth (xem Bắt đầu giảm tải A2DP , Dừng tải xuống A2DP ) 0 = Không được hỗ trợ 1 = Được hỗ trợ |
Nhóm kết quả quét
Mục tiêu thiết kế là nâng cao cách gửi thông báo sự kiện Phản hồi quét Bluetooth LE đến máy chủ để tiết kiệm năng lượng trong máy chủ.
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 máy chủ để quét kết quả, bộ xử lý ứng dụng máy chủ 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 lưu trữ kết quả quét của chip.
Tính năng này tập trung vào việc quản lý và cấu hình phương tiện lưu trữ Kết quả Quét LE trong bộ điều khiển Bluetooth. Bộ lưu trữ được sử dụng để tạm thời xử lý dữ liệu quảng cáo theo nhóm cũng như quét dữ liệu và siêu dữ liệu mà bộ điều khiển nhận được để gửi đến máy chủ sau này.
Phần sụn sẽ hỗ trợ hai loại phân khối, có thể được thực hiện đồng thời:
- Bị cắt ngắn. Chứa các thành phần 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, Dấu thời gian, Dữ liệu Adv, Phản hồi quét}
LE_Batch_Scan_Command
OCF: 0x156
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
Batch_Scan_opcode | 1 octet | 0x1 - Kích hoạt tính năng dành riêng cho khách hàng 0x2 - Đặt tham số Lưu trữ 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 Hoàn thành lệnh sẽ được tạo 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 cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Batch_Scan_opcode | 1 octet | 0x1 - Kích hoạt tính năng dành riêng cho khách hàng 0x2 - Đặt tham số Lưu trữ 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: Kích hoạt tính năng dành riêng cho khách hàng
OCF phụ: 0x01
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
enable_customer_specific_feature_set | 1 octet | 0x01 - Kích hoạ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 Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Batch_Scan_opcode | 1 octet | 0x1 - Kích hoạt tính năng dành riêng cho khách hàng 0x2 - Đặt tham số Lưu trữ 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 phụ Thông số lưu trữ quét hàng loạt
OCF phụ: 0x02
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
Batch_Scan_Full_Max | 1 octet | Dung lượng 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 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 lưu trữ riêng lẻ [Phạm vi: 0-100] Đặ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 lưu trữ) |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Batch_scan_opcode | 1 octet | 0x02 [Đặt tham số Quét hàng loạt] |
LE_Batch_Scan_Command: Đặt lệnh phụ Thông số quét hàng loạt
OCF phụ: 0x03
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
Batch_Scan_Mode | 1 octet | 0x00 – Quét hàng loạt bị tắt 0x01 – Chế độ cắt ngắn được bật 0x02 - Chế độ đầy đủ được bật 0x03 - Chế độ cắt ngắn và đầy đủ được bật |
Duty_cycle_scan_window | 4 octet | Thời gian quét quét hàng loạt (số khe) |
Duty_cyle_scan_interval | 4 octet | Khoảng thời gian quét hàng loạt (số vị trí) |
own_address_type | 1 octet | 0x00 - Địa chỉ thiết bị công cộng 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 Quét cắt ngắn, kết quả được lưu trữ ở dạng rút gọn trong đó khóa duy nhất cho kiểu Cắt ngắn = { 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 ngắn như sau: { BD_ADDR
, Tx Power, RSSI, Timestamp}
Khi chế độ Toàn bộ được bật, 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. Khóa 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ế độ Đầy đủ là { BD_ADDR
, Tx Power, RSSI, Timestamp, Ad packet, Scan Response}. Ở kiểu Đầy đủ, cùng một gói AD, khi được nhìn 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ế độ Cắt ngắn, điều đáng quan tâm là khả năng hiển thị BA_ADDR
qua 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 khoảng thời gian quét.
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Batch_scan_opcode | 1 octet | 0x03 [Đặt tham số quét hàng loạt] |
LE_Batch_Scan_Command: Lệnh phụ Đọc kết quả quét hàng loạt
OCF phụ: 0x04
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
Batch_Scan_Data_read | 1 octet | 0x01 - Dữ liệu chế độ cắt ngắn 0x02 – Dữ liệu chế độ đầy đủ |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này. Khi máy chủ đưa ra lệnh này, tất cả cá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 thành lệnh. Máy chủ sẽ lặp lại việc phát lệnh này cho đến khi kết quả tương ứng trong sự kiện Hoàn thành Lệnh cho biết số lượng bản ghi là 0, điều này 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 Hoàn thành Lệnh có thể chứa nhiều bản ghi chỉ của một loại dữ liệu (Đầy đủ hoặc Bị cắt bớt).
Tham chiếu thời gian của bộ điều khiển và máy chủ không được đồng bộ hóa. Đơn vị của dấu thời gian là 50ms. Giá trị của dấu thời gian được dựa trên khi máy chủ cung cấp Read_Batch_Scan_Results_Sub_cmd
. Nếu thời gian đến lệnh là T_c
trong phần sụn thì thời gian thực tế mà dấu thời gian được lấy trong phần sụn là T_fw
. Thời gian báo cáo sẽ là: ( T_c
- T_fw
). T_c
và T_fw
nằm trong miền thời gian của phần sụn. Điều này cho phép máy chủ tính toán sự kiện đã xảy ra cách đây bao lâu.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Batch_scan_opcode | 1 octet | 0x03 [Đặt tham số Quét hàng loạt] |
Batch_Scan_data_read | 1 octet | Xác định định dạng (Cắt ngắn hoặc Đầy đủ) |
num_of_records | 1 octet | Số lượng bản ghi Batch_Scan_data_read |
format_of_data | Biến đổi | Chế độ cắt ngắn: Địa chỉ[0]: 6 octet Địa chỉ_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0] : 1 octet Dấu thời gian[0]: 2 octet [nhiều bản ghi ( num_of_records ) với định dạng trên]Chế độ đầy đủ: Địa chỉ[0]: 6 octet Địa chỉ_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0]: 1 octet Dấu thời gian[0]: 2 octet Gói Adv_len[0]: 1 octet Adv_packet[0]: Adv_packet_len octet Scan_data_resp_len[0]: 1 octet Scan_data_resp[0]: Các octet Scan_data_resp [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 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ộ điều khiển nhưng không lọc quảng cáo định kỳ.
LE_APCF_Lệnh
OCF: 0x157
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
APCF_opcode | 1 octet | 0x00 - Kích hoạt APCF 0x01 - APCF Đặt tham số lọc 0x02 - Địa chỉ đài truyền hình APCF 0x03 - UUID dịch vụ APCF 0x04 - UUID chào mời dịch vụ APCF 0x05 - Tên địa phương APCF 0x06 - Dữ liệu nhà sản xuất APCF 0x07 - Dữ liệu dịch vụ APCF 0x08 - Dịch vụ khám phá vận tải APCF 0x09 - Bộ lọc loại quảng cáo APCF 0x10 ~ 0xAF - Dự trữ để sử dụng trong tương lai 0xB0 ~ 0xDF - Dành riêng cho nhà cung cấp 0xE0 ~ 0xFE - Dự trữ để sử dụng trong tương lai 0xFF - APCF Đọc các tính năng mở rộng |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái trả lại |
APCF_opcode | 1 octet | 0x00 - Kích hoạt APCF 0x01 - APCF Đặt tham số lọc 0x02 - Địa chỉ đài truyền hình APCF 0x03 - UUID dịch vụ APCF 0x04 - UUID chào mời dịch vụ APCF 0x05 - Tên địa phương APCF 0x06 - Dữ liệu nhà sản xuất APCF 0x07 - Dữ liệu dịch vụ APCF 0x08 - Dịch vụ khám phá vận tải APCF 0x09 - Bộ lọc loại quảng cáo APCF 0x10 ~ 0xAF - Dự trữ để sử dụng trong tương lai 0xB0 ~ 0xDF - Dành riêng cho nhà cung cấp 0xE0 ~ 0xFE - Dự trữ để sử dụng trong tương lai 0xFF - APCF Đọc các tính năng mở rộng |
LE_APCF_Lệnh: Enable_sub_cmd
OCF phụ: 0x00
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_enable | 1 octet | 0x01 - Kích hoạt tính năng APCF 0x00 - Tắt tính năng APCF |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x0 - Kích hoạt APCF |
APCF_Enable | 1 octet | Bật/tắt được đặt qua APCF_enable |
LE_APCF_Command: set_filtering_parameters_sub_cmd
Lệnh phụ này được sử dụng để thêm hoặc xóa thông số bộ lọc hoặc xóa danh sách bộ lọc để lọc trên chip.
OCF phụ: 0x01
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Action | 1 octet | 0x00 - Thêm 0x01 - Xóa 0x02 - Xóa Xóa sẽ xóa bộ lọc cụ thể cùng với các mục nhập tính năng liên quan trong các bảng khác. Xóa sẽ xóa tất cả các bộ lọc và các mục liên quan trong các bảng khác. |
APCF_Filter_Index | 1 octet | Chỉ số 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ỉ quảng bá Bit 1: Đặt để bật bộ lọc Thay đổi dữ liệu dịch vụ Bit 2: Đặt để bật kiểm tra UUID dịch vụ Bit 3: Đặt để bật kiểm tra UUID yêu cầu dịch vụ Bit 4: Đặt để bật kiểm tra Tên cục bộ Bit 5: Đặt để bật Kiểm tra dữ liệu nhà sản xuất Bit 6: Đặt để bật Kiểm tra dữ liệu dịch vụ Bit 7: Đặt để bật Kiểm tra dịch vụ khám phá vận chuyển Bit 8: Đặt để bật Kiểm tra loại quảng cáo |
APCF_List_Logic_Type | 2 octet | Hoạt động logic cho từng 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 kích hoạt. Giá trị vị trí bit: 0: HOẶC 1: VÀ Nếu logic "AND" được chọn, gói ADV sẽ chỉ vượt qua bộ lọc nếu nó chứa TẤT CẢ các mục trong danh sách. Nếu logic "HOẶC" được chọn, gói ADV sẽ vượt qua bộ lọc nếu nó chứa bất kỳ mục nào trong danh sách. |
APCF_Filter_Logic_Type | 1 octet | 0x00: HOẶC 0x01: VÀ Lưu ý: Loại logic là N/A cho ba trường đầu tiên của APCF_Feature_Selection , luôn là logic "AND". Chúng chỉ áp dụng cho (Bit 3 - Bit 6) bốn trường APCF_Feature_Selection . |
rssi_high_thresh | 1 octet | [tính bằng dBm] Nhà quảng cáo chỉ được coi là đã nhìn thấy nếu tín hiệu cao hơn ngưỡng cao RSSI. Nếu không, phần sụn phải hoạt động như thể nó 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_mode là on_found .[tính bằng mili giây] Đã đến lúc phần sụn tồn tạ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_mode là on_found .[đếm] Nếu một quảng cáo trong onFound tồn tại trong chương trình cơ sở trong khoảng thời gian onfound_timeout , nó sẽ thu thập một vài quảng cáo và số lượng sẽ được kiểm tra. Nếu số lượng vượt quá onfound_timeout_cnt thì nó sẽ được báo cáo OnFound ngay sau đó. |
rssi_low_thresh | 1 octet | Chỉ hợp lệ nếu delivery_mode là on_found .[tính bằng dBm] Gói của nhà quảng cáo được coi là không được nhìn thấy nếu RSSI của gói nhận được không vượt quá ngưỡng thấp RSSI. |
onlost_timeout | 2 octet | Chỉ hợp lệ nếu delivery_mode là on_found .[tính bằng mili giây] Nếu một quảng cáo sau khi được tìm thấy không được nhìn thấy liên tục trong khoảng thời gian lost_timeout thì ngay lập tức nó sẽ bị báo mất. |
num_of_tracking_entries | 2 octet | Chỉ hợp lệ nếu delivery_mode là on_found .[đếm] Tổng số nhà quảng cáo cần theo dõi trên mỗi bộ lọc. |
Giá trị RSSI phải sử dụng phần bù 2 để biểu thị giá trị âm.
Máy chủ sẽ có thể định cấu hình nhiều bộ lọc với APCF_Application_Address_type
được đặt thành 0x02 (cho tất cả các địa chỉ của đài truyền hình) để quản lý các kết hợp bộ lọc khác nhau.
Lọc, phân nhóm và báo cáo là các khái niệm liên quan đến nhau. Mọi quảng cáo và phản hồi quét liên quan sẽ phải lần lượt đi qua tất cả các bộ lọc. Do đó, các hành động kết quả ( delivery_mode
) gắn chặt với việc lọc. Các chế độ phân phối như sau: report_immediately
, batch
và onFound
. Giá trị OnLost
liên quan đến OnFound
theo nghĩa là nó sẽ xuất hiện sau OnFound
khi bị mất.
Luồng 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), nó sẽ được áp dụng cho tất cả các bộ lọc theo thứ tự nối tiếp. Có thể một quảng cáo có thể gây ra báo cáo ngay lập tức dựa trên một bộ lọc và phân nhóm các bộ lọc đó do một hành động lọc khác.
Ngưỡng mức RSSI (cao và thấp) cung cấp khả năng kiểm soát thời điểm hiển thị khung để 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 đợt, RSSI của khung sẽ được xem xét để xử lý bộ điều khiển tiếp theo. Các ứng dụng khác nhau cần có hành vi báo cáo và phân nhóm khác nhau. Điều này cho phép nhiều ứng dụng có báo cáo trực tiếp và/hoặc nhóm kết quả trong chương trình cơ sở cùng một lúc. Một ví dụ là trường hợp quét hàng loạt được kích hoạt từ một ứng dụng và sau đó quét LE thông thường được thực hiện bởi một ứng dụng khác. Trước khi thực hiệ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 tiến hành quét thường xuyên, đợt quét trước đó vẫn tiếp tục. Tuy nhiên, do quá trình quét thường xuyên, về mặt khái niệm, nó giống như việc thêm 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 được ưu tiên khi hoạt động. Khi quá trình quét LE thông thường bị vô hiệu hóa, bộ điều khiển sẽ hoàn nguyên về quá trình quét hàng loạt trước đó, nếu nó tồn tại.
Chế độ phân phối OnFound
dựa trên các bộ lọc đã định cấu hình. Sự kế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 LE Advt.
Quá trình chuyển đổi OnFound/OnLost
cho bộ lọc (nếu được bật) sẽ giống như sau:
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x01 - APCF Đặt tham số lọc |
APCF_Action | 1 octet | Phản hồi lại APCF_Action của lệnh |
APCF_AvailableSpaces | 1 octet | Số mục có sẵn trong bảng bộ lọc |
LE_APCF_Lệnh: Broadcast_address_sub_cmd
Lệnh phụ này được sử dụng để thêm hoặc xóa địa chỉ của nhà quảng cáo hoặc xóa danh sách địa chỉ của nhà quảng cáo để lọc trên chip.
OCF phụ: 0x02
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Action | 1 octet | 0x00 - Thêm 0x01 - Xóa 0x02 - Xóa Xóa sẽ xóa địa chỉ đài phát đã chỉ định trong bộ lọc đã chỉ định. Xóa sẽ xóa tất cả các địa chỉ đài truyền hình trong bộ lọc được chỉ định. |
APCF_Filter_Index | 1 octet | Chỉ số 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 xóa 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 (loại địa chỉ không áp dụng) |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x02 - Địa chỉ đài truyền hình APCF |
APCF_Action | 1 octet | Phản hồi lại APCF_Action của lệnh |
APCF_AvailableSpaces | 1 octet | Số mục miễn phí vẫn có sẵn trong bảng Địa chỉ quảng bá |
LE_APCF_Lệnh: dịch vụ_uuid_sub_cmd
Lệnh con này được sử dụng để thêm hoặc xóa UUID dịch vụ hoặc xóa danh sách UUID dịch vụ để lọc trên chip.
OCF phụ: 0x03
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Action | 1 octet | 0x00 - Thêm 0x01 - Xóa 0x02 - Xóa Xóa sẽ xóa địa chỉ UUID dịch vụ được chỉ định trong bộ lọc được chỉ định. Xóa sẽ xóa tất cả các UUID dịch vụ trong bộ lọc được chỉ định. |
APCF_Filter_Index | 1 octet | Chỉ số 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 hoặc xóa khỏi danh sách. |
APCF_UUID_MASK | 2,4,16 octet | Mặt nạ UUID dịch vụ (16-bit, 32-bit hoặc 128-bit) để thêm vào danh sách. Nó phải có cùng độ dài với APCF_UUID. |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x03 - UUID dịch vụ APCF |
APCF_Action | 1 octet | Phản hồi lại APCF_Action của lệnh |
APCF_AvailableSpaces | 1 octet | Số mục miễn phí vẫn có trong bảng UUID dịch vụ |
LE_APCF_Command: chào mời_uuid_sub_cmd
Lệnh con này được sử dụng để thêm hoặc xóa UUID chào mời hoặc xóa danh sách UUID chào mời để lọc trên chip.
OCF phụ: 0x04
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Action | 1 octet | 0x00 - Thêm 0x01 - Xóa 0x02 - Xóa Xóa sẽ xóa địa chỉ UUID chào mời trong bộ lọc được chỉ định. Xóa sẽ xóa tất cả các UUID chào mời trong bộ lọc được chỉ định. |
APCF_Filter_Index | 1 octet | Chỉ số bộ lọc (0, max_filter -1) |
APCF_UUID | 2,4,16 octet | UUID chào mời (16-bit, 32-bit hoặc 128-bit) để thêm hoặc xóa khỏi danh sách. |
APCF_UUID_MASK | 2,4,16 octet | Mặt nạ UUID chào mời (16-bit, 32-bit hoặc 128-bit) để thêm vào danh sách. Nó phải có cùng độ dài với APCF_UUID . |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x04 - UUID chào mời APCF |
APCF_Action | 1 octet | Phản hồi lại APCF_Action của lệnh |
APCF_AvailableSpaces | 1 octet | Số lượng mục miễn phí vẫn có sẵn trong bảng UUID chào mời |
LE_APCF_Lệnh: local_name_sub_cmd
Lệnh phụ này được sử dụng để thêm hoặc xóa chuỗi tên cục bộ hoặc xóa danh sách chuỗi tên cục bộ để lọc trên chip.
OCF phụ: 0x05
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Action | 1 octet | 0x00 - Thêm 0x01 - Xóa 0x02 - Xóa Xóa sẽ xóa chuỗi tên địa phương được chỉ định trong bộ lọc đã chỉ định. Xóa sẽ xóa tất cả các chuỗi tên cục bộ trong bộ lọc đã chỉ định. |
APCF_Filter_Index | 1 octet | Chỉ số bộ lọc (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Kích thước thay đổi | Một chuỗi ký tự cho tên địa phương. Ghi chú:
|
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x05 - Tên địa phương APCF |
APCF_Action | 1 octet | Phản hồi lại APCF_Action của lệnh |
APCF_AvailableSpaces | 1 octet | Số mục miễn phí vẫn còn trong bảng Tên địa phương |
LE_APCF_Lệnh: manf_data_sub_cmd
Lệnh con này được sử dụng để thêm hoặc xóa chuỗi dữ liệu của nhà sản xuất hoặc xóa 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 phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Action | 1 octet | 0x00 - Thêm 0x01 - Xóa 0x02 - Xóa Xóa sẽ xóa chuỗi dữ liệu nhà sản xuất đã chỉ định trong bộ lọc đã chỉ định. Xóa sẽ xóa tất cả các chuỗi dữ liệu của nhà sản xuất trong bộ lọc được chỉ định. |
APCF_Filter_Index | 1 octet | Chỉ số bộ lọc (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Kích thước thay đổi | Một chuỗi ký tự cho dữ liệu nhà sản xuất. Ghi chú:
|
APCF_ManData_Mask | Kích thước thay đổi | Mặt nạ dữ liệu sản xuất để thêm vào danh sách. Nó phải có cùng độ dài với APCF_LocName_or_ManData_or_SerData . |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x06 - Dữ liệu nhà sản xuất APCF |
APCF_Action | 1 octet | Phản hồi lại APCF_Action của lệnh |
APCF_AvailableSpaces | 1 octet | Số mục miễn phí vẫn có trong bảng Dữ liệu nhà sản xuất |
LE_APCF_Command: dịch vụ_data_sub_cmd
Lệnh con này được sử dụng để thêm hoặc xóa chuỗi dữ liệu dịch vụ hoặc xóa danh sách chuỗi dữ liệu dịch vụ để lọc trên chip.
OCF phụ: 0x07
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Action | 1 octet | 0x00 - Thêm 0x01 - Xóa 0x02 - Xóa Xóa sẽ xóa chuỗi dữ liệu dịch vụ đã chỉ định trong bộ lọc đã chỉ định. Xóa sẽ xóa tất cả các chuỗi dữ liệu dịch vụ trong bộ lọc được chỉ định. |
APCF_Filter_Index | 1 octet | Chỉ số bộ lọc (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData | Kích thước thay đổi | Một chuỗi ký tự cho dữ liệu dịch vụ. Ghi chú:
|
APCF_LocName_Mandata_or_SerData_Mask | Kích thước thay đổi | Mặt nạ dữ liệu dịch vụ để thêm vào danh sách. Nó phải có cùng độ dài với APCF_LocName_or_ManData_or_SerData. |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x07 - Dữ liệu dịch vụ APCF |
APCF_Action | 1 octet | Phản hồi lại APCF_Action của lệnh |
APCF_AvailableSpaces | 1 octet | Số mục miễn phí vẫn có sẵn cho bảng Dữ liệu Dịch vụ |
LE_APCF_Lệnh: ad_type_sub_cmd
Lệnh phụ này được sử dụng để thêm hoặc xóa loại AD hoặc xóa 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.
OCF phụ: 0x09
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Action | 1 octet | 0x00 - Thêm 0x01 - Xóa 0x02 - Xóa Xóa sẽ xóa loại AD được chỉ định trong bộ lọc được chỉ định. Xóa sẽ xóa tất cả các loại AD trong bộ lọc được chỉ định. |
APCF_Filter_Index | 1 octet | Chỉ số bộ lọc (0, max_filter -1) |
APCF_AD_TYPE | 1 octet | Loại AD để thêm hoặc xóa khỏi danh sách. Bỏ qua khi APCF_Action là 0x02 (Xóa) |
APCF_AD_DATA_Length | Kích thước thay đổi | 0x00 - có nghĩa là không lọc nội dung dữ liệu Bỏ qua khi APCF_Action là 0x02 (Xóa) |
APCF_AD_DATA | Kích thước thay đổi | Bỏ qua khi APCF_Action là 0x02 (Xóa) |
APCF_AD_DATA_MASK | Kích thước thay đổi | Bỏ qua khi APCF_Action là 0x02 (Xóa) Nó phải có cùng độ dài với APCF_AD_DATA . |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0x09 - Loại quảng cáo APCF |
APCF_Action | 1 octet | Phản hồi lại APCF_Action của lệnh |
APCF_AvailableSpaces | 1 octet | Số mục miễn phí vẫn có trong bảng Loại AD |
LE_APCF_Command: read_extends_features_sub_cmd
Lệnh con này được sử dụng để đọc các tính năng APCF mở rộng.
OCF phụ: 0xFF
Tham số lệnh phụ | Kích cỡ | Mục đích |
---|---|---|
Không áp dụng | Tham số lệnh trống. |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
APCF_opcode | 1 octet | 0xFF - APCF_Read_Extends_Features |
APCF_extended_features | 2 octet | Mặt nạ bit cho các tính năng mở rộng được hỗ trợ:
Giá trị của bit
|
Lệnh điều khiển hoạt động và thông tin năng lượng
Mục tiêu của thông tin này là để các chức năng hệ thống máy chủ cao hơn phân tích hoạt động tổng thể của tất cả các thành phần, bao gồm bộ điều khiển BT và trạng thái vĩ mô của nó, cùng với những gì đang xảy ra trong ứng dụng và khung. Để thực hiện việc này, thông tin sau được yêu cầu 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
- Firmware: Báo cáo tổng hợp hoạt động và thông tin năng lượng
Trạng thái macro ngăn xếp máy chủ BT, như được xác định ở cấp độ người dùng:
- Nhàn rỗi: [quét trang, LE advt, quét yêu cầu]
- Quét: [phân trang/truy vấn/cố gắng kết nối]
- Đang hoạt động: [Bật liên kết ACL, liên kết SCO đang diễn ra, chế độ đánh hơi]
Các hoạt động mà bộ điều khiển theo dõi trong suốt vòng đời của nó là thời gian Tx, thời gian Rx, thời gian nhàn rỗi và tổng năng lượng tiêu thụ. Chúng sẽ bị xóa khi đọc từ máy chủ.
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 phụ | Kích cỡ | Mục đích |
---|---|---|
NA | Thông số lệnh trống |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
total_tx_time_ms | 4 octet | Tổng thời gian biểu diễ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 không hoạt động (trạng thái năng lượng thấp không ngủ) |
total_energy_used | 4 octet | Tổng năng lượng sử dụng [tích của dòng điện (mA), điện áp (V) và thời gian (ms)] |
Lệnh mở rộng cài đặt tham số quét LE
Lệnh này có thể được sử dụng để kích hoạt cửa sổ và khoảng thời gian 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 của ứng dụng vượt quá 10,24 giây.
Tham chiếu cơ sở: Thông số kỹ thuật BT Core 5.2, trang 2493 (Lệnh LE Set Scan Parameters)
OCF: 0x15A
Tham số lệnh | Kích 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. 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 Bộ điều khiển bắt đầu lần quét LE cuối cùng 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 ms Phạm vi thời gian: 2,5 ms đế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 ms Phạm vi thời gian: 2,5 ms đến 40,95 giây |
Own_Address_Type | 1 octet | 0x00 - Địa chỉ thiết bị công cộng (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 được đị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 được định hướng không có địa chỉ cho thiết bị này sẽ bị bỏ qua. |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Nhận lệnh thông tin gỡ lỗi bộ đ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 bộ điều khiển từ máy chủ, ở dạng nhị phân, để xử lý và phân tích sau. Điều này giúp gỡ lỗi các sự cố tại hiện trường và cung cấp cho các kỹ sư bộ công cụ để ghi thông tin để phân tích. Bộ điều khiển có thể cung cấp thông tin khi được máy chủ yêu cầu thông qua sự kiện (sự kiện phụ Thông tin gỡ lỗi bộ điều khiển) hoặc tự động khi bộ điều khiển mong muốn. Ví dụ sử dụng có thể là để báo cáo thông tin trạng thái chương trình cơ sở, thông tin kết xuất sự cố, thông tin ghi nhật ký, v.v.
OCF: 0x15B
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
không áp dụng | Danh sách tham số lệnh trống |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành 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ã hóa âm thanh A2DP sang bộ xử lý âm thanh được gắn vào Bộ điều khiển BT. Luồng dữ liệu âm thanh được mã hóa 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 cấu hình và kiểm soát phiên A2DP. Hai phiên bản của lệnh có sẵn. Các lệnh kế thừa với Sub OCF 0x01-0x02 chỉ hỗ trợ codec nguồn mở. Các phiên bản có Sub-OCF 0x02-0x03 không phụ thuộc vào codec đượ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 để đị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 cỡ | Mục đích |
---|---|---|
Codec | 4 octet | Chỉ định loại Codec 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ị bằng 0 sẽ vô hiệu hóa chức năng xả. |
SCMS-T_Enable | 2 octet | Octet 0: Cờ cho phép bổ sung tiêu đề SCMS-T.
Octet 1: Giá trị cho tiêu đề SCMS-T, khi nó được bật. |
Sampling_Frequency | 4 octet | 0x01 - 44100Hz 0x02 - 48000Hz 0x04 - 88200Hz 0x08 - 96000Hz |
Bits_Per_Sample | 1 octet | 0x01 - 16 bit cho mỗi mẫu 0x02 - 24 bit mỗi mẫu 0x04 - 32 bit mỗi mẫu |
Channel_Mode | 1 octet | 0x01 - Đơn sắc 0x02 - Âm thanh nổi |
Encoded_Audio_Bitrate | 4 octet | Tốc độ bit âm thanh được mã hóa tính bằng bit trên giây. 0x00000000 - Tốc độ bit âm thanh không được chỉ định/không sử dụng. 0x00000001 - 0x00FFFFFF - Tốc độ bit âm thanh được mã hóa tính bằng bit trên giây. 0x01000000 - 0xFFFFFFFF - Dự trữ. |
Connection_Handle | 2 octet | Xử lý kết nối của kết nối A2DP đang được định cấu hình |
L2CAP_Channel_ID | 2 octet | ID kênh L2CAP được sử dụng cho kết nối A2DP này |
L2CAP_MTU_Size | 2 octet | Kích thước tối đa của L2CAP MTU chứa các gói âm thanh được mã hóa |
Codec_Information | 32 octet | Thông tin cụ thể về Codec. Bộ mã hóa SBC: Tham khảo các thành phần thông tin cụ thể của SBC Codec trong A2DP v1.3. Bộ mã hóa AAC: Tham khảo các thành phần thông tin cụ thể của AAC Codec trong A2DP v1.3 Bộ giải mã LDAC: Tháng 10 0-3: ID nhà cung cấp Ngày 4-5 tháng 10: ID Codec Tháng 10 6: Chỉ số bitrate: Tháng 10 7: Chế độ kênh LDAC 8-31 tháng 10: đặt trước Tất cả các codec khác: Tháng 10 0-31: dành riêng |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Sub_Opcode | 1 octet | 0x01 - Bắt đầu giảm tải A2DP |
Bắt đầu tải xuống A2DP
OCF phụ: 0x03
Sử dụng lệnh này để đị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 cỡ | Mục đích |
---|---|---|
Connection Handle | 2 octet | Xử lý kết nối HCI đang hoạt động |
L2CAP_Channel_ID | 2 octet | Mã định danh của Kênh L2CAP được mở để phát trực tuyến A2DP |
Data_Path_Direction | 1 octet | 0x00 - Đầu ra (Nguồn AVDTP/Hợp nhất) 0x01 - Đầu vào (Tách/chìm AVDTP) |
Peer_MTU | 2 octet | Kích thước tối đa của gói L2CAP, được thương lượng với thiết bị ngang hàng. |
CP_Enable_SCMS_T | 1 octet | 0x00 - Tắt tiêu đề bảo vệ nội dung SCMS-T 0x01 - Kích hoạ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) như được xác định bởi Số được chỉ định Bluetooth, mục 6.3.2.Bị bỏ qua khi tính năng bảo vệ nội dung SCMS-T không được bật. |
Vendor_Specific_Parameters_Length | 1 octet | Độ dài của Thông số cụ thể của nhà cung cấp, trong phạm vi 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 | 0-128 octet | Thông số cụ thể của nhà cung cấp được cung cấp bởi Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] . |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành 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 được sử dụng để dừng luồng Giảm tải A2DP.
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
không áp dụng | Danh sách tham số lệnh trống. |
Không có tham số nào được xác định cho lệnh này.
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Sub_Opcode | 1 octet | 0x02 - Dừng tải A2DP |
Dừng tải xuống A2DP
OCF phụ: 0x04
Lệnh này được sử dụng để dừng luồng Giảm tải A2DP.
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
Connection Handle | 2 octet | Xử lý kết nối HCI đang hoạt động |
L2CAP_Channel_ID | 2 octet | Mã định danh của Kênh L2CAP được mở để phát trực tuyến A2DP |
Data_Path_Direction | 1 octet | 0x00 - Đầu ra (Nguồn AVDTP/Hợp nhất) 0x01 - Đầu vào (Tách/chìm AVDTP) |
Một sự kiện Hoàn thành lệnh sẽ được tạo cho lệnh này.
Tham số trả về | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái hoàn thành lệnh |
Sub_Opcode | 1 octet | 0x04 - Dừng 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 khởi động cơ chế trong bộ đ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ể kích hoạt bốn tùy chọn:
- Chế độ giám sát chất lượng: Bộ điều khiển định kỳ gửi sự kiện phụ BQR liên quan đến Chất lượng liên kết đến máy chủ.
- Đang tiếp cận LSTO: Nếu không nhận được gói nào từ thiết bị BT được kết nối trong hơn một nửa giá trị Thời gian chờ giám sát liên kết (LSTO), bộ điều khiển sẽ báo cáo sự kiện Đang tiếp cận LSTO cho máy chủ.
- A2DP Audio Choppy: Khi bộ điều khiển 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 A2DP Audio Choppy cho máy chủ.
- (e)SCO Voice Choppy: Khi bộ điều khiển phát hiện các yếu tố gây ra hiện tượng giật giọng nói, bộ điều khiển sẽ báo cáo sự kiện (e)SCO Voice Choppy cho máy chủ.
- Viêm gốc: Sự kiện này được gửi bởi bộ điều khiển đế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.
- Dấu vết tin nhắn LMP/LL: Bộ điều khiển gửi bắt tay tin nhắn LMP/LL với thiết bị từ xa đến máy chủ.
- Dấu vết lập lịch đa năng/hợp tác của Bluetooth: Bộ điều khiển gửi thông tin lập lịch của mình về việc xử lý nhiều cấu hình Bluetooth và cùng tồn tại không dây trong băng tần 2,4 GHz cho máy chủ.
- Cơ chế gỡ lỗi bộ điều khiển: Khi được bật, bộ điều khiển có thể tự chủ báo cáo gỡ lỗi thông tin ghi nhật ký thông qua sự kiện con gỡ lỗi của bộ điều khiển cho máy chủ.
OCF: 0x15E
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
BQR_Report_Action | 1 octet | Hành động để thêm / xóa báo cáo về (các) sự kiện chất lượng được đặt trong tham số bqr_quality_event_mask hoặc xóa tất cả. 0x00 - Thêm Xóa sẽ xóa báo cáo sự kiện chất lượng cụ thể. |
BQR_Quality_Event_Mask | 4 octets | Mặt nạ bit cho báo cáo sự kiện chất lượng được chọn. Bit 0: Đặt thành Chế độ giám sát chất lượng. |
BQR_Minimum_Report_Interval | 2 octet | Xác định khoảng thời gian tối thiểu của báo cáo sự kiện chất lượng cho (các) sự kiện chất lượng được chọn. Firmware điều khiển không nên báo cáo sự kiện tiếp theo trong khoảng thời gian xác định. 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 |
BQR_Vendor_Specific_Quality_Event_Mask | 4 octets | 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 được chọn. Tham số này chỉ có giá trị khi bit 15 của BQR_Quality_Event_Mask được đặt.Bit 0 ~ 31: Dành riêng. |
BQR_Vendor_Specific_Trace_Mask | 4 octets | Mặt nạ bit cho báo cáo dấu vết cụ thể của nhà cung cấp được chọn. Tham số này chỉ có giá trị khi bit 31 của BQR_Quality_Event_Mask được đặt.Bit 0 ~ 31: Dành riêng. |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
Current_Quality_Event_Mask | 4 octets | Cho biết cài đặt mặt nạ bit hiện tại. Bit 0: Chế độ giám sát chất lượng được bật. BIT 1: Tiếp cận báo cáo sự kiện LSTO được bật. Bit 2: Báo cáo sự kiện A2DP Audio Audio được bật. BIT 3: (e) Báo cáo sự kiện choppy SCO Voice được bật. Bit 4: Báo cáo sự kiện viêm gốc được kích hoạt. Bit 5: Chế độ giám sát năng lượng được bật. BIT 6: Báo cáo sự kiện LE Audio Choppy được bật. Bit 7: Kết nối sự kiện thất bại. Bit 8 ~ 14: Dành riêng. BIT 15: Báo cáo sự kiện chất lượng dành riêng cho nhà cung cấp được bật. Bit 16: Dấu vết tin nhắn LMP/LL được bật. BIT 17: Dấu vết lập kế hoạch đa liên kết/coex của Bluetooth được bật. Bit 18: Cơ chế thông tin gỡ lỗi bộ điều khiển được bật. Bit 19 ~ 30: Dành riêng. Bit 31: Dấu vết cụ thể của nhà cung cấp được bật. |
Current_Vendor_Specific_Quality_Event_Mask | 4 octets | Cho biết cài đặt mặt nạ bit hiện tại. |
Current_Vendor_Specific_Trace_Mask | 4 octets | Cho biết cài đặt mặt nạ bit hiện tại. |
Lệnh bộ đệm âm thanh động
Bộ đệm âm thanh động làm giảm trục trặc âm thanh bằng cách thay đổi kích thước bộ đệm âm thanh trong bộ điều khiển Bluetooth dựa trên các kịch bản khác nhau.
OCF: 0x15F
Nhận khả năng thời gian bộ đệm âm thanh
Sub OCF: 0x01
Sử dụng lệnh này để có khả năng thời gian bộ đệm âm thanh từ bộ điều khiển Bluetooth.
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
không áp dụng | Danh sách tham số lệnh trống |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
Dynamic_Audio_Buffer_opcode | 1 octet | 0x01 - Nhận thời gian bộ đệm âm thanh |
Audio_Codec_Type_Supported | 4 octets | Mặt nạ bit cho các loại codec được hỗ trợ Bit 0 - SBC Bit 1 - AAC Bit 2 - aptx Bit 3 - aptx hd Bit 4 - LDAC Bit 5-31 được bảo lưu |
Audio_Codec_Buffer_Default_Time_For_Bit_0 | 2 octet | Thời gian bộ đệm mặc định của loại Bit 0 Codec được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại Codec bit 0 không được hỗ trợ. Đơn vị: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 | 2 octet | Thời gian bộ đệm tối đa của loại Bit 0 Codec được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại Codec bit 0 không được hỗ trợ. Đơn vị: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 | 2 octet | Thời gian bộ đệm tối thiểu của loại Bit 0 Codec được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại Codec bit 0 không được hỗ trợ. Đơn vị: MS |
Audio_Codec_Buffer_Default_Time_For_Bit_1 | 2 octet | Thời gian bộ đệm mặc định của loại Codec Bit 1 được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại codec bit 1 không được hỗ trợ. Đơn vị: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 | 2 octet | Thời gian bộ đệm tối đa của loại Codec bit 1 được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại codec bit 1 không được hỗ trợ. Đơn vị: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 | 2 octet | Thời gian bộ đệm tối thiểu của loại Codec Bit 1 được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại codec bit 1 không được hỗ trợ. Đơn vị: MS |
...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 | 2 octet | Thời gian bộ đệm mặc định của loại BIT 31 Codec được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại codec bit 31 không được hỗ trợ. Đơn vị: MS |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 | 2 octet | Thời gian bộ đệm tối đa của loại BIT 31 Codec được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại codec bit 31 không được hỗ trợ. Đơn vị: MS |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 | 2 octet | Thời gian bộ đệm tối thiểu của loại BIT 31 Codec được chỉ định trong Audio_Codec_Type_Supported. Giá trị này sẽ là 0 nếu loại codec bit 31 không được hỗ trợ. Đơn vị: MS |
Đặt thời gian bộ đệm âm thanh
Sub OCF: 0x02
Sử dụng lệnh này để đặt thời gian bộ đệm âm thanh cho bộ điều khiển Bluetooth.
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
Audio_Codec_Buffer_Time | 2 octet | Thời gian bộ đệm âm thanh được yêu cầu cho codec đã sử dụng hiện tại. Đơn vị: MS |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
Dynamic_Audio_Buffer_opcode | 1 octet | 0x02 - Đặt thời gian bộ đệm âm thanh |
Audio_Codec_Buffer_Time | 2 octet | Thời gian bộ đệm âm thanh hiện tại trong bộ điều khiển Bluetooth. Đơn vị: MS |
Sự kiện HCI (dành riêng cho nhà cung cấp)
Các sự kiện HCI dành riêng cho nhà cung cấp được yêu cầu trong một số trường hợp. Tham khảo Hình 5.4 trên trang 1897 của đặc tả lõi BT 5.2. Tham 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 được giải mã.
Tham số sự kiện | Kích cỡ | Mục đích |
---|---|---|
HCI_vendor_specific_event_code | 1 octet | 0xff |
sub_event_code | 1 octet | Một mã sự kiện phụ sẽ có kích thước 1 octet, byte ngay theo chiều dài tham số trong gói sự kiện HCI. |
Sự kiện vi phạm ngưỡng lưu trữ
Sự kiện này chỉ ra rằng ngưỡng lưu trữ đã bị vi phạm.
Mã sự kiện phụ = 0x54
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Không có |
LE đa kích hoạt thay đổi trạng thái phụ
Sự kiện này chỉ ra rằng một thể hiện quảng cáo đã thay đổi trạng thái của nó. Tại thời điểm này, sự kiện này chỉ được sử dụng để chỉ ra thể hiện quảng cáo nào đã bị dừng lại do kết nối.
Mã sự kiện phụ = 0x55
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Advertising_instance | 1 octet | Xác định trường hợp quảng cáo cụ thể Các giá trị hợp lệ là 0 đến max_advt_instances -1 |
State_Change_Reason | 1 octet | 0x00: Kết nối nhận được |
Connection_handle | 2 octet | Xác định kết nối gây ra phiên bản advt bị vô hiệu hóa (0xffff nếu không hợp lệ) |
LE quảng cáo theo dõi phụ
Sự kiện này cho biết khi một nhà quảng cáo được tìm thấy hoặc bị mất.
Mã sự kiện phụ = 0x56
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
APCF_Filter_Index | 1 octet | Chỉ mục lọc (0, max_filter -1) |
Advertiser_State | 1 octet | 0x00: Nhà quảng cáo được tìm thấy 0x01: Nhà quảng cáo bị mất |
Advt_Info_Present | 1 octet | 0x00: Thông tin nhà quảng cáo ( Advt_Info ) hiện tại0x01: Thông tin nhà quảng cáo ( Advt_Info ) Không có mặt |
Advertiser_Address | 6 octets | Địa chỉ công khai hoặc ngẫu nhiên |
Advertiser_Address_Type | 1 octet | 0x00: Địa chỉ công cộng 0x01: Địa chỉ ngẫu nhiên |
Advt_Info | Tx_Pwr[0] : 1 octetRSSI[0] : 1 octetTimestamp[0] : 2 octetsAdv packet_len[0] : 1 octetAdv_packet[0] : Adv_packet_len octetsScan_data_resp_len[0] : 1 octetScan_data_resp[0] : Scan_data_resp octets |
Bộ điều khiển gỡ lỗi thông tin phụ
Sự kiện này được sử dụng bởi bộ điều khiển để cung cấp thông tin gỡ lỗi nhị phân cho máy chủ.
Mã sự kiện phụ = 0x57
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
debug_block_byte_offset_start | 2 octet | Debug Block Byte Offset ngay 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òn 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 đổi | Dữ liệu gỡ lỗi của cur_payload_sz |
Báo cáo chất lượng Bluetooth phụ
Sự kiện này cho biết một trong những điều sau đây: Sự kiện chất lượng Bluetooth đã xảy ra, bộ điều khiển đã tải lên dấu vết thông báo LMP/LL và dấu vết lập lịch liên kết/đồng thời Bluetooth hoặc bộ điều khiển đã bỏ dữ liệu thông tin gỡ lỗi.
Mã sự kiện phụ = 0x58 [chất lượng_report_id = 0x01 ~ 0x04, sự kiện liên quan đến chất lượng liên kết]
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Quality_Report_Id | 1 octet | 0x01: Báo cáo chất lượng trên chế độ giám sát. 0x02: Tiếp cận LSTO. 0x03: A2DP Audio Choppy. 0x04: (e) SCO Voice Choppy. 0x05 ~ 0x06: Bảo lưu. 0x07: Le Audio Choppy. 0x08: Kết nối thất bại. 0x09 ~ 0xff: Dành riêng. |
Packet_Types | 1 octet | 0x01: ID 0x02: null 0x03: Thăm dò ý kiến 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 | ACL/(E) Xử lý kết nối SCO/ISO. |
Connection_Role | 1 octet | Thực hiện vai trò cho kết nối. 0x00: Trung tâm 0x01: ngoại vi 0x02 ~ 0xff: Dành riêng. |
TX_Power_Level | 1 octet | Mức năng lượng truyền hiện tại cho kết nối được chỉ định_handle. Giá trị này sẽ giống như bộ điều khiển phản hồi của HCI_READ_TRANSMIT_POWER_LEVEL HCI. |
RSSI | 1 octet | [trong DBM] Giá trị chỉ báo cường độ tín hiệu (RSSI) cho kết nối được chỉ định_handle. |
SNR | 1 octet | [trong db] Giá trị tỷ lệ tín hiệu-nhiễu (SNR) cho kết nối được chỉ định_handle. |
Unused_AFH_Channel_Count | 1 octet | Cho biết số lượng các kênh chưa sử dụng trong AFH_Channel_Map. 0x4f ~ 0xff: Dành riêng. |
AFH_Select_Unideal_Channel_Count | 1 octet | Cho biết số lượng các kênh bị can thiệp và có chất lượng xấu, nhưng chúng vẫn được chọn cho AFH. Số lượng kênh tối thiểu cho phép bởi đặc tả Bluetooth là 20, vì vậy ngay cả khi tất cả 79 kênh bị can thiệp và có chất lượng xấu, bộ điều khiển vẫn cần chọn ít nhất 20 kênh cho AFH. |
LSTO | 2 octet | Cài đặt thời gian chờ liên kết hiện tại. Thời gian = n * 0,625 ms Phạm vi thời gian: 0,625 ms đến 40,9 s |
Connection_Piconet_Clock | 4 octets | Đồng hồ piconet cho kết nối được chỉ định_handle. Giá trị này sẽ giống như bộ điều khiển phản hồi của HCI_READ_CLOCK HCI với tham số "what_clock" là 0x01 (đồng hồ piconet). Đơn vị: N * 0.3125 ms (đồng hồ Bluetooth 1) |
Retransmission_Count | 4 octets | Số lượng truyền lại 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ủ. |
No_RX_Count | 4 octets | Không có số lượng RX kể từ sự kiện cuối cùng. Số lượng tăng khi không nhận được gói nào tại khe thời gian theo lịch trình hoặc gói nhận được bị hỏng. Số lượng này sẽ được đặt lại sau khi báo cáo cho máy chủ. |
NAK_Count | 4 octets | NAK (số thừa nhận tiêu cực) 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ủ. |
Last_TX_ACK_Timestamp | 4 octets | Dấu thời gian của TX ACK cuối cùng. Nó dựa trên đồng hồ Bluetooth của Piconet Central (CLK). Đơn vị: N * 0.3125 ms (đồng hồ Bluetooth 1) |
Flow_Off_Count | 4 octets | Số lần bộ điều khiển nhận được Flow-Off (Dừng) 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ủ. |
Last_Flow_On_Timestamp | 4 octets | Dấu thời gian của dòng chảy cuối cùng (GO). Nó dựa trên đồng hồ Bluetooth của Piconet Central (CLK). Đơn vị: N * 0.3125 ms (đồng hồ Bluetooth 1) |
Buffer_Overflow_Bytes | 4 octets | [Trong byte] Số lượng tràn bộ đệm kể từ sự kiện cuối cùng. |
Buffer_Underflow_Bytes | 4 octets | [Trong byte] Buffer Underflow Count kể từ sự kiện cuối cùng. |
bdaddr | 6 octets | Địa chỉ thiết bị từ xa |
cal_failed_item_count | 1 octet | Số lượng các mặt hàng không thành tích |
TX_Total_Packets | 4 octets | Số lượng gói được gửi đi. |
TX_UnAcked_Packets | 4 octets | Số lượng gói 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ủ. |
TX_Flushed_Packets | 4 octets | Số lượng gói không được gửi bởi điểm xả của nó. Số lượng này được đặt lại sau khi báo cáo cho máy chủ. |
TX_Last_Subevent_Packets | 4 octets | Số lượng các gói liên kết lớp truyền PDU dữ liệu CIS trong phần 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ủ. Giá trị bằng không nếu không có giá trị hợp lệ cho liên kết. |
CRC_Error_Packets | 4 octets | Số lượng gói nhận được có lỗi CRC kể từ sự kiện cuối cùng. Số lượng này được đặt lại sau khi báo cáo cho máy chủ. |
RX_Duplicate_Packets | 4 octets | Số lượng gói trùng lặp (truyền lại) nhận được kể từ sự kiện cuối cùng. Số lượng này được đặt lại sau khi báo cáo cho máy chủ. |
Tham số cụ thể của nhà cung cấp | (Tổng chiều dài tham số - TBD) * octets | Cho nhà cung cấp bộ điều khiển để có thêm các tham số cụ thể của nhà cung cấp. |
Mã sự kiện phụ = 0x58 [chất lượng_report_id = 0x05, sự kiện viêm gốc]
Sự kiện này chỉ ra rằng Bluetooth Hal hoặc bộ điều khiển gặp phải 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. Bộ điều khiển phải gửi root_inflammation_event đến ngăn xếp Bluetooth trước khi gửi đoạn đầu tiên của các sự kiện thông tin gỡ lỗi trong mọi trường hợp.
Tham 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 cụ thể của nhà cung cấp chipset. Vendor_specific_error_code chứa mã lỗi cụ thể của nhà cung cấp chipset từ HAL/bộ điều khiển. Nó sẽ được đặt là 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 nên cả hai.
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Quality_Report_Id | 1 octet | 0x00 ~ 0x04: Bảo lưu. 0x05: Viêm rễ. 0x06 ~ 0xff: Dành riêng. |
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. Xem Bluetooth Spec [tập 2] Phần D, Mã lỗi cho danh sách các mã và mô tả lỗi. |
Vendor_Specific_Error_Code | 1 octet | 0x00: Không bao gồm mã lỗi cụ thể của nhà cung cấp chipset. 0x01 ~ 0xff: Mã cụ thể của nhà cung cấp chipset. |
Tham số cụ thể của nhà cung cấp | (Tổng số chiều dài tham số - 4) * octets | Cho nhà cung cấp bộ điều khiển để có thêm các tham số cụ thể của nhà cung cấp. |
Mã sự kiện phụ = 0x58 [chất lượng_report_id = 0x11 ~ 0x13, sự kiện liên quan đến kết xuất nhật ký]
Tham số phụ | Kích 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ập kế hoạch đa liên kết/coex của Bluetooth. 0x13: Bộ điều khiển gỡ lỗi thông tin dữ liệu. 0x14 ~ 0xff: Dành riêng. |
Connection_Handle | 2 octet | Xử lý kết nối. |
Tham số cụ thể của nhà cung cấp | (Tổng số chiều dài tham số - 4) * octets | Định dạng cụ thể của nhà cung cấp của Dấu vết tin nhắn LMP, Dấu vết thông tin của Bluetooth Multi-Link/Coex Lập kế hoạch và bộ điều khiển. |
Hỗ trợ nhiều người kích thích
Mục tiêu của hỗ trợ đa Advertiser là như sau:
- Khả năng hỗ trợ nhiều quảng cáo (
max_advt_instances
) - Các sức mạnh truyền khác nhau để cho phép một phạm vi khác nhau
- Nội dung quảng cáo khác nhau
- Một phản hồi cá nhân cho mỗi nhà quảng cáo
- Quyền riêng tư (không thể truy cập) 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ó, các lệnh dành riêng cho nhà cung cấp sau đây được cung cấp. Chúng có nguồn gốc từ đặc tả lõi Bluetooth 4.1.
Le_multi_advt_command
OCF: 0x154
Tham số lệnh | Kích 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 hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
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ở: Đặc điểm kỹ thuật của Bluetooth Core 4.1, trang 964 (LED LED Lệnh tham số quảng cáo)
Sub OCF: 0x01
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Advertising_Interval_Min | Mỗi spec | Mỗi spec |
Advertising_Interval_Max | Mỗi spec | Mỗi spec |
Advertising_Type | Mỗi spec | Mỗi spec |
Own_Address_Type | Mỗi spec | Mỗi spec |
Own_Address | Mỗi spec | Mỗi spec |
Direct_Address_Type | Mỗi spec | Mỗi spec |
Direct_Address | Mỗi spec | Mỗi spec |
Advertising_Channel_Map | Mỗi spec | Mỗi spec |
Adverstising_Filter_Policy | Mỗi spec | Mỗi spec |
Advertising_Instance | 1 octet | Chỉ định khả năng ứng dụng của các tham số trên vào một thể hiện |
Tx_power | 1 octet | Truyền điện Đơn vị - tính bằng DBM (Số nguyên đã ký) Phạm vi (-70 đến +20) |
Tham số Own_Address
có thể là một địa chỉ được cấu hình máy chủ tại thời điểm thiết lập thể hiện đa quảng cáo này. Điều này cung cấp khả năng có một địa chỉ riêng có thể giải quyết được tại thời điểm truyền đèn hiệu đầu tiên. Quảng cáo trên một ví dụ sẽ tiếp tục không phân biệt kết nối. Stack BT máy chủ có thể phát hành một lệnh để bắt đầu quảng cáo trên một thể hiện, kết nối đăng.
Một sự kiện hoàn chỉnh lệnh sẽ được tạo cho lệnh này như được chỉ định trong đặc tả Bluetooth Core 4.1, theo lệnh trên. Bộ điều khiển sẽ trả lời bằng mã không thành công (tham số không hợp lệ) nếu phiên bản quảng cáo hoặc tham số Tx_Power
không hợp lệ.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
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ở: Đặc điểm kỹ thuật của Bluetooth Core 4.1, trang 969 (Lệnh LE SET Dữ liệu quảng cáo)
Sub OCF: 0x02
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Advertising_Data_Length | Mỗi spec | Mỗi spec |
Advertising_Data | Mỗi spec | Mỗi spec |
Advertising_Instance | 1 octet | Chỉ định khả năng ứng dụng của các tham số trên vào một thể hiện |
Một sự kiện hoàn chỉnh lệnh sẽ được tạo cho lệnh này như được chỉ định trong đặc tả Bluetooth Core 4.1, theo lệnh trên. Bộ điều khiển sẽ trả lời bằng mã không thành công nếu phiên bản quảng cáo hoặc tham số Tx_Power
không hợp lệ.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
Multi_advt_opcode | 1 octet | 0x02 [ Set_Advt_Data_Multi_Sub_Cmd] |
LE_MULTI_ADVT_COMMAND: SET_SCAN_RESP_DATA_MULTI_SUB_CMD
Tham chiếu cơ sở: Thông số kỹ thuật của Bluetooth Core 4.1, trang 970 (Lệnh LE SET SCAN REPESECT DATA)
Sub OCF: 0x03
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Scan_Response_Data_Length | Mỗi spec | Mỗi spec |
Scan_Response_Data | Mỗi spec | Mỗi spec |
Advertising_Instance | 1 octet | Chỉ định khả năng ứng dụng của các tham số trên vào một thể hiện |
Một sự kiện hoàn chỉnh lệnh sẽ được tạo cho lệnh này như được chỉ định trong đặc tả Bluetooth Core 4.1, theo lệnh trên. Bộ điều khiển sẽ trả lời bằng mã không thành công (tham số không hợp lệ) nếu phiên bản quảng cáo hoặc tham số Tx_Power
không hợp lệ.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
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ở: Đặc tả lõi Bluetooth 4.1, trang 963 (Lệnh LE đặt địa chỉ ngẫu nhiên)
Sub OCF: 0x04
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Địa chỉ ngẫu nhiên | Mỗi spec | Mỗi spec |
Advertising_Instance | 1 octet | Chỉ định khả năng ứng dụng của các tham số trên vào một thể hiện |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
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 của Bluetooth Core 4.1, trang 971 (LE SET ADPATION ARPISE Lệnh kích hoạt trong đặc tả lõi đó)
OCF: 0x05
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Advertising_Enable | 1 octet | Giá trị 1 có nghĩa là kích hoạt. Bất kỳ giá trị nào khác có nghĩa là vô hiệu hóa. |
Advertising_Instance | 1 octet | Chỉ định khả năng ứng dụng của các tham số trên vào một thể hiện. Ví dụ 0 có nghĩa là một thể hiện HCI tiêu chuẩn. |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
Multi_advt_opcode | 1 octet | 0x05 [ Set_Advt_Enable_Multi_Sub_Cmd] |
Độ phân giải giảm tải của địa chỉ riêng
Tính năng này giải quyết một địa chỉ riêng trong phần sụn hoặc phần cứng của bộ điều khiển, cung cấp các lợi ích sau:
- Độ trễ liên quan đến chủ nhà trong việc giải quyết một địa chỉ riêng
- Tiết kiệm năng lượng bằng cách kiềm chế không đánh thức máy chủ
Le_set_rpa_timeout
OCF: 0x15C
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
LE_local_IRK | 16 octet | Thiết bị cục bộ IRK được sử dụng để tạo địa chỉ giải quyết ngẫu nhiên (ES). |
tRPA_min | 2 octet | Thời gian chờ thế hệ RPA tối thiểu tính bằng giây. Bộ điều khiển phải tạo các địa chỉ có thể giải quyết mới cho bất kỳ sự kiện quảng cáo/quét/kết nối nào trên 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ờ thế hệ RPA tối đa tính bằng giây. Bộ điều khiển phải tạo các địa chỉ có thể giải quyết mới cho bất kỳ sự kiện quảng cáo/quét/kết nối nào trên hoặc trước thời gian chờ này. Phạm vi hợp lệ: tRPA_min -1800 |
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Trạng thái của lệnh. Các giá trị trạng thái HCI được đề xuất: 0x00 thành công Lệnh không xác định 0x01 (nếu không được hỗ trợ) 0x12 Tham số lệnh không hợp lệ (nếu bất kỳ tham số nào nằm ngoài phạm vi đã cho) |
LE_RPA_OFFLOAD_COMMAND
OCF: 0x155
Tham số lệnh | Kích cỡ | Mục đích |
---|---|---|
RPA_offload_opcode | 1 octet | 0x1 - Kích hoạt tính năng cụ thể của khách hàng 0x2 - Thêm Irk vào danh sách 0x3 - Xóa Irk khỏi danh sách 0x4 - Danh sách IRK rõ ràng 0x5 - Đọc mục nhập danh sách IRK |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
Event_RPA_offload_opcode | 1 octet | 0x1 - Kích hoạt tính năng cụ thể của khách hàng 0x2 - Thêm Irk vào danh sách 0x3 - Xóa Irk khỏi danh sách 0x4 - Danh sách IRK rõ ràng 0x5 - Đọc mục nhập danh sách IRK |
LE_RPA_OFFLOAD: enable_cust_specific_sub_command
Sub OCF: 0x01
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
enable_customer_specific_feature_set | 1 octet | 0x01 - Bật tính năng RPA đã giảm tải 0x00 - Vô hiệu hóa tính năng RPA giảm tải |
Giảm tải RPA được yêu cầu phải được bật bởi máy chủ, dựa trên khả năng 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 phần sụn.
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
Event_cust_specific_feature_opcode | 1 octet | 0x01 [Kích hoạt tính năng dành riêng cho khách hàng] |
Le_rpa_offload: add_irk_to_list_sub_command
Sub OCF: 0x02
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
LE_IRK | 16 octets | Le Irk (byte 1st LSB) |
Address_Type | 1 octet | 0: Địa chỉ công cộng 1: Địa chỉ ngẫu nhiên |
LE_Device_Address | 6 octets | Địa chỉ công khai hoặc ngẫu nhiên liên quan đến IRK (byte 1st LSB) |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
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 nhập danh sách IRL có sẵn sau khi hoạt động hiện tại |
LE_RPA_OFFLOAD: remove_irk_to_list_sub_command
Sub OCF: 0x03
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Address_Type | 1 octet | 0: Địa chỉ công cộng 1: Địa chỉ ngẫu nhiên |
LE_Device_Address | 6 octets | Địa chỉ công khai hoặc ngẫu nhiên liên kết với Irk |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
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 nhập danh sách IRL có sẵn sau khi hoạt động hiện tại |
LE_RPA_OFFLOAD: CLEAR_IRK_LIST_SUB_COMMAND
Sub OCF: 0x04
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
Không có |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
Event_cust_specific_feature_opcode | 1 octet | 0x04 [Danh sách IRK rõ ràng] |
LE_IrkList_AvailableSpaces | 1 octet | Các mục nhập danh sách IRL có sẵn sau khi hoạt động hiện tại [ max_irk_list_sz] |
LE_RPA_OFFLOAD: read_irk_list_sub_command
Sub OCF: 0x05
Tham số phụ | Kích cỡ | Mục đích |
---|---|---|
LE_read_IRK_list_entry-index | 1 octet | Chỉ số danh sách IRK [0, max_irk_list_sz-1] |
Một sự kiện hoàn thành lệnh sẽ được tạo cho lệnh này.
Trả về tham số | Kích cỡ | Mục đích |
---|---|---|
Status | 1 octet | Lệnh hoàn chỉnh trạng thái |
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ủ muốn đọc lại (kích thước danh sách IRK tối đa là 32) |
LE_IRK | 16 octets | Giá trị IRK |
Address_Type | 1 octet | 0: Địa chỉ công cộng 1: Địa chỉ ngẫu nhiên |
LE_Device_Address | 6 octets | Địa chỉ công khai hoặc ngẫu nhiên liên quan đến IRK |
LE_Resolved_Private_Address | 6 octets | Hiện tại được giải quyết địa chỉ riêng có thể giải quyết được của IRK này |