ข้อกำหนด 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 = สามารถ

สงวนไว้หลังจาก v0.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.06
byte[0] = 0x01
byte[1] = 0x06

การเพิ่มฟีเจอร์ในเวอร์ชันต่อไปนี้
v1.06:
  • big_set_channel_map_classification_support
  • vendor_connection_handle_min
  • vendor_connection_handle_max
  • connection_proximity_threshold_support
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 - Opus
บิต 6-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 - Opus
บิต 6-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 = รองรับ
big_set_channel_map_classification_support 2 อ็อกเท็ต รองรับ sub_opcode ของฟีเจอร์การจัดประเภทแผนที่ช่องสัญญาณ LE Broadcast
บิต 0 - รองรับ sub_opcode 0x01 (ตั้งค่าแผนที่ช่องสัญญาณ BIG โดยใช้แฮนเดิลการเชื่อมต่อ LE ACL)
บิต 1-15 - สงวนไว้
ค่าของบิต: 0
0 = ไม่รองรับ
1 = รองรับ
vendor_connection_handle_min 2 อ็อกเท็ต รายงานค่าต่ำสุดของแฮนเดิลการเชื่อมต่อของผู้ให้บริการสำหรับเหตุการณ์ของผู้ให้บริการ HCI ที่ได้รับผ่านแพ็กเก็ต ACL แฮนเดิล 0 ใช้เพื่อระบุว่าไม่มีการรองรับการรายงานเหตุการณ์ของผู้ให้บริการผ่านแพ็กเก็ตข้อมูล ACL
vendor_connection_handle_max 2 อ็อกเท็ต รายงานค่าสูงสุดของแฮนเดิลการเชื่อมต่อของผู้ให้บริการสำหรับเหตุการณ์ของผู้ให้บริการ HCI ที่ได้รับผ่านแพ็กเก็ต ACL แฮนเดิล 0 ใช้เพื่อระบุว่าไม่มีการรองรับการรายงานเหตุการณ์ของผู้ให้บริการผ่านแพ็กเก็ตข้อมูล ACL
connection_proximity_threshold_support 1 อ็อกเท็ต ระบุว่าชิปรองรับเกณฑ์การเชื่อมต่อที่ใกล้เคียง
0 = ไม่รองรับ
1 = รองรับ

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

เป้าหมายการออกแบบคือการปรับปรุงวิธีส่งการแจ้งเตือนเหตุการณ์การตอบกลับการสแกนบลูทูธ 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: transport_discovery_service_sub_cmd

คำสั่งย่อยนี้ใช้เพื่อเพิ่มหรือลบตัวกรอง Transport Discovery Service (TDS) หรือเพื่อล้าง รายการตัวกรอง TDS สำหรับการกรองในชิป ใช้ read_extended_features_sub_cmd เพื่อตรวจสอบ ว่าคำสั่งนี้รองรับหรือไม่

Sub OCF: 0x08

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
ลบจะลบตัวกรอง TDS ที่ระบุในตัวกรองที่ระบุ
Clear จะล้างตัวกรอง TDS ทั้งหมดในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
Org_ID 1 อ็อกเท็ต รหัสองค์กรที่กำหนดโดย Bluetooth SIG ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
TDS_Flags 1 อ็อกเท็ต TDS flags to match. ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
TDS_Flags_Mask 1 อ็อกเท็ต มาสก์สำหรับแฟล็ก TDS ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
Transport_Data_Length 1 อ็อกเท็ต ความยาวของ Transport_Data ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
Transport_Data ขนาดตัวแปร ขนาดแตกต่างกันไปตาม Transport_Data_Length ส่งข้อมูลบล็อกเพื่อจับคู่ ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
Transport_Data_Mask_Length 1 อ็อกเท็ต ความยาวของ Transport_Data_Mask ค่านี้ต้องเท่ากับ Transport_Data_Length ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
Transport_Data_Mask ขนาดตัวแปร ขนาดแตกต่างกันไปตาม Transport_Data_Mask_Length มาสก์สำหรับข้อมูลบล็อกการขนส่ง โดยควรมีความยาวเท่ากับ Transport_Data ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
Meta_Data_Type 1 อ็อกเท็ต 0x00 - ไม่ถูกต้อง
0x01 - แฮช Wi-Fi NAN
ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
Meta_Data_Length 1 อ็อกเท็ต ความยาวของ Meta_Data ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)
Meta_Data ขนาดตัวแปร ขนาดแตกต่างกันไปตาม Meta_Data_Length ข้อมูลเมตาที่จะจับคู่ ไม่สนใจเมื่อ APCF_Action เป็น 0x02 (ล้าง)

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

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

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 ของข้อมูล AD และไม่สนใจข้อมูลที่เหลือ

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 อ็อกเท็ต เวลาทั้งหมดที่ดำเนินการ Tx
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 - Ignore advertisement packets from devices not in the White List Only list. ระบบจะไม่สนใจแพ็กเก็ตโฆษณาที่กำหนดเป้าหมายซึ่งไม่ได้ระบุไว้สำหรับ อุปกรณ์นี้

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

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

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

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

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
0x20 - Opus
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 อ็อกเท็ต ขนาดสูงสุดของ MTU ของ L2CAP ที่มีแพ็กเก็ตเสียงที่เข้ารหัส
Codec_Information 32 อ็อกเท็ต ข้อมูลเฉพาะของตัวแปลงรหัส

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

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

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

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

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

Octet 0-3: รหัสผู้ให้บริการ
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

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

Octet 0-3: Vendor ID
0x000000E0

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

Octet 6-31: สงวนไว้

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

Octet 0-31: reserved

ระบบจะสร้างเหตุการณ์ 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) คอนโทรลเลอร์จะรายงานเหตุการณ์ใกล้ถึง LSTO ไปยังโฮสต์
  • เสียง A2DP ตะกุกตะกัก: เมื่อตัวควบคุมตรวจพบปัจจัยที่ทำให้เสียงตะกุกตะกัก ตัวควบคุมจะรายงานเหตุการณ์เสียง A2DP ตะกุกตะกักไปยังโฮสต์
  • (จ) เสียง (e)SCO ขาดๆ หายๆ: เมื่อตัวควบคุมตรวจพบปัจจัยที่ทำให้เสียงขาดๆ หายๆ ตัวควบคุมจะรายงานเหตุการณ์เสียง (e)SCO ขาดๆ หายๆ ไปยัง โฮสต์
  • Root Inflammation: คอนโทรลเลอร์จะส่งเหตุการณ์นี้ไปยังสแต็ก เมื่อ 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: ตั้งค่าเพื่อเปิดใช้เหตุการณ์เสียง eSCO ขาดๆ หายๆ
บิตที่ 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 หากไม่รองรับประเภทตัวแปลงรหัสบิต 1
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 อ็อกเท็ต ช่วงเผื่อเวลาบัฟเฟอร์สูงสุดของประเภทตัวแปลงรหัส Bit 1 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัสบิต 1
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 อ็อกเท็ต ช่วงเผื่อเวลาบัฟเฟอร์ขั้นต่ำของประเภทตัวแปลงรหัส Bit 1 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้ต้องเป็น 0 หากไม่รองรับประเภทตัวแปลงรหัสบิต 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 อ็อกเท็ต เวลาบัฟเฟอร์เสียงปัจจุบันในตัวควบคุมบลูทูธ
หน่วย: มิลลิวินาที

เกณฑ์ระยะใกล้ของการเชื่อมต่อ (v1.06)

LE_Add_Device_To_Filter_Accept_List_With_Proximity_Threshold_Command

คำสั่งนี้ใช้เพื่อระบุเกณฑ์ความใกล้เคียงของการเชื่อมต่อ (การสูญเสียเส้นทางและ RSSI) เมื่อเพิ่มอุปกรณ์ลงในรายการที่ยอมรับของตัวกรอง

ต้องพยายามเชื่อมต่อเมื่อสัญญาณมีค่าการสูญเสียเส้นทางต่ำกว่าเกณฑ์การสูญเสียเส้นทางเท่านั้น

หาก TxPower ไม่พร้อมใช้งานหรือใช้ No Path Loss filtering จะต้องพยายามเชื่อมต่อเมื่อสัญญาณมีค่า RSSI สูงกว่าเกณฑ์ RSSI ที่ระบุเท่านั้น

คุณใช้คำสั่งนี้แทนคำสั่งมาตรฐานของบลูทูธ LE Add Device To Filter Accept List command ได้

หากเรียกใช้คำสั่งนี้ด้วยค่าเกณฑ์ที่แตกต่างกันในขณะที่อุปกรณ์อยู่ในรายการที่ยอมรับของตัวกรองอยู่แล้ว คุณต้องอัปเดตค่าเกณฑ์

ข้อมูลอ้างอิงพื้นฐาน: ข้อกำหนด BT Core 6.2, 7.8.16 (คำสั่ง LE Add Device To Filter Accept List)

ห้ามใช้คำสั่งนี้ในกรณีต่อไปนี้

  • นโยบายตัวกรองการโฆษณาใช้รายการที่ยอมรับของตัวกรองและเปิดใช้การโฆษณา
  • นโยบายตัวกรองการสแกนใช้รายการที่ยอมรับของตัวกรองและเปิดใช้การสแกน หรือ
  • นโยบายตัวกรองผู้เริ่มต้นใช้รายการที่ยอมรับตัวกรองและคำสั่ง HCI_LE_Create_Connection หรือ HCI_LE_Extended_Create_Connection อยู่ระหว่างรอดำเนินการ

LE Remove Device From Filter Accept List ต้องนำอุปกรณ์ออกจากรายการที่ยอมรับของตัวกรองที่เพิ่มโดยคำสั่งนี้

Opcode: 0xFD66 (OCF: 0x166)

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Address_Type 1 อ็อกเท็ต 0x00 - ที่อยู่อุปกรณ์สาธารณะ
0x01 - ที่อยู่อุปกรณ์แบบสุ่ม
0xFF - อุปกรณ์ที่ส่งโฆษณาแบบไม่ระบุชื่อ
ค่าอื่นๆ ทั้งหมด - สงวนไว้สำหรับการใช้งานในอนาคต
LE_Device_Address 6 อ็อกเท็ต ที่อยู่สาธารณะหรือแบบสุ่ม
ระบบจะไม่สนใจที่อยู่เมื่อตั้งค่า Address_Type เป็น 0xFF
Connection_Path_Loss_Threshold 1 อ็อกเท็ต ช่วง: 0 ถึง +100, +127 [ในหน่วย dB]
ระบุเกณฑ์การสูญเสียเส้นทางการเชื่อมต่อเพื่อเริ่มการเชื่อมต่อกับอุปกรณ์เมื่อตรวจพบ (0 ถึง +100) ค่าการสูญเสียเส้นทางควรต่ำกว่าเพื่อเริ่มการเชื่อมต่อ ใช้ค่า +127 เพื่อระบุ No Path Loss filtering เมื่อ TxPower ไม่พร้อมใช้งานหรือค่านี้เป็น +127 คำสั่งนี้จะต้องกลับไปใช้การกรอง RSSI ด้านล่าง
Connection_RSSI_Threshold 1 อ็อกเท็ต ช่วง: -127 ถึง +20, +127 [ในหน่วย dBm]
ระบุเกณฑ์ RSSI ของการเชื่อมต่อเพื่อเริ่มการเชื่อมต่อกับอุปกรณ์เมื่อตรวจพบ (-127 ถึง +20) ค่า RSSI ต้องสูงกว่าเพื่อเริ่มการเชื่อมต่อ การกรอง RSSI เป็นการสำรองเมื่อ TxPower ไม่พร้อมใช้งานหรือเมื่อมีการระบุเกณฑ์การสูญเสียเส้นทางเป็น +127 ใช้ค่า +127 เพื่อระบุ No RSSI filtering

เมื่อทั้งเกณฑ์การสูญเสียเส้นทางและเกณฑ์ RSSI เป็น +127 คำสั่งนี้ต้องทำงานเหมือนกับมาตรฐานบลูทูธ LE Add Device To Filter Accept List command

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

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

เหตุการณ์ 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

การจัดประเภทแผนที่ช่องออกอากาศของ LE (v1.06)

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

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

ดังนั้นเราจึงกำหนด LE_BIG_Set_Channel_Map_Classification_Command คำสั่งนี้ช่วยให้การจัดการการกำหนดช่องสัญญาณเสียงในแหล่งที่มาของ BIG พิจารณาข้อมูลการจัดประเภทช่องที่ได้รับจากอุปกรณ์ต่อพ่วง คำสั่งนี้จะอนุญาตให้ตั้งค่าแฮนเดิลการเชื่อมต่อ ACL LE ที่เฉพาะเจาะจงกับคอนโทรลเลอร์ เมื่อได้รับข้อมูลนี้แล้ว ตัวควบคุมจะกำหนดแผนที่ช่อง BIG โดยอิงตามข้อมูลการจัดประเภทช่องที่เชื่อมโยงกับการเชื่อมต่อ LE ACL ที่ระบุ

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

LE_BIG_Set_Channel_Map_Classification_Command

Opcode: 0xFD65 (OCF: 0x165)

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Sub_opcode 1 อ็อกเท็ต 0x01 - ตั้งค่าการกำหนดช่องสัญญาณเสียง BIG โดยใช้แฮนเดิลการเชื่อมต่อ ACL ของ LE
0x02-0x0E - สงวนไว้สำหรับการใช้งานในอนาคต
Set_BIG_Channel_Action 1 อ็อกเท็ต การดำเนินการเพื่อเพิ่มหรือลบ BD_ADDR หรือแฮนเดิลการเชื่อมต่อ LE ACL หรือล้างทั้งหมด
0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
0x03-0xFF - สงวนไว้
BIG_Handle 1 อ็อกเท็ต ระบุแฮนเดิล BIG ที่จะอัปเดตด้วยการจัดประเภทช่องของอุปกรณ์ต่อพ่วง
ช่วง: 0x00 ถึง 0xEF
cmd_para[] ตัวแปร พารามิเตอร์ตัวแปรจะขึ้นอยู่กับ Set_BIG_Channel_opcode

LE_BIG_Set_Channel_Map_Classification_Command_by_Conn_Handle

Sub OCF: 0x01

พารามิเตอร์คำสั่ง ขนาด วัตถุประสงค์
Sub_opcode 1 อ็อกเท็ต 0x01 - ตั้งค่าการกำหนดช่องสัญญาณเสียง BIG โดยใช้แฮนเดิลการเชื่อมต่อ ACL ของ LE
0x02-0x0E - สงวนไว้สำหรับการใช้งานในอนาคต
Set_BIG_Channel_Action 1 อ็อกเท็ต การดำเนินการเพื่อเพิ่มหรือลบแฮนเดิลการเชื่อมต่อ ACL ของ LE หรือล้างทั้งหมด
0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
0x03-0xFF - สงวนไว้
BIG_Handle 1 อ็อกเท็ต ระบุแฮนเดิล BIG เพื่ออัปเดตด้วยการจัดประเภทแชแนลของอุปกรณ์ต่อพ่วง
ช่วง: 0x00 ถึง 0xEF
Number_of_LE_ACL_Connections 1 อ็อกเท็ต ระบุจำนวนการเชื่อมต่อ LE ACL ที่จะใช้ในการอัปเดตการกำหนดช่องสัญญาณเสียง BIG
ไม่สนใจเมื่อ Set_BIG_Channel_Action เป็น Clear (0x02)
ช่วง: 0x01 ถึง 0xFF
LE_ACL_Connection_Handles ตัวแปร (Number_of_LE_ACL_Connections * 2 อ็อกเท็ต) ขนาดตัวแปรตาม Number_of_LE_ACL_Connections
ไม่สนใจเมื่อ Set_BIG_Channel_Action เป็น Clear (0x02)
ช่วงแฮนเดิลการเชื่อมต่อ: 0x0000 ถึง 0x0EFF

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

พารามิเตอร์การคืนค่า ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะคำสั่งเสร็จสมบูรณ์ ส่งคืน SUCCESS เมื่อเพิ่ม conn_handles ของ LE ACL ทั้งหมดแล้ว
Set_BIG_Channel_opcode 1 อ็อกเท็ต Echo back command's Set_BIG_Channel_opcode
Set_BIG_Channel_Action 1 อ็อกเท็ต Set_BIG_Channel_Action ของคำสั่ง Echo Back
BIG_Handle 1 อ็อกเท็ต BIG_Handle ของคำสั่ง Echo Back

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

เหตุการณ์นี้บ่งบอกถึงสิ่งต่อไปนี้อย่างใดอย่างหนึ่ง ได้แก่ เกิดเหตุการณ์คุณภาพของบลูทูธ , คอนโทรลเลอร์อัปโหลดการติดตามข้อความ 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_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 การส่งครั้งล่าสุด โดยจะอิงตามนาฬิกาบลูทูธของ ส่วนกลางของพิโคเน็ต (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 (ดูข้อกำหนดหลักของบลูทูธเวอร์ชัน 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 - สงวนไว้
พารามิเตอร์เฉพาะของผู้ให้บริการ (ความยาวทั้งหมดของพารามิเตอร์ - TBD) * อ็อกเท็ต เพื่อให้ผู้ให้บริการตัวควบคุมได้รับพารามิเตอร์ที่เฉพาะเจาะจงของผู้ให้บริการมากขึ้น

รหัสเหตุการณ์ย่อย = 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 (บลูทูธคลาสสิก) และ 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 เฉพาะของ BR/EDR (รับจากการเข้าชม ACL/SCO/eSCO)
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 เฉพาะ LE (รับจาก ACL/BIS/CIS หรือการเข้าชมการสแกน 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 อ็อกเท็ต [ในหน่วยมิลลิวินาที] ระยะเวลา (มิลลิวินาที) ในเวลาที่ LE สแกน RX ทำงาน

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

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

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

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

เมตริกหลักและวัตถุประสงค์ของเมตริก
  • สถิติพลังงานการส่ง: ตัวนับเหล่านี้จะติดตามแพ็กเก็ตที่ส่งโดยใช้การกำหนดค่าพลังงานที่แตกต่างกัน โดยจะแยกความแตกต่างระหว่างเครื่องขยายสัญญาณภายใน (iPA) และภายนอก (ePA) รวมถึงโหมดความหลากหลายของเสาอากาศ (Div) หรือ Beamforming (BF) ต่างๆ ซึ่งจะช่วย กำหนดการตั้งค่ากำลังและเสาอากาศที่ใช้บ่อยที่สุด
  • กลุ่มตัวบ่งชี้ความแรงของสัญญาณที่ได้รับ (RSSI): พารามิเตอร์เหล่านี้จัดหมวดหมู่ แพ็กเก็ตที่ได้รับตามความแรงของสัญญาณ การระบุจำนวนแพ็กเก็ตภายใน ช่วง RSSI ที่เฉพาะเจาะจง (เช่น น้อยกว่า -90 dBm, -70 ถึง -75 dBm) จะช่วยให้รายงานแสดง ภาพรวมคุณภาพลิงก์ได้อย่างชัดเจน จำนวนที่สูงในกลุ่มสัญญาณ "อ่อน" (เช่น < -90 dBm) แสดงว่าการเชื่อมต่อไม่ดี
  • เดลต้า RSSI: เมตริกนี้จะวัดความแตกต่างของความแรงของสัญญาณระหว่าง เสาอากาศรับสัญญาณ 2 เสา (หากมี) เคาน์เตอร์จะติดตามจำนวนแพ็กเก็ตที่มีเดลต้า RSSI ภายในช่วงต่างๆ เดลต้าขนาดใหญ่ (เช่น >11 dBm) อาจบ่งบอกถึงการรบกวนหรือสิ่งกีดขวาง ทางกายภาพ เนื่องจากเสาอากาศหนึ่งรับสัญญาณได้แรงกว่าอีกเสาอากาศหนึ่งมาก
  • การสลับเสาอากาศและการส่งซ้ำ: รายงานจะนับความถี่ที่ตัวควบคุม สลับระหว่างเสาอากาศและติดตามแพ็กเก็ตที่ส่งซ้ำ (ReTX) การส่งซ้ำจำนวนมาก มักบ่งชี้ว่าการเชื่อมต่อมีสัญญาณอ่อนหรือไม่เสถียร จึงต้อง ส่งแพ็กเก็ตอีกครั้ง
  • คุณภาพของช่อง: พารามิเตอร์เหล่านี้จะให้ข้อมูลสรุประดับสูงเกี่ยวกับสถานะ ของช่องทางการสื่อสารต่างๆ โดยจัดหมวดหมู่เป็น "ดี" "พอใช้" "ไม่ดี" หรือ "แย่มาก" ตาม RSSI ซึ่งจะแสดงภาพรวมของสภาพแวดล้อม RF ในทันที
  • คิวบัฟเฟอร์ TX: ส่วนนี้จะตรวจสอบจำนวนแพ็กเก็ตที่รอในบัฟเฟอร์การส่งของ คอนโทรลเลอร์สำหรับลิงก์ประเภทต่างๆ เช่น ACL (ลิงก์เชิงตรรกะแบบเชื่อมต่อที่ไม่พร้อมกัน), LECONN (การเชื่อมต่อ LE) และ LEISOC (ไอโซโครนัส LE) จำนวนบัฟเฟอร์สูงอาจบ่งบอกถึงจุดคอขวดหรือปัญหาเกี่ยวกับโฟลว์ข้อมูลจากโฮสต์ไปยังคอนโทรลเลอร์
พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
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): ระบบจะส่งรายงานแบบครั้งเดียวเพื่อตอบสนองต่อคำสั่งที่เฉพาะเจาะจง
  • โดย Monitor (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 อ็อกเท็ต Flag to denote that this health status event is generated by the controller as an early warning of watch dog expiration. การประทับเวลาปัจจุบันใช้เพื่อระบุเวลาที่เกิดเหตุการณ์ ขึ้น
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: สงวนไว้
0x11: การติดตามข้อความ LMP/LL
0x12: การติดตามการจัดกำหนดการแบบหลายลิงก์/การทำงานร่วมกันของบลูทูธ
0x13: ดัมพ์ข้อมูลการแก้ไขข้อบกพร่องของคอนโทรลเลอร์
0x14 ~ 0xFF: สงวนไว้
Connection_Handle 2 อ็อกเท็ต แฮนเดิลการเชื่อมต่อ
พารามิเตอร์เฉพาะของผู้ให้บริการ (ความยาวทั้งหมดของพารามิเตอร์ - 4) * อ็อกเท็ต รูปแบบเฉพาะของผู้ให้บริการของการติดตามข้อความ LMP, การติดตามการจัดกำหนดการแบบหลายลิงก์/การทำงานร่วมกันของบลูทูธ และการทิ้งข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุม

รหัสเหตุการณ์ย่อย = 0x58 [Quality_Report_Id = 0x16, เหตุการณ์แหล่งที่มาของการออกอากาศ LEA]

พารามิเตอร์ BIG Handle ถึง Timestamp ช่วยให้ตัวควบคุมรายงานข้อมูลแหล่งที่มาของการออกอากาศได้ล่วงหน้า ซึ่งรวมถึง BD_ADDR ที่ส่งผ่านอากาศ (OTA) และการกำหนดช่องสัญญาณเสียง BIG ที่ใช้อยู่ในปัจจุบัน พารามิเตอร์จาก Broadcast ID of Broadcast Receiver Subscribed ถึง RSSI มีไว้เพื่อให้ Broadcast Receiver รายงานข้อมูลเกี่ยวกับแหล่งที่มาของ BIG ที่สมัครใช้บริการ ข้อมูลนี้ต้องส่งจาก Broadcast Receiver ไปยังแหล่งที่มาของ BIG ผ่าน PAwR, การเชื่อมต่อ LE ACL หรือวิธีการอื่นๆ ที่เกี่ยวข้อง

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0x16: เหตุการณ์แหล่งที่มาของการออกอากาศ LEA
BIG_Handle 1 อ็อกเท็ต แฮนเดิล BIG ที่โฮสต์จัดสรร
Broadcast_Source_BD_ADDR_Type 1 อ็อกเท็ต ประเภท BD_ADDR ของแหล่งที่มาของการออกอากาศ (แฮนเดิล BIG) ที่ส่งออกอากาศ
Broadcast_Source_BD_ADDR 6 อ็อกเท็ต BD_ADDR ของแหล่งที่มาของการออกอากาศ (แฮนเดิล BIG) ที่ส่งไปยังอากาศ
BIG_Source_Prefer_Channel_Map 5 อ็อกเท็ต การกำหนดช่องสัญญาณเสียง BIG ที่ผู้ควบคุมต้องการและตรวจพบโดยการจัดประเภทช่อง
BIG_Source_Used_Channel_Map 5 อ็อกเท็ต ช่อง BIG ที่ใช้โดยคอนโทรลเลอร์
BIG_TX_Power 1 อ็อกเท็ต กำลังส่ง TX ปัจจุบันที่ใช้ในรหัสการออกอากาศ
Timestamp 4 อ็อกเท็ต การประทับเวลา (นาฬิกา Piconet) สำหรับแฮนเดิล BIG ที่ระบุ ค่านี้ต้องเหมือนกับค่าที่ตัวควบคุมตอบกลับคำสั่ง HCI_Read_Clock HCI ที่มีพารามิเตอร์ Which_Clock เป็น 0x01 (Piconet Clock)
หน่วย: N * 0.3125 มิลลิวินาที (1 นาฬิกาบลูทูธ)
Broadcast_ID_of_Broadcast_Receiver_Subscribed 3 อ็อกเท็ต ระบุรหัสการออกอากาศที่อุปกรณ์ไคลเอ็นต์ติดตาม
ค่าไม่ถูกต้อง: 0xFFFFFF
Broadcast_Receiver_BD_ADDR_Type 1 อ็อกเท็ต ประเภท BD_ADDR ของ Broadcast Receiver
ค่าไม่ถูกต้อง: 0xFF
Broadcast_Receiver_BD_ADDR 6 อ็อกเท็ต BD_ADDR ของ Broadcast Receiver
ค่าไม่ถูกต้อง: 0x000000000000
Time_Duration 4 อ็อกเท็ต ระยะเวลาในการรวบรวมข้อมูลประสิทธิภาพ
หน่วย: มิลลิวินาที
ค่าไม่ถูกต้อง: 0xFFFFFFFF
BIS_Choppy_count 4 อ็อกเท็ต จำนวน BIS Choppy: จำนวน Choppy ที่มี Time_Duration
ค่าไม่ถูกต้อง: 0xFFFFFFFF
PER 4 อ็อกเท็ต อัตราข้อผิดพลาดของแพ็กเก็ต (PER) ภายใน Time_Duration
ค่าไม่ถูกต้อง: 0xFFFFFFFF
No_Sync 4 อ็อกเท็ต จำนวนครั้งที่ RX ไม่ซิงค์
ค่าไม่ถูกต้อง: 0xFFFFFFFF
Receiver_Prefer_Channel_Map 5 อ็อกเท็ต ระบุแผนที่ช่องของเครื่องรับสัญญาณออกอากาศ
ค่าไม่ถูกต้อง: 0x0000000000
Receiver_Tx_Power 1 อ็อกเท็ต ระบุระดับพลังงานที่ส่งแพ็กเก็ตที่มีข้อมูลจาก Broadcast Receiver
ค่าไม่ถูกต้อง: 0xFF
RSSI 1 อ็อกเท็ต RSSI ของแพ็กเก็ตที่ได้รับจาก Broadcast Receiver
ค่าไม่ถูกต้อง: 0x7F
Reserved 4 อ็อกเท็ต จองแล้ว

รหัสเหตุการณ์ย่อย = 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
จากนั้นสำหรับแต่ละแพ็กเก็ตใน ISO FIFO จะมีผลดังนี้
  • คอนโทรลเลอร์จะคำนวณ 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
  • หรือเมื่อไม่เป็นไปตามเงื่อนไขใดๆ ข้างต้น
    ระบบจะทิ้งแพ็กเก็ต เมื่อถึงขีดจำกัดการหมดเวลาของ Flush หรือได้รับแพ็กเก็ตที่มีรูปแบบไม่ถูกต้อง

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
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 )

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 Offload

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

สถานะ Sniff Offload

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

สถานะระดับระบบ

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

สถานะปิดใช้ Sniff Offload

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

สถานะเปิดใช้ Sniff Offload

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

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

เมื่อตัวควบคุมบลูทูธอยู่ในสถานะ "เปิดใช้ Sniff Offload" 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.