อินเทอร์เฟซตัวควบคุมโฮสต์ (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 |
ขนาดตัวแปร |
สตริงอักขระสำหรับชื่อท้องถิ่น หมายเหตุ:
|
ระบบจะสร้างเหตุการณ์ "คําสั่งเสร็จสมบูรณ์" สําหรับคําสั่งนี้
พารามิเตอร์ผลลัพธ์ | ขนาด | วัตถุประสงค์ |
---|---|---|
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 |
ขนาดตัวแปร |
สตริงอักขระสำหรับข้อมูลผู้ผลิต หมายเหตุ:
|
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 |
ขนาดตัวแปร |
สตริงอักขระสำหรับข้อมูลบริการ หมายเหตุ:
|
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 อ็อกเท็ต |
หน้ากากบิตสําหรับฟีเจอร์เพิ่มเติมที่รองรับ
ค่าของบิต
|
คำสั่งเกี่ยวกับกิจกรรมของตัวควบคุมและข้อมูลพลังงาน
วัตถุประสงค์ของข้อมูลนี้มีไว้สำหรับฟังก์ชันของระบบโฮสต์ในระดับที่สูงขึ้นเพื่อวิเคราะห์กิจกรรมทั้งหมดของคอมโพเนนต์ทั้งหมด ซึ่งรวมถึงตัวควบคุม 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
อ็อกเต็ต 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 ตัวแปลงรหัส AAC:
โปรดดูองค์ประกอบข้อมูลเฉพาะของตัวแปลงรหัส AAC ใน A2DP v1.3 ตัวแปลงรหัส LDAC:
อ็อกเต็ต 0-3: รหัสผู้ให้บริการ
อ็อกเท็ต 4-5: รหัสตัวแปลงรหัส
อ็อกเต็ต 6: ดัชนีอัตราบิต:
อ็อกเต็ต 7: โหมดช่อง LDAC อ็อกเต็ต 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 - เพิ่ม
การลบจะเป็นการล้างการรายงานเหตุการณ์ด้านคุณภาพที่เฉพาะเจาะจง |
BQR_Quality_Event_Mask |
4 อ็อกเท็ต |
มาสก์บิตสําหรับการรายงานเหตุการณ์ด้านคุณภาพที่เลือก
บิต 0: ตั้งค่าเพื่อเปิดใช้โหมดการตรวจสอบคุณภาพ |
BQR_Minimum_Report_Interval |
2 อ็อกเท็ต |
กําหนดช่วงเวลาขั้นต่ำของการรายงานเหตุการณ์คุณภาพสําหรับเหตุการณ์คุณภาพที่เลือก เฟิร์มแวร์ของคอนโทรลเลอร์ไม่ควรรายงานเหตุการณ์ถัดไปภายในช่วงเวลาที่กําหนด การตั้งค่าช่วงเวลาควรสอดคล้องกับและเฉพาะเจาะจงสำหรับเหตุการณ์คุณภาพที่เพิ่ม
หน่วย: ms |
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 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 ของบลูทูธ หรือตัวควบคุมแสดงข้อมูลการแก้ไขข้อบกพร่อง
รหัสเหตุการณ์ย่อย = 0x58 [Quality_Report_Id = 0x01 ~ 0x04, เหตุการณ์ที่เกี่ยวข้องกับคุณภาพของลิงก์]
พารามิเตอร์เหตุการณ์ย่อย | ขนาด | วัตถุประสงค์ |
---|---|---|
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 ที่ระบุ |
SNR |
1 อ็อกเท็ต |
[เป็น dB]
ค่าอัตราส่วนสัญญาณต่อสัญญาณรบกวน (SNR) สำหรับ Connection_Handle ที่ระบุ |
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) * อ็อกเต็ต | เพื่อให้ผู้ให้บริการอุปกรณ์ควบคุมได้รับพารามิเตอร์เฉพาะของผู้ให้บริการเพิ่มเติม |
รหัสเหตุการณ์ย่อย = 0x58 [Quality_Report_Id = 0x11 ~ 0x13, เหตุการณ์ที่เกี่ยวข้องกับการถ่ายโอนข้อมูลบันทึก]
พารามิเตอร์เหตุการณ์ย่อย | ขนาด | วัตถุประสงค์ |
---|---|---|
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 นี้ |