דרישות HCI

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

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

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

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

יכולות ותצורה של צ'יפ

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

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

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

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

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

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

שדה הפקודה של קוד הפעולה (OCF): 0x153

פרמטר של פקודה גודל מטרה
לא רלוונטי רשימת פרמטרים ריקה של פקודה

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
max_advt_instances
(הוצאה משימוש)
8 תווים מספר המופעים של המודעות שנתמכים.

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

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

v1.05
byte[0] = 0x01
byte[1] = 0x05
total_num_of_advt_tracked 2 אוקטטים המספר הכולל של המפרסמים שנערכת עליהם מעקב למטרות OnLost/OnFound
extended_scan_support 8 תווים תמיכה בחלון ובמרווח זמן מורחבים לסריקה
debug_logging_supported 8 תווים תמיכה ברישום ביומן של פרטי ניפוי באגים בינאריים מהבקר
LE_address_generation_offloading_support
(הוצאה משימוש)
8 תווים 0 = לא נתמך
1 = נתמך

שמור אחרי גרסה 0.98.
הפרמטר הזה הוצא משימוש במפרט התכונות של Google בגרסה 0.98 ואילך, לטובת תכונה לשמירה על הפרטיות שזמינה במפרט BT בגרסה 4.2 ואילך.
A2DP_source_offload_capability_mask 4 אוקטטים מסיכות ביטים של סוגי הקודקים הנתמכים
ביט 0 – SBC
ביט 1 – AAC
ביט 2 – APTX
ביט 3 – APTX HD
ביט 4 – LDAC
ביטים 5-31 שמורים
bluetooth_quality_report_support 8 תווים תמיכה בדיווח על אירועי איכות של Bluetooth
0 = לא מסוגל
1 = מסוגל
dynamic_audio_buffer_support 4 אוקטטים תמיכה במאגר אודיו דינמי ב-Bluetooth Controller
מסיכות ביט לסוגי הקודקים הנתמכים
ביט 0 – SBC
ביט 1 – AAC
ביט 2 – APTX
ביט 3 – APTX HD
ביט 4 – LDAC
ביטים 5-31 שמורים
a2dp_offload_v2_support 8 תווים תמיכה בפקודות A2DP offload v2 ב-Bluetooth controller (ראו Start A2DP offload,‏ Stop A2DP offload)
0 = לא נתמך
1 = נתמך
iso_link_feedback_support 8 תווים תמיכה באירוע ISO Link Feedback
0 = לא נתמך
1 = נתמך

תוצאות של סריקה בכמות גדולה

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

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

התכונה הזו מתמקדת בניהול ובהגדרה של מאגר התוצאות של סריקת LE ב-Bluetooth Controller. האחסון משמש לאיסוף זמני של נתוני מודעות ולסריקה של נתונים ומטא-נתונים שמתקבלים על ידי הבקר, לצורך העברה מאוחר יותר למארח.

הקושחה תומכת בשני סוגים של קיבוץ, שאפשר להפעיל בו-זמנית:

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

LE_Batch_Scan_Command

OCF: ‏ 0x156

פרמטר של פקודה גודל מטרה
Batch_Scan_opcode 8 תווים 0x1 – הפעלת תכונה ספציפית ללקוח
0x2 – הגדרת פרמטרים של אחסון של סריקת אצווה
0x3 – הגדרת פרמטרים של סריקת אצווה
0x4 – קריאת פרמטרים של תוצאות סריקת אצווה

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

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Batch_Scan_opcode 8 תווים 0x1 – הפעלת תכונה ספציפית ללקוח
0x2 – הגדרת פרמטרים של אחסון של סריקת אצווה
0x3 – הגדרת פרמטרים של סריקת אצווה
0x4 – קריאת פרמטרים של תוצאות סריקת אצווה

LE_Batch_Scan_Command: הפעלת תכונה ספציפית ללקוח

Sub OCF: ‏ 0x01

פרמטר של פקודת משנה גודל מטרה
enable_customer_specific_feature_set 8 תווים 0x01 – הפעלת התכונה 'סריקה בכמות גדולה'
0x00 – השבתת התכונה 'סריקה בכמות גדולה'

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Batch_Scan_opcode 8 תווים 0x1 – הפעלת תכונה ספציפית ללקוח
0x2 – הגדרת פרמטרים של אחסון של סריקת אצווה
0x3 – הגדרת פרמטרים של סריקת אצווה
0x4 – קריאת פרמטרים של תוצאות סריקת אצווה

LE_Batch_Scan_Command: פקודה משנית להגדרת פרמטר האחסון של סריקת באצ'ט

OCF משני: 0x02

פרמטר של פקודת משנה גודל מטרה
Batch_Scan_Full_Max 8 תווים נפח האחסון המקסימלי (באחוזים) שהוקצה לסגנון מלא
[טווח: 0-100]
Batch_Scan_Truncated_Max 8 תווים נפח האחסון המקסימלי (באחוזים) שהוקצה לסגנון המקוצר
[טווח: 0-100]
Batch_Scan_Notify_Threshold 8 תווים הגדרת רמת ההתראות (באחוזים) למאגר אחסון ספציפי
[טווח: 0-100]
הגדרה של 0 תשבית את ההתראות. נוצר אירוע HCI ספציפי לספק (אירוע משנה של הפרת סף אחסון)

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Batch_scan_opcode 8 תווים 0x02 [הגדרת פרמטרים של סריקה בכמות גדולה]

LE_Batch_Scan_Command: פקודה משנית להגדרת פרמטר של סריקה בכמות גדולה

Sub OCF: ‏ 0x03

פרמטר של פקודת משנה גודל מטרה
Batch_Scan_Mode 8 תווים 0x00 – הסריקה בכמות גדולה מושבתת
0x01 – מצב קטועה מופעל
0x02 – מצב מלא מופעל
0x03 – מצב קטועה ומצב מלא מופעלים
Duty_cycle_scan_window 4 אוקטטים זמן הסריקה של Batch Scan (# of slot)
Duty_cyle_scan_interval 4 אוקטטים פרק הזמן של מרווח הזמן לסריקה בכמות גדולה (מספר המשבצות)
own_address_type 8 תווים 0x00 – כתובת מכשיר ציבורית
0x01 – כתובת מכשיר אקראית
Batch_scan_Discard_Rule 8 תווים 0 – ביטול המודעה הישנה ביותר
1 – ביטול המודעה עם ערך ה-RSSI החלש ביותר

הפקודה המשנית הזו תתחיל סריקה באצווה, אם היא מופעלת. בסריקה עם קיצוץ, התוצאות מאוחסנות בצורה מקוצרת, כאשר המפתח הייחודי לסגנון המקוצר הוא {BD_ADDR, scan_interval}. כלומר, רק BD_ADDR will אחד יירשם לכל מרווח סריקה. הרשומה שצריך לשמור במצב Truncated היא: {BD_ADDR, Tx Power, RSSI, Timestamp}

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Batch_scan_opcode 8 תווים 0x03 [הגדרת פרמטרים של סריקה בכמות גדולה]

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

Sub OCF: ‏ 0x04

פרמטר של פקודת משנה גודל מטרה
Batch_Scan_Data_read 8 תווים 0x01 – נתונים במצב קטועים
0x02 – נתונים במצב מלא

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

ההפניות לזמן של הבקר והמארח לא מסונכרנות. יחידת חותמת הזמן היא 50 אלפיות השנייה. הערך של חותמת הזמן מבוסס על המועד שבו המארח הגדיר את הערך של Read_Batch_Scan_Results_Sub_cmd. אם זמן ההגעה של הפקודה הוא T_c בקושחה, הזמן בפועל שבו חותמת הזמן נלקחה בקושחה הוא T_fw. זמן הדיווח יהיה: (T_c - T_fw). הערכים T_c ו-T_fw נמצאים במרחב הזמן של הקושחה. כך המארח יכול לחשב כמה זמן עבר מאז האירוע.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Batch_scan_opcode 8 תווים 0x03 [Set Batch Scan parameters]
Batch_Scan_data_read 8 תווים מזהה את הפורמט (קטועה או מלאה)
num_of_records 8 תווים מספר הרשומות של Batch_Scan_data_read
format_of_data משתנה מצב קטועה:
Address[0]: 6 octets
Address_Type[0]: 1 octet
Tx_Pwr[0]: 1 octet
RSSI[0] : 1 octet
Timestamp[0]: 2 octets
[multiple records (num_of_records) with above format]

מצב מלא:
Address[0]: 6 octets
Address_Type[0]: 1 octet
Tx_Pwr[0]: 1 octet
RSSI[0]: 1 octet
Timestamp[0]: 2 octets
Adv packet_len[0]: 1 octet
Adv_packet[0]: Adv_packet_len octets
Scan_data_resp_len[0]: 1 octet
Scan_data_resp[0]: Scan_data_resp octets
[multiple records with above format (num_of_records)]

מסנן תוכן של חבילות פרסום

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

LE_APCF_Command

OCF: ‏ 0x157

פרמטר של פקודה גודל מטרה
APCF_opcode 8 תווים 0x00 – הפעלת APCF
0x01 – הגדרת הפרמטרים של סינון ב-APCF
0x02 – כתובת של APCF לשידור
0x03 – APCF Service UUID
0x04 – APCF Service Solicitation UUID
0x05 – APCF Local Name
0x06 – APCF Manufacturer Data
0x07 – APCF Service Data
0x08 – APCF Transport Discovery Service
0x09 – APCF AD Type Filter
0x10 עד 0xAF – שמורות לשימוש עתידי
0xB0 עד 0xDF – שמורות לספק
0xE0 עד 0xFE – שמורות לשימוש עתידי
0xFF – קריאת תכונות מורחבות של APCF

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס ההחזרה
APCF_opcode 8 תווים 0x00 – הפעלת APCF
0x01 – הגדרת הפרמטרים של סינון ב-APCF
0x02 – כתובת של APCF לשידור
0x03 – APCF Service UUID
0x04 – APCF Service Solicitation UUID
0x05 – APCF Local Name
0x06 – APCF Manufacturer Data
0x07 – APCF Service Data
0x08 – APCF Transport Discovery Service
0x09 – APCF AD Type Filter
0x10 עד 0xAF – שמורות לשימוש עתידי
0xB0 עד 0xDF – שמורות לספק
0xE0 עד 0xFE – שמורות לשימוש עתידי
0xFF – קריאת תכונות מורחבות של APCF

LE_APCF_Command: Enable_sub_cmd

Sub OCF: ‏ 0x00

פרמטר של פקודת משנה גודל מטרה
APCF_enable 8 תווים 0x01 – הפעלת התכונה APCF
0x00 – השבתת התכונה APCF

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x0 – הפעלת APCF
APCF_Enable 8 תווים ההפעלה או ההשבתה מוגדרות דרך APCF_enable

LE_APCF_Command: set_filtering_parameters_sub_cmd

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

Sub OCF: ‏ 0x01

פרמטר של פקודת משנה גודל מטרה
APCF_Action 8 תווים 0x00 – הוספה
0x01 – מחיקה
0x02 – ניקוי
המחיקה תמחק את המסנן הספציפי ואת הרשומות של המאפיינים המשויכים בטבלאות אחרות.
לחיצה על סמל הניקוי תמחק את כל המסננים והרשומות המשויכות בטבלאות אחרות.
APCF_Filter_Index 8 תווים מסנן אינדקס (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: OR
1: AND
אם בוחרים בלוגיקת AND, חבילה של ADV תעבור את המסנן רק אם היא מכילה את כל הרשומות ברשימה.
אם בוחרים בלוגיקה 'OR', חבילה של ADV תעבור את המסנן אם היא מכילה אחת מהרשומות ברשימה.
APCF_Filter_Logic_Type 8 תווים 0x00: OR
0x01: AND
הערה: סוג הלוגיקה הוא N/A בשלושת השדות הראשונים של APCF_Feature_Selection, שהוא תמיד לוגיקה מסוג 'AND'. הן רלוונטיות רק לארבעה שדות של APCF_Feature_Selection (ביט 3 עד ביט 6).
rssi_high_thresh 8 תווים [ב-dBm]
המפרסם נחשב כגלוי רק אם האות גבוה מהסף הגבוה של RSSI. אחרת, הקושחה צריכה לפעול כאילו היא אף פעם לא ראתה אותו.
delivery_mode 8 תווים 0x00 – immediate
0x01 – on_found
0x02 – batched
onfound_timeout 2 אוקטטים תקף רק אם הערך של delivery_mode הוא on_found.
[במיליסקונדים]
הזמן שחלף עד שהתוכנה הקבועה (firmware) התעכבה ואספה מודעות נוספות לפני הדיווח.
onfound_timeout_cnt 8 תווים תקף רק אם הערך של delivery_mode הוא on_found.
[count]
אם מודעה ב-onFound נשארת בקושחה למשך onfound_timeout, היא תאסוף כמה מודעות והספירה תבדק. אם המספר חורג מ-onfound_timeout_cnt, הוא מדווח OnFound מיד לאחר מכן.
rssi_low_thresh 8 תווים תקף רק אם הערך של 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.
[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.

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x01 – APCF Set Filtering Parameters
APCF_Action 8 תווים הדהוד של APCF_Action בפקודה
APCF_AvailableSpaces 8 תווים מספר הרשומות הזמינות בטבלת המסננים

LE_APCF_Command: broadcast_address_sub_cmd

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

OCF משני: 0x02

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x02 – כתובת של משדר APCF
APCF_Action 8 תווים הדהוד של APCF_Action בפקודה
APCF_AvailableSpaces אוקטט אחד מספר הרשומות בחינם שעדיין זמינות בטבלה Broadcast Address

LE_APCF_Command: service_uuid_sub_cmd

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

Sub OCF: ‏ 0x03

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x03 – מזהה UUID של שירות APCF
APCF_Action 8 תווים הדהוד של APCF_Action בפקודה
APCF_AvailableSpaces 8 תווים מספר הרשומות הפנויות שעדיין זמינות בטבלה Service UUID

LE_APCF_Command: solicitation_uuid_sub_cmd

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

Sub OCF: ‏ 0x04

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x04 – UUID של בקשה ל-APCF
APCF_Action 8 תווים הדהוד של APCF_Action בפקודה
APCF_AvailableSpaces 8 תווים מספר הרשומות בחינם שעדיין זמינות בטבלה Solicitation UUID

LE_APCF_Command: local_name_sub_cmd

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

Sub OCF: ‏ 0x05

פרמטר של פקודת משנה גודל מטרה
APCF_Action 8 תווים 0x00 – הוספה
0x01 – מחיקה
0x02 – ניקוי
המחיקה תמחק את מחרוזת השם המקומי שצוינה במסנן שצוין.
הפקודה Clear תמחק את כל מחרוזות השמות המקומיים במסנן שצוין.
APCF_Filter_Index 8 תווים אינדקס המסנן (0, ‏ max_filter-1)
APCF_LocName_Mandata_or_SerData גודל משתנה מחרוזת תווים לשם המקומי.

הערות:
  • נכון לעכשיו, מספר התווים המקסימלי במחרוזת שם מקומית הוא 29
  • לא רלוונטי כשהפעולה היא 'ניקוי' (0x2)

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x05 – שם מקומי של APCF
APCF_Action 8 תווים הדהוד של APCF_Action בפקודה
APCF_AvailableSpaces 8 תווים מספר הרשומות בחינם שעדיין זמינות בטבלת השמות המקומיים

LE_APCF_Command: manf_data_sub_cmd

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

OCF משני: 0x06

פרמטר של פקודת משנה גודל מטרה
APCF_Action 8 תווים 0x00 – הוספה
0x01 – מחיקה
0x02 – ניקוי
המחיקה תמחק את מחרוזת נתוני היצרן שצוינה במסנן שצוין.
הלחצן Clear (ניקוי) ינקה את כל מחרוזות נתוני היצרן במסנן שצוין.
APCF_Filter_Index 8 תווים אינדקס המסנן (0, max_filter-1)
APCF_LocName_Mandata_or_SerData גודל משתנה מחרוזת תווים לנתוני היצרן.

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x06 – נתוני יצרן של APCF
APCF_Action 8 תווים הדהוד של APCF_Action בפקודה
APCF_AvailableSpaces 8 תווים מספר הרשומות בחינם שעדיין זמינות בטבלה 'נתוני היצרן'

LE_APCF_Command: service_data_sub_cmd

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

Sub OCF: ‏ 0x07

פרמטר של פקודת משנה גודל מטרה
APCF_Action 8 תווים 0x00 – הוספה
0x01 – מחיקה
0x02 – ניקוי
המחיקה תמחק את מחרוזת נתוני השירות שצוינה במסנן שצוין.
הפקודה Clear תמחק את כל מחרוזות נתוני השירות במסנן שצוין.
APCF_Filter_Index 8 תווים אינדקס המסנן (0, max_filter-1)
APCF_LocName_Mandata_or_SerData גודל משתנה מחרוזת תווים לנתוני השירות.

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x07 – נתוני שירות של APCF
APCF_Action 8 תווים הדהוד של APCF_Action בפקודה
APCF_AvailableSpaces 8 תווים מספר הרשומות בחינם שעדיין זמינות בטבלה Service Data

LE_APCF_Command: ad_type_sub_cmd

הפקודה המשנית הזו משמשת להוספה או למחיקה של סוג מודעה, או לניקוי רשימת סוגי המודעות לצורך סינון בשבב. משתמשים בפקודה 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 8 תווים 0x00 – הוספה
0x01 – מחיקה
0x02 – ניקוי
המחיקה תמחק את סוג ה-AD שצוין במסנן שצוין.
הלחצן Clear (ניקוי) מנקה את כל סוגי המודעות לרשת המדיה במסנן שצוין.
APCF_Filter_Index 8 תווים אינדקס המסנן (0, max_filter-1)
APCF_AD_TYPE 8 תווים סוג המודעה שרוצים להוסיף לרשימה או למחוק ממנה. התעלמות כאשר APCF_Action הוא 0x02 (Clear)
APCF_AD_DATA_Length 8 תווים 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 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0x09 – סוג מודעה של APCF
APCF_Action 8 תווים הדהוד של APCF_Action בפקודה
APCF_AvailableSpaces 8 תווים מספר הרשומות בחינם שעדיין זמינות בטבלה 'סוג מודעה'

LE_APCF_Command: read_extended_features_sub_cmd

הפקודה המשנית הזו משמשת לקריאת תכונות APCF מורחבות.

OCF משני: 0xFF

פרמטר של פקודת משנה גודל מטרה
לא רלוונטי פרמטר פקודה ריק.

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
APCF_opcode 8 תווים 0xFF – APCF_Read_Extended_Features
APCF_extended_features 2 אוקטטים

מסכות ביט לתכונות מורחבות נתמכות:

  • ביט 0: תמיכה במסנן של Transport Discovery Service
  • ביט 1: תמיכה במסנן של סוג מודעה
  • ביט 2 עד 15: שמור לשימוש עתידי

הערך של הבייט

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

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

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

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

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

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

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

LE_Get_Controller_Activity_Energy_Info

זוהי פקודה ספציפית לספק.

OCF: ‏ 0x159

פרמטר של פקודת משנה גודל מטרה
לא רלוונטי פרמטרים ריקים של פקודות

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
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 extended set scan parameters

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

מקור מידע בסיסי: מפרט BT Core 5.2, דף 2493 (פקודה להגדרת הפרמטרים של הסריקה ב-LE)

OCF: ‏ 0x15A

פרמטר של פקודה גודל מטרה
LE_Ex_Scan_Type 8 תווים 0x00 – סריקה פסיבית. לא יישלחו חבילות SCAN_REQ (ברירת המחדל).
0x01 – סריקה פעילה. ייתכן שיישלחו חבילות SCAN_REQ.
LE_Ex_Scan_Interval 4 אוקטטים מוגדר כמרווח הזמן מהרגע שבו הבקר התחיל את הסריקה האחרונה של LE ועד שהתחיל את הסריקה הבאה של LE.
טווח: 0x0004 עד 0x00FFFFFF
ברירת מחדל: 0x0010 (10 אלפיות שנייה)
זמן = N * 0.625 אלפיות שנייה
טווח זמן: 2.5 אלפיות שנייה עד 10,442.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 8 תווים 0x00 – כתובת מכשיר ציבורית (ברירת המחדל)
0x01 – כתובת מכשיר אקראית
LE_Ex_Scan_Filter_Policy 0x00 – אישור כל חבילות הפרסום (ברירת המחדל). חבילות של פרסום מותאם אישית שלא מיועדות למכשיר הזה יידחו.
0x01 – התעלמות מחבילות מודעות ממכשירים שלא נמצאים ברשימת ההיתרים בלבד. חבילות של פרסום מותאם אישית שלא מיועדות למכשיר הזה יידחו.

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete

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

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

OCF: ‏ 0x15B

פרמטר של פקודה גודל מטרה
לא רלוונטי רשימת פרמטרים ריקה של פקודה

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete

תמיכה בהעברת עומס מהחומרה (offload) של A2DP

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

OCF: ‏ 0x15D

הפעלת הורדת עומס של A2DP (מדור קודם)

Sub OCF: ‏ 0x01

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

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

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

Sampling_Frequency 4 אוקטטים 0x01 – 44,100Hz
0x02 – 48,000Hz
0x04 – 88,200Hz
0x08 – 96,000Hz
Bits_Per_Sample 8 תווים 0x01 – 16 ביטים לדגימה
0x02 – 24 ביטים לדגימה
0x04 – 32 ביטים לדגימה
Channel_Mode 8 תווים 0x01 – מונו
0x02 – סטריאו
Encoded_Audio_Bitrate 4 אוקטטים קצב העברת הנתונים של האודיו המקודד, בסיביות לשנייה.
0x00000000 – קצב הנתונים של האודיו לא צוין / לא בשימוש.
0x00000001 – 0x00FFFFFF – קצב העברת הנתונים של האודיו המקודד בסיביות לשנייה.
0x01000000 – 0xFFFFFFFF – שמור.
Connection_Handle 2 אוקטטים ה-Connection Handle של חיבור A2DP שמוגדר
L2CAP_Channel_ID 2 אוקטטים מזהה הערוץ של L2CAP שישמש לחיבור A2DP הזה
L2CAP_MTU_Size 2 אוקטטים הגודל המקסימלי של MTU ב-L2CAP שמכיל חבילות אודיו מקודדות
Codec_Information 32 אוקטטים מידע ספציפי לקודק.

קודק SBC:

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

קודק AAC:

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

קודק LDAC:

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

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

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

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

אוקטט 8-31: שמורות

כל שאר הקודקים:

אוקטט 0-31: שמורות

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Sub_Opcode 8 תווים 0x01 – התחלת העברה לחומרת A2DP

הפעלת הורדת עומס של A2DP

Sub OCF: ‏ 0x03

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

פרמטר של פקודה גודל מטרה
Connection Handle 2 אוקטטים הידית של חיבור ה-HCI הפעיל
L2CAP_Channel_ID 2 אוקטטים המזהה של ערוץ ה-L2CAP שנפתח לסטרימינג של A2DP
Data_Path_Direction 8 תווים 0x00 – פלט (AVDTP Source/Merge)
0x01 – קלט (AVDTP Sink/Split)
Peer_MTU 2 אוקטטים הגודל המקסימלי של חבילות L2CAP, שמוסכם עם השותף.
CP_Enable_SCMS_T 8 תווים 0x00 – השבתת כותרת ההגנה על תוכן של SCMS-T
0x01 – הפעלת כותרת ההגנה על תוכן של SCMS-T
CP_Header_SCMS_T 8 תווים כשהכותרת של הגנה על תוכן מסוג SCMS-T מופעלת (CP_SCMS_T_Enable מוגדר ל-0x01), היא מגדירה את ערך הכותרת שקודם לתוכן האודיו (ראו A2DP, ‏ חלקים 3.2.1-2) כפי שמוגדר במספרים שהוקצו ל-Bluetooth, חלק 6.3.2.
התכונה מתעלמת מהערך הזה אם ההגנה על התוכן של SCMS-T לא מופעלת.
Vendor_Specific_Parameters_Length 8 תווים האורך של הפרמטרים הספציפיים לספק, בטווח שבין 0 ל-128.
המערכת משתמשת בערך 0 כשלא מציינים פרמטרים נוספים.
Vendor_Specific_Parameters 0 עד 128 אוקטטים פרמטרים ספציפיים לספק שסופקו על ידי Bluetooth Audio HAL,‏ CodecParameters.vendorSpecificParameters[].

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Sub_Opcode 8 תווים 0x03 – התחלת העברה של A2DP

הפסקת הורדת העומס של A2DP (מדור קודם)

OCF משני: 0x02

הפקודה הזו משמשת כדי לעצור את ההעברה של מקור הנתונים של A2DP.

פרמטר של פקודה גודל מטרה
לא רלוונטי רשימת פרמטרים ריקה של פקודה.

לא מוגדרים פרמטרים לפקודה הזו.

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Sub_Opcode 8 תווים 0x02 – הפסקת העברת הנתונים של A2DP

הפסקת הורדת העומס של A2DP

Sub OCF: ‏ 0x04

הפקודה הזו משמשת כדי לעצור את ההעברה של מקור הנתונים של A2DP.

פרמטר של פקודה גודל מטרה
Connection Handle 2 אוקטטים הידית של חיבור ה-HCI הפעיל
L2CAP_Channel_ID 2 אוקטטים המזהה של ערוץ ה-L2CAP שנפתח לסטרימינג של A2DP
Data_Path_Direction 8 תווים 0x00 – פלט (AVDTP Source/Merge)
0x01 – קלט (AVDTP Sink/Split)

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Sub_Opcode 8 תווים 0x04 – עצירת הורדת העומס של A2DP

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

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

  • מצב ניטור איכות: המאגר שולח למארח מדי פעם אירוע משנה של BQR שקשור לאיכות הקישור.
  • Approaching LSTO: אם לא מתקבלות מנות ממכשיר ה-BT המחובר במשך יותר ממחצית ערך זמן הקצאת הזמן לניטור הקישור (LSTO), הבקר מדווח למארח על אירוע Approaching LSTO.
  • אודיו קטועה ב-A2DP: כשבבקר מזוהים גורמים שגורמים לאודיו קטועה, הבקר מדווח למארח על אירוע אודיו קטועה ב-A2DP.
  • (e)SCO Voice Choppy: כשבקר מזהה גורמים שגורמים לקול קטועה, הבקר מדווח למארח על אירוע (e)SCO Voice Choppy.
  • Root Inflammation: האירוע הזה נשלח על ידי הבקר לסטאק כש-HAL או הבקר נתקלים בשגיאה קטלנית וצריך להפעיל מחדש את Bluetooth.
  • מעקב אחר הודעות LMP/LL: הבקר שולח למארח את לחיצת היד של ההודעה LMP/LL עם המכשיר המרוחק.
  • מעקב תזמון של מספר פרופילים ב-Bluetooth/Coex: הבקר שולח למארח את פרטי התזמון שלו לטיפול במספר פרופילים של Bluetooth ובקיום משותף של רשתות אלחוטיות בתדר 2.4GHz.
  • מנגנון של מידע על ניפוי באגים של בקר: כשהמנגנון מופעל, הבקר יכול לדווח באופן עצמאי למארח על מידע מהיומן של ניפוי הבאגים באמצעות אירוע המשנה של מידע על ניפוי באגים של הבקר.
  • אודיו קטועה ב-LE Audio: כשהבקר מזהה גורמים שגורמים לאודיו קטועה, הוא מדווח למארח על אירוע של אודיו קטועה ב-LE Audio.
  • מצב נתונים סטטיסטיים מתקדמים של RF: הבקר מדווח למארח על המידע הקשור לנתונים הסטטיסטיים של ה-RF, ותומך בשני תרחישים לדוגמה לדיווח:
    • דוחות תקופתיים
    • טריגרים של אירועים (התחלה/עצירה של שידור וטריגר של אירוע איכות קישור).
  • BQR_Report_Action של פקודת דוח האיכות של Bluetooth: המארח יכול להשתמש בפקודת ה-HCI הזו כדי לקבל שאילתה חד-פעמית למצב מעקב איכות, למצב מעקב אנרגיה או למצב סטטיסטי RF מתקדם.

OCF: ‏ 0x15E

פרמטר של פקודה גודל מטרה
BQR_Report_Action 8 תווים פעולה להוספה או למחיקה של דיווח על אירועי איכות שהוגדרו בפרמטר BQR_Quality_Event_Mask, או לניקוי הכול.

0x00 – הוספה
0x01 – מחיקה
0x02 – ניקוי
0x03 – שאילתה חד-פעמית

מחיקת האירועים תגרום למחיקת הדיווח על אירועי איכות ספציפיים.
האפשרות Clear תמחק את כל הדיווח על אירועי איכות (אפשר להתעלם מהפרמטר BQR_Quality_Event_Mask).

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

ביט 0: מוגדר להפעלת מצב מעקב אחר איכות.
ביט 1: מוגדר כדי להפעיל אירוע Approaching LSTO (עבור ACL/‏(e)SCO/‏ISO).
ביט 2: מוגדר להפעלת אירוע של אודיו קטועה ב-A2DP.
ביט 3: מוגדר להפעלת אירוע של קול קטוע ב-(e)SCO.
ביט 4: מוגדר כדי להפעיל את האירוע Root inflammation.
ביט 5: מוגדר כדי להפעיל את מצב מעקב האנרגיה.
ביט 6: מוגדר כדי להפעיל אירוע של אודיו LE קטועה.
ביט 7: מוגדר כדי להפעיל אירוע של כשל התחברות.
ביט 8: מוגדר כדי להפעיל את הטריגר של אירוע במצב 'נתונים מתקדמים של תדרי רדיו'.
ביט 9: מוגדר להפעלת הדוח 'נתונים סטטיסטיים מתקדמים של תדר רדיו'.
ביטים 10 עד 14: שמורים.
ביט 15: מוגדר כדי להפעיל אירועי איכות ספציפיים לספק.
ביט 16: מוגדר כדי להפעיל מעקב אחרי הודעות LMP/LL.
ביט 17: מוגדר כדי להפעיל מעקב תזמון של Bluetooth Multi-link/Coex.
ביט 18: מוגדר כדי להפעיל את מנגנון Controller Debug Information.
ביטים 19 עד 30: שמורים.
ביט 31: מוגדר כדי להפעיל מעקב ספציפי לספק.

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

יחידה: ms
ברירת מחדל: 0 (אין הגבלה על המרווח).
טווח: 0 עד 65,535 אלפיות שנייה

BQR_Vendor_Specific_Quality_Event_Mask 4 אוקטטים מסיכות ביט לדיווח על אירועי איכות ספציפיים לספק שנבחרו.
הפרמטר הזה תקף רק כשביט 15 של BQR_Quality_Event_Mask מוגדר.

ביט 0 עד 31: שמור.

BQR_Vendor_Specific_Trace_Mask 4 אוקטטים מסיכות ביט לדיווח על נתוני מעקב ספציפיים לספק שנבחרו.
הפרמטר הזה תקף רק כשביט 31 של BQR_Quality_Event_Mask מוגדר.

ביט 0 עד 31: שמור.

Report_interval_multiple 4 אוקטטים המכפיל של BQR_Minimum_Report_Interval. כשהערך הזה גדול או שווה ל-1, מרווח הדיווח של BQR עוקב אחרי הפורמט
BQR Report Interval = BQR_Minimum_Report_Interval x Report_interval_multiple.
קושחת הבקר לא חייבת לדווח על האירוע הבא במרווח הזמן המוגדר. הגדרת המרווח מוקדשת במיוחד לאירועי האיכות שנוספו.

יחידה: ms
ברירת מחדל: 1
טווח: 0 עד 4294967295 (0: מוגדר כ-1)

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Current_Quality_Event_Mask 4 אוקטטים מציין את ההגדרה הנוכחית של מסכת הביטים.
ביט 0: מצב מעקב האיכות מופעל.
ביט 1: הדיווח על אירועי LSTO מתקרב מופעל.
ביט 2: הדיווח על אירועי אודיו קטועים ב-A2DP מופעל.
ביט 3: הדיווח על אירועים של קול קטועה ב-(e)SCO מופעל.
ביט 4: הדיווח על אירועי דלקת ברמה הבסיסית מופעל.
ביט 5: מצב מעקב האנרגיה מופעל.
ביט 6: הדיווח על אירועים של אודיו LE קטועים מופעל.
ביט 7: אירוע של כשל התחברות.
ביט 8: מוגדר כדי להפעיל את הטריגר של אירוע במצב 'נתונים מתקדמים של תדרי רדיו'.
ביט 9: מוגדר כדי לאפשר דיווח תקופתי על נתונים סטטיסטיים מתקדמים של תדרי רדיו.
ביטים 10 עד 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 אוקטטים מציין את ההגדרה הנוכחית של מסכת הביטים.
BQR_Report_interval 4 אוקטטים מציין את ההגדרה הנוכחית של מסכת הביטים.
Current_Vendor_Specific_Trace_Mask 4 אוקטטים ההגדרה של BQR_Report_interval. הערך צריך להיות הערך המינימלי בין BQR_Minimum_Report_Interval * Report_interval_multiple לבין מרווח התמיכה המקסימלי של הבקר.

פקודה דינמית למאגר נתונים זמני של אודיו

מאגר האודיו הדינמי מפחית את הבעיות באודיו על ידי שינוי גודל מאגר האודיו ב-Bluetooth Controller בהתאם לתרחישים שונים.

OCF: ‏ 0x15F

אחזור היכולת של מאגר הנתונים הזמני של האודיו

Sub OCF: ‏ 0x01

משתמשים בפקודה הזו כדי לקבל את היכולת של זמן מאגר האודיו מהבקר של ה-Bluetooth.

פרמטר של פקודה גודל מטרה
לא רלוונטי רשימת פרמטרים ריקה של פקודה

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Dynamic_Audio_Buffer_opcode 8 תווים 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 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 0 לא נתמך.
יחידה: אלפיות השנייה
Audio_Codec_Buffer_Maximum_Time_For_Bit_0 2 אוקטטים זמן האחסון הזמני המקסימלי של סוג ה-codec של Bit 0 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 0 לא נתמך.
יחידה: אלפיות השנייה
Audio_Codec_Buffer_Minimum_Time_For_Bit_0 2 אוקטטים זמן האחסון הזמני המינימלי של סוג הקודק של ביט 0 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 0 לא נתמך.
יחידה: אלפיות השנייה
Audio_Codec_Buffer_Default_Time_For_Bit_1 2 אוקטטים זמן ברירת המחדל של מאגר הנתונים הזמני של סוג הקודק Bit 1 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 1 לא נתמך.
יחידה: אלפיות השנייה
Audio_Codec_Buffer_Maximum_Time_For_Bit_1 2 אוקטטים זמן האחסון המקסימלי של סוג ה-Codec של ביט 1 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 1 לא נתמך.
יחידה: אלפיות השנייה
Audio_Codec_Buffer_Minimum_Time_For_Bit_1 2 אוקטטים זמן האחסון הזמני המינימלי של סוג הקודק של ביט 1 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 1 לא נתמך.
יחידה: אלפיות השנייה
...... ...... ......
Audio_Codec_Buffer_Default_Time_For_Bit_31 2 אוקטטים זמן האחסון הזמני שמוגדר כברירת מחדל לסוג הקודק של ביט 31 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 31 לא נתמך.
יחידה: אלפיות השנייה
Audio_Codec_Buffer_Maximum_Time_For_Bit_31 2 אוקטטים זמן האחסון המקסימלי של סוג ה-Codec בביט 31 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 31 לא נתמך.
יחידה: אלפיות השנייה
Audio_Codec_Buffer_Minimum_Time_For_Bit_31 2 אוקטטים זמן האחסון הזמני המינימלי של סוג הקודק בביט 31 שצוין ב-Audio_Codec_Type_Supported.
הערך הזה יהיה 0 אם סוג הקודק של ביט 31 לא נתמך.
יחידה: אלפיות השנייה

הגדרת זמן למאגר הנתונים הזמני של האודיו

OCF משני: 0x02

משתמשים בפקודה הזו כדי להגדיר את זמן מאגר האודיו ב-Bluetooth.

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Dynamic_Audio_Buffer_opcode 8 תווים 0x02 – הגדרת הזמן של מאגר הנתונים הזמני של האודיו
Audio_Codec_Buffer_Time 2 אוקטטים משך המאגר הזמני הנוכחי של האודיו בבקר ה-Bluetooth.
יחידה: אלפיות השנייה

אירוע HCI (ספציפי לספק)

במקרים מסוימים נדרשים אירועי HCI ספציפיים לספק. אפשר לעיין באיור 5.4 בדף 1897 במפרט BT Core 5.2. פרמטר האירוע 0 תמיד יכיל את קוד האירוע המשני הראשון, על סמך קוד זה מתבצע פענוח של שאר נתוני האירוע של HCI.

פרמטר אירוע גודל מטרה
HCI_vendor_specific_event_code 8 תווים 0xFF
sub_event_code 8 תווים קוד אירוע משני יהיה באורך אוקטט אחד, הבית שמופיע מיד אחרי אורך הפרמטר בחבילת האירוע של HCI.

אירוע משנה של הפרת סף אחסון

האירוע הזה מציין שחרגו מהסף של נפח האחסון.

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

פרמטר של אירוע משנה גודל מטרה
ללא

אירוע משנה של שינוי מצב של פרסום בכמה רשתות ב-LE

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

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

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

אירוע משנה של מעקב אחר מודעות LE

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

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

פרמטר של אירוע משנה גודל מטרה
APCF_Filter_Index 8 תווים אינדקס המסנן (0, max_filter-1)
Advertiser_State 8 תווים 0x00: המפרסם נמצא
0x01: המפרסם לא נמצא
Advt_Info_Present 8 תווים 0x00: פרטי המפרסם (Advt_Info) נמצאים
0x01: פרטי המפרסם (Advt_Info) לא נמצאים
Advertiser_Address 6 אוקטטים כתובת ציבורית או אקראית
Advertiser_Address_Type 8 תווים 0x00: כתובת ציבורית
0x01: כתובת אקראית
Advt_Info Tx_Pwr[0]: אוקטט אחד
RSSI[0]: אוקטט אחד
Timestamp[0]: 2 אוקטטים
Adv packet_len[0]: אוקטט אחד
Adv_packet[0]: Adv_packet_len אוקטטים
Scan_data_resp_len[0]: אוקטט אחד
Scan_data_resp[0]: Scan_data_resp אוקטטים

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

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

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

פרמטר של אירוע משנה גודל מטרה
debug_block_byte_offset_start 2 אוקטטים ניפוי באגים של היסט בייטים בבלוק מההתחלה
last_block 8 תווים 0x00: יש עוד נתוני ניפוי באגים
0x01: הבלוק הבינארי האחרון; אין עוד נתוני ניפוי באגים
cur_pay_load_sz 2 אוקטטים גודל הבלוק הבינארי באירוע הנוכחי
Debug_Data משתנה נתוני ניפוי באגים של cur_payload_sz

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

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

פרמטר של אירוע משנה גודל מטרה
Quality_Report_Id 8 תווים 0x01: דיווח על איכות במצב המעקב.
0x02: מתקרב ל-LSTO.
0x03: אודיו A2DP קטוע.
0x04: (e)SCO Voice Choppy.
0x05 עד 0x06: שמורים.
0x07: אודיו LE קטועה.
0x08: התחברות נכשלה.
0x09 עד 0xFF: שמורים.
Packet_Types 8 תווים 0x01: ID
0x02: NULL
0x03: POLL
0x04: FHS
0x05: HV1
0x06: HV2
0x07: HV3
0x08: DV
0x09: EV3
0x0A: EV4
0x0B: EV5
0x0C: 2-EV3
0x0D: 2-EV5
0x0E: 3-EV3
0x0F: 3-EV5
0x11: DH1
0x12: DM3
0x13: DH3
0x14: DM5
0x15: DH5
0x16: AUX1
0x17: 2-DH1
0x18: 2-DH3
0x19: 2-DH5
0x1A: 3-DH1
0x1B: 3-DH3
0x1C: 3-DH5
0x1D ~ 0x50: שמורים
0x51: חבילה מסוג ISO
0x52 ~ 0xFF: שמורים
Connection_Handle 2 אוקטטים הידית החיבור של ACL/‏(e)SCO/‏ISO.
Connection_Role 8 תווים התפקיד שמבצע את החיבור.
0x00: מרכזי
0x01: היקפי
0x02 עד 0xFF: שמור.
TX_Power_Level 8 תווים רמת ההספק הנוכחית של השידור עבור Connection_Handle שצוין.

הערך הזה צריך להיות זהה לתגובה של הבקר לפקודת HCI‏ HCI_Read_Transmit_Power_Level.

RSSI 8 תווים [ב-dBm]

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

SNR 8 תווים [בדציבלים]

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

Unused_AFH_Channel_Count 8 תווים מציין את מספר הערוצים שלא בשימוש ב-AFH_channel_map.
0x4F עד 0xFF: שמורים.
AFH_Select_Unideal_Channel_Count 8 תווים מספר הערוצים שנמצאים באיכות נמוכה ומושפעים מהפרעה, אבל עדיין נבחרו ל-AFH.
מספר הערוצים המינימלי שמוגדר במפרט Bluetooth הוא 20, כך שגם אם כל 79 הערוצים מושפעים מהפרעות ואיכות האות שלהם נמוכה, הבקר עדיין צריך לבחור לפחות 20 ערוצים ל-AFH.
LSTO 2 אוקטטים ההגדרה הנוכחית של זמן הקצאת הקישור בפיקוח.
זמן = N * 0.625 אלפיות השנייה
טווח זמן: 0.625 אלפיות השנייה עד 40.9 שניות
Connection_Piconet_Clock 4 אוקטטים שעון Piconet של Connection_Handle שצוין.
הערך הזה צריך להיות זהה לתגובה של הבקר לפקודת HCI‏ HCI_Read_Clock עם הפרמטר 'Which_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 האחרון. הוא מבוסס על שעון ה-Bluetooth של ה-piconet central‏ (CLK).
יחידה: N * 0.3125 אלפיות השנייה (שעון Bluetooth אחד)
Flow_Off_Count 4 אוקטטים מספר הפעמים שבהן הבקר מקבל אירוע Flow-off (STOP) מאז האירוע האחרון.
הספירה הזו תתאפס אחרי הדיווח למארח.
Last_Flow_On_Timestamp 4 אוקטטים חותמת הזמן של ה-Flow-on (GO) האחרון. הוא מבוסס על שעון ה-Bluetooth של ה-piconet central‏ (CLK).
יחידה: N * 0.3125 אלפיות השנייה (שעון Bluetooth אחד)
Buffer_Overflow_Bytes 4 אוקטטים [בבייט]

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

Buffer_Underflow_Bytes 4 אוקטטים [בבייט]

מספר אירועי מצב 'חסר ב-buffer' מאז האירוע האחרון.
הספירה הזו תתאפס אחרי הדיווח למארח.

bdaddr 6 אוקטטים כתובת המכשיר המרוחק
cal_failed_item_count 8 תווים מספר הפריטים שנכשלו בכיול
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 (ראו Bluetooth core Specification Version 5.4). מקורות הנתונים המשויכים הם CIS ו-BIS.
כשהערך הזה עולה, שכבת הקישור לא מקבלת עומס שימושי ספציפי עד לנקודת ה-flush (ב-CIS) או בסוף האירוע שאליו הוא משויך (ב-BIS. אפשר לעיין במפרט הליבה של Bluetooth, גרסה 5.4, כרך 6, חלק ב', סעיף 4.4.6.6).
Coex_Info_Mask 2 אוקטטים ביט 0 – CoexInvolvement: מוגדר כדי לציין שיש חשד שפעילויות של שיתוף תדרים מעורבות ביצירת הדוח הזה (לדוגמה, קטעי קול קטועים ב-A2DP והתקרבות ל-LSTO).
ביט 1 – WL 2G Radio Active: מוגדר כדי לציין ש-WLAN 2G Radio פעיל.
ביט 2 – WL 2G Connected: מוגדר כדי לציין שהרדיו של WLAN 2G פעיל ומחובר.
ביט 3 – WL 5G/6G Radio Active: מוגדר כדי לציין ש-WLAN 5G/6G Radio פעיל.
ביט 4-15 – שמור
פרמטר ספציפי לספק (אורך הפרמטר הכולל – TBD) * אוקטטים כדי שספק הבקר יוכל לקבל פרמטרים נוספים שספציפיים לספק.

קוד אירוע משני = 0x58‏ [Quality_Report_Id = 0x05, אירוע Root Inflammation]

האירוע הזה מציין ש-HAL של Bluetooth או הבקר נתקלו בשגיאה קטלנית, ושצריך את סטאק 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 8 תווים 0x00 עד 0x04: שמורים.
0x05: דלקת בשורש.
0x06 עד 0xFF: שמורים.
Error_Code 8 תווים 0x00: קוד שגיאה ספציפי לספק של ערכת השבבים כלול.
0x01 עד 0xFF: אירעה תקלה בבקר. לרשימת קודי השגיאה והתיאורים שלהם, אפשר לעיין במפרט Bluetooth [כרך 2] חלק D, קודי שגיאה.
Vendor_Specific_Error_Code 8 תווים 0x00: לא כלול קוד שגיאה ספציפי לספק הצ'יפסט.
0x01 עד 0xFF: קוד שגיאה ספציפי לספק של ערכת השבבים.
פרמטר ספציפי לספק (אורך הפרמטר הכולל - 4) * אוקטטים כדי שספק הבקר יוכל לקבל פרמטרים נוספים שספציפיים לספק.
פרמטר של אירוע משנה גודל מטרה
Quality_Report_Id 8 תווים 0x00 עד 0x10: שמורים.
0x11: מעקב אחרי הודעות LMP/LL.
0x12: מעקב תזמון של Bluetooth Multi-link/Coex.
0x13: העתקת נתונים של מידע על תוצאות ניפוי הבאגים של הבקר.
0x14 עד 0xFF: שמורים.
Connection_Handle 2 אוקטטים Connection Handle.
פרמטר ספציפי לספק (אורך הפרמטר הכולל - 4) * אוקטטים פורמט ספציפי לספק של מעקב אחר הודעות LMP, מעקב אחר תזמון של Bluetooth Multi-link/Coex ו-dump של נתוני מידע לניפוי באגים של בקר.

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

כשהאירוע מופעל, חובה ליצור אותו בכל מרווח זמן ISO.

Activation (הפעלה)
כדי להפעיל את הקוד, בוחרים את קוד הספק Data_Path_ID 0x19 בפקודה הרגילה HCI_LE_Setup_ISO_Data_Path. צריך לקבל את הפקודה HCI_Configure_Data_Path עם הערך Data_Path_ID שמוגדר ל-0x19 והערך Vendor_Specific_Config_Length שמוגדר ל-0, גם אם לא צפויה פעולה מהבקר עם קבלת הפקודה הזו.
נקודת הזמן של שליחת ההזמנה
האירוע נשלח מתחילת מרווח זמן ISO (נקודת עיגון של CIG או BIG) ועד למרווח הזמן הבא של ISO. הבקר מציין את העיכוב בהתחלה בפועל של מרווח הזמן לפי תקן ISO באמצעות Anchor_Point_Delay.
סנכרון של בקר
בתחילת מרווח זמן ISO, הבקר מחשב את SN של מקור הנתונים על ידי הוספת הערך הנוכחי לערך ISO_Interval ÷ SDU_Interval שהוגדר. במרווח הזמן הראשון, הערך מאופשר ל-0.
לאחר מכן, לכל חבילה ב-ISO FIFO חלים הכללים הבאים:
  • הבקר מחשב את ההפרש SNdiff בין שני מספרי הרצף:
    SNdiff = (SDUSN - StreamSN + 0x10000) mod 0x10000
  • כאשר (SNdiff + (FT-1) × ISO_Interval ÷ SDU_Interval) mod 0x10000 <= (FT-1) × ISO_Interval ÷ SDU_Interval:
    החבילה נמצאת בחלון ההעברה החוזרת. היא אמורה הייתה להיות מתוזמנת לשידור במרווחי זמן קודמים, ועכשיו היא זמינה לשידור חוזר. אם זה לא המקרה (היא לא תוזמנה להעברה), היא תתקבל באיחור. צריך להעביר את האות הזה למארח באמצעות In_Status. אפשר להשליך חבילות כאלה או לתזמן אותן לשידור. הבחירה תלויה בהטמעה.
  • או כאשר SNdiff < ISO_Interval ÷ SDU_Interval:
    החבילה מתוזמנת לשליחה מהאירוע הזה עד לסיום הזמן הקצוב לתפוגה של ה-flush.
  • או כאשר SNdiff >= ISO_Interval ÷ SDU_Interval ו-SNdiff <= Max_Forward_Buffers:
    החבילה תישלח באירוע מאוחר יותר. מאחר שהחבילות נשלחות לפי הסדר, התנאי הזה מסיים את החיפוש אחר חבילות במרווח הזמן הזה.
    מאגרי הנתונים שבהם המארח משתמש לא מועברים לבקר, אבל הם מוגבלים ל-Max_Forward_Buffers = 16.
  • או אם אף אחד מהתנאים שלמעלה לא מתקיים:
    החבילה נזרקת, מגיעים למגבלת הזמן הקצוב לניקוי או מתקבלת חבילה בפורמט שגוי.

פרמטר של אירוע משנה גודל מטרה
Connection_Handle 2 אוקטטים ידית החיבור של CIS או BIS
טווח: 0x0000 עד 0x0EFF
Sequence_Number 2 אוקטטים מספר הרצף של הסטרימינג, שמנוהל על ידי הבקר.

מוגדר ל-0 כשיוצרים את ה-CIS או ה-BIS, ומשופר במספר ה-SDUs לפי מרווח זמן איזוכרוני של ISO, שמוגדר כ-ISO_interval ÷ SDU_Interval, בכל מרווח זמן ISO.
Anchor_Point_Delay 2 אוקטטים עיכוב במיקרו-שניות בין יצירת האירוע לנקודת העיגון בפועל של BIG או CIG, או לתחילת מרווח הזמן של ISO. חותמת הזמן של נקודת העוגן בפועל מוגדרת לפי:
Event generation time - Anchor_Point_Delay

טווח: 0 עד מרווח ISO במיליוניות השנייה
In_Status 2 אוקטטים סטטוס מאגר ה-ISO של הבקר

בתחילת מרווח זמן ISO, כל ביט bi מוגדר כש-SDU (Sequence_Number + i) mod 0x10000 זמין. אם הוא לא זמין, הערך של SDU הוא Not received from the host.

הערך i נע בין 0 ל-ISO_Interval ÷ SDU_Interval - 1. בערכים אחרים של i, הביטים מוגדרים ל-0.
Tx_Status 2 אוקטטים סטטוס ההעברה, ביחס ל-SDUs עם מספרי הסדר:
(Sequence_Number - Flush_Timeout × ISO_Interval ÷ SDU_Interval + i + 0x10000) mod 0x10000

כל ביט bi מוגדר כשכל ה-PDUs של ה-SDU המזוהה, לפי מספר הסדר שלו, הועברו בהצלחה ונענו.

הערך i נע בין 0 ל-ISO_Interval ÷ SDU_Interval - 1. בערכים אחרים של i, הביטים מוגדרים ל-0.
בקבוצת שידור, תמיד צריכה להתקבל הודעה על אישור ההעברה.

תמיכה במספר מפרסמים

מטרות התמיכה במספר מפרסמים הן:

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

כדי שהמפרט הזה יהיה קרוב לסטנדרטים הקיימים, מוצגות בהמשך הפקודות הספציפיות לכל ספק. הם נגזרים מהמפרט של Bluetooth Core 4.1.

LE_Multi_Advt_Command

OCF: ‏ 0x154

פרמטר של פקודה גודל מטרה
Multi_advt_opcode 8 תווים 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 8 תווים סטטוס Command Complete
Multi_advt_opcode 8 תווים 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)

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 8 תווים מציין את ההתאמה של הפרמטרים שלמעלה למכונה
Tx_power 8 תווים Transmit_Power
יחידה – ב-dBm (מספר שלם עם סימן)
טווח (-70 עד +20)

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

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

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Multi_advt_opcode 8 תווים 0x01 [Set_Advt_Param_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Data_Multi_Sub_Cmd

מקור מידע בסיסי: מפרט Bluetooth Core 4.1, דף 969 (פקודה להגדרת נתוני פרסום ב-LE)

OCF משני: 0x02

פרמטר של פקודת משנה גודל מטרה
Advertising_Data_Length לפי מפרט לפי מפרט
Advertising_Data לפי מפרט לפי מפרט
Advertising_Instance 8 תווים מציין את ההתאמה של הפרמטרים שלמעלה למכונה

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

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Multi_advt_opcode 8 תווים 0x02 [Set_Advt_Data_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Scan_Resp_Data_Multi_Sub_Cmd

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

Sub OCF: ‏ 0x03

פרמטר של פקודת משנה גודל מטרה
Scan_Response_Data_Length לפי מפרט לפי מפרט
Scan_Response_Data לפי מפרט לפי מפרט
Advertising_Instance 8 תווים מציין את ההתאמה של הפרמטרים שלמעלה למכונה

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

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
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, דף 963 (פקודה להגדרת כתובת אקראית ב-LE)

Sub OCF: ‏ 0x04

פרמטר של פקודת משנה גודל מטרה
כתובת אקראית לפי מפרט לפי מפרט
Advertising_Instance 8 תווים מציין את ההתאמה של הפרמטרים שלמעלה למכונה

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Multi_advt_opcode 8 תווים 0x04 [Set_Random_Addr_Multi_Sub_Cmd]

LE_Multi_Advt_Command: Set_Advt_Enable_Multi_Sub_Cmd

מקור מידע בסיסי: מפרט Bluetooth Core 4.1, דף 971 (פקודה להפעלת מודעות LE במפרט הליבה הזה)

OCF: ‏ 0x05

פרמטר של פקודת משנה גודל מטרה
Advertising_Enable 8 תווים ערך של 1 מציין הפעלה. כל ערך אחר פירושו השבתה.
Advertising_Instance 8 תווים מציין את ההתאמה של הפרמטרים שלמעלה למכונה. מכונה 0 היא מכונה רגילה של HCI.

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Multi_advt_opcode 8 תווים 0x05 [Set_Advt_Enable_Multi_Sub_Cmd]

העברה של פתרון כתובת פרטית

התכונה הזו מאפשרת פתרון של כתובת פרטית בקושחה או בחומרה של הבקר, ומספקת את היתרונות הבאים:

  • זמן האחזור המשויך למארח בפתרון כתובת פרטית
  • חיסכון באנרגיה על ידי הימנעות מהפעלת המארח

LE_Set_RPA_Timeout

OCF: ‏ 0x15C

פרמטר של פקודה גודל מטרה
LE_local_IRK 16 אוקטטים מפתח ה-IRK המקומי של המכשיר ששימש ליצירת הכתובות הניתנות לפתרון באופן אקראי.
tRPA_min 2 אוקטטים הזמן הקצוב המינימלי ליצירת RPA בשניות. לאחר חלוף הזמן הקצוב, הבקרים חייבים ליצור כתובות חדשות שניתן למצוא אותן לכל אירוע פרסום/סריקה/קישור.
טווח תקין: 300-1800
tRPA_max 2 אוקטטים הזמן המקסימלי ליצירת RPA בשניות. עד למועד הקצוב הזה, המאגר צריך ליצור כתובות חדשות שניתן למצוא אותן לכל אירוע פרסום/סריקה/קישור.
טווח תקין: tRPA_min-1800
פרמטר להחזרה גודל מטרה
Status 8 תווים הסטטוס של הפקודה.

הצעות לערכים של סטטוס HCI:
0x00 הצלחה
0x01 פקודה לא מוכרת (אם היא לא נתמכת)
0x12 פרמטרים לא חוקיים של פקודה (אם פרמטרים כלשהם נמצאים מחוץ למגוון הנתון)

LE_RPA_offload_Command

OCF: ‏ 0x155

פרמטר של פקודה גודל מטרה
RPA_offload_opcode 8 תווים 0x1 – הפעלת תכונה ספציפית ללקוח
0x2 – הוספת IRK לרשימה
0x3 – הסרת IRK מהרשימה
0x4 – ניקוי רשימת ה-IRK
0x5 – קריאת רשומת IRK ברשימה

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Event_RPA_offload_opcode 8 תווים 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 8 תווים 0x01 – הפעלת תכונת RPA שהועברה לענן
0x00 – השבתת תכונת RPA שהועברה לענן

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Event_cust_specific_feature_opcode 8 תווים 0x01 [Enable customer-specific feature]

LE_RPA_offload: Add_IRK_to_list_sub_Command

OCF משני: 0x02

פרמטר של פקודת משנה גודל מטרה
LE_IRK 16 אוקטטים LE IRK (1st byte LSB)
Address_Type 8 תווים 0: כתובת ציבורית
1: כתובת אקראית
LE_Device_Address 6 אוקטטים כתובת ציבורית או אקראית המשויכת ל-IRK (ה-LSB של הבית הראשון)

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Event_cust_specific_feature_opcode 8 תווים 0x02 [Add IRK to the list]
LE_IrkList_AvailableSpaces 8 תווים רשימת הרשומות הזמינות ב-IRL אחרי הפעולה הנוכחית

LE_RPA_offload: Remove_IRK_to_list_sub_Command

Sub OCF: ‏ 0x03

פרמטר של פקודת משנה גודל מטרה
Address_Type 8 תווים 0: כתובת ציבורית
1: כתובת אקראית
LE_Device_Address 6 אוקטטים כתובת ציבורית או אקראית שמשויכת ל-IRK

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Event_cust_specific_feature_opcode 8 תווים 0x03 [הסרת IRK מהרשימה]
LE_IrkList_AvailableSpaces 8 תווים רשימת הרשומות הזמינות ב-IRL אחרי הפעולה הנוכחית

LE_RPA_offload: Clear_IRK_list_sub_Command

Sub OCF: ‏ 0x04

פרמטר של פקודת משנה גודל מטרה
ללא

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Event_cust_specific_feature_opcode 8 תווים 0x04 [Clear IRK List]
LE_IrkList_AvailableSpaces 8 תווים רשימת הרשומות הזמינות ב-IRL אחרי הפעולה הנוכחית [max_irk_list_sz]

LE_RPA_offload: Read_IRK_list_sub_Command

Sub OCF: ‏ 0x05

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

ייווצר אירוע Command Complete עבור הפקודה הזו.

פרמטר להחזרה גודל מטרה
Status 8 תווים סטטוס Command Complete
Event_cust_specific_feature_opcode 8 תווים 0x05 [קריאת רשומת IRK]
LE_Read_IRK_List_entry 8 תווים האינדקס של ה-IRK שהמארח רוצה לקרוא חזרה (הגודל המקסימלי של רשימת ה-IRK הוא 32)
LE_IRK 16 אוקטטים ערך IRK
Address_Type 8 תווים 0: כתובת ציבורית
1: כתובת אקראית
LE_Device_Address 6 אוקטטים כתובת ציבורית או אקראית שמשויכת למפתח IRK
LE_Resolved_Private_Address 6 אוקטטים הכתובת הפרטית הנוכחית שניתן לפתור של ה-IRK הזה