הממשק Host Controller Interface (HCI) משמש לאינטראקציה עם בקר Bluetooth.
במסמך הזה מפורטת רשימה של דרישות ל-Bluetooth (BT) ול-Bluetooth Low Energy (BLE) HCI. המטרה היא שספקים של בקרי BT וספקים של בקרי BT צריכים לעמוד בדרישות הפלטפורמה האלה כדי להשתמש במערך התכונות שמתואר בהמשך.
במסמך הזה מתייחס למפרט Bluetooth Core 5.2 כ'מפרט'. מפרט Bluetooth Core 5.2 זמין באתר Bluetooth SIG יחד עם מסמכים אחרים שאומצו.
סקירה כללית של העיצוב
היכולות וההגדרות האישיות של הצ'יפים
כפלטפורמה פתוחה, ל-Android יש מטריצה של גרסאות תוכנה, יצרני ציוד מקורי, ספקים ויכולות של פלטפורמות ושבים.
כדי לנהל את הסביבה המשתנה ולנהל את ההעברות, פילוסופיית עיצוב של מתן אפשרות לבקרי BT לחשוף את היכולות שלהם (מעבר למפרט הסטנדרטי של Bluetooth Core 5.2) מתוארת במסמך הזה. מקבץ ה-BT המארח יכול להשתמש ביכולות האלה כדי לקבוע אילו תכונות להפעיל.
תמיכה בסטנדרטים פתוחים
אחת המטרות של Android היא לתמוך בתקנים פתוחים לאחר האישור במפרט Bluetooth. אם תכונה שמתוארת בהמשך תהפוך לזמינה בשיטות HCI סטנדרטיות במפרט Bluetooth עתידי, ניאלץ להגדיר את הגישה הזו כברירת המחדל.
יכולות ספציפיות לספק
פקודה ספציפית לספק: LE_Get_Vendor_Capabilities_Command
שדה הפקודה של OpCode (OCF): 0x153
פרמטר של פקודה | גודל | המטרה |
---|---|---|
לא רלוונטי | רשימת הפרמטרים של הפקודה ריקה |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
max_advt_instances (הוצא משימוש) |
אוקטט אחד |
מספר המופעים הנתמכים של מודעות. הזמנה אחרי גרסה 0.98. הפרמטר הזה הוצא משימוש במפרט התכונות של Google בגרסה 0.98 ומעלה, ותמך את LE Extended Advertising שזמין במפרט של BT מגרסה 5.0 ואילך. |
offloaded_resolution_of_private-address (הוצא משימוש) |
אוקטט אחד |
יכולת של שבב BT של RPA. אם הצ'יפ תומך בכך, המארח צריך להפעיל אותו. 0 = לא כשיר 1 = כשיר זמין אחרי גרסה 0.98. הפרמטר הזה הוצא משימוש בגרסה 0.98 של מפרט התכונות של Google, והוחלף בתכונת הפרטיות שזמינה במפרט של BT מגרסה 4.2 ואילך. |
total_scan_results_storage |
2 אוקטטים | נפח אחסון לתוצאות סריקה בבייטים |
max_irk_list_sz |
אוקטט אחד | מספר רשומות IRK שנתמכות בקושחה |
filtering_support |
אוקטט אחד |
תמיכה בסינון בבקר 0 = לא נתמך 1 = נתמך |
max_filter |
אוקטט אחד | מספר המסננים הנתמכים |
activity_energy_info_support |
אוקטט אחד |
תמיכה בדיווח על פרטי פעילות ואנרגיה 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 |
אוקטט אחד | תמיכה בחלון סריקה מורחב ובמרווחי זמן |
debug_logging_supported |
אוקטט אחד | תומך ברישום ביומן של מידע בינארי על תוצאות ניפוי באגים מנאמן המידע |
LE_address_generation_offloading_support (הוצא משימוש) |
אוקטט אחד |
0 = לא נתמך 1 = נתמך צוין אחרי גרסה v0.98. הפרמטר הזה הוצא משימוש בגרסה 0.98 של מפרט התכונות של Google, והוחלף בתכונת הפרטיות שזמינה במפרט של BT מגרסה 4.2 ואילך. |
A2DP_source_offload_capability_mask |
4 אוקטות |
מסכות ביט לסוגי קודק נתמכים ביט 0 – SBC ביט 1 – AAC ביט 2 – APTX ביט 3 – APTX HD ביט 4 – LDAC ביט 5-31 שמור |
bluetooth_quality_report_support |
אוקטט אחד |
תמיכה בדיווח על אירועי איכות Bluetooth 0 = לא ניתן: 1 = יכול |
dynamic_audio_buffer_support |
4 אוקטטים |
תמיכה במאגר אודיו דינמי בבקר Bluetooth מסכות ביט לסוגי קודק נתמכים ביט 0 – SBC ביט 1 – AAC ביט 2 – APTX Bit 3 – APTX HD ביט 4 – LDAC ביט 5-31 שמור |
a2dp_offload_v2_support |
אוקטט אחד |
תמיכה בפקודות A2dp Offload v2 בבקר Bluetooth (מידע נוסף זמין במאמר התחלת טעינה של A2DP,
הפסקת עומס A2DP) 0 = לא נתמך 1 = נתמך |
קיבוץ תוצאות סריקה
מטרת התכנון היא לשפר את האופן שבו ההתראות על אירועים של Bluetooth LE Scan Response נשלחות למארח, כדי לחסוך בצריכת החשמל אצל המארח.
על ידי הפחתת התדירות שבה הבקר מודיע למעבד האפליקציות
המארח שצריך לסרוק את התוצאות, מעבד האפליקציות המארח יכול להישאר זמן רב יותר במצב ללא פעילות או במצב שינה. ההגדרה הזו מפחיתה את צריכת החשמל במארח. פרמטר ההחזרה total_scan_results_storage
מתוך LE_Get_Vendor_Capabilities_Command
מציין את יכולת הצ'יפ לאחסון תוצאות הסריקה.
התכונה הזו מתמקדת בניהול ובהגדרה של מתקן האחסון של תוצאות סריקת LE בבקר Bluetooth. האחסון משמש לאצוות של נתוני מודעות באופן זמני ולסריקת נתונים ומטא-נתונים שמתקבלים בנאמן המידע לצורך העברה למארח במועד מאוחר יותר.
הקושחה תתמוך בשני סוגים של קיבוץ, שאפשר להפעיל בו-זמנית:
- בוצע חיתוך. מכיל את רכיבי המידע הבאים: {MAC, TX Power, RSSI, Timestamp}
- מלא. מכיל את רכיבי המידע הבאים: {MAC, TX Power, RSSI, Timestamp, Adv Data, Scan Response}
LE_Batch_Scan_Command
OCF: 0x156
פרמטר של פקודה | גודל | המטרה |
---|---|---|
Batch_Scan_opcode |
אוקטט אחד |
0x1 – הפעלת תכונה ספציפית ללקוח 0x2 - הגדרת פרמטרים של סריקת פריטים באצווה 0x3 - הגדרת פרמטרים של סריקת באצווה 0x4 - קריאת פרמטרים של תוצאות סריקת באצווה |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו. הפעלת התכונה הספציפית ללקוח לא תתחיל את הסריקה.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Batch_Scan_opcode |
אוקטט אחד |
0x1 – הפעלת תכונה ספציפית ללקוח 0x2 - הגדרת פרמטרים של סריקת פריטים באצווה 0x3 - הגדרת פרמטרים של סריקת באצווה 0x4 - קריאת פרמטרים של תוצאות סריקת באצווה |
LE_Batch_Scan_Command: הפעלת תכונה ספציפית ללקוח
Sub OCF: 0x01
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
enable_customer_specific_feature_set |
אוקטט אחד |
0x01 - הפעלת התכונה 'סריקת באצווה' 0x00 - השבתת התכונה 'סריקת באצווה' |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Batch_Scan_opcode |
אוקטט אחד |
0x1 – הפעלת תכונה ספציפית ללקוח 0x2 - הגדרת פרמטרים של סריקת פריטים באצווה 0x3 - הגדרת פרמטרים של סריקת באצווה 0x4 - קריאת פרמטרים של תוצאות סריקת באצווה |
LE_Batch_Scan_Command: הגדרה של פקודת המשנה Batch Scan Storage Param
Sub OCF: 0x02
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
Batch_Scan_Full_Max |
אוקטט אחד |
נפח האחסון המקסימלי (ב-%) שהוקצה לסגנון מלא [טווח: 0-100] |
Batch_Scan_Truncated_Max |
אוקטט אחד |
נפח האחסון המקסימלי (ב-%) הוקצה לסגנון חתוך [טווח: 0-100] |
Batch_Scan_Notify_Threshold |
אוקטט אחד |
הגדרת רמת ההתראות (ב-%) למאגר אחסון לשימוש פרטי
[Range: 0-100] אם מגדירים את רמת ההתראות ל-0, ההתראות יושבתו. נוצר אירוע HCI ספציפי לספק (אירוע משנה של הפרה בסף האחסון) |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Batch_scan_opcode |
אוקטט אחד | 0x02 [הגדרת פרמטרים של סריקת באצווה] |
LE_Batch_Scan_Command: הגדרה של פקודת המשנה Batch Scan Param
Sub OCF: 0x03
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
Batch_Scan_Mode |
אוקטט אחד |
0x00 – סריקת פריטים באצווה מושבתת 0x01 – מצב קטוע מופעל 0x02 – מצב מלא מופעל 0x03 – מצב קטוע ומצב מלא מופעלים |
Duty_cycle_scan_window |
4 אוקטטים | זמן סריקה באצווה (# מהמשבצת) |
Duty_cyle_scan_interval |
4 אוקטטים | פרק זמן לסריקת אצווה (# חריץ) |
own_address_type |
אוקטט אחד |
0x00 - כתובת ציבורית של המכשיר 0x01 - כתובת אקראית של המכשיר |
Batch_scan_Discard_Rule |
אוקטט אחד |
0 – מחיקת הפרסומת הישנה ביותר 1 – מחיקת הפרסומת עם ה-RSSI החלשה ביותר |
אם הפקודה הזו מופעלת, פקודת המשנה הזו תתחיל סריקה באצווה. בסריקה קטועה, התוצאות מאוחסנות בצורת קטועה שבה המפתח הייחודי של Truncated style = {BD_ADDR,
Scan_interval}. כלומר, רק BD_ADDR will
אחד מתועד בכל מרווח סריקה. הרשומה
שצריך לשמור במצב 'חיתוך' היא: {BD_ADDR
,
Tx Power, RSSI, Timestamp}
כאשר מצב מלא מופעל, ייעשה שימוש בסריקה פעילה והתגובות לסריקה
יוקלטו. המפתח הייחודי בסגנון מלא = {MAC, Ad Package},
ללא קשר למרווח הסריקה. התיעוד שצריך לשמור במצב מלא הוא
{BD_ADDR
, Tx Power, RSSI, Timestamp, Ad Package, Scan
תגובה}. בסגנון מלא, אותה חבילת מודעות, כשהיא מוצגת מספר פעמים
במרווחי סריקה שונים, מתועדת פעם אחת בלבד. עם זאת, במצב חתוך, ניתן לראות את BA_ADDR
במרווחי זמן שונים של סריקה לפי הצורך (פעם אחת בכל מרווח סריקה). ה-RSSI
הוא הערך הממוצע של כל הכפילויות של מודעה ייחודית
בפרק זמן של סריקה.
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Batch_scan_opcode |
אוקטט אחד | 0x03 [הגדרת פרמטרים לסריקת אצווה] |
LE_Batch_Scan_Command: פקודת משנה לקריאת תוצאות סריקת באצווה
Sub OCF: 0x04
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
Batch_Scan_Data_read |
אוקטט אחד |
0x01 – נתונים במצב חתוך 0x02 – נתונים במצב מלא |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו. כשהמארח מנפיק את הפקודה הזו, יכול להיות שכל התוצאות בשלט הרחוק לא יתאימו לאירוע אחד של CommandComplete. המארח יבצע איטרציה להרצת הפקודה הזו עד שבמספר הרשומות יהיה 0 מבחינת התוצאות המתאימות באירוע CommandComplete. המשמעות היא שלבקר אין עוד רשומות לתקשר עם המארח. כל אירוע של Command הושלם יכול להכיל מספר רשומות של סוג אחד בלבד של נתונים (מלאות או קטועות).
הפניות זמן של בקר ומארח לא מסונכרנות. היחידה של
חותמת הזמן היא 50 אלפיות השנייה. הערך של חותמת הזמן מבוסס על הזמן שבו המארח נותן
Read_Batch_Scan_Results_Sub_cmd
על ידי המארח. אם זמן ההגעה של הפקודה הוא T_c
בקושחה, השעה בפועל שבה נלקחה חותמת הזמן בקושחה היא T_fw
. מועד הדיווח יהיה:
(T_c
- T_fw
). T_c
ו-T_fw
נמצאים בדומיין זמן הקושחה. ההגדרה הזו מאפשרת למארח
לחשב כמה זמן עבר האירוע.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Batch_scan_opcode |
אוקטט אחד | 0x03 [הגדרת פרמטרים של סריקת באצווה] |
Batch_Scan_data_read |
אוקטט אחד | מזהה את הפורמט (קטוע או מלא) |
num_of_records |
אוקטט אחד | מספר הרשומות של Batch_Scan_data_read |
format_of_data |
משתנה |
[truncet Mode [Toct_Templates: Address[0]: 6 octets: oct_Schedule_[0_octets: oct_Schedule: Address_Type[0]: 1 octet Tx_Pwr[0]: 1 octet RSSI[0] : 1 octet Timestamp[0]: 2 octets [מספר רשומות ( num_of_records ) עם פורמט למעלה]num_of_records Scan_data_resp
|
מסנן התוכן של חבילת הפרסום
ההגדרה הזו מאפשרת להפעיל/להשבית או להגדיר את מסנן התוכן של חבילות הפרסום (APCF) בבקר. ב-APCF מתבצע סינון של דוחות הפרסום בנאמן המידע, אבל לא מסנן פרסום תקופתי.
LE_APCF_Command
OCF: 0x157
פרמטר של פקודה | גודל | המטרה |
---|---|---|
APCF_opcode |
אוקטט אחד |
0x00 - Ax04 Ax- הפעלת Ax-D המשך Ax01 - APCF Set Filtering parameters 0x01 - APCF Set Filtering parameters 0x02 - כתובת APCF של רשת שידור 0x03 - APCF Service UUID 0x04 - APCF Service SoliPC UUID 0x05 - APCF Set: שם מקומי 0x05 |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | סטטוס החזרה |
APCF_opcode |
אוקטט אחד |
0x00 - Ax04 Ax- הפעלת Ax-D המשך Ax01 - APCF Set Filtering parameters 0x01 - APCF Set Filtering parameters 0x02 - כתובת APCF של רשת שידור 0x03 - APCF Service UUID 0x04 - APCF Service SoliPC UUID 0x05 - APCF Set: שם מקומי 0x05 |
LE_APCF_Command: Enable_sub_cmd
Sub OCF: 0x00
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_enable |
אוקטט אחד |
0x01 - הפעלת תכונת APCF 0x00 - השבתת תכונת APCF |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x0 – הפעלת APCF |
APCF_Enable |
אוקטט אחד | הפעלה/השבתה מוגדרת דרך APCF_enable |
LE_APCF_Command: set_filtering_parameters_sub_cmd
פקודת המשנה הזו משמשת להוספה או למחיקה של מפרט מסנן או לניקוי רשימת מסננים לסינון על שבב.
Sub OCF: 0x01
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_Action |
אוקטט אחד |
0x00 – הוספה 0x01 – מחיקה 0x02 – ניקוי מחיקה תגרום להסרה של המסנן הספציפי ושל כל רשומות התכונות המשויכות בטבלאות אחרות. המחיקה תגרום למחיקת כל המסננים והרשומות המשויכות בטבלאות אחרות. |
APCF_Filter_Index |
אוקטט אחד | אינדקס המסננים (0, max_filter-1 ) |
APCF_Feature_Selection |
2 אוקטטים |
מסכות ביט 3 לתכונות שנבחרו: ביט 0: מוגדר להפעלת מסנן כתובת השידור ביט 1: מוגדר להפעלת מסנן שינוי נתוני השירות ביט 2: מגדירים להפעלת בדיקת UUID של השירות ביט 3: מגדירים להפעלת בדיקת UUID של השירות שידול ביט 4: מפעילים את בדיקת השם של היצרן להרשאת שירות שלב 5: בודקים את סוג הביט של נתוני השירות |
APCF_List_Logic_Type |
2 אוקטטים |
פעולה לוגית לכל בחירת תכונה (מיקום לכל ביט) שצוינה ב-APCF_Feature_Selection .
תקף רק כשהתכונה מופעלת. ערך המיקום של ביט: 0: או 1: AND אם נבחרה לוגיקת "AND", חבילת ADV תעביר את המסנן רק אם היא מכילה את כל הערכים שברשימה. אם נבחרה לוגיקת "OR", חבילת ADV תעביר את המסנן אם היא מכילה אחת מהרשומות שברשימה. |
APCF_Filter_Logic_Type |
אוקטט אחד |
0x00: או 0x01: וגם הערה: סוג הלוגיקה הוא לא רלוונטי בשלושת השדות הראשונים של APCF_Feature_Selection , שהוא תמיד לוגיקת "AND". הם רלוונטיים רק לארבעה שדות של
APCF_Feature_Selection (ביט 3 – ביט 6).
|
rssi_high_thresh |
אוקטט אחד |
[in dBm] המערכת נחשבת למפרסמים שהם צופים רק אם האות גבוה מהסף הגבוה של ה-RSSI. אחרת, הקושחה צריכה להתנהג כאילו היא לא ראתה אותה. |
delivery_mode |
אוקטט אחד |
0x00 - immediate 0x01 - on_found 0x02 - batched
|
onfound_timeout |
2 אוקטטים |
תקף רק אם הערך של delivery_mode הוא on_found .[באלפיות שנייה] הגיע הזמן שהקושחה תישאר מושהית ותאסוף פרסומות נוספות לפני הדיווח. |
onfound_timeout_cnt |
אוקטט אחד |
תקף רק אם הערך של delivery_mode הוא on_found .[count] אם מודעה ב- onFound נשארת בקושחה למשך
onfound_timeout , היא תאסוף כמה
מודעות והספירה תיבחן. אם המספר יחרוג מ-
onfound_timeout_cnt , נדווח על כך
OnFound מיד לאחר מכן.
|
rssi_low_thresh |
אוקטט אחד |
תקף רק אם הערך של delivery_mode הוא on_found .[in dBm] חבילת המפרסם נחשבת כחבילת שלא מוצגת אם ערך ה-RSSI של החבילה שהתקבלה לא גבוה מהסף הנמוך של RSSI. |
onlost_timeout |
2 אוקטטים |
תקף רק אם הערך של delivery_mode הוא on_found .[באלפיות שנייה] אם מודעה לא מוצגת באופן רציף במשך פרק הזמן של lost_timeout , היא מדווחת
באופן מיידי שאבדה.
|
num_of_tracking_entries |
2 אוקטטים |
תקף רק אם הערך של delivery_mode הוא on_found .[count] המספר הכולל של המפרסמים שצריך לעקוב אחריהם בכל מסנן. |
ערכי RSSI חייבים להשתמש במשלים 2 כדי לייצג ערכים שליליים.
המארח יוכל להגדיר מספר מסננים עם APCF_Application_Address_type
שמוגדר ל-0x02 (לכל הכתובות של רשתות השידור) כדי לנהל שילובים שונים של מסננים.
סינון, קיבוץ ודיווח הם מושגים הקשורים זה לזה. כל
מודעה ותגובת סריקה קשורה יצטרכו לעבור את כל
המסננים, אחד אחרי השני. לכן, הפעולות שמתקבלות (delivery_mode
) קשורות באופן הדוק לסינון. מצבי ההעברה הם: report_immediately
, batch
ו-onFound
. הערך
OnLost
קשור ל-OnFound
, כלומר, יופיע אחרי OnFound
כשמאבדים אותו.
תהליך העיבוד הזה מתאר את המודל הרעיוני:
כאשר מתקבלת מסגרת של מודעה (או של תגובת סריקה), היא מוחלת על כל המסננים בסדר סידורי. מודעה יכולה לגרום לדיווח מיידי על סמך מסנן אחד וקיבוץ של אותם פריטים עקב פעולת סינון שונה.
ערכי סף של רמת RSSI (גבוהים ונמוכים) מאפשרים לקבוע מתי הפריים גלוי לעיבוד מסנן, גם כשחבילה תקינה מתקבלת בבקר. אם מצב ההעברה מוגדר באופן מיידי או באצווה, ה-RSSI של המסגרת מבוצע להמשך עיבוד של הבקר. לאפליקציות שונות יש צורך בהתנהגות שונה של דיווח ובקיבוץ. כך מספר אפליקציות יכולות לקבל דיווח ישיר ו/או קיבוץ תוצאות קושחה בו-זמנית. דוגמה לכך היא מקרה שבו סריקה בכמות גדולה פעילה מאפליקציה אחת, ובהמשך מונפקת סריקת LE רגילה על ידי אפליקציה אחרת. לפני שסריקה בכמות גדולה מתבצעת, המסגרת או האפליקציה מגדירים את המסננים המתאימים. מאוחר יותר, כשהאפליקציה השנייה תבצע סריקה רגילה, הקיבוץ הקודם ממשיך. עם זאת, בגלל הסריקה הרגילה, אפשר דומה להוספת מסנן null (יחד עם כל המסננים הקיימים) יחד עם פקודת סריקת LE. הפרמטרים של פקודת סריקת LE מקבלים קדימות כשהם פעילים. כשסריקת ה-LE הרגילה מושבתת, הבקר יחזור לסריקת אצווה קודמת, אם הייתה קיימת.
מצב ההעברה OnFound
מבוסס על מסננים שהוגדרו. שילוב
שמפעיל פעולה של מסנן כדי להצליח נחשב
לישות שצריך לעקוב אחריה בשביל onLost
. האירוע התואם הוא אירוע המשנה של מעקב
LE Advt.
המעבר של OnFound/OnLost
למסנן (אם הוא מופעל) ייראה כך:
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x01 - פרמטרים לסינון של קבוצת APCF |
APCF_Action |
אוקטט אחד | הדהוד של APCF_Action של הפקודה |
APCF_AvailableSpaces |
אוקטט אחד | מספר הערכים הזמינים בטבלת המסננים |
LE_APCF_Command: broadcast_address_sub_cmd
פקודת המשנה הזו משמשת להוספה או למחיקה של כתובת של מפרסם, או לניקוי רשימת הכתובות של המפרסם לצורך סינון על שבב.
Sub OCF: 0x02
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_Action |
אוקטט אחד |
0x00 – הוספה 0x01 – מחיקה 0x02 – ניקוי מחיקה תגרום למחיקת כתובת השידור שצוינה במסנן שצוין. ניקוי הפעולה ינקה את כל כתובות השידור במסנן שצוין. |
APCF_Filter_Index |
אוקטט אחד | אינדקס המסננים (0, max_filter-1 ) |
APCF_Broadcaster_Address |
6 אוקטט | כתובת מכשיר בגודל 6 בייטים להוספה לרשימת כתובות השידור או למחיקה שלה |
APCF_Application_Address_type |
אוקטט אחד |
0x00: ציבורי 0x01: אקראי 0x02: לא רלוונטי (התעלמות מסוג הכתובת) כדי לסנן דוחות פרסום לפי סוגים של כתובות זהות (0x02, 0x03). כדי לקבל דוחות פרסום עם סוגי הכתובות 0x02 ו-0x03, צריך להגדיר את השדה הזה כ-0x02: NA (התעלמות מסוג הכתובת). |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x02 - כתובת השדרן APCF |
APCF_Action |
אוקטט אחד | הדהוד של APCF_Action של הפקודה |
APCF_AvailableSpaces |
אוקטט אחד | מספר הרשומות בחינם שעדיין זמינות בטבלה 'כתובת השידור' |
LE_APCF_Command: service_uuid_sub_cmd
פקודת המשנה הזו משמשת להוספה או למחיקה של UUID של שירות, או לניקוי רשימת UUID של שירות לסינון על שבב.
Sub OCF: 0x03
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_Action |
אוקטט אחד |
0x00 – הוספה 0x01 – מחיקה 0x02 – ניקוי מחיקה תגרום למחיקת כתובת ה-UUID של השירות שצוינה במסנן שצוין. הפעולה הזו תגרום למחיקת כל מזהי UUID של השירות במסנן שצוין. |
APCF_Filter_Index |
אוקטט אחד | אינדקס המסננים (0, max_filter -1) |
APCF_UUID |
2,4,16 אוקטט | ה-UUID של השירות (בגרסת 16 סיביות, 32 ביט או 128 ביט) להוספה לרשימה או למחיקה ממנה. |
APCF_UUID_MASK |
2,4,16 אוקטט |
מסכת ה-UUID של השירות (16 סיביות, 32 ביט או 128 סיביות) שיש להוסיף לרשימה.
היא צריכה להיות באותו אורך כמו APCF_UUID.
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x03 - UUID של שירות APCF |
APCF_Action |
אוקטט אחד | הדהוד של APCF_Action של הפקודה |
APCF_AvailableSpaces |
אוקטט אחד | מספר הרשומות בחינם שעדיין זמינות בטבלה Service UUID |
LE_APCF_Command: requestation_uuid_sub_cmd
פקודת המשנה הזו משמשת להוספה או למחיקה של UUID של שידול, או לניקוי רשימת UUID של שידול לצורך סינון על שבב.
Sub OCF: 0x04
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_Action |
אוקטט אחד |
0x00 – הוספה 0x01 - מחיקה 0x02 - ניקוי מחיקה תגרום למחיקת כתובת ה-UUID של השידול במסנן שצוין. הפעולה 'ניקוי' תגרום למחיקת כל מזהי UUID של השידול במסנן שצוין. |
APCF_Filter_Index |
אוקטט אחד | אינדקס המסננים (0, max_filter -1) |
APCF_UUID |
2,4,16 אוקטט | ה-UUID של השידול (16 ביט, 32 ביט או 128 ביט) שצריך להוסיף לרשימה או למחוק אותה. |
APCF_UUID_MASK |
2,4,16 אוקטט |
מסכת ה-UUID של השידול (16 ביט, 32 ביט או 128 ביט) שצריך להוסיף לרשימה. האורך שלה צריך להיות זהה לזה של APCF_UUID .
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x04 – מזהה ייחודי אוניברסלי (UUID) של APCF |
APCF_Action |
אוקטט אחד | הדהוד של APCF_Action של הפקודה |
APCF_AvailableSpaces |
אוקטט אחד | מספר הרשומות ללא תשלום שעדיין זמינות בטבלת ה-UUID של השידול |
LE_APCF_Command: Local_name_sub_cmd
פקודת המשנה הזו משמשת להוספה או למחיקה של מחרוזת שם מקומית, או לניקוי רשימת מחרוזות השמות המקומית לסינון על שבב.
Sub OCF: 0x05
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_Action |
אוקטט אחד |
0x00 – הוספה 0x01 - מחיקה 0x02 – ניקוי מחיקה תגרום למחיקת מחרוזת השם המקומית שצוינה במסנן שצוין. הפעולה 'ניקוי' תגרום למחיקת כל מחרוזות השם של התמונות המקומיות במסנן שצוין. |
APCF_Filter_Index |
אוקטט אחד | אינדקס המסננים (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData |
גודל משתנה |
מחרוזת תווים עבור השם המקומי. הערות:
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x05 - שם מקומי של APCF |
APCF_Action |
אוקטט אחד | הדהוד של APCF_Action של הפקודה |
APCF_AvailableSpaces |
אוקטט אחד | מספר הרשומות בחינם שעדיין זמינות בטבלת השמות המקומיים |
LE_APCF_Command: manf_data_sub_cmd
פקודת המשנה הזו משמשת להוספה או למחיקה של מחרוזת נתונים של היצרן, או לניקוי רשימת מחרוזות הנתונים של היצרן לצורך סינון על שבב.
Sub OCF: 0x06
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_Action |
אוקטט אחד |
0x00 – הוספה 0x01 – מחיקה 0x02 – ניקוי מחיקה תגרום למחיקת מחרוזת נתוני היצרן שצוינה במסנן שצוין. הפעולה הזו תגרום למחיקת כל מחרוזות הנתונים של היצרן במסנן שצוין. |
APCF_Filter_Index |
אוקטט אחד | אינדקס מסננים (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData |
גודל משתנה |
מחרוזת תווים לנתוני היצרן. הערות:
|
APCF_ManData_Mask |
גודל משתנה |
מסכת נתוני הייצור שצריך להוסיף לרשימה. האורך שלה צריך להיות זהה לזה של APCF_LocName_or_ManData_or_SerData .
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x06 – נתוני יצרן של APCF |
APCF_Action |
אוקטט אחד | הדהוד של APCF_Action של הפקודה |
APCF_AvailableSpaces |
אוקטט אחד | מספר הרשומות בחינם שעדיין זמינות בטבלת נתוני היצרן |
LE_APCF_Command: service_data_sub_cmd
פקודת המשנה הזו משמשת להוספה או למחיקה של מחרוזת נתוני שירות, או לניקוי רשימת מחרוזות נתוני השירות לסינון על שבב.
Sub OCF: 0x07
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_Action |
אוקטט אחד |
0x00 – הוספה 0x01 – מחיקה 0x02 – ניקוי מחיקה תגרום למחיקת מחרוזת נתוני השירות שצוינה במסנן שצוין. הפעולה הזו תגרום למחיקת כל מחרוזות נתוני השירות במסנן שצוין. |
APCF_Filter_Index |
אוקטט אחד | אינדקס מסננים (0, max_filter -1) |
APCF_LocName_Mandata_or_SerData |
גודל משתנה |
מחרוזת תווים לנתוני השירות. הערות:
|
APCF_LocName_Mandata_or_SerData_Mask |
גודל משתנה |
מסיכת נתוני השירות שצריך להוסיף לרשימה. האורך שלה צריך להיות
זהה לזה של APCF_LocName_or_ManData_or_SerData.
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x07 - נתוני שירות של APCF |
APCF_Action |
אוקטט אחד | הדהוד של APCF_Action של הפקודה |
APCF_AvailableSpaces |
אוקטט אחד | מספר הרשומות בחינם שעדיין זמינות לטבלת נתוני השירות |
LE_APCF_Command: ad_type_sub_cmd
פקודת המשנה הזו משמשת להוספה או למחיקה של סוג מודעה, או לניקוי רשימת
סוגי AD לסינון על שבב. אפשר לבדוק באמצעות read_extended_features_sub_cmd
אם הפקודה הזו נתמכת או לא.
כשהערך של APCF_AD_DATA_Length
הוא 0, מסננים את APCF_AD_TYPE
בלי להשוות בין נתוני AD לבין מסכת נתוני AD.
אם אורך הנתונים של חבילת ה-ADV שהתקבלה חורג מ-AD_DATA_LENGTH
, צריך להשוות
רק את AD_DATA_LENGTH
הבייטים הראשונים של נתוני AD ולתעלם משאר הנתונים.
Sub OCF: 0x09
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
APCF_Action |
אוקטט אחד |
0x00 – הוספה 0x01 – מחיקה 0x02 – ניקוי מחיקה תגרום למחיקת סוג המודעה שצוין במסנן שצוין. ניקוי הבחירה יגרום למחיקת כל סוגי המודעות במסנן שצוין. |
APCF_Filter_Index |
אוקטט אחד | אינדקס מסננים (0, max_filter -1) |
APCF_AD_TYPE |
אוקטט אחד | סוג המודעה להוספה לרשימה או למחיקה ממנה. התעלמות כאשר APCF_Action הוא 0x02 (ניקוי) |
APCF_AD_DATA_Length |
אוקטט אחד |
0x00 – משמעותו 'ללא סינון של תוכן נתונים' התעלמות כשהערך של APCF_Action הוא 0x02 (ניקוי)
|
APCF_AD_DATA |
גודל משתנה |
גודל משתנה, לפי APCF_AD_DATA_Length מתעלמים כאשר APCF_Action הוא 0x02 (ניקוי) |
APCF_AD_DATA_MASK |
גודל משתנה |
גודל משתנה, לפי APCF_AD_DATA_Length מתעלמים כאשר APCF_Action הוא 0x02 (ניקוי)האורך צריך להיות זהה לזה של APCF_AD_DATA .
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0x09 – סוג מודעה APCF |
APCF_Action |
אוקטט אחד | הדהוד של APCF_Action של הפקודה |
APCF_AvailableSpaces |
אוקטט אחד | מספר הרשומות בחינם שעדיין זמינות בטבלה 'סוג מודעה' |
LE_APCF_Command: read_extended_features_sub_cmd
פקודת המשנה הזו משמשת לקריאת תכונות APCF מורחבות.
Sub OCF: 0xFF
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
לא רלוונטי | פרמטר הפקודה ריק. |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
APCF_opcode |
אוקטט אחד | 0xFF – APCF_Read_Extended_Features |
APCF_extended_features |
2 אוקטט |
יש תמיכה במסכות ביט לתכונות מורחבות:
ערך הביט
|
פקודת מידע על צריכת אנרגיה ופעילות של בקר
מטרת המידע הזה היא לאפשר לפונקציות גבוהות יותר של המערכת המארחת לנתח את סך הפעילויות בכל הרכיבים, כולל בקר ה-BT ומצב המאקרו שלו, בשילוב עם מה שקורה באפליקציות וב-framework. כדי לעשות את זה, צריך את הפרטים הבאים מסטאק ה-BT ומהבקר:
- סטאק BT: דיווח על המצב המאקרו-תפעולי הנוכחי של השלט רחוק
- קושחה: דיווח מידע על הפעילות ועל האנרגיה המצטברות
מצבי המאקרו של מקבץ מארח BT, כפי שנקבע ברמת המשתמש:
- לא פעיל: [סריקת דפים, LE advt, סריקת בירור, סריקת LE]
- סריקה: [החלפה/בירור/מנסה להתחבר]
- פעיל: [קישור של ACL מופעל, קישור SCO מתמשך, מצב sniff]
הפעילויות שהבקר עוקב אחריהן במהלך חייו הן זמן אישור והחזקה (Tx), זמן Rx, זמן ללא פעילות וצריכת האנרגיה הכוללת. הן יימחקו מהמארח.
LE_Get_Controller_Activity_Energy_Info
זו פקודה ספציפית לספק.
OCF: 0x159
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
לא רלוונטי | פרמטרים ריקים של פקודות |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
total_tx_time_ms |
4 אוקטטים | זמן ביצוע כולל |
total_rx_time_ms |
4 אוקטטים | זמן ביצוע כולל |
total_idle_time_ms |
4 אוקטטים | משך הזמן הכולל ללא פעילות (מצבים של צריכת חשמל נמוכה כשהם לא במצב שינה) |
total_energy_used |
4 אוקטטים | סה"כ אנרגיה בשימוש [מוצר של נוכחי (mA), מתח (V) וזמן (אלפיות שנייה)] |
פקודת LE מורחבות של הפרמטרים לסריקה
ניתן להשתמש בפקודה הזו כדי לאפשר חלון סריקה גדול יותר ומרווח זמן גדול יותר בבקר. לפי המפרט של BT Core 5.2, לחלון סריקה ולמרווח זמן יש מגבלת גבול עליון של 10.24 שניות, דבר שמגביל את מרווחי הסריקה הארוכים יותר מ-10.24 שניות.
חומר עזר על בסיס: BT Core 5.2 Specification, עמוד 2493 (LE Set Scan Parameters Command)
OCF: 0x15A
פרמטר הפקודה | גודל | המטרה |
---|---|---|
LE_Ex_Scan_Type |
אוקטט אחד |
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 |
אוקטט אחד |
0x00 – כתובת ציבורית של המכשיר (ברירת מחדל) 0x01 – כתובת אקראית של המכשיר |
LE_Ex_Scan_Filter_Policy |
0x00 – קבלת כל חבילות הפרסום (ברירת מחדל). המערכת תתעלם מחבילות פרסום מכוונות שלא מכוונות למכשיר הזה. 0x01 – התעלמות מחבילות מודעות ממכשירים שלא מופיעים ברשימה הלבנה בלבד. המערכת תתעלם מחבילות פרסום מכוון שלא ממוענות למכשיר הזה. |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
קבלת פקודה של מידע על תוצאות ניפוי באגים לנאמני מידע
המטרה של רכיב המידע הזה היא להשיג מידע על תוצאות ניפוי הבאגים של הבקר על ידי מארח, בפורמט בינארי, לצורך עיבוד וניתוח. כך עזרה לנפות באגים של בעיות בשטח ומספקת למהנדסים ערכת כלים לרישום מידע ביומן לצורך ניתוח נתונים. נאמן מידע יכול לספק את המידע כשהמארח מבקש זאת דרך האירוע (אירוע משנה של מידע על ניפוי באגים לנאמני מידע) או באופן עצמאי, לפי הצורך. שימושים לדוגמה יכולים להיות דיווח על מידע על מצב הקושחה, מידע על תמונת מצב של קריסה, פרטי רישום ביומן וכו'.
OCF: 0x15B
פרמטר של פקודה | גודל | המטרה |
---|---|---|
לא רלוונטי | רשימת פרמטרים של פקודות ריקה |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
תמיכה בייצוא מחומרה של A2DP
התכונה 'הפסקת טעינה' A2DP תומכת בהעלאת העומס של תהליך קידוד האודיו A2DP למעבד אודיו שמחובר לבקר של BT. שידור נתוני האודיו המקודד עובר ישירות ממעבד האודיו אל בקר BT ללא מעורבות של מארח ה-BT. מארח BT עדיין אחראי להגדרה ולבקרה של סשן A2DP. יש שתי גרסאות של הפקודות. הפקודות הקודמות עם Sub OCF 0x01-0x02 תומכות רק בקודקים בקוד פתוח. הגרסאות עם Sub-OCF 0x02-0x03 לא רלוונטיות לקודק שהוגדר.
OCF: 0x15D
התחלת ההעברה של A2DP (מדור קודם)
Sub OCF: 0x01
משתמשים בפקודה הזו גם כדי להגדיר את תהליך ה-Offload של A2DP וגם כדי להפעיל את הסטרימינג A2DP.
פרמטר של פקודה | גודל | המטרה |
---|---|---|
Codec |
4 אוקטטים |
ההגדרה של סוג ה-Codec 0x01 – SBC 0x02 – AAC 0x04 – APTX 0x08 – APTX HD 0x10 – LDAC |
Max_Latency |
2 אוקטטים | זמן אחזור מקסימלי מותר (באלפיות השנייה). ערך של אפס משבית את Flash. |
SCMS-T_Enable |
2 אוקטטים |
Octet 0: סימון שמאפשר הוספה של כותרת SCMS-T.
אוקטובר 1: הערך לכותרת SCMS-T, כשהיא מופעלת. |
Sampling_Frequency |
4 אוקטטים |
0x01 עד 44,100 Hz 0x02 עד 48,000 Hz 0x04 עד 88,200 Hz 0x08 עד 96,000 Hz |
Bits_Per_Sample |
אוקטט אחד |
0x01 עד 16 ביט לכל דגימה 0x02 עד 24 ביט לכל דגימה 0x04 עד 32 ביט לכל דגימה |
Channel_Mode |
אוקטט אחד |
0x01 – מונו 0x02 – סטריאו |
Encoded_Audio_Bitrate |
4 אוקטטים |
קצב העברת הנתונים של האודיו המקודד בסיביות לשנייה. 0x00000000 – קצב העברת הנתונים של האודיו לא צוין / unused. 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:
כדאי לעיין ברכיבי מידע ספציפיים של SBC Codec ב-A2DP גרסה 1.3. קודק AAC:
כדאי לעיין ברכיבי מידע ספציפיים של AAC Codec ב-A2DP v1.3 קודק LDAC:
Octet 0-3: מזהה ספק
Octet 4-5: מזהה קודק
באוקטובר
Octet 7: מצב ערוץ LDAC 8-31 באוקטובר: מקום שמור כל שאר הקודקים: אוקטובר 0-31: מקום שמור |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Sub_Opcode |
אוקטט אחד | 0x01 - התחלת ההעברה של A2DP |
התחלת העברה של A2DP
Sub OCF: 0x03
משתמשים בפקודה הזו גם כדי להגדיר את תהליך ה-Offload של A2DP וגם כדי להפעיל את הסטרימינג A2DP.
פרמטר של פקודה | גודל | המטרה |
---|---|---|
Connection Handle |
2 אוקטטים | נקודת האחיזה של חיבור HCI הפעיל |
L2CAP_Channel_ID |
2 אוקטטים | מזהה של ערוץ L2CAP שנפתח לסטרימינג A2DP |
Data_Path_Direction |
אוקטט אחד |
0x00 – פלט (מקור/מיזוג של AVDTP) 0x01 – קלט (Sink/פיצול של AVDTP) |
Peer_MTU |
2 אוקטטים | הגודל המקסימלי של חבילות L2CAP, במשא ומתן עם עמית. |
CP_Enable_SCMS_T |
אוקטט אחד |
0x00 – השבתת כותרת הגנה על תוכן של SCMS-T 0x01 - הפעלת כותרת להגנה על תוכן של SCMS-T |
CP_Header_SCMS_T |
אוקטט אחד |
כשכותרת ההגנה על תוכן של SCMS-T מופעלת (CP_SCMS_T_Enable מוגדרת לערך 0x01), מגדירה את ערך הכותרת שקודם לתוכן האודיו (מידע נוסף זמין ב-A2DP, סעיף 3.2.1-2) כפי שהוגדר על ידי Bluetooth Assigned Numbers, סעיף
6.3.2.המערכת מתעלמת מהמדיניות הזו אם ההגנה על תוכן של SCMS-T לא מופעלת. |
Vendor_Specific_Parameters_Length |
אוקטט אחד |
אורך הפרמטרים הספציפיים לספק, בטווח שבין 0 ל-128. אם לא סופקו פרמטרים נוספים, המערכת משתמשת בערך 0. |
Vendor_Specific_Parameters |
0-128 אוקטטים |
הפרמטרים הספציפיים לספק שסופקו על ידי Bluetooth Audio HAL,
CodecParameters.vendorSpecificParameters[] .
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Sub_Opcode |
אוקטט אחד | 0x03 - התחלת ההעברה של A2DP |
הפסקת ההעברה של A2DP (מדור קודם)
Sub OCF: 0x02
הפקודה הזו משמשת כדי להפסיק את הסטרימינג של A2DP Offload.
פרמטר של פקודה | גודל | המטרה |
---|---|---|
לא רלוונטי | רשימת הפרמטרים של הפקודות ריקה. |
לא הוגדרו פרמטרים לפקודה הזו.
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Sub_Opcode |
אוקטט אחד | 0x02 - הפסקת העומס של A2DP |
הפסקת העברת A2DP
Sub OCF: 0x04
הפקודה הזו משמשת כדי להפסיק את הסטרימינג של A2DP Offload.
פרמטר של פקודה | גודל | המטרה |
---|---|---|
Connection Handle |
2 אוקטטים | נקודת האחיזה של חיבור HCI הפעיל |
L2CAP_Channel_ID |
2 אוקטטים | מזהה של ערוץ L2CAP שנפתח לסטרימינג A2DP |
Data_Path_Direction |
אוקטט אחד |
0x00 – פלט (מקור/מיזוג של AVDTP) 0x01 – קלט (Sink/פיצול של AVDTP) |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Sub_Opcode |
אוקטט אחד | 0x04 - הפסקת העומס של A2DP |
הפקודה 'דוח איכות Bluetooth'
תכונת הפקודה 'דוח איכות של BT' מפעילה את המנגנון בבקר ה-Bluetooth כדי לדווח למארח על אירועי איכות Bluetooth. אפשר להפעיל ארבע אפשרויות:
- מצב מעקב האיכות: הבקר שולח מדי פעם למארח אירוע משנה של BQR שקשור לאיכות הקישור.
- מתקרב ל-LSTO: אם לא התקבלו מנות ממכשיר ה-BT המחובר במשך יותר ממחצית מערך הזמן הקצוב לתפוגה של פיקוח על קישורים (LSTO), השלט רחוק ידווח למארח על אירוע LSTO שמתקרב.
- אודיו קטוע ב-A2DP: כשהבקר מזהה גורמים שגורמים לאודיו קטוע, השלט רחוק מדווח למארח על אירוע קטוע אודיו A2DP.
- (ה) SCO קטוע קול: כשהבקר מזהה גורמים שגורמים לקול קטוע, השלט רחוק מדווח למארח על אירוע קטוע קול (e) SCO.
- דלקת בסיסית: האירוע הזה נשלח על ידי השלט רחוק לסטאק כשה-HAL או הבקר נתקלים בשגיאה חמורה וצריך להפעיל מחדש את ה-Bluetooth.
- מעקב אחר הודעות LMP/LL: הבקר שולח למארח את הודעת ה-LMP/LL שבה מתבצעת לחיצת יד עם המכשיר המרוחק.
- מעקב אחר תזמון Multi-profile/Coex: הבקר שולח את פרטי התזמון שלו לגבי טיפול במספר פרופילים של Bluetooth ודו-קיום אלחוטי בתדר 2.4 Ghz אל המארח.
- מנגנון מידע על ניפוי באגים לנאמני מידע: כשהאפשרות הזו מופעלת, הבקר יכול לדווח באופן עצמאי למארח על פרטי הרישום של ניפוי הבאגים באמצעות אירוע המשנה של פרטי ניפוי הבאגים של הבקר.
- LE Audio קטוע: כשהבקר מזהה גורמים שגורמים לאודיו קטוע, השלט רחוק מדווח למארח על אירוע LE Audio קטוע.
-
מצב 'נתונים סטטיסטיים מתקדמים של תדרי רדיו': הבקר מדווח למארח על הנתונים הסטטיסטיים של ה-RF, בהתאם לתמיכה בשני תרחישים לדוגמה של דוחות:
- דוחות תקופתיים
- טריגרים של אירועים (טריגרים של אירועים מסוג 'התחלת סטרימינג/עצירה' ובעקבות זאת איכות הקישור).
- BQR_Report_Action של הפקודה בדוח איכות Bluetooth: המארח יכול להשתמש בפקודת ה-HCI הזו כדי לקבל שאילתה חד-פעמית עבור מצב ניטור איכות, מצב ניטור צריכת אנרגיה או מצב מתקדם של נתוני תדרי רדיו.
OCF: 0x15E
פרמטר של פקודה | גודל | המטרה |
---|---|---|
BQR_Report_Action |
אוקטט אחד |
פעולה של הוספה או מחיקה של דיווח על אירועי איכות שהוגדרו
בפרמטר 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 .
Bit 0 ~ 31: שמור. |
BQR_Vendor_Specific_Trace_Mask |
4 אוקטטים |
מסכות ביט עבור דיווח המעקב הספציפי לספק שנבחר. הפרמטר הזה תקף רק כשמגדירים ביט 31 של BQR_Quality_Event_Mask .
Bit 0 ~ 31: שמור. |
Report_interval_multiple |
4 אוקטטים |
המכפיל של BQR_Minimum_Report_Interval . כשהערך הזה >= 1,
אינטרוול הדוח של BQR תואם לפורמט מרווח בין דוחות BQR = BQR_Minimum_Report_Interval x Report_interval_number. אסור לקושחת הבקר לדווח על האירוע הבא בפרק הזמן שהוגדר. הגדרת המרווח מיועדת ספציפית לאירועי האיכות שנוספו.
יחידה: ms BQR_Report_Interval גדולה מהיכולת של השלט הרחוק, השלט הרחוק צריך להחזיר את הזמן המקסימלי של BQR_Report_Interval בסיום הפקודה.
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Current_Quality_Event_Mask |
4 אוקטטים |
מציין את הגדרת המסכה הנוכחית של הביט. קטע 0: מצב מעקב האיכות מופעל. Bit 1: מופעל דיווח על אירועים של LSTO. Bit 2: מופעל דיווח על אירועים של אודיו קטוע ב-A2DP. Bit 3: (ה) התכונה 'דיווח על אירועים של קטוע קול' מופעלת ב-SCO. קטע 4: הדיווח על אירועים של דלקת בסיסית (root) מופעל. קטע 5: מצב ניטור האנרגיה מופעל. Bit 6: מופעל דיווח על אירועים קטועים של LE audio. שלב 7: אירוע כשל בחיבור. קטע 8: מוגדר להפעלת טריגר האירועים של מצב Advance RFStation. קטע 9: מגדירים מדי פעם להפעלת הדוח 'נתונים סטטיסטיים מתקדמים של תדרי רדיו'. Bit 10 ~ 14: שמור. שלב 15: מופעל דיווח על אירועי איכות ספציפיים לספק. קטע 16: מעקב הודעות LMP/LL מופעל. Bit 17: מעקב Bluetooth Multi-link/Coex מופעל. Bit 18: מנגנון המידע על ניפוי באגים לנאמני מידע מופעל. Bit 19 ~ 30: שמור. Bit 31: מופעל מעקב ספציפי לספק. |
Current_Vendor_Specific_Quality_Event_Mask |
4 אוקטטים | מציין את הגדרת המסכה הנוכחית של הביט. |
Current_Vendor_Specific_Trace_Mask |
4 אוקטטים | מציין את הגדרת המסכה הנוכחית של הביט. |
BQR_Report_interval |
4 אוקטטים | מציין את הגדרת המסכה הנוכחית של הביט. |
Current_Vendor_Specific_Trace_Mask |
4 אוקטטים |
ההגדרה של BQR_Report_interval . הוא צריך להיות הערך המינימלי בין
BQR_Minimum_Report_Interval * Report_interval_Multiple או מרווח התמיכה המקסימלי של
השלט רחוק. |
פקודה דינמית של מאגר האודיו
מאגר האודיו הדינמי מפחית את הקריסה של האודיו על ידי שינוי הגודל של מאגר הנתונים הזמני של האודיו בבקר ה-Bluetooth בהתאם לתרחישים שונים.
OCF: 0x15F
איך להפעיל את האפשרות להפסקה של מאגר הנתונים הזמני של האודיו
Sub OCF: 0x01
משתמשים בפקודה הזו כדי לקבל מבקר ה-Bluetooth את היכולת להמתין למאגר הנתונים הזמני של האודיו.
פרמטר של פקודה | גודל | המטרה |
---|---|---|
לא רלוונטי | רשימת הפרמטרים של הפקודה ריקה |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Dynamic_Audio_Buffer_opcode |
אוקטט אחד | 0x01 – קבלת זמן למאגר הנתונים הזמני של האודיו |
Audio_Codec_Type_Supported |
4 אוקטטים |
מסכות ביט לסוגי קודק הנתמכים ביט 0 – SBC ביט 1 – AAC ביט 2 – APTX Bit 3 – APTX HD Bit 4 – LDAC ביט 5-31 שמור |
Audio_Codec_Buffer_Default_Time_For_Bit_0 |
2 אוקטטים |
זמן ברירת מחדל למאגר נתונים של סוג ה-codec ביט 0 שצוין
ב-Audio_Codec_Type_Supported. הערך הזה יהיה 0 אם סוג הקודק של Bit 0 לא נתמך. יחידה: אלפיות השנייה |
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 |
2 אוקטטים |
הזמן המרבי למאגר הנתונים הזמני של סוג ה-codec ביט 0 שצוין
ב-Audio_Codec_Type_Supported. הערך הזה יהיה 0 אם סוג הקודק של Bit 0 לא נתמך. יחידה: אלפיות השנייה |
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 |
2 אוקטטים |
זמן מאגר נתונים זמני מינימלי מסוג קודק Bit 0 שצוין
ב-Audio_Codec_Type_Supported. הערך הזה יהיה 0 אם סוג הקודק של Bit 0 לא נתמך. יחידה: אלפיות השנייה |
Audio_Codec_Buffer_Default_Time_For_Bit_1 |
2 אוקטטים |
זמן ברירת המחדל למאגר הנתונים של סוג ה-codec ביט 1 שצוין ב-Audio_Codec_Type_Supported. אם אין תמיכה בסוג הקודק של Bit 1, הערך הזה יהיה 0. יחידה: אלפיות השנייה |
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 |
2 אוקטטים |
הזמן המקסימלי למאגר הנתונים הזמני של סוג ה-codec ביט 1 שצוין
ב-Audio_Codec_Type_Supported. אם אין תמיכה בסוג הקודק של Bit 1, הערך הזה יהיה 0. יחידה: אלפיות השנייה |
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 |
2 אוקטטים |
זמן מאגר נתונים זמני מינימלי של סוג ה-codec ביט 1 שצוין
ב-Audio_Codec_Type_Supported. אם אין תמיכה בסוג הקודק של Bit 1, הערך הזה יהיה 0. יחידה: אלפיות השנייה |
...... | ...... | ...... |
Audio_Codec_Buffer_Default_Time_For_Bit_31 |
2 אוקטטים |
זמן ברירת המחדל למאגר הנתונים של סוג ה-codec של ביט 31 שצוין ב-Audio_Codec_Type_Supported. הערך הזה יהיה 0 אם סוג הקודק של Bit 31 לא נתמך. יחידה: אלפיות השנייה |
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 |
2 אוקטטים |
הזמן המרבי למאגר הנתונים הזמני של סוג הקודק Bit 31 שצוין
ב-Audio_Codec_Type_Supported. הערך הזה יהיה 0 אם סוג הקודק של Bit 31 לא נתמך. יחידה: אלפיות השנייה |
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 |
2 אוקטטים |
זמן מאגר נתונים זמני מינימלי של סוג ה-codec של ביט 31 שצוין
ב-Audio_Codec_Type_Supported. הערך הזה יהיה 0 אם סוג הקודק של Bit 31 לא נתמך. יחידה: אלפיות השנייה |
הגדרת הזמן למאגר הנתונים הזמני של האודיו
Sub OCF: 0x02
משתמשים בפקודה הזו כדי להגדיר את הזמן למאגר הנתונים הזמני של האודיו לבקר ה-Bluetooth.
פרמטר של פקודה | גודל | המטרה |
---|---|---|
Audio_Codec_Buffer_Time |
2 אוקטטים |
נדרש זמן למאגר הנתונים של האודיו עבור ה-codec הנוכחי שנמצא בשימוש. יחידה: ms |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Dynamic_Audio_Buffer_opcode |
אוקטט אחד | 0x02 - הגדרת זמן למאגר הנתונים של האודיו |
Audio_Codec_Buffer_Time |
2 אוקטטים |
הזמן הנוכחי למאגר הנתונים הזמני של האודיו בבקר Bluetooth. יחידה: אלפיות השנייה |
אירוע HCI (ספציפי לספק)
במקרים מסוימים נדרשים אירועי HCI ספציפיים לספק. יש לעיין באיור 5.4 בעמוד 1897 במפרט של BT Core 5.2. פרמטר של אירוע 0 תמיד יכיל את הקוד של אירוע המשנה הראשון, שלפיו המערכת מפענחת את שאר אירוע ה-HCI.
פרמטר של אירוע | גודל | המטרה |
---|---|---|
HCI_vendor_specific_event_code |
אוקטט אחד | 0xFF |
sub_event_code |
אוקטט אחד | קוד אירוע משנה יהיה בגודל 18 תווים, הבייט שמופיע מיד אחרי 'אורך פרמטר' בחבילת האירועים HCI. |
אירוע משנה של חריגה מסף האחסון
האירוע הזה מצביע על כך שסף האחסון נפרץ.
קוד אירוע משנה = 0x54
פרמטר של אירוע משנה | גודל | המטרה |
---|---|---|
ללא |
אירוע משנה של שינוי מצב הפרסום ב-LE
האירוע הזה מציין שהמצב של מופע פרסום השתנה. בשלב הזה, האירוע הזה משמש רק כדי לציין איזה מופע פרסום הופסק כתוצאה מחיבור.
קוד אירוע משנה = 0x55
פרמטר של אירוע משנה | גודל | המטרה |
---|---|---|
Advertising_instance |
אוקטט אחד |
זיהוי של מכונת הפרסום הספציפית הערכים החוקיים הם 0 עד max_advt_instances -1
|
State_Change_Reason |
אוקטט אחד | 0x00: החיבור התקבל |
Connection_handle |
2 אוקטטים |
זיהוי החיבור שגרם להשבתת המכונה advt (0xFFFF אם לא חוקי)
|
אירוע משנה של מעקב אחר מודעה רספונסיבית לרשת החיפוש (LE)
האירוע הזה מציין מתי מפרסם נמצא או אבד.
קוד אירוע משנה = 0x56
פרמטר של אירוע משנה | גודל | המטרה |
---|---|---|
APCF_Filter_Index |
אוקטט אחד | אינדקס מסננים (0, max_filter -1) |
Advertiser_State |
אוקטט אחד |
0x00: המפרסם נמצא 0x01: המפרסם איבד |
Advt_Info_Present |
אוקטט אחד |
0x00: פרטי המפרסם (Advt_Info ) קיימים0x01: פרטי המפרסם ( Advt_Info ) לא קיימים
|
Advertiser_Address |
6 אוקטטים | כתובת ציבורית או אקראית |
Advertiser_Address_Type |
אוקטט אחד |
0x00: כתובת ציבורית 0x01: כתובת אקראית |
Advt_Info |
Tx_Pwr[0] : 8 octetRSSI[0] : 1 octetTimestamp[0] : 2 octetAdv packet_len[0] : 1 octetAdv_packet[0] : Adv_packet_len octetScan_data_resp_len[0] :1 octetScan_data_resp[0] Scan_data_resp
|
אירוע משנה של פרטי ניפוי באגים לנאמני מידע
האירוע הזה משמש נאמן מידע כדי לספק למארח מידע בינארי על תוצאות ניפוי הבאגים.
קוד אירוע משנה = 0x57
פרמטר של אירוע משנה | גודל | המטרה |
---|---|---|
debug_block_byte_offset_start |
2 אוקטטים | קיזוז בלוק בייט של ניפוי באגים מההתחלה |
last_block |
אוקטט אחד |
0x00: קיימים יותר נתוני ניפוי באגים 0x01: בלוק בינארי אחרון; אין יותר נתוני ניפוי באגים |
cur_pay_load_sz |
2 אוקטטים | גודל בלוק בינארי באירוע הנוכחי |
Debug_Data |
משתנה | נתוני ניפוי באגים של cur_payload_sz |
אירוע משנה של דוח האיכות של Bluetooth
האירוע הזה מציין אחת מהאפשרויות הבאות: התרחש אירוע באיכות Bluetooth, הבקר העלה את מעקב ההודעות LMP/LL ואת מעקב התזמון של Bluetooth Multi-link/Coex או נתוני המידע על ניפוי הבאגים של הבקר שהושלם.
קוד אירוע משנה = 0x58 [איכות_דוח_Id = 0x01 ~ 0x04, אירוע קשור לאיכות קישור]
פרמטר של אירוע משנה | גודל | המטרה |
---|---|---|
Quality_Report_Id |
אוקטט אחד |
0x01: דיווח איכותי במצב המעקב. 0x02: מתקרב ל-LSTO. 0x03: אודיו קטוע A2DP. 0x04: (e)SCO קטוע. 0x05 ~ 0x06: שמור. 0x07: LE audio קטוע. 0x08: החיבור נכשל. 0x09 ~ 0xFF: שמור. |
Packet_Types |
אוקטט אחד |
0x01: ID 0x02: NULL 0x03: POLL 0x04: FHS 0x05: HV1 0x06: HV2 0x07: HV3 0x08: DV 0x04: FHS 0x05: HV1 0x06: HV2 0x07: HV3 |
Connection_Handle |
2 אוקטטים | נקודת אחיזה של חיבור ACL/(e)SCO/ISO. |
Connection_Role |
אוקטט אחד |
מבצע את התפקיד של החיבור. 0x00: מרכז 0x01: ציוד היקפי 0x02 ~ 0xFF: שמור. |
TX_Power_Level |
אוקטט אחד |
רמת עוצמת השידור הנוכחית של Connection_Handle שצוינה.
הערך הזה יהיה זהה לתגובת הבקר לפקודה HCI_Read_Transmit_Power_Level HCI. |
RSSI |
אוקטט אחד |
[ב-dBm]
ערך המזהה של עוצמת האות (RSSI) שהתקבל ל-Connection_Handle שצוין. |
SNR |
אוקטט אחד |
[ב-dB]
ערך 'יחס אות לרעש' (SNR) ב-Connection_Handle שצוין. |
Unused_AFH_Channel_Count |
אוקטט אחד |
מציין את מספר הערוצים שלא נמצאים בשימוש ב-AFH_channel_map. 0x4F ~ 0xFF: שמור. |
AFH_Select_Unideal_Channel_Count |
אוקטט אחד |
מציין את מספר הערוצים שהאיכות שלהם נפגעה והאיכות
גרועה, אבל הם עדיין נבחרים ל-AFH. מספר הערוצים המינימלי שמותר לפי מפרט Bluetooth הוא 20, כך שגם אם כל 79 הערוצים משובשים והאיכות שלהם גרועה, הבקר עדיין צריך לבחור לפחות 20 ערוצים ל-AFH. |
LSTO |
2 אוקטטים |
ההגדרה הנוכחית של הזמן הקצוב לתפוגה של פיקוח על קישורים. זמן = N * 0.625 אלפיות השנייה טווח זמן: 0.625 אלפיות השנייה עד 40.9 שניות |
Connection_Piconet_Clock |
4 אוקטטים |
שעון Piconet של Connection_Handle שצוין. הערך הזה יהיה זהה לתגובת הבקר לפקודת HCI_Read_Clock HCI עם הפרמטר 'Happy_Clock' של 0x01 (שעון Piconet). יחידה: N * 0.3125 אלפיות השנייה (שעון Bluetooth אחד) |
Retransmission_Count |
4 אוקטטים |
מספר השידורים החוזרים מאז האירוע האחרון. המספר הזה יאופס אחרי הדיווח למארח. |
No_RX_Count |
4 אוקטטים |
אין ספירת RX מאז האירוע האחרון. המספר גדל אם לא מתקבלת חבילה במשבצת הזמן המתוזמנת או אם החבילה שהתקבלה פגומה. המספר הזה יאופס אחרי הדיווח למארח. |
NAK_Count |
4 אוקטטים |
מספר NAK (אישור שלילי) מאז האירוע האחרון. המספר הזה יאופס אחרי הדיווח למארח. |
Last_TX_ACK_Timestamp |
4 אוקטטים |
חותמת הזמן של TX ACK האחרון. הוא מבוסס על שעון ה-Bluetooth של
piconet Central (CLK). יחידה: N * 0.3125 אלפיות השנייה (שעון Bluetooth אחד) |
Flow_Off_Count |
4 אוקטטים |
מספר הפעמים שנאמן המידע קיבל פונקציית זרימה (STOP) מאז
האירוע האחרון. המספר הזה יאופס אחרי הדיווח למארח. |
Last_Flow_On_Timestamp |
4 אוקטטים |
חותמת הזמן של הזרימה האחרונה (GO). הוא מבוסס על שעון ה-Bluetooth של
piconet Central (CLK). יחידה: N * 0.3125 אלפיות השנייה (שעון Bluetooth אחד) |
Buffer_Overflow_Bytes |
4 אוקטטים |
[בבייט]
ספירת הגלישה של מאגר הנתונים הזמני מאז האירוע האחרון. |
Buffer_Underflow_Bytes |
4 אוקטטים |
[בבייט]
מספר הסשנים של מאגר הנתונים הזמני מאז האירוע האחרון. |
bdaddr |
6 אוקטטים | כתובת המכשיר המרוחק |
cal_failed_item_count |
אוקטט אחד | מספר הפריטים שנכשלו בכיול |
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 אוקטטים |
מספר החבילות הכפולות (שידור חוזר) שהתקבלו מאז האירוע האחרון. המספר הזה מתאפס אחרי הדיווח למארח. |
RX_Unreceived_Packets |
4 אוקטטים |
מספר המנות שלא התקבלו זהה לפרמטר של הפקודה LE READ ISO Link Quality (ראו גרסה 5.4 של מפרט הליבה של Bluetooth). מקורות הנתונים המשויכים הם CIS ו-BIS. כשערך הגדלה הזה גדל, שכבת הקישור לא מקבלת מטען ייעודי (payload) ספציפי בנקודת הטעינה שלה (ב-CIS) או בסוף האירוע שאליו הוא משויך (ב-BIS; ראו מפרט ליבה של Bluetooth גרסה 5.4 כרך 6 חלק ב', סעיף 4.4.6.6). |
Coex_Info_Mask |
2 אוקטטים |
Bit 0 – CoexInvolvement: מוגדר כדי לציין שיש חשד שפעילויות Coex מעורבות
כשהדוח הזה נוצר (לדוגמה, חיתוך A2DP ו-LSTO מסוג גישה). Bit 1 – רדיו WL 2G פעיל: מוגדר כדי לציין רדיו WLAN 2G פעיל. ביט 2 – WL 2G מחובר: מגדירים לציין שרדיו WLAN 2G מחובר ופעיל. Bit 3 – רדיו WL 5G/6G פעיל: מוגדר לציין שרדיו WLAN 5G/6G פעיל. Bit 4-15 – שמור |
פרמטר ספציפי לספק | (אורך כולל של הפרמטר - TBD) * אוקטטים | כדי שספק הנאמן מידע יוכל לקבל פרמטרים נוספים שספציפיים לספק. |
קוד אירוע משני = 0x58 [איכות_דוח_Id = 0x05, אירוע דלקת בסיסי]
האירוע הזה מצביע על כך ש-Bluetooth HAL או הבקר נתקלו בשגיאה חמורה ויש צורך בסטאק Bluetooth כדי לתעד את המצב הזה ולהפעיל מחדש. הבקר חייב לשלוח Root_Inflammation_Event למקבץ Bluetooth לפני שליחת המקטע הראשון של אירועי המידע על ניפוי הבאגים בכל מקרה.
הפרמטר Error_Code מכיל קוד שגיאה שדווח מ-HAL/Controller, 0 אם מדובר בשגיאה ספציפית לספק של ערכת שבבים. הערך Vendor_specific_Error_Code' מכיל קוד שגיאה ספציפי לספק של ערכת שבבים מ-HAL/Controller. הערך צריך להיות 0 אם הפרמטר Error_Code אינו 0. הפרמטרים Error_Code ו-Vendor_specific_Error_Code לא יכולים להיות 0.
פרמטר של אירוע משנה | גודל | המטרה |
---|---|---|
Quality_Report_Id |
אוקטט אחד |
0x00 ~ 0x04: שמור. 0x05: דלקת שורש 0x06 ~ 0xFF: שמור. |
Error_Code |
אוקטט אחד |
0x00: מצורף קוד שגיאה ספציפי לספק ערכת שבבים. 0x01 ~ 0xFF: התרחש כשל בבקר. רשימה של קודי שגיאה ותיאורים מופיעה במפרט Bluetooth [Vol 2] חלק D, קודי שגיאה. |
Vendor_Specific_Error_Code |
אוקטט אחד |
0x00: לא נכלל קוד שגיאה ספציפי לספק ערכת שבבים. 0x01 ~ 0xFF: קוד שגיאה ספציפי לספק של ערכת שבבים. |
פרמטר ספציפי לספק | (אורך הפרמטר הכולל – 4) * אוקטטים | כדי שספק הנאמן מידע יוכל לקבל פרמטרים נוספים שספציפיים לספק. |
קוד אירוע משנה = 0x58 [quality_Report_Id = 0x11 ~ 0x13, אירוע קשור של Log Dump]
פרמטר של אירוע משנה | גודל | המטרה |
---|---|---|
Quality_Report_Id |
אוקטט אחד |
0x00 ~ 0x10: שמור. 0x11: מעקב הודעות LMP/LL. 0x12: מעקב Bluetooth מרובה-קישורים/Coex. 0x13: תמונת מצב של מידע על ניפוי באגים לנאמני מידע. 0x14 ~ 0xFF: שמור. |
Connection_Handle |
2 אוקטטים | נקודת אחיזה לחיבור. |
פרמטר ספציפי לספק | (אורך הפרמטר הכולל – 4) * אוקטטים | פורמט ספציפי לספק של מעקב הודעות LMP, מעקב תזמון Bluetooth Multi-link/Coex וקובץ נתונים של מידע על ניפוי באגים לנאמני מידע. |
תמיכה במפרסמים מרובים
אלה מטרות התמיכה במפרסמים מרובים:
-
יכולת לתמוך במספר מודעות
(
max_advt_instances
) - יכולות שידור שונות שמאפשרות טווח מגוון
- תוכן פרסום שונה
- תשובה אישית לכל מפרסם
- פרטיות (לא ניתנת למעקב) לכל מפרסם
- חיבור
כדי שהמפרט הזה יהיה קרוב לתקנים הקיימים, הפקודות הבאות שספציפיות לספק ניתנות. הם נגזרים ממפרט Bluetooth Core 4.1.
LE_Multi_Advt_Command
OCF: 0x154
פרמטר של פקודה | גודל | המטרה |
---|---|---|
Multi_advt_opcode |
אוקטט אחד |
0x01 - Set_Advt_Param_Multi_Sub_Cmd 0x02 - Set_Advt_Data_Multi_Sub_Cmd 0x03 - Set_Scan_Resp_Data_Multi_Sub_Cmd 0x04 - Set_Random_Addr_Multi_Sub_Cmd 0x05 - Set_Advt_Enable_Multi_Sub_Cmd
|
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Multi_advt_opcode |
אוקטט אחד |
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 Specification, דף 964 (LE Set Advertising Parameter Command)
Sub OCF: 0x01
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
Advertising_Interval_Min |
לכל מפרט | לכל מפרט |
Advertising_Interval_Max |
לכל מפרט | לכל מפרט |
Advertising_Type |
לכל מפרט | לכל מפרט |
Own_Address_Type |
לכל מפרט | לכל מפרט |
Own_Address |
לכל מפרט | לכל מפרט |
Direct_Address_Type |
לכל מפרט | לכל מפרט |
Direct_Address |
לכל מפרט | לכל מפרט |
Advertising_Channel_Map |
לכל מפרט | לכל מפרט |
Adverstising_Filter_Policy |
לכל מפרט | לכל מפרט |
Advertising_Instance |
אוקטט אחד | מציינת את יישום הפרמטרים שלמעלה על מופע מסוים |
Tx_power |
אוקטט אחד |
Transmit_Power יחידה – ב-dBm (מספר שלם חתום) טווח (-70 עד +20) |
הפרמטר Own_Address
יכול להיות כתובת בהגדרת המארח
בזמן ההגדרה של מופע הפרסום מרובה. כך
תהיה אפשרות לקבל כתובת פרטית בזמן
השידור של האות הראשון. הפרסום במכונה מסוימת יימשך
ללא קשר לחיבור. סטאק ה-BT של המארח יכול להריץ פקודה
להפעלת מודעה במכונה, אחרי החיבור.
אירוע CommandComplete ייווצר לפקודה הזו כפי שצוין במפרט Bluetooth Core 4.1, לפי הפקודה שלמעלה. נאמן המידע יגיב
עם קוד שלא יצליח (פרמטר לא חוקי) אם
מופע הפרסום או הפרמטרים Tx_Power
לא חוקיים.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Multi_advt_opcode |
אוקטט אחד | 0x01 [Set_Advt_Param_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd
סימוכין בסיסיים: Bluetooth Core 4.1 Specification, דף 969 (LE Set Advertising Data Command)
Sub OCF: 0x02
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
Advertising_Data_Length |
לכל מפרט | לכל מפרט |
Advertising_Data |
לכל מפרט | לכל מפרט |
Advertising_Instance |
אוקטט אחד | מציינת את יישום הפרמטרים שלמעלה על מופע מסוים |
אירוע CommandComplete ייווצר לפקודה הזו כפי שצוין במפרט Bluetooth Core 4.1, לפי הפקודה שלמעלה. נאמן המידע יגיב
עם קוד שלא יצליח אם מכונת
הפרסום או הפרמטרים Tx_Power
לא חוקיים.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Multi_advt_opcode |
אוקטט אחד | 0x02 [Set_Advt_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd
חומר עזר בסיסי: Bluetooth Core 4.1 Specification, עמוד 970 (LE Set Scan Response Data Command)
Sub OCF: 0x03
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
Scan_Response_Data_Length |
לכל מפרט | לכל מפרט |
Scan_Response_Data |
לכל מפרט | לכל מפרט |
Advertising_Instance |
אוקטט אחד | מציינת את יישום הפרמטרים שלמעלה על מופע מסוים |
אירוע CommandComplete ייווצר לפקודה הזו כפי שצוין במפרט Bluetooth Core 4.1, לפי הפקודה שלמעלה. נאמן המידע
ישלח תגובה עם קוד שלא יצליח (פרמטר לא חוקי) אם
מופע הפרסום או הפרמטרים Tx_Power
לא תקינים.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Multi_advt_opcode |
אוקטט אחד | 0x03 [Set_Scan_Resp_Data_Multi_Sub_Cmd] |
LE_Multi_Advt_Command: Set_Random_Addr_Multi_Sub_Cmd
סימוכין בסיסיים: Bluetooth Core 4.1 Specification, עמוד 963 (LE Set Random Address Command)
Sub OCF: 0x04
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
כתובת אקראית | לכל מפרט | לכל מפרט |
Advertising_Instance |
אוקטט אחד | מציינת את יישום הפרמטרים שלמעלה על מופע מסוים |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Multi_advt_opcode |
אוקטט אחד | 0x04 [Set_Random_Addr_Multi_Sub_Cmd] ] |
LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd
חומר עזר בסיסי: Bluetooth Core 4.1 Specification, דף 971 (LE Set Publish Enable Command in אותו מפרט ליבה)
OCF: 0x05
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
Advertising_Enable |
אוקטט אחד | הערך 1 פירושו הפעלה. כל ערך אחר פירושו השבתה. |
Advertising_Instance |
אוקטט אחד | מציינת מהם הפרמטרים שלמעלה חלים על מופע מסוים. מכונה 0 היא מכונה רגילה של HCI. |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Multi_advt_opcode |
אוקטט אחד | 0x05 [Set_Advt_Enable_Multi_Sub_Cmd] |
הרזולוציה של כתובת פרטית לאחר העמסה
התכונה הזו מאתרת כתובת פרטית בקושחה או בחומרה של הבקר, ומספקת את היתרונות הבאים:
- זמן אחזור מעורב עם המארח בטיפול בכתובת פרטית
- חיסכון בצריכת החשמל באמצעות הימנעות מהוצאת המארח ממצב שינה
LE_Set_RPA_זמן קצוב לתפוגה
OCF: 0x15C
פרמטר של פקודה | גודל | המטרה |
---|---|---|
LE_local_IRK |
16 אוקטט | המכשיר המקומי IRK שבו נעשה שימוש כדי ליצור את הכתובות האקראיות שניתנות לפתרון. |
tRPA_min |
2 אוקטטים |
הזמן הקצוב לתפוגה של יצירת מודעות רספונסיביות לרשת החיפוש (RPA) בשניות. נאמן המידע צריך
ליצור כתובות חדשות שניתנות לפענוח לכל
אירועי פרסום, סריקה או חיבור, בסיום פרק הזמן הזה או אחריו. הטווח החוקי: 300-1,800 |
tRPA_max |
2 אוקטטים |
הזמן הקצוב לתפוגה של יצירת מודעות רספונסיביות לרשת החיפוש (RPA) בשניות. נאמן המידע צריך
ליצור כתובות חדשות שניתנות לפענוח לכל
אירועי פרסום, סריקה או חיבור, לפני הזמן הקצוב הזה או לפניו. טווח תקין: tRPA_min -1,800
|
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד |
סטטוס הפקודה. ערכים מוצעים לסטטוס HCI: 0x00 Success 0x01 פקודה לא ידועה (אם אין תמיכה) 0x12 פרמטרים לא חוקיים של פקודה (אם פרמטרים כלשהם נמצאים מחוץ לטווח הנתון) |
LE_RPA_offload_Command
OCF: 0x155
פרמטר של פקודה | גודל | המטרה |
---|---|---|
RPA_offload_opcode |
אוקטט אחד |
0x1 – הפעלת תכונה ספציפית ללקוח 0x2 – הוספת IRK לרשימה 0x3 – הסרת IRK מהרשימה 0x4 – מחיקת רשימת IRK 0x5 - קריאת הרשומה של IRK |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Event_RPA_offload_opcode |
אוקטט אחד |
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 |
אוקטט אחד |
0x01 – הפעלת תכונת RPA מושבתת 0x00 - השבתת תכונת RPA מושבתת |
ההעברה של RPA צריכה להיות מופעלת על ידי המארח, על סמך יכולת הצ'יפ. פרטים נוספים זמינים בLE_Get_Vendor_Capabilities_Command
.
לכל צ'יפ יכולים להיות ערכים שונים של max_irk_list_sz
בקושחה.
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Event_cust_specific_feature_opcode |
אוקטט אחד | 0x01 [הפעלת תכונה ספציפית ללקוח] |
LE_RPA_offload: Add_IRK_to_list_sub_Command
Sub OCF: 0x02
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
LE_IRK |
16 אוקטטים | LE IRK (בייט ראשון LSB) |
Address_Type |
אוקטט אחד |
0: כתובת ציבורית 1: כתובת אקראית |
LE_Device_Address |
6 אוקטטים | כתובת ציבורית או אקראית המשויכת ל-IRK (LSB בייט ראשון) |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Event_cust_specific_feature_opcode |
אוקטט אחד | 0x02 [הוספת IRK לרשימה] |
LE_IrkList_AvailableSpaces |
אוקטט אחד | הרשומות הזמינות ברשימת IRL אחרי הפעולה הנוכחית |
LE_RPA_offload: Remove_IRK_to_list_sub_Command
Sub OCF: 0x03
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
Address_Type |
אוקטט אחד |
0: כתובת ציבורית 1: כתובת אקראית |
LE_Device_Address |
6 אוקטטים | כתובת ציבורית או אקראית שמשויכת ל-IRK |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Event_cust_specific_feature_opcode |
אוקטט אחד | 0x03 [הסרת IRK מהרשימה] |
LE_IrkList_AvailableSpaces |
אוקטט אחד | הרשומות הזמינות ברשימת IRL אחרי הפעולה הנוכחית |
LE_RPA_offload: ניקוי_IRK_list_sub_Command
Sub OCF: 0x04
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
ללא |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Event_cust_specific_feature_opcode |
אוקטט אחד | 0x04 [ניקוי רשימת IRK] |
LE_IrkList_AvailableSpaces |
אוקטט אחד |
הרשומות הזמינות ברשימת IRL לאחר הפעולה הנוכחית [max_irk_list_sz]
|
LE_RPA_offload: Read_IRK_list_sub_Command
Sub OCF: 0x05
פרמטר של פקודת משנה | גודל | המטרה |
---|---|---|
LE_read_IRK_list_entry-index |
אוקטט אחד | האינדקס של רשימת IRK [0, max_irk_list_sz-1] |
המערכת תיצור אירוע Command complete (הרצת הפקודה) עבור הפקודה הזו.
פרמטר החזרה | גודל | המטרה |
---|---|---|
Status |
אוקטט אחד | הסטטוס של הפקודה 'הושלמה' |
Event_cust_specific_feature_opcode |
אוקטט אחד | 0x05 [לקריאת ערך רשימת IRK] |
LE_Read_IRK_List_entry |
אוקטט אחד | האינדקס של ה-IRK שהמארח רוצה לקרוא שוב (גודל רשימת IRK המקסימלי הוא 32) |
LE_IRK |
16 אוקטטים | ערך IRK |
Address_Type |
אוקטט אחד |
0: כתובת ציבורית 1: כתובת אקראית |
LE_Device_Address |
6 אוקטטים | כתובת ציבורית או אקראית המשויכת ל-IRK |
LE_Resolved_Private_Address |
6 אוקטטים | הכתובת הפרטית הנוכחית של ה-IRK הזה שאפשר לפענח |