ממשק הבקר המארח (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 | גודל משתנה | מחרוזת תווים לשם מקומי. הערות:
|
יווצר אירוע 'השלמה של פקודה' עבור פקודה זו.
פרמטר החזרה | גודל | מַטָרָה |
---|---|---|
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 | גודל משתנה | מחרוזת תווים עבור נתוני יצרן. הערות:
|
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 | גודל משתנה | מחרוזת תווים עבור נתוני שירות. הערות:
|
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 אוקטט | מסכות סיביות לתכונות מורחבות נתמכות:
ערך הביט
|
פקודת פעילות הבקר ומידע אנרגיה
מטרת המידע הזה היא שפונקציות מערכת מארח גבוהות יותר ינתחו את סך הפעילויות של כל הרכיבים, כולל בקר ה-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.
אוקטט 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. AAC Codec: עיין ברכיבי מידע ספציפיים של AAC Codec ב-A2DP v1.3 Codec LDAC: אוקטט 0-3: מזהה ספק אוקטט 4-5: מזהה Codec אוקטט 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/מיזוג) 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 - הוסף מחק ינקה דיווחים על אירועים איכותיים ספציפיים. |
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: שמור. |
אירוע שלם של פקודה ייוצר עבור פקודה זו.
פרמטר להחזיר | גודל | מַטָרָה |
---|---|---|
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 octetsScan_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, או נתוני מידע על ניפוי באגים שהושלכו.
קוד לאירוע משנה = 0x58 [Quality_Report_ID = 0x01 ~ 0x04, אירוע קשור לאיכות קישור]
פרמטר לאירוע משנה | גודל | מַטָרָה |
---|---|---|
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 שצוין. |
SNR | 1 אוקטט | [ב- DB] ערך יחס אות לרעש (SNR) עבור ה- Connection_Handle שצוין. |
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) * אוקטטות | עבור ספק הבקר לקבל יותר פרמטרים ספציפיים של ספקים. |
קוד אירוע משנה = 0x58 [Quality_Report_ID = 0x11 ~ 0x13, אירוע קשור למזבלה]
פרמטר לאירוע משנה | גודל | מַטָרָה |
---|---|---|
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 זה |