ข้อกำหนด HCI

Host Controller Interface (HCI) ใช้สำหรับการโต้ตอบกับ ตัวควบคุมบลูทูธ

เอกสารนี้แสดงรายการข้อกำหนด HCI ของบลูทูธ (BT) และบลูทูธพลังงานต่ำ (BLE) โดยมีเป้าหมายเพื่อให้ผู้จำหน่ายสแต็ก BT ของโฮสต์และผู้จำหน่ายคอนโทรลเลอร์ BT ปฏิบัติตามข้อกำหนดของแพลตฟอร์มเหล่านี้เพื่อ ใช้ชุดฟีเจอร์ที่อธิบายไว้ด้านล่าง

เอกสารนี้อ้างอิงถึงข้อกำหนดหลักของบลูทูธ 5.2 เป็น "ข้อกำหนด" ดูข้อกำหนดหลักของบลูทูธ 5.2 ได้ที่ เว็บไซต์ของ Bluetooth SIG พร้อมกับเอกสารอื่นๆ ที่นำมาใช้

ภาพรวมการออกแบบทั่วไป

ความสามารถและการกำหนดค่าชิป

Android เป็นแพลตฟอร์มแบบเปิด จึงมีเมทริกซ์การเปิดตัวซอฟต์แวร์, OEM, ผู้ให้บริการ, แพลตฟอร์ม และความสามารถของชิป

เอกสารนี้จะอธิบายปรัชญาการออกแบบที่อนุญาตให้ตัวควบคุม BT แสดงความสามารถของตน (นอกเหนือจากข้อกำหนดหลักของบลูทูธ 5.2 มาตรฐาน) เพื่อจัดการกับสภาพแวดล้อมที่แตกต่างกันและจัดการการย้ายข้อมูล จากนั้นสแต็ก BT ของโฮสต์จะใช้ความสามารถเหล่านี้เพื่อพิจารณา ว่าจะเปิดใช้ฟีเจอร์ใด

สนับสนุนมาตรฐานเปิด

เป้าหมายอย่างหนึ่งของ Android คือการรองรับมาตรฐานเปิดหลังจากที่มีการให้สัตยาบันใน ข้อกำหนดของบลูทูธ หากฟีเจอร์ที่อธิบายไว้ด้านล่างพร้อมใช้งานใน วิธีการ HCI มาตรฐานในข้อกำหนดของบลูทูธในอนาคต เราจะ พิจารณาให้วิธีการดังกล่าวเป็นค่าเริ่มต้น

ความสามารถเฉพาะของผู้ให้บริการ

คำสั่งเฉพาะของผู้ให้บริการ: LE_Get_Vendor_Capabilities_Command

ฟิลด์คำสั่ง OpCode (OCF): 0x153

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
NA รายการพารามิเตอร์คำสั่งที่ว่างเปล่า

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
max_advt_instances
(เลิกใช้งานแล้ว)
1 อ็อกเท็ต จำนวนอินสแตนซ์โฆษณาที่รองรับ

สงวนไว้หลังเวอร์ชัน 0.98
พารามิเตอร์นี้เลิกใช้งานแล้วในข้อกำหนดฟีเจอร์ของ Google v0.98 และ สูงกว่าเพื่อรองรับการโฆษณาแบบขยาย LE ที่พร้อมให้บริการใน ข้อกำหนด BT เวอร์ชัน 5.0 ขึ้นไป
offloaded_resolution_of_private-address
(เลิกใช้งานแล้ว)
1 อ็อกเท็ต ความสามารถของชิป BT ของ RPA
หากชิปรองรับ โฮสต์จะต้องเปิดใช้
0 = ไม่สามารถ
1 = สามารถ

สงวนไว้หลังเวอร์ชัน 0.98
พารามิเตอร์นี้เลิกใช้งานแล้วในข้อกำหนดฟีเจอร์ของ Google v0.98 และ สูงกว่าเพื่อรองรับฟีเจอร์ความเป็นส่วนตัวที่มีอยู่ในข้อกำหนด BT เวอร์ชัน 4.2 ขึ้นไป
total_scan_results_storage 2 อ็อกเท็ต พื้นที่เก็บข้อมูลสำหรับผลการสแกนในหน่วยไบต์
max_irk_list_sz 1 อ็อกเท็ต จำนวนรายการ IRK ที่เฟิร์มแวร์รองรับ
filtering_support 1 อ็อกเท็ต รองรับการกรองในคอนโทรลเลอร์
0 = ไม่รองรับ
1 = รองรับ
max_filter 1 อ็อกเท็ต จำนวนตัวกรองที่รองรับ
activity_energy_info_support 1 อ็อกเท็ต รองรับการรายงานข้อมูลกิจกรรมและพลังงาน
0 = ไม่รองรับ
1 = รองรับ
version_supported 2 อ็อกเท็ต ระบุเวอร์ชันของข้อกำหนดฟีเจอร์ของ Google ที่รองรับ
byte[0] = หมายเลขเวอร์ชันหลัก
byte[1] = หมายเลขเวอร์ชันย่อย

v1.05
byte[0] = 0x01
byte[1] = 0x05

การเพิ่มฟีเจอร์ในเวอร์ชันต่อไปนี้
v1.05:
  • iso_link_feedback_support
  • BQRv7
  • sniff_offload_support
V1.04:
  • BQRv6
total_num_of_advt_tracked 2 อ็อกเท็ต จำนวนผู้ลงโฆษณาทั้งหมดที่ติดตามเพื่อวัตถุประสงค์OnLost/OnFound
extended_scan_support 1 อ็อกเท็ต รองรับช่วงเวลาและช่วงการสแกนที่ขยาย
debug_logging_supported 1 อ็อกเท็ต รองรับการบันทึกข้อมูลการแก้ไขข้อบกพร่องแบบไบนารีจากคอนโทรลเลอร์
LE_address_generation_offloading_support
(เลิกใช้งานแล้ว)
1 อ็อกเท็ต 0 = ไม่รองรับ
1 = รองรับ

สงวนไว้หลังจาก v0.98
พารามิเตอร์นี้เลิกใช้งานแล้วในข้อกำหนดฟีเจอร์ของ Google v0.98 และ สูงกว่าเพื่อรองรับฟีเจอร์ความเป็นส่วนตัวที่มีอยู่ในข้อกำหนด BT เวอร์ชัน 4.2 ขึ้นไป
A2DP_source_offload_capability_mask 4 อ็อกเท็ต บิตมาสก์สำหรับประเภทตัวแปลงรหัสที่รองรับ
บิต 0 - SBC
บิต 1 - AAC
บิต 2 - APTX
บิต 3 - APTX HD
บิต 4 - LDAC
บิต 5-31 สงวนไว้
bluetooth_quality_report_support 1 อ็อกเท็ต รองรับการรายงานเหตุการณ์คุณภาพของบลูทูธ
0 = ไม่สามารถ
1 = สามารถ
dynamic_audio_buffer_support 4 อ็อกเท็ต รองรับบัฟเฟอร์เสียงแบบไดนามิกในตัวควบคุมบลูทูธ
บิตมาสก์สำหรับประเภทตัวแปลงรหัสที่รองรับ
บิต 0 - SBC
บิต 1 - AAC
บิต 2 - APTX
บิต 3 - APTX HD
บิต 4 - LDAC
บิต 5-31 สงวนไว้
a2dp_offload_v2_support 1 อ็อกเท็ต รองรับคำสั่งการลดภาระ A2DP เวอร์ชัน 2 ในตัวควบคุมบลูทูธ (ดูเริ่มการลดภาระ A2DP, หยุดการลดภาระ A2DP) 0 = ไม่รองรับ 1 = รองรับ


iso_link_feedback_support 1 อ็อกเท็ต รองรับเหตุการณ์ความคิดเห็นเกี่ยวกับลิงก์ ISO
0 = ไม่รองรับ
1 = รองรับ
sniff_offload_support 1 อ็อกเท็ต รองรับคำสั่ง Sniff Offload ในตัวควบคุมบลูทูธ
0 = ไม่รองรับ
1 = รองรับ

ผลการสแกนแบบเป็นชุด

เป้าหมายการออกแบบคือการปรับปรุงวิธีส่งการแจ้งเตือนเหตุการณ์การตอบกลับการสแกน Bluetooth LE ไปยังโฮสต์เพื่อประหยัดพลังงานในโฮสต์

การลดความถี่ที่ตัวควบคุมจะแจ้งให้โปรเซสเซอร์ของแอปโฮสต์ สแกนผลลัพธ์จะช่วยให้โปรเซสเซอร์ของแอปโฮสต์ อยู่ในโหมดว่าง/สลีปได้นานขึ้น ซึ่งจะช่วยลดการใช้พลังงานในโฮสต์ พารามิเตอร์ return total_scan_results_storage of LE_Get_Vendor_Capabilities_Command ระบุความสามารถของชิป ในการจัดเก็บผลการสแกน

ฟีเจอร์นี้มุ่งเน้นที่การจัดการและการกำหนดค่าที่เก็บผลการสแกน LE ในตัวควบคุมบลูทูธ โดยใช้พื้นที่เก็บข้อมูล เพื่อจัดกลุ่มข้อมูลโฆษณาและข้อมูลการสแกน รวมถึงข้อมูลเมตาที่ ผู้ควบคุมได้รับชั่วคราวเพื่อส่งไปยังโฮสต์ในภายหลัง

เฟิร์มแวร์ต้องรองรับการประมวลผลแบบกลุ่ม 2 ประเภทที่ใช้พร้อมกันได้ ดังนี้

  • ถูกตัด มีองค์ประกอบข้อมูลต่อไปนี้ {MAC, TX Power, RSSI, Timestamp}
  • เต็ม มีองค์ประกอบข้อมูลต่อไปนี้ {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}

LE_Batch_Scan_Command

OCF: 0x156

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Batch_Scan_opcode 1 อ็อกเท็ต 0x1 - เปิดใช้ฟีเจอร์เฉพาะลูกค้า
0x2 - ตั้งค่าพารามิเตอร์การจัดเก็บการสแกนเป็นชุด
0x3 - ตั้งค่าพารามิเตอร์การสแกนเป็นชุด
0x4 - อ่านพารามิเตอร์ผลการสแกนเป็นชุด

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้ การเปิดใช้ ฟีเจอร์เฉพาะลูกค้าไม่ได้เริ่มการสแกน

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Batch_Scan_opcode 1 อ็อกเท็ต 0x1 - เปิดใช้ฟีเจอร์เฉพาะลูกค้า
0x2 - ตั้งค่าพารามิเตอร์การจัดเก็บการสแกนเป็นชุด
0x3 - ตั้งค่าพารามิเตอร์การสแกนเป็นชุด
0x4 - อ่านพารามิเตอร์ผลการสแกนเป็นชุด

LE_Batch_Scan_Command: เปิดใช้ฟีเจอร์เฉพาะลูกค้า

Sub OCF: 0x01

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
enable_customer_specific_feature_set 1 อ็อกเท็ต 0x01 - เปิดใช้ฟีเจอร์สแกนเป็นชุด
0x00 - ปิดใช้ฟีเจอร์สแกนเป็นชุด

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Batch_Scan_opcode 1 อ็อกเท็ต 0x1 - เปิดใช้ฟีเจอร์เฉพาะลูกค้า
0x2 - ตั้งค่าพารามิเตอร์การจัดเก็บการสแกนเป็นชุด
0x3 - ตั้งค่าพารามิเตอร์การสแกนเป็นชุด
0x4 - อ่านพารามิเตอร์ผลการสแกนเป็นชุด

LE_Batch_Scan_Command: ตั้งค่าพารามิเตอร์ที่เก็บข้อมูลการสแกนแบบกลุ่ม

Sub OCF: 0x02

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
Batch_Scan_Full_Max 1 อ็อกเท็ต พื้นที่เก็บข้อมูลสูงสุด (เป็น %) ที่จัดสรรให้กับสไตล์แบบเต็ม
[ช่วง: 0-100]
Batch_Scan_Truncated_Max 1 อ็อกเท็ต พื้นที่เก็บข้อมูลสูงสุด (เป็น %) ที่จัดสรรให้กับสไตล์ที่ถูกตัด
[ช่วง: 0-100]
Batch_Scan_Notify_Threshold 1 อ็อกเท็ต ตั้งค่าระดับการแจ้งเตือน (เป็น %) สำหรับกลุ่มพื้นที่เก็บข้อมูลแต่ละกลุ่ม
[ช่วง: 0-100]
การตั้งค่าเป็น 0 จะปิดใช้การแจ้งเตือน สร้างเหตุการณ์ HCI เฉพาะผู้ให้บริการ (เหตุการณ์ย่อยการละเมิดเกณฑ์พื้นที่เก็บข้อมูล)

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Batch_scan_opcode 1 อ็อกเท็ต 0x02 [ตั้งค่าพารามิเตอร์การสแกนแบบกลุ่ม]

LE_Batch_Scan_Command: ตั้งค่าคำสั่งย่อยของพารามิเตอร์การสแกนแบบกลุ่ม

Sub OCF: 0x03

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
Batch_Scan_Mode 1 อ็อกเท็ต 0x00 – ปิดใช้การสแกนเป็นชุด
0x01 – เปิดใช้โหมดตัดทอน
0x02 – เปิดใช้โหมดเต็ม
0x03 – เปิดใช้โหมดตัดทอนและโหมดเต็ม
Duty_cycle_scan_window 4 อ็อกเท็ต เวลาในการสแกนแบบเป็นชุด (# ช่อง)
Duty_cyle_scan_interval 4 อ็อกเท็ต ระยะเวลาช่วงการสแกนแบบกลุ่ม (จำนวนช่อง)
own_address_type 1 อ็อกเท็ต 0x00 - ที่อยู่อุปกรณ์สาธารณะ
0x01 - ที่อยู่อุปกรณ์แบบสุ่ม
Batch_scan_Discard_Rule 1 อ็อกเท็ต 0 - ทิ้งโฆษณาที่เก่าที่สุด
1 - ทิ้งโฆษณาที่มี RSSI อ่อนที่สุด

คำสั่งย่อยนี้จะเริ่มการสแกนเป็นชุด หากเปิดใช้ไว้ ในการสแกนแบบย่อ ระบบจะจัดเก็บผลลัพธ์ในรูปแบบย่อ โดยคีย์ที่ไม่ซ้ำกันสำหรับ รูปแบบย่อ = {BD_ADDR, scan_interval} ซึ่งหมายความว่าระบบจะบันทึก BD_ADDR will เพียง 1 รายการ สำหรับช่วงเวลาการสแกนแต่ละครั้ง ระเบียนที่จะเก็บไว้สำหรับโหมดตัดทอนคือ {BD_ADDR, กำลังส่ง, RSSI, การประทับเวลา}

เมื่อเปิดใช้โหมดเต็ม ระบบจะใช้การสแกนที่ใช้งานอยู่และบันทึกการตอบกลับการสแกน คีย์ที่ไม่ซ้ำของรูปแบบเต็ม = {MAC, แพ็กเก็ตโฆษณา} โดยไม่คำนึงถึงช่วงเวลาการสแกน บันทึกที่จะเก็บไว้สำหรับโหมดเต็มคือ {BD_ADDR, กำลังส่ง, RSSI, การประทับเวลา, แพ็กเกตโฆษณา, การสแกน การตอบกลับ} ในรูปแบบเต็ม ระบบจะบันทึกแพ็กเก็ต AD เดียวกันเมื่อเห็นหลายครั้ง ในช่วงเวลาการสแกนที่ต่างกันเพียงครั้งเดียว อย่างไรก็ตาม ใน โหมดตัดทอน สิ่งที่น่าสนใจคือระดับการมองเห็นของ BA_ADDR ใน ช่วงเวลาการสแกนต่างๆ (1 ครั้งต่อช่วงเวลาการสแกน) RSSI คือค่าเฉลี่ยของโฆษณาที่ซ้ำกันทั้งหมดของโฆษณาที่ไม่ซ้ำกัน ภายในช่วงการสแกน

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Batch_scan_opcode 1 อ็อกเท็ต 0x03 [ตั้งค่าพารามิเตอร์การสแกนแบบกลุ่ม]

LE_Batch_Scan_Command: อ่านกลุ่มผลการสแกน

Sub OCF: 0x04

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
Batch_Scan_Data_read 1 อ็อกเท็ต 0x01 - ข้อมูลโหมดที่ถูกตัดทอน
0x02 - ข้อมูลโหมดเต็ม

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้ เมื่อโฮสต์ ออกคำสั่งนี้ ผลลัพธ์ทั้งหมดในตัวควบคุมอาจไม่พอดีในเหตุการณ์ Command Complete รายการเดียว โฮสต์จะวนซ้ำในการออกคำสั่งนี้จนกว่า ผลลัพธ์ที่เกี่ยวข้องในเหตุการณ์ Command Complete จะระบุ 0 ใน จำนวนระเบียน ซึ่งบ่งชี้ว่าคอนโทรลเลอร์ไม่มีระเบียนที่จะ สื่อสารกับโฮสต์อีกต่อไป เหตุการณ์ Command Complete แต่ละรายการอาจมี หลายระเบียนของข้อมูลประเภทเดียวเท่านั้น (แบบเต็มหรือแบบย่อ)

การอ้างอิงเวลาของคอนโทรลเลอร์และโฮสต์ไม่ซิงค์กัน หน่วยของการประทับเวลาคือ 50 มิลลิวินาที ค่าของแสตมป์เวลาจะอิงตามเวลาที่โฮสต์ให้ Read_Batch_Scan_Results_Sub_cmd หากเวลาที่คำสั่งมาถึงคือ T_c ในเฟิร์มแวร์ เวลาจริงที่การประทับเวลา ในเฟิร์มแวร์คือ T_fw เวลาในการรายงานจะเป็น (T_c - T_fw) T_c และ T_fw อยู่ในโดเมนเวลาของเฟิร์มแวร์ ซึ่งจะช่วยให้โฮสต์ คำนวณได้ว่าเหตุการณ์เกิดขึ้นนานเท่าใดแล้ว

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Batch_scan_opcode 1 อ็อกเท็ต 0x03 [ตั้งค่าพารามิเตอร์การสแกนแบบกลุ่ม]
Batch_Scan_data_read 1 อ็อกเท็ต ระบุรูปแบบ (ย่อหรือเต็ม)
num_of_records 1 อ็อกเท็ต จำนวนระเบียนของ Batch_Scan_data_read
format_of_data ตัวแปร โหมดตัดทอน:
Address[0]: 6 octets
Address_Type[0]: 1 octet
Tx_Pwr[0]: 1 octet
RSSI[0] : 1 octet
Timestamp[0]: 2 octets
[multiple records (num_of_records) with above format]

โหมดเต็ม:
Address[0]: 6 octets
Address_Type[0]: 1 octet
Tx_Pwr[0]: 1 octet
RSSI[0]: 1 octet
Timestamp[0]: 2 octets
Adv packet_len[0]: 1 octet
Adv_packet[0]: Adv_packet_len octets
Scan_data_resp_len[0]: 1 octet
Scan_data_resp[0]: Scan_data_resp octets
[multiple records with above format (num_of_records)]

ตัวกรองเนื้อหาแพ็กเก็ตโฆษณา

ใช้เพื่อเปิด/ปิด/ตั้งค่าตัวกรองเนื้อหาแพ็กเก็ตโฆษณา (APCF) ในคอนโทรลเลอร์ APCF จะกรองรายงานการโฆษณาใน คอนโทรลเลอร์ แต่จะไม่กรองการโฆษณาเป็นระยะ

LE_APCF_Command

OCF: 0x157

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
APCF_opcode 1 อ็อกเท็ต 0x00 - เปิดใช้ APCF
0x01 - ตั้งค่าพารามิเตอร์การกรอง APCF
0x02 - ที่อยู่ของ APCF Broadcaster
0x03 - UUID ของบริการ APCF
0x04 - UUID ของการชักชวนบริการ APCF
0x05 - ชื่อในเครื่องของ APCF
0x06 - ข้อมูลผู้ผลิตของ APCF
0x07 - ข้อมูลบริการของ APCF
0x08 - บริการค้นหาการรับส่งของ APCF
0x09 - ตัวกรองประเภทโฆษณาของ APCF
0x10 ~ 0xAF - สงวนไว้สำหรับการใช้งานในอนาคต
0xB0 ~ 0xDF - สงวนไว้สำหรับผู้ให้บริการ
0xE0 ~ 0xFE - สงวนไว้สำหรับการใช้งานในอนาคต
0xFF - อ่านฟีเจอร์เพิ่มเติมของ APCF

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะการคืนสินค้า
APCF_opcode 1 อ็อกเท็ต 0x00 - เปิดใช้ APCF
0x01 - ตั้งค่าพารามิเตอร์การกรอง APCF
0x02 - ที่อยู่ APCF Broadcaster
0x03 - UUID บริการ APCF
0x04 - UUID การชักชวนบริการ APCF
0x05 - ชื่อภายใน APCF
0x06 - ข้อมูลผู้ผลิต APCF
0x07 - ข้อมูลบริการ APCF
0x08 - บริการค้นหาการรับส่ง APCF
0x09 - ตัวกรองประเภทโฆษณา APCF
0x10 ~ 0xAF - สงวนไว้สำหรับการใช้งานในอนาคต
0xB0 ~ 0xDF - สงวนไว้สำหรับผู้จำหน่าย
0xE0 ~ 0xFE - สงวนไว้สำหรับการใช้งานในอนาคต
0xFF - อ่านฟีเจอร์เพิ่มเติมของ APCF

LE_APCF_Command: Enable_sub_cmd

Sub OCF: 0x00

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_enable 1 อ็อกเท็ต 0x01 - เปิดใช้ฟีเจอร์ APCF
0x00 - ปิดใช้ฟีเจอร์ APCF

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x0 - เปิดใช้ APCF
APCF_Enable 1 อ็อกเท็ต การเปิด/ปิดใช้จะตั้งค่าผ่าน APCF_enable

LE_APCF_Command: set_filtering_parameters_sub_cmd

ใช้คำสั่งย่อยนี้เพื่อเพิ่มหรือลบข้อกำหนดตัวกรอง หรือล้างรายการตัวกรองสำหรับการกรองในชิป

Sub OCF: 0x01

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
การลบจะล้างตัวกรองที่เฉพาะเจาะจงพร้อมกับรายการฟีเจอร์ที่เกี่ยวข้อง ในตารางอื่นๆ
ล้างจะล้างตัวกรองทั้งหมดและรายการที่เชื่อมโยงในตารางอื่นๆ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_Feature_Selection 2 อ็อกเท็ต บิตมาสก์สำหรับฟีเจอร์ที่เลือก
บิต 0: ตั้งค่าเพื่อเปิดใช้ตัวกรองที่อยู่บรอดแคสต์
บิต 1: ตั้งค่าเพื่อเปิดใช้ตัวกรองการเปลี่ยนแปลงข้อมูลบริการ
บิต 2: ตั้งค่าเพื่อเปิดใช้การตรวจสอบ UUID ของบริการ
บิต 3: ตั้งค่าเพื่อเปิดใช้การตรวจสอบ UUID ของการชักชวนให้ใช้บริการ
บิต 4: ตั้งค่าเพื่อเปิดใช้การตรวจสอบชื่อในเครื่อง
บิต 5: ตั้งค่าเพื่อเปิดใช้การตรวจสอบข้อมูลของผู้ผลิต
บิต 6: ตั้งค่าเพื่อเปิดใช้การตรวจสอบข้อมูลบริการ
บิต 7: ตั้งค่าเพื่อเปิดใช้การตรวจสอบบริการค้นหาการรับส่ง
บิต 8: ตั้งค่าเพื่อเปิดใช้การตรวจสอบประเภท AD
APCF_List_Logic_Type 2 อ็อกเท็ต การดำเนินการเชิงตรรกะสำหรับการเลือกฟีเจอร์แต่ละรายการ (ตำแหน่งต่อบิต) ที่ระบุใน APCF_Feature_Selection
ใช้ได้เมื่อเปิดใช้ฟีเจอร์เท่านั้น
ค่าตำแหน่งบิต:
0: OR
1: AND
หากเลือกตรรกะ "AND" แพ็กเก็ต ADV จะผ่านตัวกรองก็ต่อเมื่อ มีรายการทั้งหมดในรายการ
หากเลือกตรรกะ "หรือ" แพ็กเก็ต ADV จะผ่านตัวกรองหากมีรายการใดรายการหนึ่งในรายการ
APCF_Filter_Logic_Type 1 อ็อกเท็ต 0x00: OR
0x01: AND
หมายเหตุ: ประเภทตรรกะคือ N/A สำหรับฟิลด์ 3 รายการแรกของ APCF_Feature_Selection ซึ่งเป็นตรรกะ "AND" เสมอ โดยจะ ใช้ได้กับฟิลด์ 4 ฟิลด์ (บิตที่ 3 - บิตที่ 6) ของ APCF_Feature_Selection เท่านั้น
rssi_high_thresh 1 อ็อกเท็ต [ในหน่วย dBm]
ระบบจะถือว่าผู้ลงโฆษณาเห็นก็ต่อเมื่อสัญญาณสูงกว่า เกณฑ์สูงของ RSSI มิฉะนั้น เฟิร์มแวร์ต้องทำงานราวกับว่าไม่เคยเห็น อุปกรณ์ดังกล่าว
delivery_mode 1 อ็อกเท็ต 0x00 - immediate
0x01 - on_found
0x02 - batched
onfound_timeout 2 อ็อกเท็ต ใช้ได้เฉพาะในกรณีที่ delivery_mode เป็น on_found
[เป็นมิลลิวินาที]
เวลาที่เฟิร์มแวร์จะคงอยู่และรวบรวมโฆษณาเพิ่มเติม ก่อนที่จะรายงาน
onfound_timeout_cnt 1 อ็อกเท็ต ใช้ได้เฉพาะในกรณีที่ delivery_mode เป็น on_found
[count]
หากโฆษณาใน onFound ยังคงอยู่ในเฟิร์มแวร์เป็นเวลา onfound_timeout ระบบจะรวบรวมโฆษณา 2-3 รายการ และตรวจสอบจำนวน หากจำนวนเกิน onfound_timeout_cnt ระบบจะรายงาน OnFound ทันทีหลังจากนั้น
rssi_low_thresh 1 อ็อกเท็ต ใช้ได้เฉพาะในกรณีที่ delivery_mode เป็น on_found
[ในหน่วย dBm]
ระบบจะถือว่าไม่เห็นแพ็กเก็ตของผู้ลงโฆษณา หาก RSSI ของ แพ็กเก็ตที่ได้รับไม่สูงกว่าเกณฑ์ต่ำของ RSSI
onlost_timeout 2 อ็อกเท็ต ใช้ได้เฉพาะในกรณีที่ delivery_mode เป็น on_found
[เป็นมิลลิวินาที]
หากตรวจพบโฆษณาแล้ว แต่โฆษณาไม่ได้แสดงอย่างต่อเนื่องเป็นระยะเวลา lost_timeout ระบบจะรายงานว่าโฆษณาหายไปทันที
num_of_tracking_entries 2 อ็อกเท็ต ใช้ได้เฉพาะในกรณีที่ delivery_mode เป็น on_found
[count]
จำนวนผู้ลงโฆษณาทั้งหมดที่จะติดตามต่อตัวกรอง

ค่า RSSI ต้องใช้ส่วนเติมเต็มของ 2 เพื่อแสดงค่าลบ

โฮสต์ต้องกำหนดค่าตัวกรองหลายรายการได้โดยมี APCF_Application_Address_type ตั้งค่าเป็น 0x02 (สำหรับที่อยู่ผู้แพร่ภาพกระจายเสียงทั้งหมด ) เพื่อจัดการชุดค่าผสมตัวกรองต่างๆ

การกรอง การจัดกลุ่ม และการรายงานเป็นแนวคิดที่เชื่อมโยงกัน โฆษณาทุกรายการ และการตอบกลับการสแกนที่เกี่ยวข้องจะต้องผ่านตัวกรองทั้งหมด ทีละรายการ ดังนั้น การดำเนินการที่ได้ (delivery_mode) จึงเชื่อมโยงกับการกรองอย่างใกล้ชิด วิธีการส่งข้อมูลมีดังนี้ report_immediately batch และ onFound ค่า OnLost เกี่ยวข้องกับ OnFound ในแง่ที่ว่า ค่านี้จะปรากฏหลังจาก OnFound เมื่อแพ้

ขั้นตอนการประมวลผลนี้แสดงโมเดลแนวคิด

เมื่อได้รับเฟรมโฆษณา (หรือการตอบกลับการสแกน) ระบบจะใช้เฟรมดังกล่าว กับตัวกรองทั้งหมดตามลำดับ โฆษณา อาจทำให้เกิดการรายงานทันทีตามตัวกรองหนึ่งและการจัดกลุ่มของโฆษณาเดียวกัน เนื่องจากการดำเนินการของตัวกรองอื่น

เกณฑ์ระดับ RSSI (สูงและต่ำ) ช่วยให้คุณควบคุมได้ว่าเฟรมจะแสดงเมื่อใดสำหรับการประมวลผลตัวกรอง แม้ว่าตัวควบคุมจะได้รับแพ็กเก็ตที่ถูกต้องก็ตาม ในกรณีที่ตั้งค่าโหมดการนำส่งเป็น immediate หรือ batched ระบบจะพิจารณา RSSI ของเฟรมสำหรับการประมวลผล คอนโทรลเลอร์เพิ่มเติม แอปต่างๆ ต้องการการรายงานและ ลักษณะการทำงานแบบเป็นกลุ่มที่แตกต่างกัน ซึ่งจะช่วยให้แอปหลายแอปสามารถรายงานโดยตรง และ/หรือจัดกลุ่มผลลัพธ์ในเฟิร์มแวร์พร้อมกันได้ ตัวอย่างเช่น กรณีที่ การสแกนเป็นกลุ่มทำงานจากแอปหนึ่ง และต่อมาแอปอื่นออกคำสั่ง การสแกน LE ปกติ ก่อนที่จะออกคำสั่งการสแกนเป็นกลุ่ม เฟรมเวิร์ก/แอป จะตั้งค่าตัวกรองที่เหมาะสม ต่อมาเมื่อแอปที่ 2 ออกการสแกนปกติ การจัดกลุ่มก่อนหน้าจะดำเนินต่อไป อย่างไรก็ตาม เนื่องจากการสแกนปกติ จึง คล้ายกับการเพิ่มตัวกรอง Null ในเชิงแนวคิด (พร้อมกับตัวกรองที่มีอยู่ทั้งหมด ) พร้อมกับคำสั่งสแกน LE พารามิเตอร์คำสั่งการสแกน LE จะมีความสำคัญเหนือกว่าเมื่อใช้งานอยู่ เมื่อปิดใช้การสแกน LE ปกติ คอนโทรลเลอร์จะเปลี่ยนกลับไปใช้การสแกนเป็นชุดก่อนหน้า หากมี

OnFound โหมดการนำส่งจะอิงตามตัวกรองที่กำหนดค่าไว้ การผสมผสานที่ทําให้การดําเนินการของตัวกรองสําเร็จจะถือเป็นเอนทิตีที่จะติดตามสําหรับ onLost เหตุการณ์ที่เกี่ยวข้องคือเหตุการณ์ย่อยการติดตามโฆษณา LE

OnFound/OnLost การเปลี่ยนผ่านสำหรับตัวกรอง (หากเปิดใช้) จะมีลักษณะดังนี้

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x01 - APCF Set Filtering Parameters
APCF_Action 1 อ็อกเท็ต APCF_Actionคำสั่งตอบกลับ
APCF_AvailableSpaces 1 อ็อกเท็ต จำนวนรายการที่ใช้ได้ในตารางตัวกรอง

LE_APCF_Command: broadcast_address_sub_cmd

คำสั่งย่อยนี้ใช้เพื่อเพิ่มหรือลบที่อยู่ของผู้ลงโฆษณา หรือเพื่อล้าง รายการที่อยู่ของผู้ลงโฆษณาสำหรับการกรองในชิป

Sub OCF: 0x02

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
ลบจะลบที่อยู่ผู้แพร่ภาพที่ระบุใน ตัวกรองที่ระบุ
Clear จะล้างที่อยู่ของผู้แพร่ภาพกระจายเสียงทั้งหมดในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_Broadcaster_Address 6 อ็อกเท็ต ที่อยู่อุปกรณ์ 6 ไบต์ที่จะเพิ่มหรือลบออกจากรายการที่อยู่ของผู้ออกอากาศ
APCF_Application_Address_type 1 อ็อกเท็ต 0x00: สาธารณะ
0x01: สุ่ม
0x02: NA (ไม่สนใจประเภทที่อยู่)
เพื่อกรองรายงานการโฆษณาที่มีประเภทที่อยู่ระบุตัวตน (0x02, 0x03) หากต้องการรับรายงานการโฆษณาที่มีประเภทที่อยู่ 0x02 และ 0x03 ให้ตั้งค่าฟิลด์นี้เป็น 0x02: NA (ไม่สนใจประเภทที่อยู่)

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x02 - ที่อยู่ของ APCF Broadcaster
APCF_Action 1 อ็อกเท็ต APCF_Actionคำสั่งตอบกลับ
APCF_AvailableSpaces 1 อ็อกเท็ต จำนวนรายการฟรีที่ยังใช้ได้ในตารางที่อยู่การออกอากาศ

LE_APCF_Command: service_uuid_sub_cmd

คำสั่งย่อยนี้ใช้เพื่อเพิ่มหรือลบ UUID ของบริการ หรือล้างรายการ UUID ของบริการสำหรับการกรองในชิป

Sub OCF: 0x03

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
ลบจะลบที่อยู่ UUID ของบริการที่ระบุในตัวกรองที่ระบุ
Clear จะล้าง UUID ของบริการทั้งหมดในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_UUID 2,4,16 อ็อกเท็ต UUID ของบริการ (16 บิต, 32 บิต หรือ 128 บิต) สำหรับเพิ่มลงในหรือ ลบออกจากรายการ
APCF_UUID_MASK 2,4,16 อ็อกเท็ต มาสก์ UUID ของบริการ (16 บิต 32 บิต หรือ 128 บิต) ที่จะเพิ่มลงในรายการ โดยควรมีความยาวเท่ากับ APCF_UUID.

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x03 - UUID ของบริการ APCF
APCF_Action 1 อ็อกเท็ต APCF_Actionคำสั่งตอบกลับ
APCF_AvailableSpaces 1 อ็อกเท็ต จำนวนรายการฟรีที่ยังใช้ได้ในตาราง UUID ของบริการ

LE_APCF_Command: solicitation_uuid_sub_cmd

คำสั่งย่อยนี้ใช้เพื่อเพิ่มหรือลบ UUID ของการชักชวน หรือเพื่อล้างรายการ UUID ของการชักชวนสำหรับการกรองในชิป

Sub OCF: 0x04

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
ลบจะลบที่อยู่ UUID ของการชักชวนในตัวกรองที่ระบุ
Clear จะล้าง UUID ของการชักชวนทั้งหมดในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_UUID 2,4,16 อ็อกเท็ต UUID การชักชวน (16 บิต 32 บิต หรือ 128 บิต) ที่จะเพิ่มหรือลบ ออกจากรายการ
APCF_UUID_MASK 2,4,16 อ็อกเท็ต มาสก์ UUID การชักชวน (16 บิต, 32 บิต หรือ 128 บิต) ที่จะเพิ่มลงใน รายการ โดยควรมีความยาวเท่ากับ APCF_UUID

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x04 - UUID ของการชักชวน APCF
APCF_Action 1 อ็อกเท็ต APCF_Actionคำสั่งตอบกลับ
APCF_AvailableSpaces 1 อ็อกเท็ต จำนวนรายการฟรีที่ยังใช้ได้ในตาราง UUID ของการชักชวน

LE_APCF_Command: local_name_sub_cmd

คำสั่งย่อยนี้ใช้เพื่อเพิ่มหรือลบสตริงชื่อในเครื่อง หรือเพื่อล้าง รายการสตริงชื่อในเครื่องสำหรับการกรองในชิป

Sub OCF: 0x05

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
ลบจะลบสตริงชื่อในเครื่องที่ระบุใน ตัวกรองที่ระบุ
Clear จะล้างสตริงชื่อในเครื่องทั้งหมดในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_LocName_Mandata_or_SerData ขนาดตัวแปร สตริงอักขระสำหรับชื่อท้องถิ่น

หมายเหตุ:
  • ปัจจุบันจำนวนอักขระสูงสุดในสตริงชื่อในภาษาท้องถิ่นคือ 29
  • ไม่เกี่ยวข้องเมื่อการดำเนินการคือ "ล้าง" (0x2)

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x05 - APCF Local Name
APCF_Action 1 อ็อกเท็ต APCF_Actionคำสั่งตอบกลับ
APCF_AvailableSpaces 1 อ็อกเท็ต จำนวนรายการฟรีที่ยังใช้ได้ในตารางชื่อในพื้นที่

LE_APCF_Command: manf_data_sub_cmd

คำสั่งย่อยนี้ใช้เพื่อเพิ่มหรือลบสตริงข้อมูลของผู้ผลิต หรือเพื่อ ล้างรายการสตริงข้อมูลของผู้ผลิตสำหรับการกรองในชิป

Sub OCF: 0x06

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
การลบจะลบสตริงข้อมูลของผู้ผลิตที่ระบุใน ตัวกรองที่ระบุ
Clear จะล้างสตริงข้อมูลของผู้ผลิตทั้งหมดในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_LocName_Mandata_or_SerData ขนาดตัวแปร สตริงอักขระสำหรับข้อมูลผู้ผลิต

หมายเหตุ:
  • ปัจจุบันจำนวนอักขระสูงสุดในสตริงชื่อในภาษาท้องถิ่นคือ 29
  • ไม่เกี่ยวข้องเมื่อการดำเนินการคือ "ล้าง" (0x2)
APCF_ManData_Mask ขนาดตัวแปร มาสก์ข้อมูลการผลิตที่จะเพิ่มลงในรายการ โดยควรมีความยาวเท่ากับ APCF_LocName_or_ManData_or_SerData

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x06 - ข้อมูลผู้ผลิต APCF
APCF_Action 1 อ็อกเท็ต APCF_Actionคำสั่งตอบกลับ
APCF_AvailableSpaces 1 อ็อกเท็ต จำนวนข้อมูลที่แสดงฟรีที่ยังใช้ได้ในตารางข้อมูลผู้ผลิต

LE_APCF_Command: service_data_sub_cmd

ใช้คำสั่งย่อยนี้เพื่อเพิ่มหรือลบสตริงข้อมูลบริการ หรือเพื่อล้างรายการสตริงข้อมูลบริการสำหรับการกรองในชิป

Sub OCF: 0x07

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
การลบจะลบสตริงข้อมูลบริการที่ระบุในตัวกรองที่ระบุ
Clear จะล้างสตริงข้อมูลบริการทั้งหมดในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_LocName_Mandata_or_SerData ขนาดตัวแปร สตริงอักขระสำหรับข้อมูลบริการ

หมายเหตุ:
  • ปัจจุบันจำนวนอักขระสูงสุดในสตริงชื่อในภาษาท้องถิ่นคือ 29
  • ไม่เกี่ยวข้องเมื่อการดำเนินการคือ "ล้าง" (0x2)
APCF_LocName_Mandata_or_SerData_Mask ขนาดตัวแปร มาสก์ข้อมูลบริการที่จะเพิ่มลงในรายการ โดยควรมีความยาวเท่ากับ APCF_LocName_or_ManData_or_SerData.

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x07 - ข้อมูลบริการ APCF
APCF_Action 1 อ็อกเท็ต APCF_Actionคำสั่งตอบกลับ
APCF_AvailableSpaces 1 อ็อกเท็ต จำนวนรายการฟรีที่ยังใช้ได้สำหรับตารางข้อมูลบริการ

LE_APCF_Command: ad_type_sub_cmd

ใช้คำสั่งย่อยนี้เพื่อเพิ่มหรือลบประเภทโฆษณา หรือล้างรายการประเภทโฆษณา สำหรับการกรองในชิป ใช้ read_extended_features_sub_cmd เพื่อตรวจสอบว่าคำสั่งนี้ รองรับหรือไม่
เมื่อ APCF_AD_DATA_Length เป็น 0 ให้กรอง APCF_AD_TYPE โดยไม่ เปรียบเทียบข้อมูลโฆษณาและข้อมูลโฆษณาที่มาสก์ หากความยาวข้อมูลของแพ็กเก็ต ADV ที่ได้รับเกิน AD_DATA_LENGTH ให้เปรียบเทียบ เฉพาะไบต์แรก AD_DATA_LENGTH ของข้อมูลโฆษณาและไม่สนใจข้อมูลที่เหลือ

Sub OCF: 0x09

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
การลบจะลบประเภทโฆษณาที่ระบุในตัวกรองที่ระบุ
Clear จะล้างประเภทโฆษณาทั้งหมดในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_AD_TYPE 1 อ็อกเท็ต ประเภทโฆษณาสำหรับการเพิ่มหรือลบออกจากรายการ ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
APCF_AD_DATA_Length 1 อ็อกเท็ต 0x00 - หมายถึงไม่กรองเนื้อหาข้อมูล
ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
APCF_AD_DATA ขนาดตัวแปร ขนาดแปรผันตาม APCF_AD_DATA_Length
ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
APCF_AD_DATA_MASK ขนาดตัวแปร ขนาดตัวแปร อิงตาม APCF_AD_DATA_Length
ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
ควรมีความยาวเท่ากับ APCF_AD_DATA

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0x09 - ประเภทโฆษณา APCF
APCF_Action 1 อ็อกเท็ต APCF_Actionคำสั่งตอบกลับ
APCF_AvailableSpaces 1 อ็อกเท็ต จำนวนรายการฟรีที่ยังคงมีอยู่ในตารางประเภทโฆษณา

LE_APCF_Command: read_extended_features_sub_cmd

คำสั่งย่อยนี้ใช้เพื่ออ่านฟีเจอร์ APCF แบบขยาย

Sub OCF: 0xFF

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
ไม่เกี่ยวข้อง พารามิเตอร์คำสั่งว่าง

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
APCF_opcode 1 อ็อกเท็ต 0xFF - APCF_Read_Extended_Features
APCF_extended_features 2 อ็อกเท็ต

บิตมาสก์สำหรับฟีเจอร์เพิ่มเติมที่รองรับมีดังนี้

  • บิตที่ 0: รองรับตัวกรองบริการค้นหาการรับส่ง
  • บิต 1: รองรับตัวกรองประเภทโฆษณา
  • บิต 2 ~15: สงวนไว้สำหรับการใช้งานในอนาคต

ค่าของบิต

  • 0 = ไม่รองรับ
  • 1 = รองรับ

คำสั่งกิจกรรมของตัวควบคุมและข้อมูลพลังงาน

วัตถุประสงค์ของข้อมูลนี้คือเพื่อให้ฟังก์ชันระบบโฮสต์ระดับสูงวิเคราะห์กิจกรรมทั้งหมดของคอมโพเนนต์ทั้งหมด ซึ่งรวมถึงคอนโทรลเลอร์ BT และสถานะมาโครของคอนโทรลเลอร์ร่วมกับสิ่งที่เกิดขึ้นในแอปและเฟรมเวิร์ก หากต้องการทำเช่นนี้ คุณจะต้องมีข้อมูลต่อไปนี้ จากสแต็ก BT และคอนโทรลเลอร์

  • สแต็ก BT: รายงานสถานะการทำงานระดับมาโครปัจจุบันของ คอนโทรลเลอร์
  • เฟิร์มแวร์: การรายงานข้อมูลกิจกรรมและพลังงานรวม

สถานะมาโครของสแต็กโฮสต์ BT ตามที่กำหนดที่ระดับผู้ใช้

  • ไม่ได้ใช้งาน: [page scan, LE advt, inquiry scan, LE scan]
  • สแกน: [paging/inquiry/trying to connect]
  • ใช้งานอยู่: [ลิงก์ ACL เปิดอยู่, ลิงก์ SCO กำลังดำเนินการ, โหมดดมกลิ่น]

กิจกรรมที่ตัวควบคุมติดตามตลอดอายุการใช้งาน ได้แก่ เวลา Tx เวลา Rx เวลาที่ไม่มีการใช้งาน และพลังงานทั้งหมดที่ใช้ไป ระบบจะล้างข้อมูลเมื่อ อ่านจากโฮสต์

LE_Get_Controller_Activity_Energy_Info

นี่คือคำสั่งเฉพาะของผู้ให้บริการ

OCF: 0x159

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
NA พารามิเตอร์คำสั่งที่ว่างเปล่า

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
total_tx_time_ms 4 อ็อกเท็ต เวลาทั้งหมดที่ใช้ในการทำธุรกรรม
total_rx_time_ms 4 อ็อกเท็ต เวลาทั้งหมดที่ใช้ในการดำเนินการ Rx
total_idle_time_ms 4 อ็อกเท็ต เวลารวมในโหมดว่าง (สถานะใช้พลังงานต่ำที่ไม่ใช่โหมดสลีป)
total_energy_used 4 อ็อกเท็ต พลังงานทั้งหมดที่ใช้ [ผลคูณของกระแสไฟฟ้า (mA), แรงดันไฟฟ้า (V) และเวลา (ms)]

คำสั่งพารามิเตอร์การสแกนชุดขยาย LE

คำสั่งนี้ใช้เพื่อเปิดใช้หน้าต่างการสแกนและช่วงเวลาที่ใหญ่ขึ้นใน คอนโทรลเลอร์ ตามข้อกำหนด BT Core 5.2 หน้าต่างการสแกนและ ช่วงเวลาจะมีขีดจำกัดสูงสุดที่ 10.24 วินาที ซึ่งจะขัดขวาง ช่วงเวลาการสแกนที่เกิน 10.24 วินาทีสำหรับแอป

การอ้างอิงพื้นฐาน: ข้อกําหนด BT Core 5.2 หน้า 2493 (คําสั่งพารามิเตอร์ LE Set Scan )

OCF: 0x15A

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
LE_Ex_Scan_Type 1 อ็อกเท็ต 0x00 - การสแกนแบบพาสซีฟ ห้ามส่งแพ็กเก็ต SCAN_REQ (ค่าเริ่มต้น)
0x01 - การสแกนที่ใช้งานอยู่ อาจมีการส่งแพ็กเก็ต SCAN_REQ
LE_Ex_Scan_Interval 4 อ็อกเท็ต กำหนดเป็นช่วงเวลาตั้งแต่ที่ตัวควบคุมเริ่มการสแกน LE ครั้งสุดท้ายจนถึงเริ่มการสแกน LE ครั้งถัดไป
ช่วง: 0x0004 ถึง 0x00FFFFFF
ค่าเริ่มต้น: 0x0010 (10 มิลลิวินาที)
เวลา = N * 0.625 มิลลิวินาที
ช่วงเวลา: 2.5 มิลลิวินาทีถึง 10442.25 วินาที
LE_Ex_Scan_Window 4 อ็อกเท็ต ระยะเวลาของการสแกน LE LE_Scan_Window ต้องน้อยกว่า หรือเท่ากับ LE_Scan_Interval
ช่วง: 0x0004 ถึง 0xFFFF
ค่าเริ่มต้น: 0x0010 (10 มิลลิวินาที)
เวลา = N * 0.625 มิลลิวินาที
ช่วงเวลา: 2.5 มิลลิวินาทีถึง 40.95 วินาที
Own_Address_Type 1 อ็อกเท็ต 0x00 - ที่อยู่อุปกรณ์สาธารณะ (ค่าเริ่มต้น)
0x01 - ที่อยู่อุปกรณ์แบบสุ่ม
LE_Ex_Scan_Filter_Policy 0x00 - ยอมรับแพ็กเก็ตโฆษณาทั้งหมด (ค่าเริ่มต้น) แพ็กเก็ตโฆษณาที่กำหนด ซึ่งไม่ได้ระบุที่อยู่สำหรับอุปกรณ์นี้จะ ไม่มีผล
0x01 - ละเว้นแพ็กเก็ตโฆษณาจากอุปกรณ์ที่ไม่ได้อยู่ในรายการที่อนุญาต เท่านั้น ระบบจะไม่สนใจแพ็กเก็ตโฆษณาที่กำหนดเป้าหมายซึ่งไม่ได้ระบุไว้สำหรับ อุปกรณ์นี้

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์

รับคำสั่งข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุม

วัตถุประสงค์ขององค์ประกอบข้อมูลนี้คือการรับข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุม จากโฮสต์ในรูปแบบไบนารีสำหรับการประมวลผลและการวิเคราะห์ภายหลัง ซึ่งจะช่วยแก้ไขข้อบกพร่องของปัญหาในฟิลด์และมอบชุดเครื่องมือแก่วิศวกรเพื่อ บันทึกข้อมูลสำหรับการวิเคราะห์ ผู้ควบคุมข้อมูลสามารถให้ข้อมูล เมื่อโฮสต์ขอผ่านเหตุการณ์ (เหตุการณ์ย่อยข้อมูลการแก้ไขข้อบกพร่องของผู้ควบคุมข้อมูล) หรือโดยอิสระเมื่อผู้ควบคุมข้อมูลต้องการ ตัวอย่างการใช้งานอาจรวมถึงการ รายงานข้อมูลสถานะเฟิร์มแวร์ ข้อมูลการทิ้งหน่วยความจำเมื่อเกิดข้อขัดข้อง ข้อมูลการบันทึก เป็นต้น

OCF: 0x15B

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
ไม่มี รายการพารามิเตอร์คำสั่งที่ว่างเปล่า

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์

รองรับการลดภาระฮาร์ดแวร์ A2DP

ฟีเจอร์การส่งต่อ A2DP รองรับการส่งต่อกระบวนการเข้ารหัสเสียง A2DP ไปยังหน่วยประมวลผลเสียงที่เชื่อมต่อกับตัวควบคุม BT สตรีมข้อมูลเสียงที่เข้ารหัส จะส่งจากตัวประมวลผลเสียงไปยังตัวควบคุม BT โดยตรง โดยไม่ต้องผ่านโฮสต์ BT โฮสต์ BT ยังคง รับผิดชอบในการกำหนดค่าและควบคุมเซสชัน A2DP คำสั่งมี 2 เวอร์ชัน คำสั่งเดิมที่มี Sub OCF 0x01-0x02 รองรับเฉพาะตัวแปลงรหัสแบบโอเพนซอร์ส เวอร์ชันที่มี Sub-OCF 0x03-0x04 จะไม่ขึ้นอยู่กับตัวแปลงรหัสที่กำหนดค่าไว้

OCF: 0x15D

เริ่มการลดภาระ A2DP (เดิม)

Sub OCF: 0x01

ใช้คำสั่งนี้ทั้งเพื่อกำหนดค่ากระบวนการออฟโหลด A2DP และเพื่อเริ่ม สตรีม A2DP

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Codec 4 อ็อกเท็ต ระบุประเภทตัวแปลงรหัส
0x01 - SBC
0x02 - AAC
0x04 - APTX
0x08 - APTX HD
0x10 - LDAC
Max_Latency 2 อ็อกเท็ต เวลาในการตอบสนองสูงสุดที่อนุญาต (เป็นมิลลิวินาที) ค่า 0 จะเป็นการปิดใช้การล้าง
SCMS-T_Enable 2 อ็อกเท็ต Octet 0: แฟล็กที่เปิดใช้การเพิ่มส่วนหัว SCMS-T
  • 0x00 - ไม่ได้รวมส่วนหัว SCMS-T
  • 0x01 - มีส่วนหัว SCMS-T

Octet 1: ค่าสำหรับส่วนหัว SCMS-T เมื่อเปิดใช้

Sampling_Frequency 4 อ็อกเท็ต 0x01 - 44100 Hz
0x02 - 48000 Hz
0x04 - 88200 Hz
0x08 - 96000 Hz
Bits_Per_Sample 1 อ็อกเท็ต 0x01 - 16 บิตต่อตัวอย่าง
0x02 - 24 บิตต่อตัวอย่าง
0x04 - 32 บิตต่อตัวอย่าง
Channel_Mode 1 อ็อกเท็ต 0x01 - โมโน
0x02 - สเตอริโอ
Encoded_Audio_Bitrate 4 อ็อกเท็ต อัตราบิตของเสียงที่เข้ารหัสในหน่วยบิตต่อวินาที
0x00000000 - ไม่ได้ระบุอัตราบิตของเสียง และไม่ได้ใช้
0x00000001 - 0x00FFFFFF - อัตราบิตของเสียงที่เข้ารหัสในหน่วยบิตต่อวินาที
0x01000000 - 0xFFFFFFFF - สงวนไว้
Connection_Handle 2 อ็อกเท็ต Connection Handle ของการเชื่อมต่อ A2DP ที่กำลังกำหนดค่า
L2CAP_Channel_ID 2 อ็อกเท็ต รหัสช่อง L2CAP ที่จะใช้สำหรับการเชื่อมต่อ A2DP นี้
L2CAP_MTU_Size 2 อ็อกเท็ต ขนาดสูงสุดของ L2CAP MTU ที่มีแพ็กเก็ตเสียงที่เข้ารหัส
Codec_Information 32 อ็อกเท็ต ข้อมูลเฉพาะของตัวแปลงรหัส

ตัวแปลงรหัส SBC:

ดูองค์ประกอบข้อมูลเฉพาะของตัวแปลงรหัส SBC ใน A2DP v1.3
อ็อกเท็ต 0: ความยาวบล็อก | แถบย่อย | วิธีการจัดสรร
อ็อกเท็ต 1: ค่า Bitpool ขั้นต่ำ
อ็อกเท็ต 2: ค่า Bitpool สูงสุด
อ็อกเท็ต 3: ความถี่ในการสุ่มตัวอย่าง | โหมดช่อง
อ็อกเท็ต 4-31: สงวนไว้

ตัวแปลงรหัส AAC:

ดูองค์ประกอบข้อมูลเฉพาะของตัวแปลงรหัส AAC ใน A2DP v1.3
อ็อกเทต 0: ประเภทออบเจ็กต์
อ็อกเทต 1; b7: VBR
อ็อกเทต 2-31: สงวนไว้

ตัวแปลงสัญญาณ LDAC:

Octet 0-3: Vendor ID
0x0000012D

อ็อกเท็ต 4-5: รหัสตัวแปลงรหัส
0x00AA - LDAC
ค่าอื่นๆ ทั้งหมดสงวนไว้

Octet 6: ดัชนีบิตเรต:
0x00 - สูง
0x01 - ปานกลาง
0x02 - ต่ำ
0x03 - 0x7E - สงวนไว้
0x7F - ABR (Adaptive Bit Rate)
0x80 - 0xFF - สงวนไว้

ไบต์ที่ 7: โหมดช่อง LDAC
0x01 - สเตอริโอ
0x02 - คู่
0x04 - โมโน
อื่นๆ สงวนไว้

Octet 8-31: reserved

ตัวแปลงรหัสอื่นๆ ทั้งหมด:

อ็อกเท็ต 0-31: สงวนไว้

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Sub_Opcode 1 อ็อกเท็ต 0x01 - เริ่มการลดภาระ A2DP

เริ่มการลดภาระ A2DP

Sub OCF: 0x03

ใช้คำสั่งนี้ทั้งเพื่อกำหนดค่ากระบวนการออฟโหลด A2DP และเพื่อเริ่ม สตรีม A2DP

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Connection Handle 2 อ็อกเท็ต แฮนเดิลของการเชื่อมต่อ HCI ที่ใช้งานอยู่
L2CAP_Channel_ID 2 อ็อกเท็ต ตัวระบุของช่อง L2CAP ที่เปิดสำหรับการสตรีม A2DP
Data_Path_Direction 1 อ็อกเท็ต 0x00 - เอาต์พุต (AVDTP Source/Merge)
0x01 - อินพุต (AVDTP Sink/Split)
Peer_MTU 2 อ็อกเท็ต ขนาดสูงสุดของแพ็กเก็ต L2CAP ที่เจรจาต่อรองกับเพียร์
CP_Enable_SCMS_T 1 อ็อกเท็ต 0x00 - ปิดใช้ส่วนหัวการปกป้องเนื้อหา SCMS-T
0x01 - เปิดใช้ส่วนหัวการปกป้องเนื้อหา SCMS-T
CP_Header_SCMS_T 1 อ็อกเท็ต เมื่อเปิดใช้ส่วนหัวการป้องกันเนื้อหา SCMS-T (CP_SCMS_T_Enable ตั้งค่าเป็น 0x01) จะกำหนดค่าส่วนหัวที่อยู่ก่อนเนื้อหาเสียง (ดู A2DP ส่วนที่ 3.2.1-2) ตามที่กำหนดโดยหมายเลขที่กำหนดของบลูทูธ ส่วนที่ 6.3.2
จะไม่สนใจเมื่อไม่ได้เปิดใช้การป้องกันเนื้อหา SCMS-T
Vendor_Specific_Parameters_Length 1 อ็อกเท็ต ความยาวของพารามิเตอร์เฉพาะผู้ให้บริการในช่วง 0-128
ระบบจะใช้ค่า 0 เมื่อไม่ได้ระบุพารามิเตอร์เพิ่มเติม
Vendor_Specific_Parameters 0-128 อ็อกเทต พารามิเตอร์เฉพาะของผู้ให้บริการที่จัดทำโดย Bluetooth Audio HAL CodecParameters.vendorSpecificParameters[]

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Sub_Opcode 1 อ็อกเท็ต 0x03 - เริ่มการลดภาระ A2DP

หยุดการลดภาระ A2DP (เดิม)

Sub OCF: 0x02

ใช้คำสั่งนี้เพื่อหยุดสตรีมการออฟโหลด A2DP

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
ไม่มี รายการพารามิเตอร์คำสั่งว่างเปล่า

ไม่ได้กำหนดพารามิเตอร์สำหรับคำสั่งนี้

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Sub_Opcode 1 อ็อกเท็ต 0x02 - หยุดการลดภาระ A2DP

หยุดการลดภาระ A2DP

Sub OCF: 0x04

ใช้คำสั่งนี้เพื่อหยุดสตรีมการออฟโหลด A2DP

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Connection Handle 2 อ็อกเท็ต แฮนเดิลของการเชื่อมต่อ HCI ที่ใช้งานอยู่
L2CAP_Channel_ID 2 อ็อกเท็ต ตัวระบุของช่อง L2CAP ที่เปิดสำหรับการสตรีม A2DP
Data_Path_Direction 1 อ็อกเท็ต 0x00 - เอาต์พุต (AVDTP Source/Merge)
0x01 - อินพุต (AVDTP Sink/Split)

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Sub_Opcode 1 อ็อกเท็ต 0x04 - หยุดการลดภาระ A2DP

คำสั่งรายงานคุณภาพบลูทูธ

ฟีเจอร์คำสั่งรายงานคุณภาพ BT จะเริ่มกลไกใน ตัวควบคุมบลูทูธเพื่อรายงานเหตุการณ์คุณภาพบลูทูธไปยังโฮสต์ คุณ เปิดใช้ตัวเลือกได้ 4 รายการ ดังนี้

  • โหมดการตรวจสอบคุณภาพ: ตัวควบคุมจะส่งเหตุการณ์ย่อย BQR ที่เกี่ยวข้องกับคุณภาพของลิงก์ไปยังโฮสต์เป็นระยะๆ
  • ใกล้ถึง LSTO: หากไม่ได้รับแพ็กเก็ตจากอุปกรณ์ BT ที่เชื่อมต่อเป็นเวลานานกว่าครึ่งหนึ่งของค่า Link Supervision TimeOut (LSTO) คอนโทรลเลอร์จะรายงานเหตุการณ์ Approaching LSTO ไปยังโฮสต์
  • เสียง A2DP ตะกุกตะกัก: เมื่อตัวควบคุมตรวจพบปัจจัยที่ทำให้เสียงตะกุกตะกัก ตัวควบคุมจะรายงานเหตุการณ์เสียง A2DP ตะกุกตะกักไปยังโฮสต์
  • (จ) เสียง (e)SCO ขาดๆ หายๆ: เมื่อตัวควบคุมตรวจพบปัจจัยที่ทำให้เสียงขาดๆ หายๆ ตัวควบคุมจะรายงานเหตุการณ์เสียง (e)SCO ขาดๆ หายๆ ไปยังโฮสต์
  • การอักเสบของรูท: คอนโทรลเลอร์จะส่งเหตุการณ์นี้ไปยังสแต็ก เมื่อ HAL หรือคอนโทรลเลอร์พบข้อผิดพลาดร้ายแรงและต้อง รีสตาร์ทบลูทูธ
  • การติดตามข้อความ LMP/LL: คอนโทรลเลอร์จะส่งข้อความ LMP/LL การแฮนด์เชคกับอุปกรณ์ระยะไกลไปยังโฮสต์
  • การติดตามการจัดกำหนดการแบบหลายโปรไฟล์/การทำงานร่วมกันของบลูทูธ: คอนโทรลเลอร์จะส่ง ข้อมูลการจัดกำหนดการเกี่ยวกับการจัดการโปรไฟล์บลูทูธหลายรายการและ การทำงานร่วมกันแบบไร้สายในย่านความถี่ 2.4 GHz ไปยังโฮสต์
  • กลไกข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุม: เมื่อเปิดใช้ ตัวควบคุมจะรายงานข้อมูลการบันทึกการแก้ไขข้อบกพร่องโดยอัตโนมัติผ่านเหตุการณ์ย่อยของข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุมไปยังโฮสต์
  • LE Audio Choppy: เมื่อตัวควบคุมตรวจพบปัจจัยที่ทำให้เสียงขาดหาย ตัวควบคุมจะรายงานเหตุการณ์ LE Audio Choppy ไปยังโฮสต์
  • โหมดสถิติ RF ขั้นสูง: คอนโทรลเลอร์จะรายงานสถิติ RF ที่เกี่ยวข้อง ให้กับโฮสต์ โดยรองรับกรณีการใช้งานการรายงาน 2 กรณีต่อไปนี้
    • รายงานเป็นระยะ
    • ทริกเกอร์เหตุการณ์ (ทริกเกอร์เหตุการณ์เริ่ม/หยุดสตรีมและคุณภาพลิงก์)
  • กลไกการตรวจสอบสถานะของตัวควบคุมจะให้ข้อมูลที่เกี่ยวข้องกับสถานะแก่โฮสต์ ผ่านเหตุการณ์ 2 ประเภท ได้แก่ รายงานเป็นระยะและรายงานที่ทริกเกอร์ด้วยเหตุการณ์
  • BQR_Report_Action ของคำสั่งรายงานคุณภาพบลูทูธ: โฮสต์สามารถ ใช้คำสั่ง HCI นี้เพื่อรับการค้นหาแบบครั้งเดียวสำหรับโหมดการตรวจสอบคุณภาพ โหมดการตรวจสอบพลังงาน หรือโหมดสถิติ RF ขั้นสูง

OCF: 0x15E

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
BQR_Report_Action 1 อ็อกเท็ต การดำเนินการเพื่อเพิ่ม / ลบการรายงานเหตุการณ์คุณภาพที่ตั้งค่าไว้ใน พารามิเตอร์ BQR_Quality_Event_Mask หรือล้างทั้งหมด

0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
0x03 - การค้นหาครั้งเดียว

การลบจะเป็นการล้างการรายงานเหตุการณ์ด้านคุณภาพที่เฉพาะเจาะจง
Clear จะล้างการรายงานเหตุการณ์คุณภาพทั้งหมด (ไม่สนใจพารามิเตอร์ BQR_Quality_Event_Mask ได้)

BQR_Quality_Event_Mask 4 อ็อกเท็ต บิตมาสก์สําหรับการรายงานเหตุการณ์ด้านคุณภาพที่เลือก

บิต 0: ตั้งค่าเพื่อเปิดใช้โหมดการตรวจสอบคุณภาพ
บิตที่ 1: ตั้งค่าเพื่อเปิดใช้เหตุการณ์ LSTO ที่กำลังจะเกิดขึ้น (สำหรับ ACL/(e)SCO/ISO)
บิตที่ 2: ตั้งค่าเพื่อเปิดใช้เหตุการณ์เสียง A2DP ขาดๆ หายๆ
บิต 3: ตั้งค่าเพื่อเปิดใช้เหตุการณ์เสียง (e)SCO ขาดๆ หายๆ
บิตที่ 4: ตั้งค่าเพื่อเปิดใช้เหตุการณ์การอักเสบของรูท
บิตที่ 5: ตั้งค่าเพื่อเปิดใช้โหมดการตรวจสอบพลังงาน
บิตที่ 6: ตั้งค่าเพื่อเปิดใช้เหตุการณ์เสียง LE ขาดๆ หายๆ
บิตที่ 7: ตั้งค่าเพื่อเปิดใช้เหตุการณ์การเชื่อมต่อล้มเหลว
บิตที่ 8: ตั้งค่าเพื่อเปิดใช้ทริกเกอร์เหตุการณ์โหมดสถิติ RF ขั้นสูง
บิต 9: ตั้งค่าเพื่อเปิดใช้รายงานเป็นระยะเกี่ยวกับสถิติ RF ขั้นสูง
บิตที่ 10: ตั้งค่าเพื่อเปิดใช้ทริกเกอร์เหตุการณ์กลไกการตรวจสอบสถานะของตัวควบคุม (เพิ่มใน BQRv7)
บิตที่ 11: ตั้งค่าเพื่อเปิดใช้กลไกการตรวจสอบความสมบูรณ์ของคอนโทรลเลอร์ให้รายงานเป็นระยะ (เพิ่มใน BQRv7)
บิตที่ 12 ~ 14: สงวนไว้
บิตที่ 15: ตั้งค่าเพื่อเปิดใช้เหตุการณ์คุณภาพเฉพาะผู้ให้บริการ
บิตที่ 16: ตั้งค่าเพื่อเปิดใช้การติดตามข้อความ LMP/LL
บิตที่ 17: ตั้งค่าเพื่อเปิดใช้การติดตามการจัดกำหนดการแบบหลายลิงก์/การทำงานร่วมกันของบลูทูธ
บิตที่ 18: ตั้งค่าเพื่อเปิดใช้กลไกข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุม
บิตที่ 19: สงวนไว้สำหรับข้อมูลการแก้ไขข้อบกพร่องในการออฟโหลด
บิตที่ 20: ทริกเกอร์เหตุการณ์การดัมพ์ประวัติ UART (เพิ่มใน BQRv7)
บิตที่ 21 ~ 30: สงวนไว้
บิต 31: ตั้งค่าเพื่อเปิดใช้การติดตามเฉพาะผู้ให้บริการ

BQR_Minimum_Report_Interval 2 อ็อกเท็ต กำหนดช่วงเวลาขั้นต่ำของการรายงานเหตุการณ์ด้านคุณภาพสำหรับ เหตุการณ์ด้านคุณภาพที่เลือก เฟิร์มแวร์ของคอนโทรลเลอร์ไม่ควรรายงาน เหตุการณ์ถัดไปภายในช่วงเวลาที่กำหนด การตั้งค่าช่วงเวลา ต้องเป็นไปตามและเฉพาะสำหรับเหตุการณ์ด้านคุณภาพที่ กำลังเพิ่ม

หน่วย: มิลลิวินาที
ค่าเริ่มต้น: 0 (ไม่มีข้อจำกัดสำหรับช่วงเวลา)
ช่วง: 0 ~ 65535 มิลลิวินาที

BQR_Vendor_Specific_Quality_Event_Mask 4 อ็อกเท็ต บิตมาสก์สําหรับการรายงานเหตุการณ์ด้านคุณภาพที่เฉพาะเจาะจงของผู้ให้บริการที่เลือก
พารามิเตอร์นี้จะใช้ได้ก็ต่อเมื่อตั้งค่าบิตที่ 15 ของ BQR_Quality_Event_Mask

บิตที่ 0 ~ 31: สงวนไว้

BQR_Vendor_Specific_Trace_Mask 4 อ็อกเท็ต บิตมาสก์สำหรับการรายงานการติดตามที่เฉพาะเจาะจงของผู้ให้บริการที่เลือก
พารามิเตอร์นี้จะใช้ได้ก็ต่อเมื่อตั้งค่าบิตที่ 31 ของ BQR_Quality_Event_Mask

บิตที่ 0 ~ 31: สงวนไว้

Report_interval_multiple 4 อ็อกเท็ต ตัวคูณสำหรับ BQR_Minimum_Report_Interval เมื่อค่านี้ >= 1 ช่วงเวลารายงาน BQR จะเป็นไปตามรูปแบบ
ช่วงเวลารายงาน BQR = BQR_Minimum_Report_Interval x Report_interval_multiple
เฟิร์มแวร์ของคอนโทรลเลอร์ต้องไม่รายงานเหตุการณ์ถัดไปภายในช่วงเวลาที่กำหนด ไว้ การตั้งค่าช่วงเวลาจะใช้เฉพาะกับเหตุการณ์ที่มีคุณภาพที่เพิ่มเข้ามา

หน่วย: มิลลิวินาที
ค่าเริ่มต้น: 1
ช่วง: 0 ~ 4294967295 (0: เท่ากับตั้งค่าเป็น 1)

หมายเหตุ: หากการตั้งค่า BQR_Report_Interval มากกว่าความสามารถ ของคอนโทรลเลอร์ คอนโทรลเลอร์ต้องแสดงเวลา BQR_Report_Interval สูงสุดเมื่อคำสั่งเสร็จสมบูรณ์

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Current_Quality_Event_Mask 4 อ็อกเท็ต ระบุการตั้งค่าบิตมาสก์ปัจจุบัน
บิตที่ 0: เปิดใช้โหมดการตรวจสอบคุณภาพ
บิตที่ 1: เปิดใช้การรายงานเหตุการณ์ LSTO ที่กำลังจะเกิดขึ้น
บิตที่ 2: เปิดใช้การรายงานเหตุการณ์เสียง A2DP ขาดๆ หายๆ
บิตที่ 3: เปิดใช้การรายงานเหตุการณ์เสียง (e)SCO ขาดๆ หายๆ
บิตที่ 4: เปิดใช้การรายงานเหตุการณ์การอักเสบของรูท
บิตที่ 5: เปิดใช้โหมดการตรวจสอบพลังงาน
บิตที่ 6: เปิดใช้การรายงานเหตุการณ์เสียง LE ขาดๆ หายๆ
บิตที่ 7: เหตุการณ์การเชื่อมต่อล้มเหลว
บิตที่ 8: ตั้งค่าเพื่อเปิดใช้ทริกเกอร์เหตุการณ์โหมดสถิติ RF ขั้นสูง
บิตที่ 9: ตั้งค่าเพื่อเปิดใช้การรายงานสถิติ RF ขั้นสูงเป็นระยะๆ
บิตที่ 10: ตั้งค่าเป็นทริกเกอร์เหตุการณ์กลไกการตรวจสอบสถานะของตัวควบคุมที่เปิดใช้
บิตที่ 11: ตั้งค่าเป็นเปิดใช้กลไกการตรวจสอบสถานะของตัวควบคุมเพื่อรายงานเป็นระยะ
บิต 12 ~ 14: สงวนไว้
บิตที่ 15: เปิดใช้การรายงานเหตุการณ์คุณภาพเฉพาะผู้ให้บริการ
บิตที่ 16: เปิดใช้การติดตามข้อความ LMP/LL
บิตที่ 17: เปิดใช้การติดตามการจัดกำหนดการแบบหลายลิงก์/การทำงานร่วมกันของบลูทูธ
บิตที่ 18: เปิดใช้กลไกข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุม
บิตที่ 19: สงวนไว้สำหรับข้อมูลการแก้ไขข้อบกพร่องในการออฟโหลด
บิตที่ 20: ทริกเกอร์เหตุการณ์การดัมพ์ประวัติ UART
บิตที่ 21 ~ 30: สงวนไว้
บิต 31: เปิดใช้การติดตามที่เจาะจงผู้ให้บริการ
Current_Vendor_Specific_Quality_Event_Mask 4 อ็อกเท็ต ระบุการตั้งค่าบิตมาสก์ปัจจุบัน
Current_Vendor_Specific_Trace_Mask 4 อ็อกเท็ต ระบุการตั้งค่าบิตมาสก์ปัจจุบัน
BQR_Report_interval 4 อ็อกเท็ต ระบุการตั้งค่าบิตมาสก์ปัจจุบัน
Current_Vendor_Specific_Trace_Mask 4 อ็อกเท็ต การตั้งค่าของ BQR_Report_interval โดยต้องเป็นค่าต่ำสุดระหว่าง BQR_Minimum_Report_Interval * Report_interval_multiple หรือช่วงเวลาที่รองรับสูงสุดของ คอนโทรลเลอร์

คำสั่งบัฟเฟอร์เสียงแบบไดนามิก

บัฟเฟอร์เสียงแบบไดนามิกช่วยลดอาการเสียงกระตุกโดยการเปลี่ยนขนาดบัฟเฟอร์เสียงในตัวควบคุมบลูทูธตามสถานการณ์ต่างๆ

OCF: 0x15F

รับความสามารถในการใช้ระยะบัฟเฟอร์ของเสียง

Sub OCF: 0x01

ใช้คำสั่งนี้เพื่อรับความสามารถของเวลาบัฟเฟอร์เสียงจาก ตัวควบคุมบลูทูธ

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
ไม่มี รายการพารามิเตอร์คำสั่งที่ว่างเปล่า

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Dynamic_Audio_Buffer_opcode 1 อ็อกเท็ต 0x01 - รับระยะบัฟเฟอร์ของเสียง
Audio_Codec_Type_Supported 4 อ็อกเท็ต บิตมาสก์สำหรับประเภทตัวแปลงรหัสที่รองรับ
บิต 0 - SBC
บิต 1 - AAC
บิต 2 - APTX
บิต 3 - APTX HD
บิต 4 - LDAC
บิต 5-31 สงวนไว้
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 อ็อกเท็ต เวลาบัฟเฟอร์เริ่มต้นของประเภทตัวแปลงรหัส Bit 0 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัสบิต 0
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 อ็อกเท็ต เวลาบัฟเฟอร์สูงสุดของประเภทตัวแปลงรหัส Bit 0 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัสบิต 0
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 อ็อกเท็ต เวลาบัฟเฟอร์ขั้นต่ำของประเภทตัวแปลงรหัส Bit 0 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัสบิต 0
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 อ็อกเท็ต เวลาบัฟเฟอร์เริ่มต้นของประเภทตัวแปลงรหัส Bit 1 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัส Bit 1
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 อ็อกเท็ต เวลาบัฟเฟอร์สูงสุดของประเภทตัวแปลงรหัส Bit 1 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัส Bit 1
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 อ็อกเท็ต เวลาบัฟเฟอร์ขั้นต่ำของประเภทตัวแปลงรหัส Bit 1 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัส Bit 1
หน่วย: มิลลิวินาที
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 อ็อกเท็ต เวลาบัฟเฟอร์เริ่มต้นของประเภทตัวแปลงรหัส Bit 31 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัสบิตที่ 31
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 อ็อกเท็ต เวลาบัฟเฟอร์สูงสุดของประเภทตัวแปลงรหัส Bit 31 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัสบิตที่ 31
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 อ็อกเท็ต เวลาบัฟเฟอร์ขั้นต่ำของประเภทตัวแปลงรหัส Bit 31 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัสบิตที่ 31
หน่วย: มิลลิวินาที

ตั้งเวลาบัฟเฟอร์เสียง

Sub OCF: 0x02

ใช้คำสั่งนี้เพื่อตั้งค่าเวลาบัฟเฟอร์เสียงเป็นตัวควบคุมบลูทูธ

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Audio_Codec_Buffer_Time 2 อ็อกเท็ต เวลาบัฟเฟอร์เสียงที่ขอสำหรับตัวแปลงรหัสที่ใช้อยู่
หน่วย: มิลลิวินาที

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Dynamic_Audio_Buffer_opcode 1 อ็อกเท็ต 0x02 - ตั้งค่าระยะบัฟเฟอร์ของเสียง
Audio_Codec_Buffer_Time 2 อ็อกเท็ต เวลาบัฟเฟอร์เสียงปัจจุบันในตัวควบคุมบลูทูธ
หน่วย: มิลลิวินาที

เหตุการณ์ HCI (เฉพาะผู้ให้บริการ)

ในบางกรณี คุณต้องใช้เหตุการณ์ HCI เฉพาะผู้ให้บริการ ดูรูปที่ 5.4 ในหน้า 1897 ของข้อกำหนด BT Core 5.2 พารามิเตอร์เหตุการณ์ 0 จะ มีรหัสเหตุการณ์ย่อยแรกเสมอ ซึ่งเป็นรหัสที่ใช้ในการถอดรหัสส่วนที่เหลือของ เหตุการณ์ HCI

พารามิเตอร์เหตุการณ์ ขนาด วัตถุประสงค์
HCI_vendor_specific_event_code 1 อ็อกเท็ต 0xFF
sub_event_code 1 อ็อกเท็ต รหัสเหตุการณ์ย่อยจะมีขนาด 1 อ็อกเทต ซึ่งเป็นไบต์ที่อยู่ ต่อจากความยาวของพารามิเตอร์ในแพ็กเก็ตเหตุการณ์ HCI

เหตุการณ์ย่อยการละเมิดเกณฑ์พื้นที่เก็บข้อมูล

เหตุการณ์นี้บ่งชี้ว่ามีการละเมิดเกณฑ์พื้นที่เก็บข้อมูล

รหัสเหตุการณ์ย่อย = 0x54

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
ไม่มี

เหตุการณ์ย่อยการเปลี่ยนแปลงสถานะการโฆษณาหลายรายการของ LE

เหตุการณ์นี้บ่งชี้ว่าอินสแตนซ์การโฆษณาได้เปลี่ยนสถานะแล้ว ในขณะนี้ ระบบจะใช้เหตุการณ์นี้เพื่อระบุเฉพาะอินสแตนซ์การโฆษณาที่หยุดเนื่องจากการเชื่อมต่อ

รหัสเหตุการณ์ย่อย = 0x55

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Advertising_instance 1 อ็อกเท็ต ระบุอินสแตนซ์การโฆษณาที่เฉพาะเจาะจง
ค่าที่ใช้ได้คือ 0 ถึง max_advt_instances-1
State_Change_Reason 1 อ็อกเท็ต 0x00: ได้รับการเชื่อมต่อแล้ว
Connection_handle 2 อ็อกเท็ต ระบุการเชื่อมต่อที่ทำให้ปิดใช้งานอินสแตนซ์ advt (0xFFFF หากไม่ถูกต้อง)

เหตุการณ์ย่อยการติดตามโฆษณา LE

เหตุการณ์นี้จะระบุเมื่อพบหรือสูญเสียผู้ลงโฆษณา

รหัสเหตุการณ์ย่อย = 0x56

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
Advertiser_State 1 อ็อกเท็ต 0x00: พบผู้ลงโฆษณา
0x01: ไม่พบผู้ลงโฆษณา
Advt_Info_Present 1 อ็อกเท็ต 0x00: มีข้อมูลผู้ลงโฆษณา (Advt_Info)
0x01: ไม่มีข้อมูลผู้ลงโฆษณา (Advt_Info)
Advertiser_Address 6 อ็อกเท็ต ที่อยู่สาธารณะหรือแบบสุ่ม
Advertiser_Address_Type 1 อ็อกเท็ต 0x00: ที่อยู่สาธารณะ
0x01: ที่อยู่แบบสุ่ม
Advt_Info Tx_Pwr[0]: 1 อ็อกเทต
RSSI[0]: 1 อ็อกเทต
Timestamp[0]: 2 อ็อกเทต
Adv packet_len[0]: 1 อ็อกเทต
Adv_packet[0]: Adv_packet_len อ็อกเทต
Scan_data_resp_len[0]: 1 อ็อกเทต
Scan_data_resp[0]: Scan_data_resp อ็อกเทต

เหตุการณ์ย่อยของข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุม

เหตุการณ์นี้ใช้โดยคอนโทรลเลอร์เพื่อระบุข้อมูลการแก้ไขข้อบกพร่องแบบไบนารีให้กับโฮสต์

รหัสเหตุการณ์ย่อย = 0x57

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
debug_block_byte_offset_start 2 อ็อกเท็ต แก้ไขข้อบกพร่องของออฟเซ็ตไบต์ของบล็อกตั้งแต่เริ่มต้น
last_block 1 อ็อกเท็ต 0x00: มีข้อมูลการแก้ไขข้อบกพร่องเพิ่มเติม
0x01: บล็อกไบนารีสุดท้าย ไม่มีข้อมูลการแก้ไขข้อบกพร่องเพิ่มเติม
cur_pay_load_sz 2 อ็อกเท็ต ขนาดบล็อกไบนารีในเหตุการณ์ปัจจุบัน
Debug_Data ตัวแปร ข้อมูลการแก้ไขข้อบกพร่องของ cur_payload_sz

เหตุการณ์ย่อยของรายงานคุณภาพบลูทูธ

เหตุการณ์นี้บ่งบอกถึงสิ่งต่อไปนี้อย่างใดอย่างหนึ่ง ได้แก่ เกิดเหตุการณ์คุณภาพของบลูทูธ , คอนโทรลเลอร์อัปโหลดการติดตามข้อความ LMP/LL และการติดตามการจัดกำหนดการ แบบหลายลิงก์/การทำงานร่วมกันของบลูทูธ หรือคอนโทรลเลอร์ทิ้งข้อมูลการแก้ไขข้อบกพร่อง

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0x01: การรายงานคุณภาพในโหมดการตรวจสอบ
0x02: Approaching LSTO.
0x03: เสียง A2DP ขาดๆ หายๆ
0x04: (e)SCO Voice Choppy.
0x05 ~ 0x06: จองไว้
0x07: เสียง LE ขาดๆ หายๆ
0x08: เชื่อมต่อไม่สำเร็จ
0x09 ~ 0xFF: Reserved.
Packet_Types 1 อ็อกเท็ต 0x01: ID
0x02: NULL
0x03: POLL
0x04: FHS
0x05: HV1
0x06: HV2
0x07: HV3
0x08: DV
0x09: EV3
0x0A: EV4
0x0B: EV5
0x0C: 2-EV3
0x0D: 2-EV5
0x0E: 3-EV3
0x0F: 3-EV5
0x10: DM1
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: Reserved
0x51: ISO packet
0x52: 1M PHY
0x53: 2M PHY
0x54: Codec PHY S=2
0x55: Codec PHY S=8
0x56 ~ 0xFF: Reserved
Connection_Handle 2 อ็อกเท็ต ACL/(e)SCO/ISO connection handle
Connection_Role 1 อ็อกเท็ต บทบาทในการเชื่อมต่อ
0x00: กลาง
0x01: อุปกรณ์ต่อพ่วง
0x02 ~ 0xFF: สงวนไว้
TX_Power_Level 1 อ็อกเท็ต ระดับกำลังส่งปัจจุบันสำหรับ Connection_Handle ที่ระบุ

ค่านี้ต้องเหมือนกับค่าที่ตัวควบคุมตอบกลับคำสั่ง HCI_Read_Transmit_Power_Level HCI

RSSI 1 อ็อกเท็ต [ในหน่วย dBm]

ค่าการบ่งชี้ความแรงของสัญญาณที่ได้รับ (RSSI) สำหรับ Connection_Handle ที่ระบุ
ค่านี้ต้องเป็นค่าความแรงของสัญญาณตัวรับแบบสัมบูรณ์
ช่วง: -127 ถึง +20

SNR 1 อ็อกเท็ต [ในหน่วย dB]

ค่าอัตราส่วนสัญญาณต่อสัญญาณรบกวน (SNR) สำหรับ Connection_Handle ที่ระบุ
ตัวควบคุมต้องระบุ SNR เฉลี่ยของช่องทั้งหมด ที่ลิงก์ใช้

Unused_AFH_Channel_Count 1 อ็อกเท็ต ระบุจำนวนช่องที่ไม่ได้ใช้ใน AFH_channel_map
0x4F ~ 0xFF: สงวนไว้
AFH_Select_Unideal_Channel_Count 1 อ็อกเท็ต ระบุจำนวนช่องที่ถูกรบกวนและมีคุณภาพไม่ดี แต่ยังคงได้รับเลือกสำหรับ AFH
ข้อกำหนดของบลูทูธอนุญาตให้ใช้ช่องอย่างน้อย 20 ช่อง ดังนั้นแม้ว่าช่องทั้ง 79 ช่องจะถูกรบกวนและมีคุณภาพไม่ดี แต่ตัวควบคุมก็ยังต้องเลือกช่องอย่างน้อย 20 ช่องสำหรับ AFH
LSTO 2 อ็อกเท็ต การตั้งค่าการหมดเวลาของการควบคุมดูแลลิงก์ปัจจุบัน
เวลา = N * 0.625 มิลลิวินาที
ช่วงเวลา: 0.625 มิลลิวินาทีถึง 40.9 วินาที
Connection_Piconet_Clock 4 อ็อกเท็ต Piconet Clock สำหรับ Connection_Handle ที่ระบุ
ค่านี้ต้องเหมือนกับค่าที่ตัวควบคุมตอบกลับ คำสั่ง HCI_Read_Clock HCI ที่มีพารามิเตอร์ "Which_Clock" เป็น 0x01 (Piconet Clock)
หน่วย: N * 0.3125 มิลลิวินาที (1 นาฬิกาบลูทูธ)
Retransmission_Count 4 อ็อกเท็ต จำนวนการส่งซ้ำตั้งแต่เหตุการณ์ล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
No_RX_Count 4 อ็อกเท็ต ไม่มีการนับ RX ตั้งแต่เหตุการณ์ล่าสุด
จำนวนจะเพิ่มขึ้นเมื่อไม่ได้รับแพ็กเก็ตตามช่วงเวลาที่กำหนด หรือแพ็กเก็ตที่ได้รับเสียหาย
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
NAK_Count 4 อ็อกเท็ต จำนวน NAK (การรับทราบเชิงลบ) ตั้งแต่เหตุการณ์ล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
Last_TX_ACK_Timestamp 4 อ็อกเท็ต การประทับเวลาของ ACK TX ล่าสุด โดยจะอิงตามนาฬิกาบลูทูธของ ส่วนกลางของพิโคเน็ต (CLK)
หน่วย: N * 0.3125 มิลลิวินาที (1 นาฬิกาบลูทูธ)
Flow_Off_Count 4 อ็อกเท็ต จํานวนครั้งที่ตัวควบคุมได้รับ Flow-off (STOP) ตั้งแต่ เหตุการณ์ล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
Last_Flow_On_Timestamp 4 อ็อกเท็ต การประทับเวลาของการส่งต่อครั้งล่าสุด (GO) โดยจะอิงตามนาฬิกาบลูทูธของ อุปกรณ์กลางในเครือข่ายพิโคเน็ต (CLK)
หน่วย: N * 0.3125 มิลลิวินาที (1 นาฬิกาบลูทูธ)
Buffer_Overflow_Bytes 4 อ็อกเท็ต [ในหน่วยไบต์]

จำนวนการล้นบัฟเฟอร์ตั้งแต่เหตุการณ์ล่าสุด
ตัวควบคุมจะนับจำนวนไบต์ของข้อมูลที่ถูกทิ้ง
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์

Buffer_Underflow_Bytes 4 อ็อกเท็ต [ในหน่วยไบต์]

จำนวนการไหลออกของบัฟเฟอร์ตั้งแต่เหตุการณ์ล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์

bdaddr 6 อ็อกเท็ต ที่อยู่อุปกรณ์ระยะไกล
cal_failed_item_count 1 อ็อกเท็ต จำนวนรายการที่ปรับไม่สำเร็จ
TX_Total_Packets 4 อ็อกเท็ต จำนวนแพ็กเก็ตที่ส่งออก
TX_UnAcked_Packets 4 อ็อกเท็ต จำนวนแพ็กเกตที่ไม่ได้รับการรับทราบ
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
TX_Flushed_Packets 4 อ็อกเท็ต จำนวนแพ็กเกตที่ไม่ได้ส่งออกโดยจุดล้างข้อมูล
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
TX_Last_Subevent_Packets 4 อ็อกเท็ต จำนวนแพ็กเก็ตที่เลเยอร์ลิงก์ส่ง PDU ข้อมูล CIS ในเหตุการณ์ย่อยสุดท้ายของเหตุการณ์ CIS
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
ค่าจะเป็น 0 หากไม่มีค่าที่ถูกต้องสำหรับลิงก์
CRC_Error_Packets 4 อ็อกเท็ต จำนวนแพ็กเกจที่ได้รับซึ่งมีข้อผิดพลาด CRC ตั้งแต่เหตุการณ์ล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
RX_Duplicate_Packets 4 อ็อกเท็ต จำนวนแพ็กเก็ตที่ซ้ำกัน (ส่งซ้ำ) ที่ได้รับตั้งแต่เหตุการณ์ล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังโฮสต์
RX_Unreceived_Packets 4 อ็อกเท็ต จำนวนแพ็กเกตที่ไม่ได้รับจะเหมือนกับพารามิเตอร์ของคำสั่ง LE READ ISO Link Quality (ดูข้อกำหนดหลักของ Bluetooth เวอร์ชัน 5.4) สตรีมที่เกี่ยวข้อง คือ CIS และ BIS
เมื่อเพิ่มค่านี้ เลเยอร์ลิงก์จะไม่ได้รับเพย์โหลดที่เฉพาะเจาะจงตามจุดล้างข้อมูล (ใน CIS) หรือเมื่อสิ้นสุดเหตุการณ์ที่เชื่อมโยง (ใน BIS ดูข้อกำหนดหลักของบลูทูธ เวอร์ชัน 5.4 เล่ม 6 ส่วน B ส่วนที่ 4.4.6.6)
Coex_Info_Mask 2 อ็อกเท็ต บิต 0 - CoexInvolvement: ตั้งค่าเพื่อระบุว่าสงสัยว่ากิจกรรม Coex เกี่ยวข้อง เมื่อสร้างรายงานนี้ (เช่น A2DP Chops และ Approaching LSTO)
บิตที่ 1 - WL 2G Radio Active: ตั้งค่าเพื่อระบุว่า WLAN 2G Radio ทำงานอยู่
บิต 2 - WL 2G Connected: ตั้งค่าเพื่อระบุว่าวิทยุ WLAN 2G ทำงานอยู่และเชื่อมต่อแล้ว
บิต 3 - WL 5G/6G Radio Active: ตั้งค่าเพื่อระบุว่า WLAN 5G/6G Radio ใช้งานอยู่
บิต 4-15 - สงวนไว้
พารามิเตอร์เฉพาะของผู้ให้บริการ (ความยาวรวมของพารามิเตอร์ - จะแจ้งภายหลัง) * อ็อกเท็ต เพื่อให้ผู้ให้บริการตัวควบคุมได้รับพารามิเตอร์เฉพาะของผู้ให้บริการเพิ่มเติม

รหัสเหตุการณ์ย่อย = 0x58 [Quality_Report_Id = 0x05, เหตุการณ์การอักเสบหลัก]

เหตุการณ์นี้บ่งชี้ว่า HAL ของบลูทูธหรือตัวควบคุมพบข้อผิดพลาดร้ายแรงและต้องใช้สแต็กบลูทูธเพื่อบันทึกสถานการณ์นี้และรีสตาร์ท คอนโทรลเลอร์ต้องส่ง Root_Inflammation_Event ไปยังสแต็ก Bluetooth ก่อนที่จะส่งส่วนแรกของเหตุการณ์ข้อมูลการแก้ไขข้อบกพร่องในทุกกรณี

พารามิเตอร์ Error_Code มีรหัสข้อผิดพลาดที่รายงานจาก HAL/Controller หรือ 0 หากเป็นข้อผิดพลาดเฉพาะของผู้ให้บริการชิปเซ็ต Vendor_Specific_Error_Code มีรหัสข้อผิดพลาดเฉพาะของผู้ให้บริการชิปเซ็ต จาก HAL/Controller ควรตั้งค่าเป็น 0 หากพารามิเตอร์ Error_Code ไม่ใช่ 0 พารามิเตอร์ Error_Code และ Vendor_Specific_Error_Code ไม่ควรเป็น 0 ทั้งคู่

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0x00 ~ 0x04: จองไว้
0x05: การอักเสบที่ราก
0x06 ~ 0xFF: สงวนไว้
Error_Code 1 อ็อกเท็ต 0x00: มีรหัสข้อผิดพลาดเฉพาะของผู้ให้บริการชิปเซ็ต
0x01 ~ 0xFF: เกิดข้อผิดพลาดของตัวควบคุม ดูรายการรหัสข้อผิดพลาดและคำอธิบายได้ที่ข้อกำหนดของบลูทูธ [Vol 2] ส่วน D, รหัสข้อผิดพลาด
Vendor_Specific_Error_Code 1 อ็อกเท็ต 0x00: ไม่ได้รวมรหัสข้อผิดพลาดเฉพาะของผู้ให้บริการชิปเซ็ต
0x01 ~ 0xFF: รหัสข้อผิดพลาดของผู้ให้บริการชิปเซ็ต
พารามิเตอร์เฉพาะของผู้ให้บริการ (ความยาวทั้งหมดของพารามิเตอร์ - 4) * อ็อกเท็ต เพื่อให้ผู้ให้บริการตัวควบคุมได้รับพารามิเตอร์เฉพาะของผู้ให้บริการเพิ่มเติม

รหัสเหตุการณ์ย่อย = 0x58 [Quality_Report_Id = 0x06, เหตุการณ์การตรวจสอบพลังงาน]

เหตุการณ์นี้จะแสดงภาพรวมของการใช้พลังงานและสถานะการทำงานของ ตัวควบคุมบลูทูธในช่วงระยะเวลาหนึ่ง เหตุการณ์นี้ช่วยให้นักพัฒนาแอปและวิศวกรวิเคราะห์วิธีที่ คอนโทรลเลอร์จัดการพลังงาน ระบุว่ากิจกรรมใดใช้พลังงานมากที่สุด และแก้ปัญหา ที่เกี่ยวข้องกับพลังงาน

พารามิเตอร์ในรายงานจะติดตามเมตริกสําคัญ ซึ่งรวมถึง

  • การใช้กระแสไฟฟ้าปัจจุบันโดยเฉลี่ย: กระแสไฟฟ้าปัจจุบันโดยรวมที่ตัวควบคุมใช้
  • เวลาที่ใช้ในสถานะต่างๆ: เวลาทั้งหมด (เป็นมิลลิวินาที) ที่คอนโทรลเลอร์ใช้ในสถานะไม่ได้ใช้งาน (สลีป/ใช้พลังงานต่ำ) เทียบกับสถานะใช้งานอยู่ (เชื่อมต่อ ส่ง หรือรับข้อมูล)
  • จำนวนการเปลี่ยนสถานะ: จำนวนครั้งที่คอนโทรลเลอร์เปลี่ยนระหว่างสถานะ ว่างและสถานะที่ใช้งานอยู่
  • เวลาที่ใช้ในสถานะวิทยุที่เฉพาะเจาะจง: เมตริกแยกต่างหากสำหรับเวลาที่ใช้ในการส่ง (Tx) และรับ (Rx) สำหรับทั้งลิงก์ BR/EDR (Bluetooth Classic) และ LE (บลูทูธพลังงานต่ำ)
  • ระดับกำลังส่งโดยเฉลี่ย: กำลังโดยเฉลี่ย (ในหน่วย dBm) ที่ใช้สำหรับการส่งในลิงก์ BR/EDR และ LE
  • กิจกรรมของเชนโดยละเอียด: รายงานเกี่ยวกับเวลาที่ใช้กับเชนที่ส่งหรือรับที่ใช้งานอยู่ โดยแยกความแตกต่างระหว่างการทำงานแบบ 1 เชนและ 2 เชน รวมถึงระหว่างเครื่องขยายสัญญาณภายใน (iPA) และภายนอก (ePA)
  • เวลาการสแกนกิจกรรม: เวลาที่ตัวควบคุมใช้ในการสแกนหาอุปกรณ์ BR/EDR และ LE อย่างต่อเนื่อง

การตรวจสอบพารามิเตอร์เหล่านี้ช่วยให้วิศวกรได้รับข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพการใช้พลังงานของตัวควบคุม และเพิ่มประสิทธิภาพการทำงานของตัวควบคุม

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0x06: การตรวจสอบการใช้พลังงาน
Average_Current_Consumption 2 อ็อกเท็ต [ในหน่วย mA] การใช้กระแสไฟฟ้าโดยเฉลี่ยของกิจกรรมทั้งหมดที่ตัวควบคุมใช้
Idle_Total_Time (การนอนหลับ) 4 อ็อกเท็ต [เป็นมิลลิวินาที] เวลาทั้งหมดในสถานะว่าง (สถานะพลังงานต่ำ, สลีป)
Idle_Sate_Enter_Count 4 อ็อกเท็ต ระบุจำนวนครั้งที่ตัวควบคุมเข้าสู่สถานะว่าง
Active_Total_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] เวลารวมในสถานะใช้งาน (การสอบถาม การแบ่งหน้า การรับส่งข้อมูล ACL/SCO/eSCO/BIS/CIS การประมวลผลงาน)
Active_State_Enter_Count 4 อ็อกเท็ต ระบุจำนวนครั้งที่ตัวควบคุมเข้าสู่สถานะที่ใช้งานอยู่
BR_RDR_Tx_Total_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] เวลาทั้งหมดในสถานะ Tx(การส่งสำหรับการรับส่งข้อมูล ACL/SCO/eSCO) เฉพาะ BR/EDR
BR_RDR_Tx_State_Enter_Count 4 อ็อกเท็ต ระบุจำนวนครั้งที่คอนโทรลเลอร์เข้าสู่สถานะ Tx เฉพาะของ BR/EDR
BR_RDR_Tx_Average_Power_Level 1 อ็อกเท็ต [ในหน่วย dBm] ระดับกำลังส่งเฉลี่ยของลิงก์ BR/EDR ทั้งหมด
BR_RDR_Rx_Total_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] เวลาทั้งหมดในสถานะ Rx (รับจากการเข้าชม ACL/SCO/eSCO) เฉพาะ BR/EDR
BR_RDR_Rx_State_Enter_Count 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระบุจำนวนครั้งที่คอนโทรลเลอร์เข้าสู่สถานะ Rx เฉพาะของ BR/EDR
LE_Tx_Total_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] เวลาทั้งหมดในสถานะ Tx (การส่งสำหรับ ACL/BIS/CIS หรือ LE การรับส่งโฆษณา) ที่เฉพาะเจาะจงของ LE
LE_Tx_State_Enter_Count 4 อ็อกเท็ต ระบุจำนวนครั้งที่คอนโทรลเลอร์เข้าสู่สถานะ Rx เฉพาะของ BR/EDR
LE_Tx_Average_Power_Level 1 อ็อกเท็ต [เป็น dBm] ระดับกำลังส่งเฉลี่ยของลิงก์ LE ทั้งหมด
LE_Rx_Total_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] เวลาทั้งหมดในสถานะ Rx (รับจาก ACL/BIS/CIS หรือการเข้าชมการสแกน LE) เฉพาะของ LE
LE_Rx_State_Enter_Count 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระบุจำนวนครั้งที่คอนโทรลเลอร์เข้าสู่สถานะ Rx เฉพาะของ LE
Report_Time_Duration (เวลาทั้งหมด) 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระยะเวลาทั้งหมดในการรวบรวมข้อมูลที่เกี่ยวข้องกับพลังงาน
RX_Active_One_Chain_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระยะเวลาที่ RX ใช้งานอยู่ในเชนเดียว
RX_Active_Two_Chain_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระยะเวลาที่ RX ทำงานใน 2 เชน
TX_iPA_Active_One_Chain_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระยะเวลาของ TX ภายในที่ใช้งานอยู่ในเชนเดียว
TX_iPA_Active_Two_Chain_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระยะเวลาที่ TX ภายในทำงานใน 2 เชน
TX_ePA_Active_One_Chain_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระยะเวลาที่ TX ภายนอกทำงานในเชนเดียว
TX_ePA_Active_Two_Chain_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระยะเวลาที่ TX ภายนอกทำงานใน 2 เชน
BREDR_RX_Active_Scan_total_Time 4 อ็อกเท็ต [มิลลิวินาที] ระยะเวลา (มิลลิวินาที) ในเวลาที่รับสัญญาณการสแกน BR/EDR
LE_RX_Active_Scan_total_Time 4 อ็อกเท็ต [เป็นมิลลิวินาที] ระยะเวลา (มิลลิวินาที) ในเวลาที่ RX ของการสแกน LE ทำงาน

รหัสเหตุการณ์ย่อย = 0x58 [Quality_Report_Id = 0x09~0x0A, เหตุการณ์สถิติ RF ขั้นสูง]

เหตุการณ์สถิติ RF (ความถี่วิทยุ) ขั้นสูงของบลูทูธจะแสดงเมตริกประสิทธิภาพโดยละเอียด เกี่ยวกับลักษณะการทำงานของวิทยุของตัวควบคุมบลูทูธ ระบบจะทริกเกอร์เหตุการณ์ได้ 2 วิธีดังนี้

  • ตามทริกเกอร์ (0x09): ระบบจะส่งรายงานแบบครั้งเดียวเพื่อตอบสนองต่อคำสั่งที่เฉพาะเจาะจง
  • โดยจอภาพ (0x0A): คอนโทรลเลอร์จะส่งรายงานเป็นระยะๆ ตามช่วงเวลาที่ระบุ

พารามิเตอร์ของเหตุการณ์คือตัวนับแพ็กเก็ตที่ติดตามลักษณะการทำงานของวิทยุต่างๆ ในช่วงระยะเวลาที่ระบุ

เมตริกหลักและวัตถุประสงค์ของเมตริก
  • ส่งสถิติพลังงาน: ตัวนับเหล่านี้จะติดตามแพ็กเก็ตที่ส่งโดยใช้การกำหนดค่าพลังงานที่แตกต่างกัน โดยจะแยกความแตกต่างระหว่างเครื่องขยายสัญญาณภายใน (iPA) และภายนอก (ePA) รวมถึงโหมดความหลากหลายของเสาอากาศ (Div) หรือการสร้างลำแสง (BF) ต่างๆ ซึ่งจะช่วย ระบุการตั้งค่ากำลังและเสาอากาศที่ใช้บ่อยที่สุด
  • กลุ่มตัวบ่งชี้ความแรงของสัญญาณที่ได้รับ (RSSI): พารามิเตอร์เหล่านี้จัดหมวดหมู่ แพ็กเก็ตที่ได้รับตามความแรงของสัญญาณ การระบุจำนวนแพ็กเก็ตภายใน ช่วง RSSI ที่เฉพาะเจาะจง (เช่น น้อยกว่า -90 dBm, -70 ถึง -75 dBm) จะช่วยให้รายงานแสดงภาพคุณภาพลิงก์ได้อย่างชัดเจน จำนวนที่สูงในกลุ่มสัญญาณ "อ่อน" (เช่น < -90 dBm) แสดงว่าการเชื่อมต่อไม่ดี
  • เดลต้า RSSI: เมตริกนี้จะวัดความแตกต่างของความแรงของสัญญาณระหว่าง เสาอากาศรับสัญญาณ 2 เสา (หากมี) ตัวนับจะติดตามจำนวนแพ็กเก็ตที่มีเดลต้า RSSI ภายในช่วงต่างๆ เดลต้าขนาดใหญ่ (เช่น >11 dBm) อาจบ่งบอกถึงการรบกวนหรือสิ่งกีดขวางทางกายภาพ เนื่องจากเสาอากาศหนึ่งรับสัญญาณแรงกว่าอีกเสาอากาศหนึ่งมาก
  • การสลับเสาอากาศและการส่งซ้ำ: รายงานจะนับความถี่ที่คอนโทรลเลอร์ สลับระหว่างเสาอากาศและติดตามแพ็กเก็ตที่ส่งซ้ำ (ReTX) การส่งซ้ำจำนวนมาก มักบ่งชี้ว่าการเชื่อมต่อมีสัญญาณอ่อนหรือไม่เสถียร จึงต้องส่งแพ็กเก็ต อีกครั้ง
  • คุณภาพช่องทาง: พารามิเตอร์เหล่านี้จะให้ข้อมูลสรุประดับสูงเกี่ยวกับสถานะ ของช่องทางการสื่อสารต่างๆ โดยจัดหมวดหมู่เป็น "ดี" "พอใช้" "ไม่ดี" หรือ "แย่มาก" ตาม RSSI ซึ่งจะแสดงภาพรวมของสภาพแวดล้อม RF ในทันที
  • คิวบัฟเฟอร์ TX: ส่วนนี้จะตรวจสอบจำนวนแพ็กเก็ตที่รอในบัฟเฟอร์การส่งของ คอนโทรลเลอร์สำหรับลิงก์ประเภทต่างๆ เช่น ACL (ลิงก์เชิงตรรกะแบบเชื่อมต่อที่ไม่พร้อมกัน), LECONN (การเชื่อมต่อ LE) และ LEISOC (LE Isochronous) จำนวนบัฟเฟอร์สูงอาจบ่งบอกถึงคอขวดหรือปัญหาเกี่ยวกับ การไหลของข้อมูลจากโฮสต์ไปยังคอนโทรลเลอร์
พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0x09: สถิติ RF ขั้นสูงตามทริกเกอร์
0x0A: สถิติ RF ขั้นสูงตามจอภาพ
Extension_info 1 อ็อกเท็ต ข้อมูลเวอร์ชัน BQR
0x01 สำหรับ BQRv6
0x02 สำหรับ BQRv7
Report_Time_Period 4 อ็อกเท็ต ระยะเวลาในการรวบรวมข้อมูลประสิทธิภาพ หน่วย: มิลลิวินาที
TX_Power_iPA_BF 4 อ็อกเท็ต เคาน์เตอร์แพ็กเกตของ iPA BF
TX_Power_ePA_BF 4 อ็อกเท็ต ตัวนับแพ็กเกตของ ePA BF
TX_Power_iPA_Div 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของ ePA Div
TX_Power_ePA_Div 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของ ePA Div
RSSI_chain_50 4 อ็อกเท็ต ตัวนับแพ็กเกตของเชน RSSI > -50 dBm
RSSI_chain_50_55 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเชน RSSI ระหว่าง -50 dBm ~ >-55 dBm
RSSI_chain_55_60 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเชน RSSI ระหว่าง -55 dBm ~ >-60 dBm
RSSI_chain_60_65 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเชน RSSI ระหว่าง -60 dBm ~ >-65 dBm
RSSI_chain_65_70 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเชน RSSI ระหว่าง -65 dBm ~ >-70 dBm
RSSI_chain_70_75 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเชน RSSI ระหว่าง -70 dBm ~ >-75 dBm
RSSI_chain_75_80 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของห่วงโซ่ RSSI ระหว่าง -75 dBm ~ >-80 dBm
RSSI_chain_80_85 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเชน RSSI ระหว่าง -80 dBm ~ >-85 dBm
RSSI_chain_85_90 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเชน RSSI ระหว่าง -85 dBm ~ >-90 dBm
RSSI_chain_90 4 อ็อกเท็ต ตัวนับแพ็กเกตของห่วงโซ่ RSSI < -90 dBm
RSSI_delta_2 4 อ็อกเท็ต ตัวนับแพ็กเกตของเดลต้า RSSI < 2 dBm
RSSI_delta_2_5 4 อ็อกเท็ต ตัวนับแพ็กเกตของเดลต้า RSSI ระหว่าง 2 dBm ~ 5 dBm
RSSI_delta_5_8 4 อ็อกเท็ต ตัวนับแพ็กเกตของเดลต้า RSSI ระหว่าง 5 dBm ~ 8 dBm
RSSI_delta_8_11 4 อ็อกเท็ต ตัวนับแพ็กเกตของเดลต้า RSSI ระหว่าง 8 dBm ~ 11 dBm
RSSI_delta_11 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเดลต้า RSSI > 11 dBm
Antenna_Switch_Count 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของเหตุการณ์การสลับเสาอากาศ
ReTX_iPA_BF 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของ ReTX_iPA_BF ในช่วงเวลาล่าสุด
ReTX_ePA_BF 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของ ReTX_ePA_BF ในช่วงเวลาล่าสุด
ReTX_iPA_Div 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของ ReTX_iPA_Div ในช่วงเวลาล่าสุด
ReTX_ePA_Div 4 อ็อกเท็ต ตัวนับแพ็กเก็ตของ ReTX_ePA_Div ในช่วงเวลาล่าสุด
Channel_count_Good 1 อ็อกเท็ต จำนวนช่องที่มี RSSI อยู่ใน Bin-1 (<-90)
Channel_count_OK 1 อ็อกเท็ต จำนวนช่องที่มี RSSI อยู่ใน Bin-2 (-90~-76)
Channel_count_Bad 1 อ็อกเท็ต จำนวนช่องที่มี RSSI อยู่ใน Bin-3 (-76~-50)
Channel_count_VeryBad 1 อ็อกเท็ต จำนวนช่องที่มี RSSI อยู่ใน Bin-4 (>-50)
TX_buffer_Queue_Count 4 อ็อกเท็ต ตัวนับสถานะคิวบัฟเฟอร์ - บัฟเฟอร์ TX ของคอนโทรลเลอร์ในช่วงเวลาล่าสุด [0:3] ACL_1 [4:7] ACL_2 [8:11] LECONN_1 [12:15] LECONN_2 [16:19] LEISOC_1 [20:23] LEISOC_2 [24:27] LEBroadcast [28:31] rsvd

รหัสเหตุการณ์ย่อย = 0x58 [Quality_Report_Id = 0x0B~0x0C, เหตุการณ์การตรวจสอบสถานะของตัวควบคุม]

เหตุการณ์การตรวจสอบประสิทธิภาพของตัวควบคุมบลูทูธจะแสดงข้อมูลสรุปเกี่ยวกับ สถานะการทำงานของตัวควบคุม ระบบจะทริกเกอร์เหตุการณ์ได้ 2 วิธีดังนี้

  • ตามทริกเกอร์ (0x09): ระบบจะส่งรายงานแบบครั้งเดียวเพื่อตอบสนองต่อคำสั่งที่เฉพาะเจาะจง
  • โดยจอภาพ (0x0A): คอนโทรลเลอร์จะส่งรายงานเป็นระยะๆ ตามช่วงเวลาที่ระบุ

เหตุการณ์การตรวจสอบความสมบูรณ์ของตัวควบคุมบลูทูธเป็นเครื่องมือวินิจฉัยที่แสดงข้อมูลสรุป เกี่ยวกับสถานะการทำงานของตัวควบคุม เหตุการณ์นี้เป็นส่วนหนึ่งของเฟรมเวิร์กรายงานคุณภาพบลูทูธ (BQR) และใช้สำหรับการแก้ไขข้อบกพร่องด้านการเชื่อมต่อ การจัดการพลังงาน และ ปัญหาด้านเวลา โดยสามารถส่งเป็นรายงานแบบครั้งเดียวหรือส่งเป็นระยะๆ เพื่อให้มีการตรวจสอบอย่างต่อเนื่อง

เมตริกหลักและวัตถุประสงค์ของเมตริก
  • ตัวนับแพ็กเก็ต HCI: เหตุการณ์จะติดตามจํานวนแพ็กเก็ตทั้งหมดที่ส่งจาก โฮสต์ไปยังคอนโทรลเลอร์และในทางกลับกัน เคาน์เตอร์เหล่านี้มีความสำคัญต่อการแก้ไขข้อบกพร่องเกี่ยวกับ Host Controller Interface (HCI) Transport ซึ่งเป็นช่องทางการสื่อสารระหว่างสแต็กซอฟต์แวร์กับชิปตัวควบคุมบลูทูธ
  • ความยาวของแพ็กเก็ต: เหตุการณ์จะรายงานความยาวของแพ็กเก็ต HCI สุดท้ายที่ส่งและ ได้รับ ซึ่งจะช่วยยืนยันว่ามีการส่งข้อมูลอย่างถูกต้องและไม่มีปัญหาเกี่ยวกับขนาดที่ไม่คาดคิด
  • จำนวนสัญญาณปลุก: รายงานจะแสดงจำนวนครั้งทั้งหมดที่ยืนยันพิน BT_Wake และ HOST_Wake สัญญาณทางกายภาพเหล่านี้มีความสำคัญอย่างยิ่งต่อการจัดการพลังงาน เนื่องจากใช้เพื่อปลุกเอนทิตีที่เกี่ยวข้องจากสถานะพลังงานต่ำ การตรวจสอบจำนวนเหล่านี้จะช่วยแก้ไขปัญหาที่เกี่ยวข้องกับพลังงาน เช่น การปลุกที่ไม่คาดคิดหรือการเข้าสู่โหมดพักเครื่องไม่สำเร็จ
  • การประทับเวลา: เหตุการณ์นี้มีการประทับเวลาหลายรายการ รวมถึงเวลาของ สัญญาณปลุกครั้งล่าสุดและการรีเซ็ต HCI ครั้งล่าสุด การประทับเวลาเหล่านี้ช่วยแก้ปัญหาที่เกี่ยวข้องกับเวลา และเป็นจุดอ้างอิงสำหรับเวลาที่เกิดเหตุการณ์บางอย่าง
  • ตัวจับเวลา Watchdog:แฟล็กที่เฉพาะเจาะจงจะระบุว่าเหตุการณ์สร้างขึ้นเป็นคำเตือนล่วงหน้าว่าตัวจับเวลา Watchdog ของคอนโทรลเลอร์กำลังจะหมดอายุหรือไม่ นี่คือ การแจ้งเตือนที่สำคัญสำหรับตัวควบคุมที่อาจค้างหรือทำงานผิดปกติ
  • สถานะลิงก์: รายงานจะสรุปสถานะปัจจุบันของการเชื่อมต่อที่ใช้งานอยู่ รวมถึงจำนวนลิงก์ BR/EDR, LE และ CIS (Connected Isochronous Stream) ทั้งหมด นอกจากนี้ยังระบุว่าลิงก์ SCO (Synchronous Connection-Oriented) ใช้งานอยู่หรือไม่ ข้อมูลนี้ แสดงภาพรวมของภาระการเชื่อมต่อปัจจุบันของตัวควบคุม
พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0xB~0xC
0x0B: รายงานแบบครั้งเดียวหรือรายงานที่ทริกเกอร์ด้วยเหตุการณ์
0x0C: รายงานเป็นระยะ
Packet_Count_Host_to_Controller 4 อ็อกเท็ต จำนวนแพ็กเก็ตทั้งหมดที่ส่งจากโฮสต์ไปยังคอนโทรลเลอร์ผ่านการรับส่ง HCI ฟิลด์นี้ใช้เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่องของปัญหา HCI (เช่น UART) ลักษณะการทำงาน: ตัวนับจะรีเซ็ตเมื่อคอนโทรลเลอร์ได้รับการรีเซ็ต HCI
Packet_Count_Controller_to_Host 4 อ็อกเท็ต จำนวนแพ็กเก็ตเหตุการณ์ HCI ทั้งหมดที่ส่งไปยังโฮสต์ ฟิลด์นี้ใช้เพื่อวัตถุประสงค์ในการ แก้ไขข้อบกพร่อง HCI (เช่น UART) ลักษณะการทำงาน: ตัวนับจะรีเซ็ตเมื่อคอนโทรลเลอร์ ได้รับรีเซ็ต HCI
Last_Packet_Length_Host_to_Controller 2 อ็อกเท็ต ความยาวของแพ็กเก็ต HCI สุดท้ายที่ส่งไปยัง UART ของโฮสต์ หมายเหตุ: ความยาวแพ็กเก็ต HCI สูงสุด 2 อ็อกเท็ต (รวม HCI, ACL, SCO, ISO)
Last_Packet_Length_Controller_To_host 2 อ็อกเท็ต ความยาวของแพ็กเกต HCI ล่าสุดที่ได้รับจาก UART ของโฮสต์ หมายเหตุ: ความยาวแพ็กเก็ต HCI สูงสุด 2 อ็อกเทต (รวม HCI, ACL, SCO, ISO)
Total_BT_Wake_Count 4 อ็อกเท็ต การนับรวมการยืนยันพิน BT_Wake โดยเอนทิตีโฮสต์ ฟิลด์นี้ใช้เป็น เครื่องมือวินิจฉัยสำหรับการแก้ไขข้อบกพร่องเกี่ยวกับปัญหาที่เกี่ยวข้องกับพลังงาน ลักษณะการทำงาน: ตัวนับจะรีเซ็ตเมื่อคอนโทรลเลอร์ได้รับรีเซ็ต HCI
Total_HOST_Wake_Count 4 อ็อกเท็ต การคำนวณแบบรวมของการยืนยันพิน Host_Wake ที่เริ่มต้นโดยตัวควบคุม ฟิลด์นี้ ทำหน้าที่เป็นเครื่องมือวินิจฉัยสำหรับการแก้ไขข้อบกพร่องที่เกี่ยวข้องกับปัญหาด้านพลังงาน ลักษณะการทำงาน: ตัวนับจะรีเซ็ตเมื่อคอนโทรลเลอร์ได้รับการรีเซ็ต HCI
Last_BT_Wake_TimeStamp 4 อ็อกเท็ต การประทับเวลาล่าสุดเมื่อโฮสต์ยืนยันพิน BT_Wake ฟิลด์นี้ได้รับการติดตั้งใช้งานเพื่อวัตถุประสงค์ในการ แก้ไขข้อบกพร่องเกี่ยวกับปัญหาด้านพลังงาน
Last_HOST_Wake_TimeStamp 4 อ็อกเท็ต การประทับเวลาล่าสุดเมื่อตัวควบคุมยืนยันพิน Host_Wake ฟิลด์นี้ใช้สำหรับการแก้ไขข้อบกพร่องเกี่ยวกับปัญหาด้านพลังงาน
Reset_Timestamp 4 อ็อกเท็ต การประทับเวลาที่ระบุว่าการรีเซ็ต HCI ครั้งล่าสุดเสร็จสมบูรณ์แล้ว ฟิลด์นี้ใช้ เพื่อวัตถุประสงค์ที่ชัดเจนในการอำนวยความสะดวกในการแก้ไขปัญหาที่เกี่ยวข้องกับเวลา โดยควร ใช้เป็นจุดบันทึกเริ่มต้นเพื่อใช้อ้างอิงกับรายการอื่นๆ ทั้งหมด
Current_Timestamp 4 อ็อกเท็ต เวลาปัจจุบันเมื่อสร้างเหตุการณ์นี้ ฟิลด์นี้ใช้เพื่อวัตถุประสงค์ในการ แก้ปัญหาความคลาดเคลื่อนของเวลา โดยควรใช้เป็นจุดบันทึกทริกเกอร์ที่ องค์ประกอบอื่นๆ ทั้งหมดอ้างอิง
Is_WatchDog_Timer_About_To_Expire 4 อ็อกเท็ต แฟล็กที่ระบุว่าเหตุการณ์สถานะสุขภาพนี้สร้างขึ้นโดยคอนโทรลเลอร์เพื่อเป็นคำเตือนล่วงหน้า เกี่ยวกับการหมดอายุของ Watchdog การประทับเวลาปัจจุบันใช้เพื่อระบุเวลาที่เกิดเหตุการณ์ ขึ้น
Coex_Status_Mask 2 อ็อกเท็ต บิต 0 - สงวนไว้
Total_Links_BR_EDR_LE_Active 1 อ็อกเท็ต จำนวนลิงก์ทั้งหมดของ BR/EDR/LE ในสถานะ "ใช้งานอยู่"
Total_Links_BR_EDR_Sniff 1 อ็อกเท็ต จำนวนลิงก์ทั้งหมดของ BR/EDR ในสถานะ Sniff/Idle
Total_Links_CIS 1 อ็อกเท็ต จำนวนลิงก์ทั้งหมดของ ISO
Is_SCO_Active 1 อ็อกเท็ต ตัวบ่งชี้เพื่อตรวจสอบว่าลิงก์ SCO เปิดใช้งานอยู่หรือไม่
พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0x00 ~ 0x10: Reserved.
0x11: การติดตามข้อความ LMP/LL
0x12: การติดตามการจัดกำหนดการแบบหลายลิงก์/การทำงานร่วมกันของบลูทูธ
0x13: ดัมพ์ข้อมูลการแก้ไขข้อบกพร่องของคอนโทรลเลอร์
0x14 ~ 0xFF: จองไว้
Connection_Handle 2 อ็อกเท็ต แฮนเดิลการเชื่อมต่อ
พารามิเตอร์เฉพาะของผู้ให้บริการ (ความยาวทั้งหมดของพารามิเตอร์ - 4) * อ็อกเท็ต รูปแบบเฉพาะของผู้ให้บริการของการติดตามข้อความ LMP, การติดตามการจัดกำหนดการแบบหลายลิงก์/การทำงานร่วมกันของบลูทูธ และการทิ้งข้อมูลการแก้ไขข้อบกพร่องของคอนโทรลเลอร์

รหัสเหตุการณ์ย่อย = 0x5C

เมื่อเปิดใช้งานแล้ว ระบบต้องสร้างเหตุการณ์นี้ในช่วง ISO แต่ละช่วง

การดำเนินการ
การเปิดใช้งานจะดำเนินการโดยการเลือกData_Path_IDรหัส 0x19ของผู้ให้บริการในHCI_LE_Setup_ISO_Data_Pathคำสั่งมาตรฐาน ต้องยอมรับคำสั่ง HCI_Configure_Data_Path ที่มี Data_Path_ID ตั้งค่าเป็น 0x19 และ Vendor_Specific_Config_Length ตั้งค่าเป็น 0 แม้ว่าตัวควบคุมจะไม่คาดหวังให้ดำเนินการใดๆ เมื่อได้รับคำสั่งนี้ ก็ตาม
เวลาการเลือกจ่ายงาน
เหตุการณ์จะปล่อยจากจุดเริ่มต้นของช่วง ISO (จุดยึด CIG หรือ BIG) ไปยังช่วง ISO ถัดไป โดยตัวควบคุมจะระบุความล่าช้าด้วยเวลาเริ่มต้นที่มีผลของ ช่วงเวลา ISO โดยใช้ Anchor_Point_Delay
การซิงค์คอนโทรลเลอร์
เมื่อเริ่มต้นช่วงเวลา ISO คอนโทรลเลอร์จะคำนวณ StreamSN โดยการเพิ่ม ค่าปัจจุบันตาม ISO_Interval ÷ SDU_Interval ที่กำหนดค่าไว้ ในช่วงเวลาแรก ระบบจะเริ่มต้นค่าเป็น 0
จากนั้นสำหรับแต่ละแพ็กเก็ตใน FIFO ของ ISO จะมีผลดังนี้
  • คอนโทรลเลอร์จะคำนวณความแตกต่างของการวนรอบ SNdiff ระหว่างหมายเลขลำดับ 2 รายการ ดังนี้
    SNdiff = (SDUSN - StreamSN + 0x10000) mod 0x10000
  • เมื่อ (SNdiff + (FT-1) × ISO_Interval ÷ SDU_Interval) mod 0x10000 <= (FT-1) × ISO_Interval ÷ SDU_Interval:
    แพ็กเก็ตอยู่ในหน้าต่างการส่งซ้ำ โดยควรมีการกำหนดเวลาสำหรับการ ส่งในช่วงเวลาก่อนหน้า และตอนนี้พร้อมสำหรับการส่งซ้ำแล้ว หากไม่ใช่กรณีนี้ (ยังไม่ได้กำหนดเวลาส่ง) แสดงว่าได้รับล่าช้า ต้องส่งสัญญาณนี้ไปยังโฮสต์โดยใช้ In_Status แพ็กเก็ตดังกล่าวอาจถูกทิ้งหรือกำหนดเวลาส่งได้ ซึ่งการเลือกจะขึ้นอยู่กับการใช้งาน
  • หรือเมื่อ SNdiff < ISO_Interval ÷ SDU_Interval:
    ระบบจะกำหนดเวลาแพ็กเก็ตสำหรับการส่งจากเหตุการณ์นี้จนกว่าจะหมดเวลาล้าง
  • หรือเมื่อ SNdiff >= ISO_Interval ÷ SDU_Interval และ SNdiff <= Max_Forward_Buffers:
    แพ็กเก็ตอยู่ในอนาคต ระบบจะส่งแพ็กเก็ตพร้อมกับเหตุการณ์ถัดไป เนื่องจากระบบจะส่งแพ็กเก็ตตามลำดับ เงื่อนไขนี้จึงสิ้นสุดการค้นหาแพ็กเก็ตสำหรับช่วงเวลานี้
    บัฟเฟอร์ที่โฮสต์ใช้จะไม่สื่อสารกับคอนโทรลเลอร์ แต่จะจำกัดไว้ที่ Max_Forward_Buffers = 16
  • หรือเมื่อไม่เป็นไปตามเงื่อนไขข้างต้น
    ระบบจะทิ้งแพ็กเก็ต เมื่อถึงขีดจำกัดการหมดเวลาของฟลัช หรือได้รับแพ็กเก็ตที่มีรูปแบบไม่ถูกต้อง

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Connection_Handle 2 อ็อกเท็ต แฮนเดิลการเชื่อมต่อของ CIS หรือ BIS
ช่วง: 0x0000 ถึง 0x0EFF
Sequence_Number 2 อ็อกเท็ต หมายเลขลำดับของสตรีมที่ตัวควบคุมจัดการ

เริ่มต้นเป็น 0 เมื่อสร้าง CIS หรือ BIS และเพิ่มขึ้นตามจำนวน SDU ตามช่วงเวลาแบบไอโซโครนัสของ ISO ซึ่งกำหนดเป็น ISO_interval ÷ SDU_Interval ในแต่ละช่วงเวลาของ ISO
Anchor_Point_Delay 2 อ็อกเท็ต ความล่าช้าในหน่วยไมโครวินาทีระหว่างการสร้างเหตุการณ์กับจุดยึด BIG หรือ CIG ที่มีผล หรือจุดเริ่มต้นของช่วงเวลา ISO การประทับเวลาของจุดยึดที่มีผลจะกำหนดโดย
Event generation time - Anchor_Point_Delay

ช่วง: 0 ถึงช่วง ISO ในหน่วยไมโครวินาที
In_Status 2 อ็อกเท็ต สถานะบัฟเฟอร์ ISO ของตัวควบคุม

เมื่อเริ่มต้นช่วงเวลา ISO ระบบจะตั้งค่าแต่ละบิต bi เมื่อ SDU (Sequence_Number + i) mod 0x10000 พร้อมใช้งาน เมื่อไม่พร้อมใช้งาน ระบบจะระบุ SDU เป็น Not received from the host

ค่า i อยู่ในช่วง 0 ถึง ISO_Interval ÷ SDU_Interval - 1 สำหรับค่าอื่นๆ ของ i ระบบจะตั้งค่าบิตเป็น 0
Tx_Status 2 อ็อกเท็ต สถานะการส่งเทียบกับ SDU ที่มีหมายเลขลำดับ
(Sequence_Number - Flush_Timeout × ISO_Interval ÷ SDU_Interval + i + 0x10000) mod 0x10000

บิต bi แต่ละบิตจะตั้งค่าเมื่อ PDU ทั้งหมดของ SDU ที่ระบุตามหมายเลขลำดับ ได้รับการส่งและรับทราบเรียบร้อยแล้ว

ค่า i อยู่ในช่วง 0 ถึง ISO_Interval ÷ SDU_Interval - 1 สำหรับค่าอื่นๆ ของ i ระบบจะตั้งค่าบิตเป็น 0
ในกลุ่มออกอากาศ ระบบจะถือว่ามีการรับทราบการส่งเสมอ

การรองรับผู้ลงโฆษณาหลายราย

วัตถุประสงค์ของการรองรับผู้ลงโฆษณาหลายรายมีดังนี้

  • ความสามารถในการรองรับโฆษณาหลายรายการ (max_advt_instances)
  • กำลังส่งที่แตกต่างกันเพื่อให้มีช่วงที่แตกต่างกัน
  • เนื้อหาโฆษณาที่แตกต่างกัน
  • การตอบกลับที่ปรับเปลี่ยนในแบบของคุณสำหรับผู้ลงโฆษณาแต่ละราย
  • ความเป็นส่วนตัว (ติดตามไม่ได้) สำหรับผู้ลงโฆษณาแต่ละราย
  • เชื่อมต่อได้

เรามีคำสั่งเฉพาะของผู้ให้บริการต่อไปนี้เพื่อให้ข้อกำหนดนี้เป็นไปตามมาตรฐานที่มีอยู่ โดยได้มาจากข้อกำหนดหลัก 4.1 ของบลูทูธ

LE_Multi_Advt_Command

OCF: 0x154

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Multi_advt_opcode 1 อ็อกเท็ต 0x01 - Set_Advt_Param_Multi_Sub_Cmd
0x02 - Set_Advt_Data_Multi_Sub_Cmd
0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd
0x04 - Set_Random_Addr_Multi_Sub_Cmd
0x05 - Set_Advt_Enable_Multi_Sub_Cmd

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Multi_advt_opcode 1 อ็อกเท็ต 0x01 - Set_Advt_Param_Multi_Command
0x02 - Set_Advt_Data_Multi_Command
0x03 - Set_Scan_Resp_Data_Multi_Command
0x04 - Set_Random_Addr_Multi_Command
0x05 - Set_Advt_Enable_Multi_Command

LE_Multi_Advt_Command: Set_Advt_Param_Multi_Sub_Cmd

การอ้างอิงพื้นฐาน: ข้อกําหนดหลักของบลูทูธ 4.1 หน้า 964 (LE Set Advertising Parameter Command)

Sub OCF: 0x01

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
Advertising_Interval_Min ตามข้อกำหนด ตามข้อกำหนด
Advertising_Interval_Max ตามข้อกำหนด ตามข้อกำหนด
Advertising_Type ตามข้อกำหนด ตามข้อกำหนด
Own_Address_Type ตามข้อกำหนด ตามข้อกำหนด
Own_Address ตามข้อกำหนด ตามข้อกำหนด
Direct_Address_Type ตามข้อกำหนด ตามข้อกำหนด
Direct_Address ตามข้อกำหนด ตามข้อกำหนด
Advertising_Channel_Map ตามข้อกำหนด ตามข้อกำหนด
Adverstising_Filter_Policy ตามข้อกำหนด ตามข้อกำหนด
Advertising_Instance 1 อ็อกเท็ต ระบุความเกี่ยวข้องของพารามิเตอร์ข้างต้นกับอินสแตนซ์
Tx_power 1 อ็อกเท็ต Transmit_Power
หน่วย - ใน dBm (จำนวนเต็มที่มีเครื่องหมาย)
ช่วง (-70 ถึง +20)

พารามิเตอร์ Own_Address อาจเป็นที่อยู่ที่โฮสต์กำหนดค่า ในขณะที่ตั้งค่าอินสแตนซ์โฆษณาหลายรายการนี้ ซึ่งจะช่วยให้คุณมีที่อยู่ส่วนตัวที่แก้ไขได้ในขณะที่ ส่งบีคอนแรก โฆษณาในอินสแตนซ์จะยังคงแสดงต่อไป ไม่ว่าการเชื่อมต่อจะเป็นอย่างไร สแต็ก BT ของโฮสต์สามารถออกคำสั่งเพื่อ เริ่มการโฆษณาในอินสแตนซ์ได้หลังจากเชื่อมต่อ

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้ตามที่ระบุ ในข้อกำหนดหลักของบลูทูธ 4.1 ตามคำสั่งข้างต้น ตัวควบคุมจะตอบกลับด้วยรหัสที่ไม่สําเร็จ (พารามิเตอร์ไม่ถูกต้อง) หากอินสแตนซ์การโฆษณาหรือพารามิเตอร์ Tx_Power ไม่ถูกต้อง

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Multi_advt_opcode 1 อ็อกเท็ต 0x01 [Set_Advt_Param_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd

การอ้างอิงพื้นฐาน: ข้อกำหนดหลักของบลูทูธ 4.1 หน้า 969 (คำสั่งข้อมูลการโฆษณา LE Set )

Sub OCF: 0x02

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
Advertising_Data_Length ตามข้อกำหนด ตามข้อกำหนด
Advertising_Data ตามข้อกำหนด ตามข้อกำหนด
Advertising_Instance 1 อ็อกเท็ต ระบุความเกี่ยวข้องของพารามิเตอร์ข้างต้นกับอินสแตนซ์

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้ตามที่ระบุ ในข้อกำหนดหลักของบลูทูธ 4.1 ตามคำสั่งข้างต้น ตัวควบคุมจะตอบกลับด้วยรหัสที่ไม่สําเร็จหากอินสแตนซ์การโฆษณาหรือTx_Powerพารามิเตอร์ไม่ถูกต้อง

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Multi_advt_opcode 1 อ็อกเท็ต 0x02 [Set_Advt_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd

การอ้างอิงพื้นฐาน: ข้อกำหนดหลักของบลูทูธ 4.1 หน้า 970 (LE Set Scan Response Data Command)

Sub OCF: 0x03

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
Scan_Response_Data_Length ตามข้อกำหนด ตามข้อกำหนด
Scan_Response_Data ตามข้อกำหนด ตามข้อกำหนด
Advertising_Instance 1 อ็อกเท็ต ระบุความเกี่ยวข้องของพารามิเตอร์ข้างต้นกับอินสแตนซ์

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้ตามที่ระบุไว้ ในข้อกำหนดหลักของบลูทูธ 4.1 ตามคำสั่งข้างต้น ตัวควบคุมจะตอบกลับด้วยรหัสที่ไม่สําเร็จ (พารามิเตอร์ไม่ถูกต้อง) หาก อินสแตนซ์การโฆษณาหรือพารามิเตอร์ Tx_Power ไม่ถูกต้อง

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Multi_advt_opcode 1 อ็อกเท็ต 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd

การอ้างอิงพื้นฐาน: ข้อกำหนดหลักของบลูทูธ 4.1 หน้า 963 (คำสั่ง LE Set Random Address)

Sub OCF: 0x04

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
ที่อยู่แบบสุ่ม ตามข้อกำหนด ตามข้อกำหนด
Advertising_Instance 1 อ็อกเท็ต ระบุความเกี่ยวข้องของพารามิเตอร์ข้างต้นกับอินสแตนซ์

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Multi_advt_opcode 1 อ็อกเท็ต 0x04 [Set_Random_Addr_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd

การอ้างอิงพื้นฐาน: ข้อกำหนดหลักของบลูทูธ 4.1 หน้า 971 (LE Set Advertise Enable Command ในข้อกำหนดหลักนั้น)

OCF: 0x05

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
Advertising_Enable 1 อ็อกเท็ต ค่า 1 หมายถึงเปิดใช้ ค่าอื่นๆ หมายถึงปิดใช้
Advertising_Instance 1 อ็อกเท็ต ระบุความเกี่ยวข้องของพารามิเตอร์ข้างต้นกับอินสแตนซ์ อินสแตนซ์ 0 หมายถึงอินสแตนซ์ HCI มาตรฐาน

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Multi_advt_opcode 1 อ็อกเท็ต 0x05 [Set_Advt_Enable_Multi_Sub_Cmd]

การแก้ปัญหาที่อยู่ส่วนตัวที่ออฟโหลด

ฟีเจอร์นี้จะแก้ไขที่อยู่ส่วนตัวในเฟิร์มแวร์หรือฮาร์ดแวร์ของตัวควบคุม ซึ่งมีประโยชน์ดังนี้

  • เวลาในการตอบสนองที่เกี่ยวข้องกับโฮสต์ในการแก้ไขที่อยู่ส่วนตัว
  • ประหยัดพลังงานด้วยการไม่ปลุกโฮสต์

LE_Set_RPA_Timeout

OCF: 0x15C

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
LE_local_IRK 16 อ็อกเท็ต IRK ของอุปกรณ์ในพื้นที่ที่ใช้สร้างที่อยู่ที่แก้ไขได้แบบสุ่ม
tRPA_min 2 อ็อกเท็ต การหมดเวลาในการสร้าง RPA ขั้นต่ำเป็นวินาที คอนโทรลเลอร์ต้อง สร้างที่อยู่ที่แก้ไขได้ใหม่สำหรับ เหตุการณ์การโฆษณา/การสแกน/การเชื่อมต่อใดๆ ในหรือหลังช่วงหมดเวลานี้
ช่วงที่ใช้ได้: 300-1800
tRPA_max 2 อ็อกเท็ต การหมดเวลาในการสร้าง RPA สูงสุดเป็นวินาที คอนโทรลเลอร์ต้อง สร้างที่อยู่ที่แก้ไขได้ใหม่สำหรับ เหตุการณ์การโฆษณา/การสแกน/การเชื่อมต่อใดๆ ก่อนหรือภายในระยะหมดเวลานี้
ช่วงที่ใช้ได้: tRPA_min-1800
พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะของคำสั่ง

ค่าสถานะ HCI ที่แนะนำ
0x00 สำเร็จ
0x01 คำสั่งที่ไม่รู้จัก (หากไม่รองรับ)
0x12 พารามิเตอร์คำสั่งไม่ถูกต้อง (หากมีพารามิเตอร์อยู่นอก ช่วงที่กำหนด)

LE_RPA_offload_Command

OCF: 0x155

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
RPA_offload_opcode 1 อ็อกเท็ต 0x1 - เปิดใช้ฟีเจอร์เฉพาะลูกค้า
0x2 - เพิ่ม IRK ลงในรายการ
0x3 - นำ IRK ออกจากรายการ
0x4 - ล้างรายการ IRK
0x5 - อ่านรายการ IRK

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Event_RPA_offload_opcode 1 อ็อกเท็ต 0x1 - เปิดใช้ฟีเจอร์เฉพาะลูกค้า
0x2 - เพิ่ม IRK ลงในรายการ
0x3 - นำ IRK ออกจากรายการ
0x4 - ล้างรายการ IRK
0x5 - อ่านรายการ IRK

LE_RPA_offload: Enable_cust_specific_sub_Command

Sub OCF: 0x01

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
enable_customer_specific_feature_set 1 อ็อกเท็ต 0x01 - เปิดใช้ฟีเจอร์ RPA ที่ลดภาระ
0x00 - ปิดใช้ฟีเจอร์ RPA ที่ลดภาระ

โฮสต์ต้องเปิดใช้การส่งต่อ RPA โดยอิงตามความสามารถของชิป โปรดดู LE_Get_Vendor_Capabilities_Command ชิปแต่ละตัวอาจมี max_irk_list_sz ที่แตกต่างกันในเฟิร์มแวร์

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Event_cust_specific_feature_opcode 1 อ็อกเท็ต 0x01 [เปิดใช้ฟีเจอร์เฉพาะลูกค้า]

LE_RPA_offload: Add_IRK_to_list_sub_Command

Sub OCF: 0x02

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
LE_IRK 16 อ็อกเท็ต LE IRK (ไบต์แรก LSB)
Address_Type 1 อ็อกเท็ต 0: ที่อยู่สาธารณะ
1: ที่อยู่ที่สุ่ม
LE_Device_Address 6 อ็อกเท็ต ที่อยู่สาธารณะหรือที่อยู่แบบสุ่มที่เชื่อมโยงกับ IRK (LSB ไบต์แรก)

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Event_cust_specific_feature_opcode 1 อ็อกเท็ต 0x02 [เพิ่ม IRK ลงในรายการ]
LE_IrkList_AvailableSpaces 1 อ็อกเท็ต รายการใน IRL ที่พร้อมใช้งานหลังจากการดำเนินการปัจจุบัน

LE_RPA_offload: Remove_IRK_to_list_sub_Command

Sub OCF: 0x03

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
Address_Type 1 อ็อกเท็ต 0: ที่อยู่สาธารณะ
1: ที่อยู่ที่สุ่ม
LE_Device_Address 6 อ็อกเท็ต ที่อยู่สาธารณะหรือที่อยู่แบบสุ่มที่เชื่อมโยงกับ IRK

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Event_cust_specific_feature_opcode 1 อ็อกเท็ต 0x03 [นำ IRK ออกจากรายการ]
LE_IrkList_AvailableSpaces 1 อ็อกเท็ต รายการใน IRL ที่พร้อมใช้งานหลังจากการดำเนินการปัจจุบัน

LE_RPA_offload: Clear_IRK_list_sub_Command

Sub OCF: 0x04

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
ไม่มี

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Event_cust_specific_feature_opcode 1 อ็อกเท็ต 0x04 [ล้างรายการ IRK]
LE_IrkList_AvailableSpaces 1 อ็อกเท็ต รายการ IRL ที่พร้อมใช้งานหลังจากการดำเนินการปัจจุบัน [max_irk_list_sz]

LE_RPA_offload: Read_IRK_list_sub_Command

Sub OCF: 0x05

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
LE_read_IRK_list_entry-index 1 อ็อกเท็ต ดัชนีของรายการ IRK [0, max_irk_list_sz-1]

ระบบจะสร้างเหตุการณ์ Command Complete สำหรับคำสั่งนี้

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์
Event_cust_specific_feature_opcode 1 อ็อกเท็ต 0x05 [อ่านรายการ IRK]
LE_Read_IRK_List_entry 1 อ็อกเท็ต ดัชนีของ IRK ที่โฮสต์ต้องการอ่านกลับ (ขนาดรายการ IRK สูงสุด คือ 32)
LE_IRK 16 อ็อกเท็ต ค่า IRK
Address_Type 1 อ็อกเท็ต 0: ที่อยู่สาธารณะ
1: ที่อยู่ที่สุ่ม
LE_Device_Address 6 อ็อกเท็ต ที่อยู่สาธารณะหรือที่อยู่แบบสุ่มที่เชื่อมโยงกับ IRK
LE_Resolved_Private_Address 6 อ็อกเท็ต ที่อยู่ส่วนตัวที่แก้ไขได้ในปัจจุบันของ IRK นี้

การลดภาระการดมกลิ่น

ฟีเจอร์การส่งต่อการดมกลิ่นจะส่งต่อการจัดการโหมดดมกลิ่นจากสแต็กโฮสต์บลูทูธไปยัง ตัวควบคุมบลูทูธ ซึ่งจะช่วยให้ตัวควบคุมจัดการเวลาในการเข้า/ออกจากโหมด Sniff และใช้พารามิเตอร์ Sniff และ Sniff sub-rating ที่กำหนดค่าได้ ในขณะที่โฮสต์ยังคง ควบคุมการเลือกพารามิเตอร์ตามการเปลี่ยนแปลงกิจกรรมของโปรไฟล์ Bluetooth

สถานะการออฟโหลดการดมกลิ่น

ส่วนนี้จะกำหนดสถานะภายในตัวควบคุมบลูทูธที่เกี่ยวข้องกับฟังก์ชัน Sniff Offload มีการกำหนดสถานะส่วนกลาง 2 สถานะเพื่อระบุสถานะของตัวควบคุมบลูทูธโดย คำนึงถึงการเปิดใช้การส่งผ่านการดมกลิ่น มีการกำหนดสถานะการเชื่อมต่อ 2 สถานะเพื่อ ระบุสถานะการเชื่อมต่อ BR/EDR เมื่อตัวควบคุมบลูทูธอยู่ในสถานะเปิดใช้การส่งต่อการดมกลิ่น

สถานะทั่วโลก

มีการกำหนดสถานะส่วนกลาง 2 สถานะเพื่อระบุสถานะของตัวควบคุมบลูทูธที่เกี่ยวข้องกับ การเปิดใช้การส่งผ่านการดมกลิ่น

สถานะปิดใช้การส่งต่อการดมกลิ่น

โดยค่าเริ่มต้น ระบบจะถือว่าตัวควบคุมบลูทูธอยู่ในสถานะ "ปิดใช้การส่งต่อการดมกลิ่น" คาดว่าตัวควบคุมบลูทูธจะจัดการคำสั่ง HCI_Sniff_Mode, HCI_Exit_Sniff_Mode และ HCI_Sniff_Subrating ที่ออกโดยโฮสต์บลูทูธ นอกจากนี้ คอนโทรลเลอร์บลูทูธยังต้องส่งต่อเหตุการณ์ HCI_Mode_Change และ HCI_Sniff_Subrating ไปยังโฮสต์บลูทูธตาม มาสก์เหตุการณ์ที่โฮสต์บลูทูธตั้งค่าไว้ด้วย

สถานะการเปิดใช้การออฟโหลดการดมกลิ่น

ระบบจะถือว่าตัวควบคุมบลูทูธอยู่ในสถานะ "เปิดใช้การส่งต่อการดมกลิ่น" หลังจากที่ จัดการ "WriteSniffOffloadEnable" เพื่อเปิดใช้การส่งต่อการดมกลิ่นสำเร็จแล้ว ในสถานะนี้ คาดว่าตัวควบคุมบลูทูธจะส่งต่อเหตุการณ์ HCI_Mode_Change และ HCI_Sniff_Subrating ไปยังโฮสต์บลูทูธตามที่ฟังก์ชัน AND เชิงตรรกะของมาสก์เหตุการณ์ที่ตั้งค่าโดยโฮสต์บลูทูธและแฟล็กการระงับเหตุการณ์กำหนด

สถานะการเชื่อมต่อที่เฉพาะเจาะจง

เมื่อตัวควบคุมบลูทูธอยู่ในสถานะ "เปิดใช้การส่งต่อการดมกลิ่น" ACL ที่ใช้งานอยู่แต่ละรายการจะอยู่ในสถานะใดสถานะหนึ่งที่อธิบายไว้ด้านล่าง

สถานะพารามิเตอร์ที่รอดำเนินการ

ระบบจะถือว่า ACL อยู่ในสถานะ "รอดำเนินการ - พารามิเตอร์" เมื่อตัวควบคุมบลูทูธอยู่ในสถานะ "เปิดใช้การส่งต่อการดมกลิ่น" แต่โฮสต์บลูทูธยังไม่ได้ออกคำสั่งเฉพาะของผู้ให้บริการ "WriteSniffOffloadParameters" อย่างน้อย 1 ครั้งสำหรับ ACL ปัจจุบัน

สถานะการควบคุมเริ่มต้น

ระบบจะถือว่า ACL อยู่ในสถานะ "เริ่มควบคุม" เมื่อตัวควบคุมบลูทูธอยู่ในสถานะ "เปิดใช้การส่งต่อการดมกลิ่น" และโฮสต์บลูทูธได้ออกคำสั่งเฉพาะของผู้ให้บริการ "WriteSniffOffloadParameters" อย่างน้อย 1 ครั้งสำหรับ ACL ปัจจุบัน

WriteSniffOffloadEnable

OCF: 0x310

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Enable_Sniff_Offload 1 อ็อกเท็ต 0x00 : ปิดใช้
0x01 : เปิดใช้
Subrating_Max_Latency 2 อ็อกเท็ต พารามิเตอร์เวลาในการตอบสนองสูงสุดจะใช้ในการคำนวณอัตราการดมกลิ่นย่อยสูงสุดที่อุปกรณ์ระยะไกลอาจใช้ ค่าเริ่มต้น: T*sniff* เวลาในการตอบสนอง = N × 0.625 มิลลิวินาที (1 ช่องเบสแบนด์) ช่วง: 0x0002 ถึง 0xFFFE ช่วงเวลา: 1.25 มิลลิวินาทีถึง 40.9 วินาที
Subrating_Min_Remote_Timeout 2 อ็อกเท็ต การหมดเวลาโหมดดมกลิ่นขั้นต่ำ (T*sniff_mode_timeout*) ที่อุปกรณ์ระยะไกลอาจใช้ ค่าเริ่มต้น: 0x0000 การหมดเวลา = N × 0.625 มิลลิวินาที (1 ช่องเบสแบนด์) ช่วง: 0x0000 ถึง 0xFFFE เวลา ช่วง: 0 วินาทีถึง 40.9 วินาที
Subrating_Min_Local_Timeout 2 อ็อกเท็ต ระยะหมดเวลาโหมดดมกลิ่นขั้นต่ำ (T*sniff_mode_timeout*) ที่อุปกรณ์ในพื้นที่อาจใช้ ค่าเริ่มต้น: 0x0000 หมดเวลา = N × 0.625 มิลลิวินาที (1 ช่องเบสแบนด์) ช่วง: 0x0000 ถึง 0xFFFE เวลา ช่วง: 0 วินาทีถึง 40.9 วินาที
Suppress_Mode_Change_Event 1 อ็อกเท็ต 0x00 : คอนโทรลเลอร์บลูทูธต้องรายงานเหตุการณ์ HCI Mode_Change ไปยังโฮสต์ โดยขึ้นอยู่กับการกำหนดค่าที่ตั้งไว้ในคำสั่ง HCI_Set_Event_Mask
0x01 : คอนโทรลเลอร์บลูทูธ ต้องไม่รายงานเหตุการณ์ HCI Mode_Change ไปยังโฮสต์
Suppress_Sniff_Subrating_Event 1 อ็อกเท็ต 0x00 : คอนโทรลเลอร์บลูทูธต้องรายงานเหตุการณ์ HCI Sniff_Subrating ไปยังโฮสต์ โดยขึ้นอยู่กับการกำหนดค่าที่ตั้งไว้ในคำสั่ง HCI_Set_Event_Mask
0x01 : คอนโทรลเลอร์บลูทูธ ต้องไม่รายงานเหตุการณ์ HCI Sniff_Subrating ไปยังโฮสต์

WriteSniffOffloadParameters

OCF: 0x311

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Connection_Handle 2 อ็อกเท็ต แฮนเดิลการเชื่อมต่อ ACL ของ BR/EDR 16 บิต ช่วง: 0x0000 ถึง 0x0EFF
Sniff_Max_Interval 2 อ็อกเท็ต - ช่วงที่กำหนดโดย Bluetooth SIG ซึ่งโดยปกติจะใช้สำหรับการเข้าสู่โหมดดมกลิ่น ช่วง: 0x0002 ถึง 0xFFFE; ใช้ได้เฉพาะค่าคู่เท่านั้น ช่วงที่ต้องระบุ: 0x0006 ถึง 0x0540 เวลา = N × 0.625 มิลลิวินาที ช่วงเวลา: 1.25 มิลลิวินาทีถึง 40.9 วินาที – กรณีพิเศษ 0x0000 : ใช้เพื่อเลือก "Push-Active" โหมด Sniff-Offload 0x0001 : ใช้เพื่อเลือกโหมด Sniff-Offload "Prefer-Active"
Sniff_Min_Interval 2 อ็อกเท็ต ช่วง: 0x0002 ถึง 0xFFFE; ใช้ได้เฉพาะค่าคู่เท่านั้น ช่วงที่ต้องระบุ: 0x0006 ถึง 0x0540 เวลา = N × 0.625 มิลลิวินาที ช่วงเวลา: 1.25 มิลลิวินาที ถึง 40.9 วินาที
Sniff_Attempts 2 อ็อกเท็ต จำนวนช่องรับสัญญาณเบสแบนด์สำหรับการพยายามดมกลิ่น ความยาว = N × 1.25 มิลลิวินาที ช่วง: 0x0001 ถึง 0x7FFF ช่วงเวลา: 1.25 มิลลิวินาที ถึง 40.9 วินาที ช่วงที่ต้องระบุสำหรับตัวควบคุม: 1 ถึง T*sniff* ÷ 2
Sniff_Timeout 2 อ็อกเท็ต จำนวนสล็อตรับสัญญาณเบสแบนด์สำหรับการหมดเวลาการดมกลิ่น ความยาว = N × 1.25 มิลลิวินาที ช่วง: 0x0000 ถึง 0x7FFF ช่วงเวลา: 0 มิลลิวินาที ถึง 40.9 วินาที ช่วงที่ต้องระบุสำหรับตัวควบคุม: 0 ถึง 0x0028
Link_Inactivity_Timeout 2 อ็อกเท็ต ค่าการหมดเวลาเป็นมิลลิวินาที Link_Inactivity Timer started/reset at every HCI-ACL transaction. เมื่อตัวจับเวลานี้หมดอายุ ตัวควบคุมจะเริ่มเข้าสู่โหมด Sniff
Subrating_Max_Latency 2 อ็อกเท็ต พารามิเตอร์เวลาในการตอบสนองสูงสุดจะใช้ในการคำนวณอัตราการดมกลิ่นย่อยสูงสุดที่อุปกรณ์ระยะไกลอาจใช้ ค่าเริ่มต้น: T*sniff* เวลาในการตอบสนอง = N × 0.625 มิลลิวินาที (1 ช่องเบสแบนด์) ช่วง: 0x0002 ถึง 0xFFFE ช่วงเวลา: 1.25 มิลลิวินาทีถึง 40.9 วินาที
Subrating_Min_Remote_Timeout 2 อ็อกเท็ต การหมดเวลาโหมดดมกลิ่นขั้นต่ำ (T*sniff_mode_timeout*) ที่อุปกรณ์ระยะไกลอาจใช้ ค่าเริ่มต้น: 0x0000 การหมดเวลา = N × 0.625 มิลลิวินาที (1 ช่องเบสแบนด์) ช่วง: 0x0000 ถึง 0xFFFE เวลา ช่วง: 0 วินาทีถึง 40.9 วินาที
Subrating_Min_Local_Timeout 2 อ็อกเท็ต ระยะหมดเวลาโหมดดมกลิ่นขั้นต่ำ (T*sniff_mode_timeout*) ที่อุปกรณ์ในพื้นที่อาจใช้ ค่าเริ่มต้น: 0x0000 หมดเวลา = N × 0.625 มิลลิวินาที (1 ช่องเบสแบนด์) ช่วง: 0x0000 ถึง 0xFFFE เวลา ช่วง: 0 วินาทีถึง 40.9 วินาที
Allow_Exit_Sniff_On_Rx 1 อ็อกเท็ต Flag เพื่อควบคุมการออกจากโหมดดมกลิ่นในการทำธุรกรรม HCI-ACL ในทิศทางที่รับ 0x00 : Do not exit sniff on Rx. 0x01 : Exit Sniff on Rx Receive-direction HCI-ACL is defined as ACL packet transmission from controller to host over HCI.
Allow_Exit_Sniff_On_Tx 1 อ็อกเท็ต Flag to control exit of Sniff mode on transmit-direction HCI-ACL transaction. 0x00 : Do not exit sniff on Tx. 0x01 : Exit Sniff on Tx Transmit-direction HCI-ACL is defined as ACL packet transmission from host to controller over HCI.