דרישות HCI

ממשק הבקר המארח (HCI) משמש לאינטראקציה עם בקר Bluetooth.

מסמך זה מספק רשימה של דרישות Bluetooth (BT) ו-Bluetooth Low Energy (BLE) HCI. המטרה היא שספקי מחסנית Host BT וספקי בקרי BT יתאימו לדרישות הפלטפורמה הללו כדי להשתמש בערכת התכונות המתוארת להלן.

מסמך זה מתייחס למפרט Bluetooth Core 5.2 כ"מפרט". מפרט Bluetooth Core 5.2 זמין באתר Bluetooth SIG יחד עם מסמכים מאומצים אחרים.

סקירת עיצוב כללית

יכולות ותצורה של שבבים

כפלטפורמה פתוחה, לאנדרואיד יש מטריצה ​​של מהדורות תוכנה, יצרני OEM, ספקים ויכולות פלטפורמה ושבב.

כדי לנהל את הנוף המשתנה ולנהל העברות, פילוסופיית עיצוב המאפשרת לבקרי BT לחשוף את היכולות שלהם (מעבר למפרט ה-Bluetooth Core 5.2 הסטנדרטי) מתוארת במסמך זה. מחסנית BT המארח יכולה לאחר מכן להשתמש ביכולות הללו כדי לקבוע אילו תכונות להפעיל.

תמיכה בסטנדרטים פתוחים

אחת המטרות של אנדרואיד היא לתמוך בסטנדרטים פתוחים לאחר אשרור במפרט Bluetooth. אם תכונה המתוארת להלן תהפוך לזמינה בשיטות HCI סטנדרטיות במפרט Bluetooth עתידי, אנו נשען על הפיכת גישה זו לברירת המחדל.

יכולות ספציפיות לספק

פקודה ספציפית לספק: LE_Get_Vendor_Capabilities_Command

שדה פקודת OpCode (OCF): 0x153

פרמטר פקודה גודל מַטָרָה
NA רשימת פרמטרי פקודה ריקה

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה
max_advt_instances
(הוצא משימוש)
1 אוקטט מספר מופעי פרסומת נתמכים.

שמור לאחר v0.98.
פרמטר זה הוצא משימוש במפרט Google feature v0.98 ומעלה לטובת LE Extended Advertising הזמין בגרסה 5.0 ומעלה של BT spec.
offloaded_resolution_of_private-address
(הוצא משימוש)
1 אוקטט יכולת שבב BT של RPA.
אם הוא נתמך על ידי שבב, הוא זקוק להפעלה על ידי המארח.
0 = לא מסוגל
1 = מסוגל

שמור לאחר v0.98.
פרמטר זה הוצא משימוש במפרט התכונה של Google v0.98 ומעלה לטובת תכונת הפרטיות הזמינה במפרט BT גרסה 4.2 ומעלה.
total_scan_results_storage 2 אוקטטים אחסון לתוצאות סריקה בבתים
max_irk_list_sz 1 אוקטט מספר ערכי IRK הנתמכים בקושחה
filtering_support 1 אוקטט תמיכה בסינון בבקר
0 = לא נתמך
1 = נתמך
max_filter 1 אוקטט מספר המסננים הנתמכים
activity_energy_info_support 1 אוקטט תומך בדיווח של מידע על פעילות ואנרגיה
0 = לא מסוגל
1 = מסוגל
version_supported 2 אוקטטים מציין את הגרסה של מפרט התכונה של Google הנתמך
byte[0] = מספר עיקרי
byte[1] = מספר קטן

v1.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 v0.98 ומעלה לטובת תכונת הפרטיות הזמינה במפרט BT גרסה 4.2 ומעלה.
A2DP_source_offload_capability_mask 4 אוקטטים נתמכות מסכות סיביות עבור סוגי codec
ביט 0 - SBC
ביט 1 - AAC
ביט 2 - APTX
ביט 3 - APTX HD
ביט 4 - LDAC
סיביות 5-31 שמורות
bluetooth_quality_report_support 1 אוקטט תומך בדיווח על אירועים באיכות Bluetooth
0 = לא מסוגל
1 = מסוגל
dynamic_audio_buffer_support 4 אוקטטים תומך במאגר שמע דינמי בבקר ה-Bluetooth
נתמכות מסכות סיביות עבור סוגי codec
ביט 0 - SBC
ביט 1 - AAC
ביט 2 - APTX
ביט 3 - APTX HD
ביט 4 - LDAC
סיביות 5-31 שמורות
a2dp_offload_v2_support 1 אוקטט תומך בפקודות A2dp Offload v2 בבקר ה-Bluetooth (ראה התחלת A2DP Offload , Stop Offload A2DP )
0 = לא נתמך
1 = נתמך

אצווה של תוצאות סריקה

מטרת עיצוב היא לשפר את האופן שבו הודעות על אירועי Bluetooth LE Scan Response מועברות למארח, על מנת לחסוך בחשמל במארח.

על ידי צמצום התדירות שבה הבקר מודיע למעבד היישום המארח לסרוק תוצאות, מעבד היישום המארח יכול להישאר במצב סרק/שינה זמן רב יותר. זה מפחית את צריכת החשמל במארח. פרמטר ההחזר total_scan_results_storage של LE_Get_Vendor_Capabilities_Command מציין את יכולת השבב לאחסון תוצאות הסריקה.

תכונה זו מתמקדת בניהול ותצורה של מתקן האחסון LE Scan Results בבקר ה-Bluetooth. האחסון משמש לצוות זמני של נתוני פרסומת ולסריקת נתונים ומטא נתונים המתקבלים על ידי הבקר לצורך מסירה מאוחרת יותר למארח.

הקושחה תתמוך בשני סוגים של אצווה, שניתן להפעיל בו זמנית:

  • קטוע. מכיל את רכיבי המידע הבאים: {MAC, TX Power, RSSI, Timestamp}
  • מלא. מכיל את רכיבי המידע הבאים: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}

LE_Batch_Scan_Command

OCF: 0x156

פרמטר פקודה גודל מַטָרָה
Batch_Scan_opcode 1 אוקטט 0x1 - אפשר תכונה ספציפית ללקוח
0x2 - הגדר פרמטרים של אחסון סריקת אצווה
0x3 - הגדר פרמטרים של סריקת אצווה
0x4 - קרא את הפרמטרים של תוצאות סריקת אצווה

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו. הפעלת התכונה הספציפית ללקוח אינה מתחילה את הסריקה.

פרמטר החזרה גודל מַטָרָה
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: הגדר את פקודת המשנה של אצווה סריקת אחסון Param

תת 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: הגדר את פקודת המשנה של Param Scan Batch

תת 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 , Tx Power, RSSI, Timestamp}

כאשר מצב מלא מופעל, ייעשה שימוש בסריקה פעילה ותגובות סריקה יתועדו. המפתח הייחודי בסגנון מלא = {MAC, Ad packet}, ללא קשר למרווח הסריקה. הרשומה שיש לשמור במצב מלא היא { BD_ADDR , Tx Power, RSSI, חותמת זמן, חבילת מודעה, תגובת סריקה}. בסגנון מלא, אותה חבילת AD, כאשר היא נראית מספר פעמים על פני מרווחי סריקה שונים, מוקלטת פעם אחת בלבד. עם זאת, במצב Truncated, החשיפה של BA_ADDR על פני מרווחי סריקה שונים היא שמעניינת (פעם אחת בכל מרווח סריקה). ה-RSSI הוא הערך הממוצע של כל הכפילויות של פרסומת ייחודית בתוך מרווח סריקה.

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה
Batch_scan_opcode 1 אוקטט 0x03 [הגדר פרמטרים של סריקה אצווה]

LE_Batch_Scan_Command: פקודת המשנה של תוצאות סריקה אצווה

תת OCF: 0x04

פרמטר פקודה משנה גודל מַטָרָה
Batch_Scan_Data_read 1 אוקטט 0x01 - נתוני מצב קצוץ
0x02 - נתוני מצב מלא

יווצר אירוע הפקודה עבור פקודה זו. כאשר המארח מנפיק פקודה זו, ייתכן שכל התוצאות בבקר לא יתאימו לאירוע אחד של Command Complete. המארח יחזור על הנפקת פקודה זו עד שהתוצאות המתאימות באירוע השלמת הפקודה יצביעו על 0 במספר הרשומות, מה שמציין שלבקר אין יותר רשומות לתקשר עם המארח. כל אירוע Command Complete יכול להכיל מספר רשומות של סוג אחד בלבד של נתונים (מלא או קטוע).

הפניות לזמן הבקר והמארח אינן מסונכרנות. היחידה של חותמת הזמן היא 50ms. הערך של חותמת הזמן מבוסס על כאשר ה- 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 מִשְׁתַנֶה מצב קטוע:
כתובת[0]: 6 אוקטטים
Address_Type[0]: 1 אוקטט
Tx_Pwr[0]: 1 אוקטט
RSSI[0] : 1 אוקטט
חותמת זמן[0]: 2 אוקטטים
[רשומות מרובות ( num_of_records ) עם הפורמט שלמעלה]

מצב מלא:
כתובת[0]: 6 אוקטטים
Address_Type[0]: 1 אוקטט
Tx_Pwr[0]: 1 אוקטט
RSSI[0]: 1 אוקטט
חותמת זמן[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
[רשומות מרובות בפורמט לעיל ( num_of_records )]

מסנן תוכן מנות פרסום

השתמש בזה כדי להפעיל/להשבית/להגדיר את מסנן התוכן של מנות הפרסום (APCF) בבקר. APCF מסנן דוחות פרסום בבקר אך אינו מסנן פרסום תקופתי.

LE_APCF_פקודה

OCF: 0x157

פרמטר פקודה גודל מַטָרָה
APCF_opcode 1 אוקטט 0x00 - הפעלה של APCF
0x01 - APCF הגדר פרמטרים של סינון
0x02 - כתובת APCF Broadcaster
0x03 - APCF Service UUID
0x04 - APCF Service Solicitation UUID
0x05 - שם מקומי של APCF
0x06 - נתוני יצרן APCF
0x07 - נתוני שירות APCF
0x08 - שירות גילוי תחבורה של APCF
0x09 - מסנן מסוג APCF AD
0x10 ~ 0xAF - שמור לשימוש עתידי
0xB0 ~ 0xDF - שמור לספק
0xE0 ~ 0xFE - שמור לשימוש עתידי
0xFF - APCF קריאת תכונות מורחבות

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט סטטוס החזרה
APCF_opcode 1 אוקטט 0x00 - הפעלה של APCF
0x01 - APCF הגדר פרמטרים של סינון
0x02 - כתובת APCF Broadcaster
0x03 - APCF Service UUID
0x04 - APCF Service Solicitation UUID
0x05 - שם מקומי של APCF
0x06 - נתוני יצרן APCF
0x07 - נתוני שירות APCF
0x08 - שירות גילוי תחבורה של APCF
0x09 - מסנן מסוג APCF AD
0x10 ~ 0xAF - שמור לשימוש עתידי
0xB0 ~ 0xDF - שמור לספק
0xE0 ~ 0xFE - שמור לשימוש עתידי
0xFF - APCF קריאת תכונות מורחבות

LE_APCF_Command: Enable_sub_cmd

תת OCF: 0x00

פרמטר פקודה משנה גודל מַטָרָה
APCF_enable 1 אוקטט 0x01 - אפשר תכונת APCF
0x00 - השבת את תכונת APCF

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה
APCF_opcode 1 אוקטט 0x0 - APCF Enable
APCF_Enable 1 אוקטט Enable/disable מוגדר באמצעות APCF_enable

LE_APCF_Command: set_filtering_parameters_sub_cmd

פקודה משנה זו משמשת להוספה או מחיקה של מפרט מסנן או ניקוי רשימת סינון עבור סינון על-שבב.

תת OCF: 0x01

פרמטר פקודה משנה גודל מַטָרָה
APCF_Action 1 אוקטט 0x00 - הוסף
0x01 - מחק
0x02 - נקה
מחיקה תנקה את המסנן הספציפי יחד עם ערכי תכונה משויכים בטבלאות אחרות.
Clear ינקה את כל המסננים והערכים המשויכים בטבלאות אחרות.
APCF_Filter_Index 1 אוקטט אינדקס מסנן (0, max_filter-1 )
APCF_Feature_Selection 2 אוקטטים מסכות סיביות עבור התכונות שנבחרו:
סיביות 0: הגדר להפעלת מסנן כתובת שידור
סיביות 1: הגדר להפעלת מסנן שינוי נתוני שירות
סיביות 2: הגדר לאפשר בדיקת UUID של שירות
סיביות 3: הגדר לאפשר בדיקת UUID של שידול שירות
סיביות 4: הגדר לאפשר בדיקת שמות מקומיים
סיביות 5: הגדר לאפשר בדיקת נתוני יצרן
סיביות 6: הגדר לאפשר בדיקת נתוני שירות
סיביות 7: הגדר לאפשר בדיקת שירות גילוי תחבורה
סיביות 8: הגדר לאפשר בדיקת סוג AD
APCF_List_Logic_Type 2 אוקטטים פעולה לוגית עבור כל בחירת תכונה (מיקום לכל סיביות) שצוינה ב- APCF_Feature_Selection .
תקף רק כאשר תכונה מופעלת.
ערך מיקום ביט:
0: או
1: ו
אם לוגיקה "AND" נבחרה, חבילת ADV תעבור את המסנן רק אם היא מכילה את כל הערכים ברשימה.
אם לוגיקה "OR" נבחרה, חבילת ADV תעבור את המסנן אם היא מכילה אחד מהערכים ברשימה.
APCF_Filter_Logic_Type 1 אוקטט 0x00: או
0x01: AND
הערה: סוג הלוגיקה אינו רלוונטי עבור שלושת השדות הראשונים של APCF_Feature_Selection , שהוא תמיד לוגיקה "AND". הם ישימים רק עבור (Bit 3 - Bit 6) ארבעה שדות של APCF_Feature_Selection .
rssi_high_thresh 1 אוקטט [ב-dBm]
המפרסם נחשב לראות רק אם האות גבוה מהסף הגבוה של RSSI. אחרת, הקושחה חייבת להתנהג כאילו היא מעולם לא ראתה אותה.
delivery_mode 1 אוקטט 0x00 - immediate
0x01 - on_found
0x02 - batched
onfound_timeout 2 אוקטטים תקף רק אם_מצב delivery_mode on_found .
[במילישניות]
הגיע הזמן שהקושחה תתעכב ולאסוף פרסומות נוספות לפני הדיווח.
onfound_timeout_cnt 1 אוקטט תקף רק אם_מצב delivery_mode on_found .
[לספור]
אם פרסומת ב- onFound מתעכבת בקושחה במשך משך onfound_timeout , היא תאסוף כמה פרסומות והספירה נבדקת. אם הספירה עולה על onfound_timeout_cnt , היא מדווחת OnFound מיד לאחר מכן.
rssi_low_thresh 1 אוקטט תקף רק אם_מצב delivery_mode on_found .
[ב-dBm]
חבילת המפרסם נחשבת כלא נראית אם ה-RSSI של החבילה שהתקבלה אינו מעל הסף הנמוך של RSSI.
onlost_timeout 2 אוקטטים תקף רק אם_מצב delivery_mode on_found .
[במילישניות]
אם פרסומת, לאחר שנמצאה, לא נראית ברציפות במשך תקופת lost_timeout , היא תדווח מיד כאבדה.
num_of_tracking_entries 2 אוקטטים תקף רק אם_מצב delivery_mode on_found .
[לספור]
המספר הכולל של מפרסמים למעקב לכל מסנן.

ערכי RSSI חייבים להשתמש בהשלמה של 2 כדי לייצג ערכים שליליים.

המארח יוכל להגדיר מסננים מרובים עם APCF_Application_Address_type מוגדר ל-0x02 (עבור כל כתובות השדרנים) כדי לנהל שילובי מסננים שונים.

סינון, אצווה ודיווח הם מושגים הקשורים זה בזה. כל פרסומת ותגובת סריקה קשורה יצטרכו לעבור את כל המסננים, בזה אחר זה. לפיכך, הפעולות המתקבלות ( delivery_mode ) קשורות קשר הדוק לסינון. מצבי המסירה הם הבאים: report_immediately , batch ו- onFound . ערך OnLost קשור ל- OnFound במובן זה שהוא יבוא אחרי OnFound כשיאבד.

זרימת עיבוד זו מתארת ​​את המודל הרעיוני:

כאשר מתקבלת מסגרת פרסומת (או תגובת סריקה), היא מוחלת על כל המסננים בסדר סדרתי. יתכן כי פרסומת יכולה לגרום לדיווח מיידי על סמך מסנן אחד ואצווה של אותו מסנן עקב פעולת סינון שונה.

ספי רמת RSSI (גבוהים ונמוכים) נותנים את היכולת לשלוט מתי המסגרת גלויה לעיבוד מסנן, גם כאשר מתקבלת מנה חוקית על ידי הבקר. במקרה של הגדרה של מצב מסירה למיידי או באצווה, ה-RSSI של מסגרת נחשב לעיבוד נוסף של הבקר. אפליקציות שונות זקוקות להתנהגות דיווח ואצווה שונה. זה מאפשר לאפליקציות מרובות לקבל דיווח ישיר ו/או אצווה של תוצאות בקושחה, במקביל. דוגמה לכך היא מקרה שבו סריקה אצווה פעילה מאפליקציה אחת ובהמשך מונפקת סריקת LE רגילה על ידי אפליקציה אחרת. לפני הוצאת סריקה אצווה, המסגרת/אפליקציה מגדירה מסננים מתאימים. מאוחר יותר, כאשר האפליקציה השנייה מנפיקה סריקה רגילה, האצווה הקודמת נמשכת. עם זאת, בשל הסריקה הרגילה, זה דומה להוספת מסנן null (יחד עם כל המסננים הקיימים) מבחינה רעיונית יחד עם פקודת LE scan. פרמטרי פקודת LE scan מקבלים עדיפות כאשר הם פעילים. כאשר סריקת LE הרגילה מושבתת, הבקר יחזור לסריקה אצווה קודמת, אם היא קיימת.

מצב המסירה OnFound מבוסס על מסננים מוגדרים. שילוב שמפעיל פעולת מסנן כדי להצליח נחשב לישות שיש לעקוב אחריה עבור onLost . האירוע המתאים הוא תת-אירוע המעקב של LE Advt.

המעבר OnFound/OnLost עבור מסנן (אם מופעל) ייראה כך:

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה
APCF_opcode 1 אוקטט 0x01 - APCF הגדר פרמטרי סינון
APCF_Action 1 אוקטט אקו חזרה של הפקודה APCF_Action
APCF_AvailableSpaces 1 אוקטט מספר הערכים הזמינים בטבלת המסננים

LE_APCF_Command: broadcast_address_sub_cmd

פקודה משנה זו משמשת להוספה או מחיקה של כתובת מפרסם או לניקוי רשימת כתובות המפרסם לצורך סינון על-שבב.

תת OCF: 0x02

פרמטר פקודה משנה גודל מַטָרָה
APCF_Action 1 אוקטט 0x00 - הוסף
0x01 - מחק
0x02 - נקה
Delete תמחק את כתובת השדר שצוינה במסנן שצוין.
Clear ינקה את כל כתובות השדרים במסנן שצוין.
APCF_Filter_Index 1 אוקטט אינדקס מסנן (0, max_filter-1 )
APCF_Broadcaster_Address 6 אוקטט כתובת מכשיר של 6 בתים להוספה או מחיקה מרשימת הכתובות של השדרן
APCF_Application_Address_type 1 אוקטט 0x00: ציבורי
0x01: אקראי
0x02: NA (סוג הכתובות אינו רלוונטי)

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה
APCF_opcode 1 אוקטט 0x02 - כתובת APCF Broadcaster
APCF_Action 1 אוקטט אקו חזרה של הפקודה APCF_Action
APCF_AvailableSpaces 1 אוקטט מספר הכניסות החינמיות שעדיין זמינות בטבלת כתובות השידור

LE_APCF_Command: service_uuid_sub_cmd

פקודה משנה זו משמשת להוספה או מחיקה של שירות UUID או לניקוי רשימת UUID של שירות עבור סינון על-שבב.

תת OCF: 0x03

פרמטר פקודה משנה גודל מַטָרָה
APCF_Action 1 אוקטט 0x00 - הוסף
0x01 - מחק
0x02 - נקה
Delete תמחק את כתובת UUID של השירות שצוינה במסנן שצוין.
Clear ינקה את כל מזהי ה-UUID של השירות במסנן שצוין.
APCF_Filter_Index 1 אוקטט אינדקס מסנן (0, max_filter -1)
APCF_UUID 2,4,16 אוקטט שירות UUID (16 סיביות, 32 סיביות או 128 סיביות) להוספה לרשימה או מחיקה ממנה.
APCF_UUID_MASK 2,4,16 אוקטט מסיכת השירות UUID (16 סיביות, 32 סיביות או 128 סיביות) להוספה לרשימה. זה צריך להיות באותו אורך כמו APCF_UUID.

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
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 - נקה
Delete תמחק את כתובת UUID של שידול במסנן שצוין.
Clear ינקה את כל ה-UUIDs של שידול במסנן שצוין.
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 - נקה
Delete תמחק את מחרוזת השם המקומית שצוינה במסנן שצוין.
Clear ינקה את כל מחרוזות השמות המקומיות במסנן שצוין.
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 - נקה
Delete תמחק את מחרוזת נתוני היצרן שצוינה במסנן שצוין.
Clear מנקה את כל מחרוזות נתוני היצרן במסנן שצוין.
APCF_Filter_Index 1 אוקטט אינדקס מסנן (0, max_filter -1)
APCF_LocName_Mandata_or_SerData גודל משתנה מחרוזת תווים עבור נתוני יצרן.

הערות:
  • נכון לעכשיו, המספר המרבי של תווים במחרוזת שם מקומית הוא 29
  • לא רלוונטי כאשר הפעולה היא "נקה" (0x2)
APCF_ManData_Mask גודל משתנה מסיכת נתוני הייצור להוספה לרשימה. זה צריך להיות באותו אורך כמו APCF_LocName_or_ManData_or_SerData .

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
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 - נקה
Delete תמחק את מחרוזת נתוני השירות שצוינה במסנן שצוין.
Clear ינקה את כל מחרוזות נתוני השירות במסנן שצוין.
APCF_Filter_Index 1 אוקטט אינדקס מסנן (0, max_filter -1)
APCF_LocName_Mandata_or_SerData גודל משתנה מחרוזת תווים עבור נתוני שירות.

הערות:
  • נכון לעכשיו, המספר המרבי של תווים במחרוזת שם מקומית הוא 29
  • לא רלוונטי כאשר הפעולה היא "נקה" (0x2)
APCF_LocName_Mandata_or_SerData_Mask גודל משתנה מסיכת נתוני השירות להוספה לרשימה. זה צריך להיות באותו אורך כמו APCF_LocName_or_ManData_or_SerData.

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
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 כדי לבדוק אם פקודה זו נתמכת או לא.

תת OCF: 0x09

פרמטר פקודה משנה גודל מַטָרָה
APCF_Action 1 אוקטט 0x00 - הוסף
0x01 - מחק
0x02 - נקה
Delete תמחק את סוג AD שצוין במסנן שצוין.
Clear ינקה את כל סוגי AD במסנן שצוין.
APCF_Filter_Index 1 אוקטט אינדקס מסנן (0, max_filter -1)
APCF_AD_TYPE 1 אוקטט סוג המודעה להוספה לרשימה או מחיקה ממנה. התעלם כאשר APCF_Action הוא 0x02 (נקה)
APCF_AD_DATA_Length גודל משתנה 0x00 - פירושו לא לסנן תוכן נתונים
התעלם כאשר APCF_Action הוא 0x02 (נקה)
APCF_AD_DATA גודל משתנה התעלם כאשר APCF_Action הוא 0x02 (נקה)
APCF_AD_DATA_MASK גודל משתנה התעלם כאשר APCF_Action הוא 0x02 (נקה)
זה צריך להיות באותו אורך כמו APCF_AD_DATA .

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה
APCF_opcode 1 אוקטט 0x09 - סוג APCF AD
APCF_Action 1 אוקטט אקו חזרה של הפקודה APCF_Action
APCF_AvailableSpaces 1 אוקטט מספר הכניסות החינמיות שעדיין זמינות בטבלה מסוג AD

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: תמיכת מסנן מסוג AD
  • Bit 2 ~15: שמור לשימוש עתידי

ערך הביט

  • 0 = לא נתמך
  • 1 = נתמך

פקודת פעילות הבקר ומידע אנרגיה

מטרת המידע הזה היא שפונקציות מערכת מארח גבוהות יותר ינתחו את סך הפעילויות של כל הרכיבים, כולל בקר ה-BT ומצב המאקרו שלו, בשילוב עם מה שקורה באפליקציות ובמסגרת. לשם כך, המידע הבא נדרש מחסנית BT ומהבקר:

  • מחסנית BT: דיווח על המצב המאקרו-תפעולי הנוכחי של הבקר
  • קושחה: דיווח מידע מצטבר על פעילות ואנרגיה

מצבי מאקרו של מחסנית מארח BT, כפי שנקבע ברמת המשתמש:

  • סרק: [סריקת עמוד, LE advt, סריקת חקירה]
  • סריקה: [החלפה/בירור/מנסה להתחבר]
  • פעיל: [קישור ACL מופעל, קישור SCO מתמשך, מצב הרחה]

הפעילויות שהבקר עוקב אחריהן לאורך חייו הן זמן 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 Set Scan Parameters Command)

OCF: 0x15A

פרמטר פקודה גודל מַטָרָה
LE_Ex_Scan_Type 1 אוקטט 0x00 - סריקה פסיבית. לא יישלחו מנות SCAN_REQ (ברירת מחדל).
0x01 - סריקה פעילה. עשויות להישלח מנות SCAN_REQ .
LE_Ex_Scan_Interval 4 אוקטטים מוגדר כמרווח הזמן מהרגע שבו הבקר התחיל את סריקת ה-LE האחרונה שלו ועד שהחל את סריקת ה-LE שלאחר מכן.
טווח: 0x0004 עד 0x00FFFFFF
ברירת מחדל: 0x0010 (10 אלפיות השנייה)
זמן = N * 0.625 אלפיות השנייה
טווח זמן: 2.5 אלפיות השנייה עד 10442.25 שניות
LE_Ex_Scan_Window 4 אוקטטים משך סריקת LE. LE_Scan_Window יהיה קטן או שווה ל- LE_Scan_Interval .
טווח: 0x0004 עד 0xFFFF
ברירת מחדל: 0x0010 (10 אלפיות השנייה)
זמן = N * 0.625 אלפיות השנייה
טווח זמן: 2.5 אלפיות השנייה עד 40.95 שניות
Own_Address_Type 1 אוקטט 0x00 - כתובת מכשיר ציבורית (ברירת מחדל)
0x01 - כתובת מכשיר אקראית
LE_Ex_Scan_Filter_Policy 0x00 - קבל את כל מנות הפרסומות (ברירת מחדל). תתעלם מחבילות פרסום מכוונות שאינן מטופלות עבור מכשיר זה.
0x01 - התעלם מחבילות פרסומות ממכשירים שאינם ברשימת הרשימה הלבנה בלבד. תתעלם מחבילות פרסום מכוונות שאינן מטופלות עבור מכשיר זה.

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה

קבל פקודת מידע על ניפוי באגים של בקר

המטרה של אלמנט מידע זה היא להשיג מידע על ניפוי באגים של בקר על ידי מארח, בצורה בינארית, לצורך עיבוד וניתוח לאחר. זה מסייע באיתור בעיות בשטח ומספק למהנדסים ערכת כלים לתיעוד מידע לצורך ניתוח. בקר יכול לספק את המידע כאשר מארח מבקש אותו באמצעות האירוע (תת-אירוע של מידע באגים של בקר) או באופן אוטונומי כאשר הבקר ירצה בכך. שימושים לדוגמה יכולים להיות דיווח על מידע על מצב קושחה, מידע על קריסת dump, מידע רישום וכו'.

OCF: 0x15B

פרמטר פקודה גודל מַטָרָה
לא רשימת פרמטרי פקודות ריקה

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה

תמיכה בהורדת חומרה A2DP

תכונת ה-A2DP Offload תומכת בהורדה של תהליך קידוד השמע A2DP למעבד שמע המחובר לבקר BT. זרם נתוני האודיו המקודד עובר ישירות ממעבד האודיו לבקר BT ללא מעורבות מארח ה-BT. מארח BT עדיין אחראי על התצורה והשליטה של ​​הפעלת A2DP. שתי גרסאות של הפקודות זמינות. הפקודות מדור קודם עם Sub OCF 0x01-0x02 תומכות רק בקודקים בקוד פתוח. הגרסאות עם Sub-OCF 0x02-0x03 אינן אגנוסטיות לקודק המוגדר.

OCF: 0x15D

התחל פריקת A2DP (מדור קודם)

תת OCF: 0x01

השתמש בפקודה זו הן כדי להגדיר את תהליך ההורדה של A2DP והן כדי להפעיל את זרם A2DP.

פרמטר פקודה גודל מַטָרָה
Codec 4 אוקטטים מציין סוג Codec
0x01 - SBC
0x02 - AAC
0x04 - APTX
0x08 - APTX HD
0x10 - LDAC
Max_Latency 2 אוקטטים זמן אחזור מרבי מותר (ב-ms). ערך אפס משבית את ההדחה.
SCMS-T_Enable 2 אוקטטים אוקטט 0: דגל המאפשר הוספת כותרת SCMS-T.
  • 0x00 - כותרת SCMS-T לא כלולה.
  • 0x01 - כותרת SCMS-T כלולה.

אוקטט 1: ערך עבור הכותרת SCMS-T, כאשר היא מופעלת.

Sampling_Frequency 4 אוקטטים 0x01 - 44100 הרץ
0x02 - 48000 הרץ
0x04 - 88200 הרץ
0x08 - 96000 הרץ
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 אוקטטים גודל מקסימלי של L2CAP MTU המכיל מנות שמע מקודדות
Codec_Information 32 אוקטטים מידע ספציפי ל-Codec.

SBC Codec:

עיין ברכיבי מידע ספציפיים של SBC Codec ב-A2DP v1.3.
אוקטט 0: אורך בלוק | תת-להקות | שיטת ההקצאה
אוקטט 1: ערך Bitpool מינימלי
אוקטט 2: ערך ביטפול מקסימלי
אוקטט 3: תדירות דגימה | מצב ערוץ
אוקטט 4-31: שמור

AAC Codec:

עיין ברכיבי מידע ספציפיים של AAC Codec ב-A2DP v1.3
אוקטט 0: סוג אובייקט
אוקטט 1; b7: VBR
אוקטט 2-31: שמור

Codec LDAC:

אוקטט 0-3: מזהה ספק
0x0000012D

אוקטט 4-5: מזהה Codec
0x00AA - LDAC
כל שאר הערכים שמורים

אוקטט 6: אינדקס קצב סיביות:
0x00 - גבוה
0x01 - אמצע
0x02 - נמוך
0x03 - 0x7E - שמור
0x7F - ABR (קצב סיביות אדפטיבי)
0x80 - 0xFF - שמור

אוקטט 7: מצב ערוץ LDAC
0x01 - סטריאו
0x02 - כפול
0x04 - מונו
אחרים שמורים

אוקטט 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/מיזוג)
0x01 - קלט (AVDTP Sink/פיצול)
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) כפי שהוגדר על ידי מספרי Bluetooth, סעיף 6.3.2.
התעלמו כאשר הגנת תוכן SCMS-T אינה מופעלת.
Vendor_Specific_Parameters_Length 1 אוקטט אורך של פרמטרים ספציפיים לספק, בטווח שבין 0 ל-128.
הערך 0 משמש כאשר לא מסופקים פרמטרים נוספים.
Vendor_Specific_Parameters 0-128 אוקטטים פרמטרים ספציפיים לספק מסופקים על ידי Bluetooth Audio HAL, CodecParameters.vendorSpecificParameters[] .

יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.

פרמטר החזרה גודל מַטָרָה
Status 1 אוקטט מצב הפקודה הושלמה
Sub_Opcode 1 אוקטט 0x03 - התחל A2DP Offload

עצור פריקת 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/מיזוג)
0x01 - קלט (כיור AVDTP/פיצול)

אירוע שלם של פקודה ייוצר עבור פקודה זו.

פרמטר להחזיר גודל מַטָרָה
Status 1 אוקטט פקודה סטטוס מלא
Sub_Opcode 1 אוקטט 0x04 - הפסק A2DP OFFLOAD

פקודת דוח איכות Bluetooth

תכונת הפקודה של דו"ח האיכות של BT מתחילה את המנגנון בבקר Bluetooth כדי לדווח על אירועי איכות Bluetooth למארח. אתה יכול לאפשר ארבע אפשרויות:

  • מצב ניטור איכותי: הבקר שולח מעת לעת אירוע משנה של BQR באיכות קישור למארח.
  • מתקרב ל- LSTO: אם לא מתקבלות מנות ממכשיר ה- BT המחובר במשך יותר ממחצית מערך הקישור לפיקוח פיקוח (LSTO), הבקר מדווח על אירוע LSTO המתקרב למארח.
  • A2DP AUDIO CHOPPY: כאשר הבקר מגלה גורמים הגורמים לאודיו קצוץ, הבקר מדווח על אירוע שוכך A2DP AUDIO למארח.
  • (ה) SCO Voice Choppy: כאשר הבקר מגלה גורמים הגורמים לקול קצוץ, הבקר מדווח על אירוע Choppy קול (E) SCO למארח.
  • דלקת שורש: אירוע זה נשלח על ידי הבקר לערימה כאשר ה- HAL או הבקר נתקלים בשגיאה קטלנית וצריך להפעיל מחדש את Bluetooth.
  • עקבות הודעת LMP/LL: הבקר שולח את ההודעה LMP/LL לחיצת יד עם המכשיר המרוחק למארח.
  • עקבות תזמון רב-פרופיליות/COEX של Bluetooth: הבקר שולח את פרטי התזמון שלו על טיפול בפרופילי Bluetooth מרובים ודו-קיום אלחוטי בלהקת 2.4 GHz למארח.
  • מנגנון מידע על ניפוי באגים: כאשר הוא מופעל, הבקר יכול לדווח באופן אוטונומי על מידע על רישום ניפוי באגים באמצעות הבקר באגים לאירוע המשנה למארח.

OCF: 0x15E

פרמטר פקודה גודל מַטָרָה
BQR_Report_Action 1 אוקטט פעולה להוסיף / למחוק דיווח על אירועי איכות (ים) שנקבעו בפרמטר BQR_QUALITY_EVENT_MASK, או לנקות את הכל.

0x00 - הוסף
0x01 - מחק
0x02 - ברור

מחק ינקה דיווחים על אירועים איכותיים ספציפיים.
נקה ינקה את כל דיווח על אירועי האיכות (ניתן להתעלם מהפרמטר BQR_QUALITY_EVENT_MASK).

BQR_Quality_Event_Mask 4 אוקטטות מסכות סיביות לדיווח על אירועי האיכות שנבחרו.

ביט 0: הגדר כדי לאפשר מצב ניטור איכותי.
ביט 1: מוגדר לאפשר לאירוע LSTO המתקרב (עבור ACL/(E) SCO/ISO).
ביט 2: הגדר כדי לאפשר אירוע Choppy Audio Audio Audio.
ביט 3: מוגדר לאפשר (E) אירוע Choppy Compy Sco.
ביט 4: מוגדר לאפשר אירוע דלקת שורש.
ביט 5: הגדר כדי לאפשר מצב ניטור אנרגיה.
ביט 6: מוגדר לאפשר לאירוע Le Audio Choppy.
ביט 7: הגדר כדי לאפשר לאירוע Connect Fail.
ביט 8 ~ 14: שמור.
ביט 15: מוגדר לאפשר אירועים איכותיים ספציפיים לספק.
ביט 16: הגדר כדי לאפשר עקבות הודעות LMP/LL.
סיב 17: הגדר כדי לאפשר עקבות תזמון Bluetooth Multi-Link/Coex.
סיביות 18: מוגדר לאפשר את מנגנון המידע לניפוי באגים.
ביט 19 ~ 30: שמור.
ביט 31: מוגדר לאפשר עקבות ספציפיים לספק.

BQR_Minimum_Report_Interval 2 אוקטטות הגדירו את מרווח הזמן המינימלי של דיווח על אירועים איכותיים לאירועי האיכות שנבחרו. על קושחת הבקר לא לדווח על האירוע הבא במרווח הזמן המוגדר. הגדרת המרווח תהיה בהתאמה ומוקדשת לאירועי האיכות המתווספים.

יחידה: MS
ברירת מחדל: 0 (אין הגבלה למרווח.)
טווח: 0 ~ 65535 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: שמור.

אירוע שלם של פקודה ייוצר עבור פקודה זו.

פרמטר להחזיר גודל מַטָרָה
Status 1 אוקטט פקודה סטטוס מלא
Current_Quality_Event_Mask 4 אוקטטות מציין הגדרת מסכת סיביות נוכחית.
ביט 0: מצב ניטור איכותי מופעל.
ביט 1: דיווח על אירועים של LSTO מופעל.
ביט 2: דיווח על אירועי A2DP Audio Choppy מופעל.
סיביות 3: (ה) דיווח על אירועים Choppy Choppy מופעל.
ביט 4: דיווח על אירועי דלקת שורש מופעל.
ביט 5: מצב ניטור אנרגיה מופעל.
ביט 6: דיווח על אירועים Le Audio Choppy מופעל.
סיב 7: חבר את אירוע ה- Fail.
ביט 8 ~ 14: שמור.
סיביות 15: דיווח על אירועים ספציפיים לספק מופעל.
סיביות 16: עקבות הודעות LMP/LL מופעלות.
ביט 17: עקבות תזמון Bluetooth Multi-Link/Coex מופעל.
סיביות 18: מנגנון המידע של ניפוי באגים מבקר מופעל.
ביט 19 ~ 30: שמור.
ביט 31: עקבות ספציפיים לספק מופעל.
Current_Vendor_Specific_Quality_Event_Mask 4 אוקטטות מציין הגדרת מסכת סיביות נוכחית.
Current_Vendor_Specific_Trace_Mask 4 אוקטטות מציין הגדרת מסכת סיביות נוכחית.

פקודת חיץ שמע דינמית

מאגר השמע הדינמי מצמצם את תקלת האודיו על ידי שינוי גודל חיץ השמע בבקר Bluetooth על בסיס תרחישים שונים.

OCF: 0x15F

קבל יכולת זמן מאגר שמע

SUB OCF: 0x01

השתמש בפקודה זו כדי לקבל את יכולת זמן חיץ השמע מבקר Bluetooth.

פרמטר פקודה גודל מַטָרָה
לא רשימת פרמטר פקודה ריקה

אירוע שלם של פקודה ייוצר עבור פקודה זו.

פרמטר להחזיר גודל מַטָרָה
Status 1 אוקטט פקודה סטטוס מלא
Dynamic_Audio_Buffer_opcode 1 אוקטט 0x01 - קבל זמן חיץ שמע
Audio_Codec_Type_Supported 4 אוקטטות מסכות סיביות לסוגי הקודק הנתמכים
ביט 0 - SBC
ביט 1 - AAC
ביט 2 - aptx
ביט 3 - aptx hd
ביט 4 - LDAC
ביט 5-31 שמור
Audio_Codec_Buffer_Default_Time_For_Bit_0 2 אוקטטות זמן חיץ ברירת מחדל של סוג ה- BIT 0 CODEC שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג ה- BIT 0 Codec אינו נתמך.
יחידה: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 אוקטטות זמן חיץ מקסימלי של סוג ה- BIT 0 CODEC שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג ה- BIT 0 Codec אינו נתמך.
יחידה: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 אוקטטות זמן חיץ מינימלי של סוג ה- BIT 0 CODEC שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג ה- BIT 0 Codec אינו נתמך.
יחידה: MS
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 אוקטטות זמן חיץ ברירת מחדל של סוג ה- BIT 1 CODEC שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג קודקוד BIT 1 אינו נתמך.
יחידה: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 אוקטטות זמן חיץ מקסימלי של סוג ה- BIT 1 CODEC שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג קודקוד BIT 1 אינו נתמך.
יחידה: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 אוקטטות זמן חיץ מינימלי של סוג ה- BIT 1 CODEC שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג קודקוד BIT 1 אינו נתמך.
יחידה: MS
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 אוקטטות זמן חיץ ברירת מחדל של סוג ה- BIT 31 CODEC שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג ה- BIT 31 Codec אינו נתמך.
יחידה: MS
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 אוקטטות זמן חיץ מקסימלי של סוג ה- BIT 31 Codec שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג ה- BIT 31 Codec אינו נתמך.
יחידה: MS
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 אוקטטות זמן חיץ מינימלי של סוג ה- BIT 31 CODEC שצוין ב- AUDIO_CODEC_TYPE_SUPPORTED.
ערך זה יהיה 0 אם סוג ה- BIT 31 Codec אינו נתמך.
יחידה: MS

הגדר זמן חיץ שמע

SUB OCF: 0x02

השתמש בפקודה זו כדי להגדיר את זמן חיץ השמע לבקר Bluetooth.

פרמטר פקודה גודל מַטָרָה
Audio_Codec_Buffer_Time 2 אוקטטות זמן חיץ שמע מבוקש עבור Codec המשומש הנוכחי.
יחידה: MS

אירוע שלם של פקודה ייוצר עבור פקודה זו.

פרמטר להחזיר גודל מַטָרָה
Status 1 אוקטט פקודה סטטוס מלא
Dynamic_Audio_Buffer_opcode 1 אוקטט 0x02 - הגדר זמן חיץ שמע
Audio_Codec_Buffer_Time 2 אוקטטות זמן חיץ שמע נוכחי בבקר Bluetooth.
יחידה: MS

אירוע 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

פרמטר לאירוע משנה גודל מַטָרָה
אף אחד

לה

אירוע זה מצביע על כך שמופע פרסום שינה את מצבה. נכון לעכשיו, אירוע זה משמש רק כדי לציין איזה מופע פרסום הופסק כתוצאה מחיבור.

קוד לאירוע משנה = 0x55

פרמטר לאירוע משנה גודל מַטָרָה
Advertising_instance 1 אוקטט מזהה את מופע הפרסום הספציפי
ערכים תקפים הם 0 דרך max_advt_instances -1
State_Change_Reason 1 אוקטט 0x00: חיבור התקבל
Connection_handle 2 אוקטטות מזהה את החיבור שגרם להשבית את מופע advt (0xFFFF אם לא חוקי)

לא אירוע מעקב אחר פרסומת

אירוע זה מציין מתי מפרסם נמצא או אבוד.

קוד אירוע משנה = 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 octets
Scan_data_resp_len[0] : 1 אוקטט
Scan_data_resp[0] : Scan_data_resp octets

אירוע תת-אירוע של מידע על ניפוי באגים

אירוע זה משמש מבקר כדי לספק מידע על ניפוי באגים בינארי למארח.

קוד לאירוע משנה = 0x57

פרמטר לאירוע משנה גודל מַטָרָה
debug_block_byte_offset_start 2 אוקטטות ניפוי באגים בקיזוז בתים מההתחלה
last_block 1 אוקטט 0x00: עוד נתוני ניפוי
0x01: בלוק בינארי אחרון; לא עוד נתוני ניפוי באגים
cur_pay_load_sz 2 אוקטטות גודל בלוק בינארי באירוע נוכחי
Debug_Data מִשְׁתַנֶה נתוני ניפוי של cur_payload_sz

אירוע משנה של דוח איכות Bluetooth

אירוע זה מציין את אחד מהפעולות הבאות: אירוע איכות Bluetooth התרחש, הבקר העלה את עקבות ההודעות LMP/LL ואת עקבות התזמון Multi-Link/Coex של Bluetooth, או נתוני מידע על ניפוי באגים שהושלכו.

פרמטר לאירוע משנה גודל מַטָרָה
Quality_Report_Id 1 אוקטט 0x01: דיווח איכותי במצב ניטור.
0x02: מתקרב ל- LSTO.
0x03: A2DP Audio Choppy.
0x04: (ה) SCO Voice Choppy.
0x05 ~ 0x06: שמור.
0x07: Le Audio Choppy.
0x08: התחבר להיכשל.
0x09 ~ 0xff: שמור.
Packet_Types 1 אוקטט 0x01: ID
0x02: null
0x03: סקר
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 אוקטט רמת הספק העברת זרם עבור החיבור שצוין.

ערך זה יהיה זהה לבקר המגיב לפקודת HCI_READ_TRANSMIT_POWER_LEVEL HCI.

RSSI 1 אוקטט [ב- DBM]

ערך אינדיקציה לחוזק האות שהתקבל (RSSI) עבור ה- Connection_Handle שצוין.
ערך זה יהיה ערך חוזק אות מקלט מוחלט.
טווח: -127 עד +20

SNR 1 אוקטט [ב- DB]

ערך יחס אות לרעש (SNR) עבור ה- Connection_Handle שצוין.
הבקר יספק את ה- SNR הממוצע של כל הערוצים המשמשים את הקישור.

Unused_AFH_Channel_Count 1 אוקטט מציין את מספר הערוצים שאינם בשימוש ב- AFH_CHANNEL_MAP.
0x4f ~ 0xff: שמור.
AFH_Select_Unideal_Channel_Count 1 אוקטט מציין את מספר הערוצים המופרעים ובעלי איכות גרועה, אך הם עדיין נבחרים ל- AFH.
המספר המינימלי של הערוצים המותרים על ידי מפרט ה- Bluetooth הוא 20, כך שגם אם כל 79 הערוצים מפריעים ובעלי איכות גרועה, הבקר עדיין צריך לבחור לפחות 20 ערוצים עבור AFH.
LSTO 2 אוקטטות הגדרת פסק זמן פיקוח על קישור נוכחי.
זמן = n * 0.625 ms
טווח זמן: 0.625 שניות עד 40.9 שניות
Connection_Piconet_Clock 4 אוקטטות שעון פיקונט עבור החיבור שצוין.
ערך זה יהיה זהה לבקר המגיב לפקודת HCI_READ_CLOCK HCI עם פרמטר "WHO_CLOCK" של 0x01 (שעון פיקונט).
יחידה: n * 0.3125 ms (שעון Bluetooth 1)
Retransmission_Count 4 אוקטטות מספר ההסכמות מחדש מאז האירוע האחרון.
ספירה זו תאפס לאחר הדיווח למארח.
No_RX_Count 4 אוקטטות אין ספירת RX מאז האירוע האחרון.
הספירה עולה כאשר לא מתקבלת מנות בחריץ הזמן המתוכנן או שהחבילה שהתקבלה פגומה.
ספירה זו תאפס לאחר הדיווח למארח.
NAK_Count 4 אוקטטות NAK (הכרה שלילית) סופרת מאז האירוע האחרון.
ספירה זו תאפס לאחר הדיווח למארח.
Last_TX_ACK_Timestamp 4 אוקטטות חותמת זמן של TX ACK האחרון. זה מבוסס על שעון ה- Bluetooth של פיקונט סנטרל (CLK).
יחידה: n * 0.3125 ms (שעון Bluetooth 1)
Flow_Off_Count 4 אוקטטות מספר הפעמים שהבקר מקבל זרימה (עצירה) מאז האירוע האחרון.
ספירה זו תאפס לאחר הדיווח למארח.
Last_Flow_On_Timestamp 4 אוקטטות חותמת זמן של הזרימה האחרונה (GO). זה מבוסס על שעון ה- Bluetooth של פיקונט סנטרל (CLK).
יחידה: n * 0.3125 ms (שעון Bluetooth 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.
ספירה זו מתאפסת לאחר הדיווח למארח.
הערך הוא אפס אם אין ערך תקף לקישור.
CRC_Error_Packets 4 אוקטטות מספר החבילות שהתקבלו עם שגיאת CRC מאז האירוע האחרון.
ספירה זו מתאפסת לאחר הדיווח למארח.
RX_Duplicate_Packets 4 אוקטטות מספר החבילות הכפולות (ההעברה מחדש) שהתקבלו מאז האירוע האחרון.
ספירה זו מתאפסת לאחר הדיווח למארח.
פרמטר ספציפי לספק (פרמטר אורך כולל - TBD) * אוקטטות עבור ספק הבקר לקבל יותר פרמטרים ספציפיים של ספקים.

קוד לאירוע משנה = 0x58 [Quality_Report_ID = 0x05, אירוע דלקת שורש]

אירוע זה מצביע על כך ש- Bluetooth HAL או הבקר נתקלו בשגיאה קטלנית וזקוקים לערימת Bluetooth כדי לרשום מצב זה ולהפעיל מחדש. על הבקר לשלוח ROOT_INFLAMMATM_EVENT לערימת Bluetooth לפני שהוא שולח את השבר הראשון באירועי מידע על ניפוי באגים בכל מקרה.

פרמטר ה- Error_Code מכיל קוד שגיאה המדווח מ- HAL/Controller, 0 אם מדובר בשגיאה ספציפית בספק שבבים. ה- Vendor_specific_error_code מכיל קוד שגיאה ספציפי לספק שבבים מ- HAL/Controller. זה אמור להגדיר כ- 0 אם הפרמטר שגיאה_קוד אינו 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: עקבות תזמון Bluetooth Multi-Link/Coex.
0x13: מבקר ניפוי מידע על Dump Dump.
0x14 ~ 0xff: שמור.
Connection_Handle 2 אוקטטות ידית חיבור.
פרמטר ספציפי לספק (פרמטר אורך כולל - 4) * אוקטטות פורמט ספציפי של ספק של עקבות הודעות LMP, Bluetooth Multi-Link/Coex Thinking Trace ו- Controller Debuge Defulation Dump Dump.

תמיכה מרובת-ממצאים

היעדים של תמיכה מרובי-מוזרים הם הדברים הבאים:

  • יכולת לתמוך בפרסומות מרובות ( max_advt_instances )
  • כוחות שידור שונים כדי לאפשר טווח משתנה
  • תוכן פרסום שונה
  • תגובה אינדיבידואלית לכל מפרסם
  • פרטיות (שאינה ניתנת למעקב) לכל מפרסם
  • ניתן לחיבור

כדי לשמור על מפרט זה קרוב לתקנים הקיימים, ניתנות הפקודות הספציפיות לספק הבאות. הם נגזרים ממפרט Bluetooth Core 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)

SUB OCF: 0x01

פרמטר תת-פיקוד גודל מַטָרָה
Advertising_Interval_Min למפרט למפרט
Advertising_Interval_Max למפרט למפרט
Advertising_Type למפרט למפרט
Own_Address_Type למפרט למפרט
Own_Address למפרט למפרט
Direct_Address_Type למפרט למפרט
Direct_Address למפרט למפרט
Advertising_Channel_Map למפרט למפרט
Adverstising_Filter_Policy למפרט למפרט
Advertising_Instance 1 אוקטט מציין את תחולת הפרמטרים לעיל למופע
Tx_power 1 אוקטט Transfit_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 SET)

SUB 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

הפניה לבסיס: מפרט Core 4.1 של Bluetooth, עמוד 970 (פקודת נתוני תגובת הסריקה של LE SCAN)

SUB 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

הפניה לבסיס: מפרט Bluetooth Core 4.1, עמוד 963 (LE הגדר פקודה כתובת אקראית)

SUB 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

הפניה לבסיס: מפרט Bluetooth Core 4.1, עמוד 971 (LE Set Productive הפעל פקודה באותו מפרט ליבה)

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 ששימש ליצירת כתובת (ES) הניתנת להחלפה אקראית.
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

SUB OCF: 0x01

פרמטר תת-פיקוד גודל מַטָרָה
enable_customer_specific_feature_set 1 אוקטט 0x01 - הפעל תכונת RPA הועלה
0x00 - השבת תכונת RPA הועלה

המארח נדרש להפעיל את OFFA 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

SUB OCF: 0x02

פרמטר תת-פיקוד גודל מַטָרָה
LE_IRK 16 אוקטטות Le Irk (BYTE 1ST LSB)
Address_Type 1 אוקטט 0: כתובת ציבורית
1: כתובת אקראית
LE_Device_Address 6 אוקטטות כתובת ציבורית או אקראית הקשורה ל- IRK (BYTE LSB הראשון)

אירוע שלם של פקודה ייוצר עבור פקודה זו.

פרמטר להחזיר גודל מַטָרָה
Status 1 אוקטט פקודה סטטוס מלא
Event_cust_specific_feature_opcode 1 אוקטט 0x02 [הוסף IRK לרשימה]
LE_IrkList_AvailableSpaces 1 אוקטט רשומות רשימת IRL זמינות לאחר הפעולה הנוכחית

Le_rpa_offload: revert_irk_to_list_sub_command

SUB 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

SUB OCF: 0x04

פרמטר תת-פיקוד גודל מַטָרָה
אף אחד

אירוע שלם של פקודה ייוצר עבור פקודה זו.

פרמטר להחזיר גודל מַטָרָה
Status 1 אוקטט פקודה סטטוס מלא
Event_cust_specific_feature_opcode 1 אוקטט 0x04 [נקה רשימת IRK]
LE_IrkList_AvailableSpaces 1 אוקטט רשומות רשימת IRL זמינות לאחר הפעולה הנוכחית [ max_irk_list_sz]

Le_rpa_offload: read_irk_list_sub_command

SUB OCF: 0x05

פרמטר תת-פיקוד גודל מַטָרָה
LE_read_IRK_list_entry-index 1 אוקטט אינדקס של רשימת IRK [0, max_irk_list_sz-1]

אירוע שלם של פקודה ייוצר עבור פקודה זו.

פרמטר להחזיר גודל מַטָרָה
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 זה