ข้อกำหนด HCI

อินเทอร์เฟซตัวควบคุมโฮสต์ (HCI) ใช้เพื่อโต้ตอบกับตัวควบคุมบลูทูธ

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

เอกสารนี้เรียกข้อกำหนดเฉพาะของบลูทูธหลัก 5.2 ว่า "ข้อกำหนด" คุณสามารถดูข้อกำหนดของ Bluetooth Core 5.2 ได้ใน เว็บไซต์ Bluetooth SIG พร้อมกับเอกสารอื่นๆ ที่ใช้ร่วมกัน

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

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

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

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

รองรับมาตรฐานแบบเปิด

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

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

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

ช่องคำสั่ง OpCode (OCF): 0x153

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

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

สงวนไว้สําหรับเวอร์ชันหลังจาก v0.98
เราจะเลิกใช้งานพารามิเตอร์นี้ในข้อกําหนดฟีเจอร์ของ Google เวอร์ชัน 0.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.04
byte[0] = 0x01
byte[1] = 0x04
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 เวอร์ชัน 0.98 ขึ้นไปเพื่อสนับสนุนฟีเจอร์ด้านความเป็นส่วนตัวที่มีอยู่ในข้อกําหนดของ BT เวอร์ชัน 4.2 ขึ้นไป
A2DP_source_offload_capability_mask 4 อ็อกเต็ต หน้ากากบิตสำหรับประเภทตัวแปลงรหัสที่รองรับ
บิต 0 - SBC
บิต 1 - AAC
บิต 2 - APTX
บิต 3 - APTX HD
บิต 4 - LDAC
บิต 5-31 สงวนไว้
bluetooth_quality_report_support 1 อ็อกเท็ต รองรับการรายงานเหตุการณ์เกี่ยวกับคุณภาพของบลูทูธ
0 = ไม่รองรับ
1 = รองรับ
dynamic_audio_buffer_support 4 อ็อกเท็ต รองรับบัฟเฟอร์เสียงแบบไดนามิกในคอนโทรลเลอร์บลูทูธ
หน้ากากบิตสำหรับประเภทตัวแปลงรหัสที่รองรับ
บิต 0 - SBC
บิต 1 - AAC
บิต 2 - APTX
บิต 3 - APTX HD
บิต 4 - LDAC
บิต 5-31 สงวนไว้
a2dp_offload_v2_support 1 อ็อกเท็ต รองรับคำสั่งการลดภาระ A2DP v2 ในคอนโทรลเลอร์บลูทูธ (ดูเริ่มการลดภาระ A2DP, หยุดการลดภาระ A2DP)
0 = ไม่รองรับ
1 = รองรับ

ผลการสแกนแบบเป็นกลุ่ม

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

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

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

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

  • ตัด มีองค์ประกอบข้อมูลต่อไปนี้ {MAC, TX Power, RSSI, Timestamp}
  • เต็ม มีองค์ประกอบข้อมูลต่อไปนี้ {MAC, TX Power, RSSI, การประทับเวลา, ข้อมูลโฆษณา, การตอบกลับการสแกน}

LE_Batch_Scan_Command

OCF: 0x156

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

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

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

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

OCF ย่อย: 0x01

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

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

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 ที่เจาะจงผู้ให้บริการ (เหตุการณ์ย่อยการละเมิดเกณฑ์พื้นที่เก็บข้อมูล)

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

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

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 เพียงรายการเดียวสำหรับแต่ละช่วงเวลาการสแกน ระเบียนที่จะเก็บสำหรับโหมดตัดข้อมูลมีดังนี้ {BD_ADDR, กำลังส่งสัญญาณ, RSSI, การประทับเวลา}

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_Batch_Scan_Command: อ่านคำสั่งย่อยของผลการสแกนแบบเป็นกลุ่ม

OCF ย่อย: 0x04

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

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

การอ้างอิงเวลาของอุปกรณ์ควบคุมและโฮสต์ไม่ซิงค์กัน หน่วยของการประทับเวลาคือ 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
[หลายระเบียน (num_of_records) ในรูปแบบข้างต้น]

โหมดเต็มรูปแบบ:
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
[หลายระเบียนในรูปแบบข้างต้น (num_of_records)]

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

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

LE_APCF_Command

OCF: 0x157

พารามิเตอร์คําสั่ง ขนาด วัตถุประสงค์
APCF_opcode 1 อ็อกเท็ต 0x00 - APCF Enable
0x01 - APCF Set Filtering parameters
0x02 - APCF Broadcaster Address
0x03 - APCF Service UUID
0x04 - APCF Service Solicitation UUID
0x05 - APCF Local Name
0x06 - APCF Manufacturer Data
0x07 - APCF Service Data
0x08 - APCF Transport Discovery Service
0x09 - APCF AD Type Filter
0x10 ~ 0xAF - Reserved for future use
0xB0 ~ 0xDF - Reserved for vendor
0xE0 ~ 0xFE - Reserved for future use
0xFF - APCF Read extended Features

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะการคืนสินค้า
APCF_opcode 1 อ็อกเท็ต 0x00 - APCF Enable
0x01 - APCF Set Filtering parameters
0x02 - APCF Broadcaster Address
0x03 - APCF Service UUID
0x04 - APCF Service Solicitation UUID
0x05 - APCF Local Name
0x06 - APCF Manufacturer Data
0x07 - APCF Service Data
0x08 - APCF Transport Discovery Service
0x09 - APCF AD Type Filter
0x10 ~ 0xAF - Reserved for future use
0xB0 ~ 0xDF - Reserved for vendor
0xE0 ~ 0xFE - Reserved for future use
0xFF - APCF Read extended Features

LE_APCF_Command: Enable_sub_cmd

OCF ย่อย: 0x00

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_APCF_Command: set_filtering_parameters_sub_cmd

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

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: ตั้งค่าเพื่อเปิดใช้การตรวจสอบบริการ Discovery ของขนส่ง
บิต 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
หมายเหตุ: ประเภทตรรกะจะเป็น "ไม่เกี่ยวข้อง" สำหรับช่อง 3 ช่องแรกของ APCF_Feature_Selection ซึ่งเป็นตรรกะ "AND" เสมอ ใช้ได้กับ (บิต 3 - บิต 6) 4 ช่องของ APCF_Feature_Selection เท่านั้น
rssi_high_thresh 1 อ็อกเท็ต [in 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
[in 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 ในแง่ที่ว่าค่า OnLost จะแสดงหลังจาก OnFound เมื่อสูญหาย

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

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

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

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
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

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

OCF ย่อย: 0x02

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_APCF_Command: service_uuid_sub_cmd

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

OCF ย่อย: 0x03

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
การลบจะลบที่อยู่ UUID ของบริการที่ระบุในตัวกรองที่ระบุ
ล้างจะเป็นการล้าง 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.

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_APCF_Command: solicitation_uuid_sub_cmd

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

OCF ย่อย: 0x04

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
การลบจะเป็นการลบที่อยู่ UUID ของคำขอในตัวกรองที่ระบุ
ล้างจะเป็นการล้าง 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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_APCF_Command: local_name_sub_cmd

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

OCF ย่อย: 0x05

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_APCF_Command: manf_data_sub_cmd

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

OCF ย่อย: 0x06

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_APCF_Command: service_data_sub_cmd

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

OCF ย่อย: 0x07

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
การลบจะลบสตริงข้อมูลบริการที่ระบุในตัวกรองที่ระบุ
ล้างจะเป็นการล้างสตริงข้อมูลบริการทั้งหมดในตัวกรองที่ระบุ
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.

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_APCF_Command: ad_type_sub_cmd

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

OCF ย่อย: 0x09

พารามิเตอร์คำสั่งย่อย ขนาด วัตถุประสงค์
APCF_Action 1 อ็อกเท็ต 0x00 - เพิ่ม
0x01 - ลบ
0x02 - ล้าง
การลบจะลบประเภทโฆษณาที่ระบุในตัวกรองที่ระบุ
ล้างจะเป็นการล้างโฆษณาทุกประเภทในตัวกรองที่ระบุ
APCF_Filter_Index 1 อ็อกเท็ต ดัชนีตัวกรอง (0, max_filter-1)
APCF_AD_TYPE 1 อ็อกเท็ต ประเภท AD สำหรับเพิ่มหรือลบจากรายการ ละเว้นเมื่อ 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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_APCF_Command: read_extended_features_sub_cmd

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

OCF ย่อย: 0xFF

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะ "ดำเนินการเสร็จสิ้น"
APCF_opcode 1 อ็อกเท็ต 0xFF - APCF_Read_Extended_Features
APCF_extended_features 2 อ็อกเท็ต

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

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

ค่าของบิต

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

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

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

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

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

  • ไม่มีการใช้งาน: [การสแกนหน้าเว็บ โฆษณา LE การสแกนคําถาม การสแกน LE]
  • การสแกน: [การเรียกหา/การสอบถาม/พยายามเชื่อมต่อ]
  • ทำงานอยู่: [ACL link on, SCO link ongoing, sniff mode]

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

LE_Get_Controller_Activity_Energy_Info

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

OCF: 0x159

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
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)

OCF: 0x15A

พารามิเตอร์คําสั่ง ขนาด วัตถุประสงค์
LE_Ex_Scan_Type 1 อ็อกเท็ต 0x00 - การสแกนแบบไม่โต้ตอบ ระบบจะไม่ส่งแพ็กเก็ต SCAN_REQ (ค่าเริ่มต้น)
0x01 - การสแกนอยู่ ระบบอาจส่งแพ็กเก็ต SCAN_REQ
LE_Ex_Scan_Interval 4 อ็อกเท็ต หมายถึงช่วงเวลาตั้งแต่ที่ตัวควบคุมเริ่มการสแกน LE ครั้งล่าสุดจนกว่าจะเริ่มการสแกน LE ครั้งถัดไป
ช่วง: 0x0004 ถึง 0x00FFFFFF
ค่าเริ่มต้น: 0x0010 (10 ms)
เวลา = N * 0.625 ms
ช่วงเวลา: 2.5 ms ถึง 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 - ละเว้นแพ็กเก็ตโฆษณาจากอุปกรณ์ที่ไม่ได้อยู่ในรายการที่อนุญาตพิเศษเท่านั้น ระบบจะไม่สนใจแพ็กเก็ตโฆษณาที่กําหนดเป้าหมายซึ่งไม่ได้จ่าหน้าถึงอุปกรณ์นี้

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะ "ดำเนินการเสร็จสิ้น"

คำสั่งรับข้อมูลการแก้ไขข้อบกพร่องของคอนโทรลเลอร์

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

OCF: 0x15B

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
Status 1 อ็อกเท็ต สถานะ "ดำเนินการเสร็จสิ้น"

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

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

OCF: 0x15D

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

OCF ย่อย: 0x01

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

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

อ็อกเต็ต 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 อ็อกเท็ต ตัวแฮนเดิลการเชื่อมต่อของการเชื่อมต่อ A2DP ที่กำลังกําหนดค่า
L2CAP_Channel_ID 2 อ็อกเท็ต รหัสช่อง L2CAP ที่จะใช้สำหรับการเชื่อมต่อ A2DP นี้
L2CAP_MTU_Size 2 อ็อกเท็ต ขนาดสูงสุดของ MTU ของ L2CAP ที่มีแพ็กเก็ตเสียงที่เข้ารหัส
Codec_Information 32 อ็อกเต็ต ข้อมูลเฉพาะของโค้ด

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

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

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

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

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

อ็อกเต็ต 0-3: รหัสผู้ให้บริการ
0x0000012D

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

อ็อกเต็ต 6: ดัชนีอัตราบิต:
0x00 - สูง
0x01 - ปานกลาง
0x02 - ต่ำ
0x03 - 0x7E - สงวน
0x7F - ABR (อัตราบิตแบบปรับอัตโนมัติ)
0x80 - 0xFF - สงวน

อ็อกเต็ต 7: โหมดช่อง LDAC
0x01 - ส stereo
0x02 - Dual
0x04 - Mono
อื่นๆ สงวนไว้

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

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

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

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 อ็อกเต็ต พารามิเตอร์เฉพาะของผู้ให้บริการที่ HAL เสียงบลูทูธระบุ CodecParameters.vendorSpecificParameters[]

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

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

OCF ย่อย: 0x02

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

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

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

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)

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

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

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

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

OCF: 0x15E

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

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

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

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

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

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

หน่วย: ms
ค่าเริ่มต้น: 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
เฟิร์มแวร์ของคอนโทรลเลอร์ต้องไม่รายงานเหตุการณ์ถัดไปภายในช่วงเวลาที่กําหนด การตั้งค่าช่วงเวลามีไว้สำหรับเหตุการณ์คุณภาพที่เพิ่มโดยเฉพาะ

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
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-14: สงวนไว้
บิต 15: เปิดใช้การรายงานเหตุการณ์คุณภาพเฉพาะผู้ให้บริการ
บิต 16: เปิดใช้การติดตามข้อความ LMP/LL
บิต 17: เปิดใช้การติดตามการกำหนดเวลาหลายลิงก์/Coex ของบลูทูธ
บิต 18: เปิดใช้กลไกข้อมูลการแก้ไขข้อบกพร่องของตัวควบคุม
บิตที่ 19-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

ดูความสามารถของเวลาในการบัฟเฟอร์เสียง

OCF ย่อย: 0x01

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
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 อ็อกเท็ต เวลาบัฟเฟอร์เริ่มต้นของตัวแปลงรหัสบิต 0 ที่ระบุไว้ใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 0
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 อ็อกเท็ต เวลาบัฟเฟอร์สูงสุดของตัวแปลงรหัสบิต 0 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 0
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 อ็อกเท็ต เวลาบัฟเฟอร์ขั้นต่ำของตัวแปลงรหัสบิต 0 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 0
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 อ็อกเท็ต เวลาบัฟเฟอร์เริ่มต้นของตัวแปลงรหัสบิต 1 ที่ระบุไว้ใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 1
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 อ็อกเท็ต เวลาบัฟเฟอร์สูงสุดของตัวแปลงรหัสบิต 1 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 1
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 อ็อกเท็ต เวลาบัฟเฟอร์ขั้นต่ำของตัวแปลงรหัสบิต 1 ที่ระบุไว้ใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 1
หน่วย: มิลลิวินาที
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 อ็อกเท็ต เวลาบัฟเฟอร์เริ่มต้นของตัวแปลงรหัสบิต 31 ที่ระบุไว้ใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 31
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 อ็อกเท็ต เวลาบัฟเฟอร์สูงสุดของตัวแปลงรหัสบิต 31 ที่ระบุใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 31
หน่วย: มิลลิวินาที
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 อ็อกเท็ต เวลาบัฟเฟอร์ขั้นต่ำของประเภทตัวแปลงรหัสบิต 31 ที่ระบุไว้ใน Audio_Codec_Type_Supported
ค่านี้จะเท่ากับ 0 หากระบบไม่รองรับประเภทตัวแปลงรหัสบิต 31
หน่วย: มิลลิวินาที

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

OCF ย่อย: 0x02

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0x01: การรายงานคุณภาพในโหมดการตรวจสอบ
0x02: กำลังเข้าใกล้ LSTO
0x03: เสียง A2DP กระตุก
0x04: (e)SCO Voice Choppy.
0x05 ~ 0x06: สงวนไว้
0x07: เสียง LE กระตุก
0x08: เชื่อมต่อไม่สำเร็จ
0x09 ~ 0xFF: สงวนไว้
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
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: สงวน
0x51: แพ็กเก็ต ISO
0x52 ~ 0xFF: สงวน
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 อ็อกเท็ต [in 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 สำหรับ Connection_Handle ที่ระบุ
ค่านี้ควรเหมือนกับการตอบสนองของคอนโทรลเลอร์ต่อคำสั่ง HCI_Read_Clock HCI ที่มีพารามิเตอร์ "Which_Clock" เท่ากับ 0x01 (นาฬิกา Piconet)
หน่วย: N * 0.3125 ms (นาฬิกาบลูทูธ 1 ตัว)
Retransmission_Count 4 อ็อกเท็ต จํานวนการส่งอีกครั้งนับตั้งแต่เหตุการณ์ครั้งล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังผู้จัดการประชุม
No_RX_Count 4 อ็อกเท็ต ไม่มีจํานวน RX นับตั้งแต่เหตุการณ์ล่าสุด
จำนวนจะเพิ่มขึ้นเมื่อไม่ได้รับแพ็กเก็ตตามช่วงเวลาที่กําหนดหรือแพ็กเก็ตที่ได้รับเสียหาย
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังผู้จัดการประชุม
NAK_Count 4 อ็อกเท็ต จํานวน NAK (Negative Acknowledge) นับตั้งแต่เหตุการณ์ล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังผู้จัดการประชุม
Last_TX_ACK_Timestamp 4 อ็อกเท็ต การประทับเวลาของ TX ACK ล่าสุด โดยอิงตามนาฬิกาบลูทูธของพีโคเน็ตส่วนกลาง (CLK)
หน่วย: N * 0.3125 ms (นาฬิกาบลูทูธ 1 ตัว)
Flow_Off_Count 4 อ็อกเท็ต จํานวนครั้งที่ตัวควบคุมได้รับสัญญาณปิดการไหล (หยุด) นับตั้งแต่เหตุการณ์ล่าสุด
ระบบจะรีเซ็ตจำนวนนี้หลังจากรายงานไปยังผู้จัดการประชุม
Last_Flow_On_Timestamp 4 อ็อกเท็ต การประทับเวลาของ Flow-on (GO) ครั้งล่าสุด โดยอิงตามนาฬิกาบลูทูธของ Piconet Central (CLK)
หน่วย: N * 0.3125 ms (นาฬิกาบลูทูธ 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 และ LSTO ที่กําลังจะมาถึง)
บิต 1 - WL 2G Radio Active: ตั้งค่าเพื่อระบุว่าวิทยุ WLAN 2G ทำงานอยู่
บิต 2 - WL 2G Connected: ตั้งค่าเพื่อระบุว่าวิทยุ 2G ของ WLAN เปิดใช้งานและเชื่อมต่ออยู่
บิต 3 - WL 5G/6G Radio Active: ตั้งค่าเพื่อระบุว่าวิทยุ WLAN 5G/6G เปิดใช้งานอยู่
บิต 4-15 - สงวนไว้
พารามิเตอร์เฉพาะผู้ให้บริการ (ความยาวรวมของพารามิเตอร์ - TBD) * อ็อกเต็ต เพื่อให้ผู้ให้บริการอุปกรณ์ควบคุมได้รับพารามิเตอร์เฉพาะของผู้ให้บริการเพิ่มเติม

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

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

พารามิเตอร์ 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: เกิดข้อผิดพลาดเกี่ยวกับตัวควบคุม ดูรายการรหัสข้อผิดพลาดและคําอธิบายได้ที่ข้อกำหนด Bluetooth [เล่ม 2] ส่วน D
Vendor_Specific_Error_Code 1 อ็อกเท็ต 0x00: ไม่มีรหัสข้อผิดพลาดที่เฉพาะเจาะจงของผู้ให้บริการชิปเซ็ต
0x01 ~ 0xFF: รหัสข้อผิดพลาดเฉพาะของผู้ให้บริการชิปเซ็ต
พารามิเตอร์เฉพาะผู้ให้บริการ (ความยาวทั้งหมดของพารามิเตอร์ - 4) * อ็อกเต็ต เพื่อให้ผู้ให้บริการอุปกรณ์ควบคุมได้รับพารามิเตอร์เฉพาะของผู้ให้บริการเพิ่มเติม
พารามิเตอร์เหตุการณ์ย่อย ขนาด วัตถุประสงค์
Quality_Report_Id 1 อ็อกเท็ต 0x00 ~ 0x10: สงวนไว้
0x11: การติดตามข้อความ LMP/LL
0x12: การติดตามการกําหนดเวลาการลิงก์หลายรายการ/Coex ของบลูทูธ
0x13: ข้อมูลการแก้ไขข้อบกพร่องของคอนโทรลเลอร์
0x14 ~ 0xFF: สงวนไว้
Connection_Handle 2 อ็อกเท็ต แฮนเดิลการเชื่อมต่อ
พารามิเตอร์เฉพาะผู้ให้บริการ (ความยาวทั้งหมดของพารามิเตอร์ - 4) * อ็อกเต็ต รูปแบบเฉพาะของผู้จำหน่ายสำหรับการติดตามข้อความ LMP, การติดตามการจัดตารางเวลา Multi-link/Coex ของบลูทูธ และการถ่ายโอนข้อมูลการแก้ไขข้อบกพร่องของคอนโทรลเลอร์

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

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

  • ความสามารถในการรองรับโฆษณาหลายรายการ (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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
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

ข้อมูลอ้างอิงพื้นฐาน: ข้อมูลจำเพาะ Bluetooth Core 4.1 หน้า 964 (คําสั่งพารามิเตอร์การโฆษณา LE Set)

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 ของโฮสต์อาจออกคำสั่งให้เริ่มโฆษณาในอินสแตนซ์หลังการเชื่อมต่อ

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้ตามที่ระบุไว้ในข้อกําหนดเฉพาะของ Bluetooth Core 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

ข้อมูลอ้างอิงพื้นฐาน: ข้อมูลจำเพาะ Bluetooth Core 4.1 หน้า 969 (คำสั่งข้อมูลการโฆษณาสำหรับ LE)

OCF ย่อย: 0x02

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้ตามที่ระบุไว้ในข้อกําหนดเฉพาะของ Bluetooth Core 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)

OCF ย่อย: 0x03

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้ตามที่ระบุไว้ในข้อกําหนดเฉพาะของ Bluetooth Core 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)

OCF ย่อย: 0x04

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
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 ในข้อมูลจำเพาะหลักนั้น)

OCF: 0x05

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_RPA_offload: Enable_cust_specific_sub_Command

OCF ย่อย: 0x01

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

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_RPA_offload: Add_IRK_to_list_sub_Command

OCF ย่อย: 0x02

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_RPA_offload: Remove_IRK_to_list_sub_Command

OCF ย่อย: 0x03

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_RPA_offload: Clear_IRK_list_sub_Command

OCF ย่อย: 0x04

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

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

LE_RPA_offload: Read_IRK_list_sub_Command

OCF ย่อย: 0x05

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

ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้

พารามิเตอร์ผลลัพธ์ ขนาด วัตถุประสงค์
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 นี้