ב-Android 16 הושק מודול למדידת מרחק. המפרט הזה של הפרוטוקול והמטען הייעודי מגדיר את רצף ההודעות ואת המטען הייעודי של תקשורת מחוץ לפס (OOB) שמשמשת להחלפת הגדרות למדידת המרחק, ולהפעלה ולעצירה של מדידת המרחק בין המכשיר המבצע את הקריאה לבין המכשיר המגיב שמבצע את התשובה.
המטרה העיקרית של הדף הזה היא לאפשר לספקי מכשירים שאינם Android להטמיע את המפרט הזה כדי שהמכשירים שלהם יהיו תואמים למדידת המרחק ממכשירי Android.
הודעות וסדר ההודעות
בקטע הזה מתוארות ההודעות והסדר של החלפת ההודעות.
בטבלה הבאה מוצגות כל ההודעות שמופיעות בחילופי הנתונים מחוץ ל-Outlook:
הודעה | מזהה ההודעה |
---|---|
Ranging Capability Request |
0x0 |
Ranging Capability Response |
0x1 |
Ranging Configuration |
0x2 |
Ranging Configuration Response (אופציונלי) |
0x3 |
Stop Ranging |
0x6 |
Stop Ranging Response (אופציונלי) |
0x7 |
כפי שמוצג בתרשים 1 ובתרשים 2, האופן שבו מתבצעת החלפת ההודעות תלוי בערוץ התקשורת.
בערוצי תקשורת שמבוססים על חיבור, כמו BLE GATT, החלפת ההודעות מתחילה במכשיר המבצע את ההתחלה, ששולח את Ranging Capability Request
למכשיר המגיב. המכשיר של המשתמש המגיב משיב על ידי שליחת Ranging
Capability Response
, כפי שמוצג באיור 1:
איור 1. החלפת הודעות מחוץ ל-UI באמצעות ערוץ תקשורת מבוסס-חיבור.
בערוצי תקשורת שמבוססים על פרסום, מכשיר המשתמש המגיב מתחיל לפרסם את Ranging Capability
. במקרה כזה, הערך Ranging Capability Request
לא נשלח מהמכשיר שמתחיל את הקריאה. במקום זאת, אחרי זיהוי המודעה, כשהמכשיר המבצע את הקריאה (הסורק הראשוני) מוכן, הוא מגיב על ידי פרסום Ranging Configuration
כהודעה הראשונה שלו, כפי שמוצג באיור 2:
איור 2. החלפת הודעות מחוץ ל-Outlook באמצעות תקשורת מבוססת-מודעות.
שאר החלפת ההודעות זהה בשני המקרים. מכשיר התגובה מתחיל לבצע מדידות מרחק מיד אחרי שהוא מקבל את ההודעה Ranging Configuration
.
מכשיר התגובה מפסיק את מדידת המרחק אחרי שהוא מקבל או מזהה את ההודעה Stop
Ranging
.
בתהליך שמבוסס על חיבור, מכשיר התגובה מאכלס את היכולות רק של טכנולוגיות הטווח שנשלחה עבורן בקשה בהודעה Ranging Capability Request
. לעומת זאת, בתהליך שמבוסס על פרסום, מכשיר התגובה צריך לרשום את כל היכולות שלו כי אין הודעה קודמת של בקשת יכולות.
המכשיר שמתחיל את התהליך מניח שהוא יקבל רק תשובה אחת לכל הודעת בקשה שהוא שולח. מכשיר התגובה לא יכול להניח דבר כזה, כדי שיוכל להגיב לכל בקשה בסדר כלשהו. כך אפשר להבטיח שמכשיר התגובה יוכל להגיב למספר הודעות Ranging Capability Request
רצופות או לכל הודעה אחרת שלא נשלחה בסדר מהמכשיר שהתחיל את הקריאה.
מזהים של טכנולוגיות למדידת מרחק
המזהים של טכנולוגיות המדידה מפורטים בטבלה הבאה:
טכנולוגיית מדידת המרחק | מזהה |
---|---|
UWB | 0x0 |
CS | 0x1 |
Wi-Fi NAN RTT | 0x2 |
RSSI | 0x3 |
RFU | 0x4 עד 0xFF |
המזהים האלה משמשים בטבלאות הבאות, שבהן נדרש מזהה טכנולוגיית הטווח. בשדות שמכילים שדה ביט של טכנולוגיית טווח, הביט שתואם למזהה הטכנולוגיה מוגדר כשהטכנולוגיה הזו נכללת בשדה הביט.
לדוגמה, ל-RSSI יש ערך מזהה 3, אבל אם ה-RSSI נכלל בשדה הביט של טכנולוגיית הטווח, צריך להפעיל את הביט שמתאים למיקום המזהה (3) (הביט הראשון נמצא במיקום 0), וכך הערך שיתקבל בשדה הביט הוא 0x8. אם גם UWB וגם RSSI כלולים, הערך של bitfield הוא 0x0A (שני הביטים 0 ו-3 מופעלים).
פורמט הודעה
כל הודעה מורכבת מכותרת ומעמס נתונים.
איור 3. פורמט ההודעה.
כותרת
גודל: 2 בייטים
תיאור: הכותרת היא החלק הראשון שמופיע בכל ההודעות. הכותרת מכילה גרסה ומזהה של סוג ההודעה. השדה version מציין את הגרסה של המפרט הזה שאליה תוכן ההודעה תואם. הגרסה הנוכחית של המפרט הזה היא 1
. למידע נוסף על האופן שבו נעשה שימוש בגרסאות בין מכשירים בגרסאות שונות, ראו ניהול גרסאות. הכותרת תמיד תואמת לאחור לגרסאות שונות, כך שאפשר תמיד לנתח אותה כדי לקבוע את הגרסה ואת המזהה של ההודעה.
הכותרת מסכמת בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | גרסה | 0x1 – הגרסה הנוכחית |
1 | unit8 | מזהה ההודעה |
|
מטען ייעודי (payload)
גודל: משתנה (תלוי בסוג ההודעה)
תיאור: תוכן טעינה פעיל הוא החלק האחרון של ההודעה, אחרי הכותרת. עומס העבודה תלוי בסוג ההודעה. הפורמט של המטען הייעודי (Payload) של כל סוג הודעה מוגדר בקטעים הבאים.
מטען נתונים של הודעה לבקשת יכולת למדידת טווח
גודל (לא כולל גודל הכותרת): 2 בייטים
תיאור: נשלח על ידי המכשיר המבצע את ההתחלה כדי להתחיל את החלפת ההודעות.
ההודעה הזו היא אופציונלית כשערוץ התקשורת מבוסס על פרסום. במקרה כזה, מכשיר התגובה נדרש לפרסם הודעה מסוג Ranging
Capability
בשלב הראשון. מכשיר ההתחלה (הסורק הראשוני) קורא את המודעה ומגיב ישירות בהודעת Ranging Capability
, כך שאין צורך בהודעה הזו.
תוכן ההודעה Ranging Capability Request
מסכם בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8*2 | ביט פילד של טכנולוגיות הטווח המבוקשות |
|
עומס העבודה של הודעת התגובה ליכולת למדידת טווח
גודל (לא כולל גודל הכותרת): משתנה (חלק משותף של 2 בייטים ועוד הגודל של כל בייט של טכנולוגיית הטווח הכלולה)
תיאור: נשלחת על ידי המשתמש שתגובה להודעה Ranging Capability
Request
. עומס העבודה של ההודעה הזו מורכב מהחלק המשותף ומחלקים ספציפיים לטכנולוגיית הטווח (BLE CS, Wi-Fi NAN RTT CS, BLE RSSI), כפי שמתואר בטבלאות הבאות. צריך להוסיף כל חלק ספציפי לטכנולוגיית הטווח רק אם טכנולוגיית הטווח הזו נתמכת במכשיר המגיב ומופיעה בבקשה בהודעה Ranging Capability Request
. במקרה של ערוץ תקשורת של מודעה, צריך לכלול את כל טכנולוגיות המדידה הנתמכות.
תוכן העומס הנפוץ של הודעות Ranging Capability Response
מפורט בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8*2 | ביט-מַקס של טכנולוגיות למדידת מרחק נתמכות. מציין את קבוצת היכולות של טכנולוגיות המדידה שמופיעות בהמשך המטען הייעודי. |
|
2 | מערך בייטים | בייטים של יכולת הטכנולוגיה למדידת טווח. | בלוקים חוזרים של מבנים מוגדרים לכל טכנולוגיה. |
נתוני העומס של ההודעה Ranging Capability Response
ב-UWB מפורטים בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | מזהה טכנולוגיית הטווח | 0x0 – UWB |
1 | uint8 | גודל | גודל הבייטים של יכולות UWB (כולל השדות Technology ID ו-Size) בבייטים. |
2 | uint8*2 | כתובת UWB | כתובת UWB של מכשיר באורך 2 בייטים. |
4 | uint8*4 | ביט-מידע של ערוצים נתמכים | שדה ביט של הערוצים הנתמכים. ביט שמוגדר כ-0 מציין שהתכונה לא נתמכת, ו-1 מציין שהתכונה נתמכת. ביט 0 תואם לערוץ 0.LSB == channel 0 MSB == channel 31 |
8 | uint8*4 | ביט פילד נתמך של אינדקס הקדמה | שדה ביט של אינדקסים נתמכים של כותרת. ביט שמוגדר כ-0 מציין שהתכונה לא נתמכת, ו-1 מציין שהתכונה נתמכת. הבייט 0 תואם לאינדקס הקדמה 1.LSB == preamble index 1 MSB == preamble index 32 |
12 | uint8*4 | ביט פול של מזהי תצורה נתמכים | שדה ביט של מזהי תצורה נתמכים של UWB. ביט שמוגדר כ-0 מציין שאין תמיכה, וביט שמוגדר כ-1 מציין שיש תמיכה.LSB == config Id 0 > MSB == config Id 31 |
16 | uint8*2 | מרווח הזמן המינימלי שנתמך למדידת המרחק | הערך הזה מציין את מרווח הזמן המהיר ביותר שנתמך למדידת המרחק, באלפיות השנייה. הערכים המותרים (במילי-שניות):
|
18 | uint8 | משך הזמן המינימלי שנתמך לחלון | הערך הזה מציין את משך הזמן הקצר ביותר של חריץ נתמך, באלפיות השנייה. לדוגמה, אם המכשיר מחזיר 1ms, ההנחה היא שהוא תומך גם באורך זמן של 2ms ואילך. הערכים המותרים (במילי-שניות):
|
19 | ביט פילד נתמך של תפקיד מכשיר UWB | שדה ביט של התפקידים הנתמכים ב-UWB. לדוגמה, אם שניהם נתמכים, הערך הסופי בשדה הוא 0x3.
|
תוכן הודעה Ranging Capability Request
של BLE CS מסכם בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | מזהה טכנולוגיית הטווח | 0x1 – BLE CS |
1 | uint8 | גודל | גודל הבייטים של יכולות BLE CS (כולל השדות Technology ID ו-Size) בבייטים. |
2 | uint8 | ביט פילד של סוגי האבטחה הנתמכים | שדה ביט של סוגי האבטחה הנתמכים ב-BLE CS.
|
3 | uint8*6 | כתובת המכשיר | הכתובת של המכשיר שמשמש ל-BLE CS, בסדר big endian. |
תוכן העל של ההודעה Ranging Capability Request
ב-Wi-Fi NAN RTT CS מסכם את הפרטים הבאים:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | מזהה טכנולוגיית הטווח | 0x2 – Wi-Fi NAN RTT |
1 | uint8 | גודל | גודל הבייטים של יכולות ה-RSSI של BLE (כולל השדות Technology ID ו-Size) בבייטים. |
2 | uint8 | מחרוזת בייט של התכונות הנתמכות | שדה ביט של התכונות הנתמכות.
|
3 | uint8 | תמיכה בטווח תקופתי |
|
4 | uint8 | רוחב הפס הנתמך | המידע הזה עוזר להסיק את רמת הדיוק האפשרית למדידת המרחק באמצעות Wi-Fi NAN, ויכול לעזור לאפליקציות לקבוע אם להשתמש ב-UWB, ב-BLE CS, ב-BLE RSSI או ב-Wi-Fi NAN למדידת המרחק.
|
5 | uint8 | מספר שרשרות הקבלה הנתמכות | המידע הזה עוזר להסיק את רמת הדיוק האפשרית למדידת המרחק באמצעות Wi-Fi NAN, ויכול לעזור לאפליקציות לקבוע אם להשתמש ב-UWB, ב-BLE CS, ב-BLE RSSI או ב-Wi-Fi NAN למדידת המרחק.
|
תוכן העלון של הודעת ה-RSSI של BLE Ranging Capability Request
מפורט בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | מזהה טכנולוגיית הטווח | 0x3 – BLE CS |
1 | uint8 | גודל | הגודל בבייטים של הבייטים של יכולות ה-RSSI ב-BLE (כולל השדות Technology ID ו-Size) |
2 | uint8*6 | כתובת המכשיר | הכתובת של המכשיר שמשמש ל-BLE RSSI, בסדר big endian |
עומס העבודה של הודעת תצורת הטווח
גודל (לא כולל גודל הכותרת): משתנה (החלק המשותף הוא 4 בייטים, בתוספת הגודל של כל בייט של טכנולוגיית הטווח הכלולה).
תיאור: ההודעה הזו נשלחת על ידי הגורם שמתחיל את הבדיקה, והיא מכילה את ההגדרות שבהן כל טכנולוגיית מדידת המרחק יכולה להתחיל את מדידת המרחק. כשהמכשיר המגיב מקבל את ההודעה הזו, הוא צריך לנסות להתחיל למדוד את המרחק באמצעות כל טכנולוגיית מדידה שצוינה. עומס העבודה של ההודעה הזו מורכב מהחלק המשותף וחלקים ספציפיים לטכנולוגיית הטווח (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI), כפי שמוצג בטבלאות הבאות.
תוכן העומס הנפוץ של הודעות Ranging Configuration
מפורט בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8*2 | ביט פילד של קבוצת ההגדרות של טכנולוגיות למדידת מרחק | שדה ביט של טכנולוגיות למדידת מרחק, שההודעה הזו מכילה נתוני תצורה עבורן, ויש להגדיר את פרמטרים התצורה שלהן.
|
2 | uint8*2 | שדה ביט | RFU. צריך להגדיר אותו לאותו ערך כמו השדה Ranging technologies configuration set bitfield. |
4 | מערך בייטים | בייטים של הגדרות טכנולוגיות למדידת טווח | בלוקים חוזרים של מבנים מוגדרים לכל טכנולוגיה |
תוכן ההודעה Ranging Configuration
ב-UWB מתומצת בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | מזהה טכנולוגיית הטווח | 0x0 – UWB |
1 | uint8 | גודל | הגודל של הגדרת UWB (כולל השדות Technology ID ו-Size) בבייטים |
2 | uint8*2 | כתובת UWB | כתובת UWB של מכשיר באורך 2 בייטים |
4 | uint8*4 | מזהה הפעילות | מזהה הסשן שנוצר. מזהה הסשן הוא מזהה ייחודי של סשן המדידת המרחק בין הטלפון לבין ההתקן ההיקפי. |
8 | uint8 | מזהה התצורה שנבחר | מספר מזהה התצורה שנבחר כמספר שלם. מזהה התצורה מציין את פרמטרי התזמון ואת סוג האבטחה שצריך להשתמש בהם בסשן למדידת המרחק ב-UWB. |
9 | uint8 | הערוץ שנבחר | הערוץ שנבחר לסשן למדידת המרחק ב-UWB |
10 | uint8 | אינדקס הכותרת הפותחת שנבחר | אינדקס הפתיח שנבחר לסשן למדידת המרחק ב-UWB |
11 | uint8*2 | מרווח הסריקה שנבחר | שיעור מרווח הזמן שנבחר למדידת המרחק באלפיות השנייה. הערכים המותרים (במילי-שניות):
|
13 | uint8 | משך הזמן שנבחר למשבצת | משך הזמן של המשבצת שנבחרה באלפיות שנייה. הערכים המותרים (במילי-שניות):
|
14 | uint8 | אורך מפתח הסשן | האורך של מפתח הסשן בבייטים |
15 | מערך בייטים | מפתח סשן | מפתח סשן. אם נעשה שימוש ב-S-STS, שני הבייטים הראשונים הם מזהה הספק וששת הבייטים הבאים הם STATIC STS IV. אם נעשה שימוש ב-P-STS, זהו מפתח סשן באורך 16 או 32 בייטים. סוג האבטחה שבו נעשה שימוש נקבע לפי מזהה התצורה. |
משתנה | uint8*2 | קוד המדינה | קוד מדינה לפי תקן ISO 3166-1 alpha-2, שמיוצג על ידי שני תווים של ASCII |
משתנה | uint8 | התפקיד של המכשיר שנבחר |
|
משתנה | uint8 | מצב המכשיר שנבחר |
|
תוכן הודעה Ranging Configuration
של BLE CS מסכם בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | מזהה טכנולוגיית הטווח | 0x1 – BLE CS |
1 | uint8 | גודל | הגודל בבייטים של הגדרת BLE CS (כולל השדות Technology ID ו-Size) |
2 | uint8 | סוג האבטחה שנבחר | סוג האבטחה שנבחר. הערכים המותרים:
|
3 | uint8*6 | כתובת המכשיר | הכתובת של המכשיר שמשמש ל-BLE CS, לפי סדר big endian |
תוכן העומס של הודעת Ranging Configuration
ב-Wi-Fi NAN RTT מפורט בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | מזהה טכנולוגיית הטווח | 0x2 – Wi-Fi NAN RTT |
1 | uint8 | גודל | הגודל בבייטים של הגדרת RTT של Wi-Fi NAN (כולל השדות Technology ID ו-Size) |
2 | uint8 | האורך של שם השירות | האורך של השדה Service name בבייטים. אפשר לעיין במפרט של Wi-Fi Aware גרסה 4.0, קטע 1.3.3 טבלה 1. הגדרות. |
3 | מערך בייטים | שם שירות | שם השירות. אפשר לעיין במפרט של Wi-Fi Aware גרסה 4.0, קטע 1.3.3 טבלה 1. הגדרות. |
משתנה | uint8 | תפקיד המכשיר |
|
משתנה | uint8 | שימוש במדידה תקופתית |
|
תוכן העלון של הודעת ה-RSSI של BLE Ranging Configuration
מפורט בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8 | מזהה טכנולוגיית הטווח | 0x3 – BLE RSSI |
1 | uint8 | גודל | הגודל בבייטים של הגדרת ה-RSSI של BLE (כולל השדות Technology ID ו-Size) |
2 | uint8*6 | כתובת המכשיר | הכתובת של המכשיר שמשמש ל-BLE RSSI, בסדר big endian |
עומס העבודה של הודעת התגובה לתצורת הטווח
גודל (לא כולל גודל הכותרת): 2 בייטים
תיאור: ההודעה הזו נשלחת על ידי מי שהשיב על הטופס בתגובה להודעה Ranging Configuration
. ההודעה הזו היא אופציונלית, והיא נדרשת רק אם בערוץ התקשורת שבו משתמשים נדרש לשלוח תשובה מפורשת לכל בקשה.
תוכן ההודעה של Ranging Configuration Response
מפורט בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8*2 | הגדרת טכנולוגיות למדידת מרחק הושלמה בהצלחה bitfield | שדה ביט של טכנולוגיות למדידת מרחק שהוגדרו בהצלחה. בשדה ה-bitfield, הביט של טכנולוגיית הטווח מוגדר ל-1 אם הבקשה לטכנולוגיה בוצעה והיא הוגדרה בהצלחה, ו-0 במקרים אחרים.
|
נתוני העומס של הודעת Stop Ranging
גודל (לא כולל גודל הכותרת): 2 בייטים
תיאור: המכשיר המבצע את ההתחלה שולח את ההודעה הזו כשמגיע הזמן להפסיק את המדידת המרחק באמצעות טכנולוגיית המדידה שצוינה.
תוכן ההודעה Stop Ranging
מפורט בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8*2 | טכנולוגיות למדידת מרחק כדי לעצור את ביט פילד | שדה ביטים של טכנולוגיות למדידת מרחק שצריכות להפסיק את המדידה. ביט שמוגדר כ-1 מציין שטכנולוגיית הטווח חייבת להפסיק את מדידת הטווח, ו-0 מציין שטכנולוגיית הטווח לא הייתה בכלל במדידה, או שהיא חייבת להמשיך במדידה אם היא כבר הייתה במדידה. בטכנולוגיות מסוימות של מדידת מרחק (כמו CS), הפעולה הזו לא משמעותית כי מדידת המרחק מופעלת ומפסיקה לפעול רק בצד המפעיל.
|
עומס העבודה של הודעת התגובה להפסקת הסריקה
גודל (לא כולל גודל הכותרת): 2 בייטים
תיאור: ההודעה הזו נשלחת על ידי מי שהשיב על הטופס בתגובה להודעה Stop Ranging
. ההודעה הזו היא אופציונלית, והיא נדרשת רק אם בערוץ התקשורת שבו נעשה שימוש נדרש לשלוח תשובה מפורשת לכל בקשה.
תוכן ההודעה Stop Ranging Response
מסכם בטבלה הבאה:
אוקטט | סוג נתונים | תיאור | ערך |
---|---|---|---|
0 | uint8*2 | טכנולוגיות למדידת מרחק הופסק בהצלחה bitfield | שדה ביט של טכנולוגיות למדידת מרחק שהפסיקו למדוד מרחק בהצלחה. בשדה ה-bitfield, הביט של טכנולוגיית הטווח מוגדר ל-1 אם הבקשה להפסקת הטכנולוגיה בוצעה והיא הופסקה בהצלחה, ו-0 במקרים אחרים.
|
ניהול גרסאות
גרסת המפרט נכללת בכותרת של כל הודעה. בקטע הזה מוסבר איך מתנהלת התקשורת כשאחד מהמכשירים (המבצע או המגיב) פועל בגרסה ישנה יותר מהמכשיר השני.
מקרה 1: ערוץ תקשורת שמבוסס על חיבור
בקטע הזה מתוארים מקרים שבהם נעשה שימוש בערוץ תקשורת שמבוסס על חיבור, שבו Ranging Capability Request
היא ההודעה הראשונה שנשלחת על ידי מכשיר ההתחלה.
מקרה 1.א: הגורם שמתחיל את הקריאה תומך בגרסה חדשה יותר, והגורם שמגיב תומך בגרסה ישנה יותר של המפרט.
מכשיר ההתחלה שולח את ההודעה Ranging Capability Request
עם הגרסה החדשה יותר. מכשיר המשתמש המגיב תומך רק בגרסה הישנה יותר, ולכן הוא מגיב באמצעותה, ולאחר מכן הגרסה הישנה יותר של המשתמש המגיב משמשת לשאר חילופי ההודעות. כלומר, ההודעה Ranging Capability Request
צריכה להיות תואמת לאחור.
מקרה 1.ב: הגורם שמתחיל את הקריאה תומך בגרסה ישנה יותר, והגורם שמגיב תומך בגרסה חדשה יותר של המפרט.
מכשיר התגובה מזהה שהמכשיר שהתחיל את הקריאה לא יכול להשתמש בגרסה החדשה, ולכן הוא שולח הודעות רק באמצעות הגרסה הישנה יותר שביקשה המכשיר שהתחיל את הקריאה.
מקרה 2: ערוץ תקשורת שמבוסס על מודעות
בקטע הזה מתוארים מקרים שבהם נעשה שימוש בערוץ תקשורת שמבוסס על פרסום, שבו מכשיר התגובה מפרסם את Ranging Capability Request
ישירות, בלי בקשה ראשונית.
מקרה 2.א: הגורם המבצע תומך בגרסה חדשה יותר, והגורם המגיב תומך בגרסה ישנה יותר של המפרט.
הגרסה הישנה יותר שמוגדרת במודעה Ranging Capability Response
משמשת לשאר התקשורת.
מקרה 2.ב: הגורם שמתחיל את הקריאה תומך בגרסה ישנה יותר, והגורם שמגיב תומך בגרסה חדשה יותר של המפרט.
הגרסה החדשה של המודעה Ranging Capability Response
חייבת להיות תואמת לאחור כדי שמכשיר היזום יוכל לקרוא את ההודעה, גם אם הוא משתמש בגרסה חדשה יותר. לאחר מכן, מכשיר ההתחלה שולח את ההודעה Ranging
Configuration
באמצעות הגרסה הישנה יותר שהוא תומך בה. זוהי הגרסה שבה נעשה שימוש בשאר התקשורת.
כדי לוודא ש-Ranging Capability Response
תואם לאחור, כל שדה חדש שיתווסף לגרסה הבאה של המפרט הזה בתוכן של ההודעה Ranging
Capability Response
חייב להתווסף לסוף התוכן, ואי אפשר לשנות אף אחד מהשדות הקיימים. כשמבצעים ניתוח של ההגדרה, אם הגודל שצוין גדול מהצפוי, כל מכשיר שיכול להבין רק את הגרסה הקודמת של המפרט צריך להתעלם משדות נוספים.
פרגמנטציה
המפרט הזה לא תלוי בערוץ התקשורת, ולכן הוא לא מגדיר איך לפצל את עומס העבודה של ההודעה במקרים שבהם הודעה אחת גדולה מדי כדי להיכנס לחבילת העברה של ערוץ התקשורת שבו נעשה שימוש. המודול למדידת המרחק מצפה לקבל כל הודעה בצורתה המלאה. האחריות על הפיצול מוטלת על מי שמטמיע את ערוץ התקשורת מחוץ ל-UI.
פרטים ספציפיים לטכנולוגיית הטווח
הקטע הזה מכיל פרטים ספציפיים לטכנולוגיית מדידת המרחק.
פרטים על Ultra Wideband (UWB)
בקטע הזה מפורטים פרטים ספציפיים לגבי Ultra-Wideband.
מזהי תצורה
נתוני ההגדרה האישיים שמחולי המערכת (OOB) שמתחלפים ב-UWB לא מכילים קבוצה מלאה של הפרמטרים הניתנים להתאמה שדרושים ל-UWB כדי להתחיל סשן של מדידת מרחק ב-UWB. הסיבה לכך היא שחלק מהפרמטרים נבחרים באופן משתמע על ידי מזהה התצורה שנבחר.
כל מזהה תצורה הוא קבוצה של פרמטרים מוגדרים מראש של תצורת UWB, שמתועדים במסמך UwbRangingParams
. המכשיר המגיב שולח רשימה של כל מזהי התצורה שהוא תומך בהם כחלק מההודעה בתגובה לבקשת היכולות, והגורם שמתחיל את הבקשה בוחר אחד ממזהי התצורה הנתמכים שבהם נעשה שימוש. כך אפשר להחליף קבוצה קטנה יותר של פרמטרים של הגדרות במהלך OOB. הוא גם מגביל את כמות השילובים האפשריים של הפרמטרים שאפשר להשתמש בהם למדידת המרחק באמצעות UWB, וכך מאפשר לבדוק רק שילובים מותרים של פרמטרים.
שליחת בקשה ליכולות אחרי כל סשן UWB
אחרי שמפסיקים סשן UWB קיים ולפני שמתחילים סשן UWB חדש, מכשיר היזום צריך לבקש את היכולות של מכשיר התגובה ולהגדיר שוב את הפרמטרים של ההגדרה, כי כתובת ה-UWB יכולה להשתנות ברגע שהסשן הנוכחי של מדידת המרחק מסתיים.
פרטים על יצירת צליל בערוץ BLE (CS)
בקטע הזה מתוארים פרטים ספציפיים לגבי הקול של הערוץ.
חיבור נדרש בין המכשירים
כדי שאפשר יהיה למדוד את המרחק באמצעות בדיקת הערוץ, צריך להיות קישור קיים בין המכשיר שמתחיל את הבדיקה לבין המכשיר שמגיב. המפרט הזה לא מספק דרך ליצור קישור בין מכשירים. המשתמש של ממשקי ה-API למדידת המרחק צריך ליצור את הקישור הזה בין המכשירים.
הפעולה הנדרשת מצוות התמיכה של הצד המגיב בנושא שירות לקוחות
ב-UWB, שני המכשירים נדרשים לבצע קריאה מפורשת ל-API של UWB כדי להתחיל ולעצור את הטווח. לעומת זאת, ב-CS, רק המכשיר המבצע את הקריאה צריך להתחיל את הטווח של ה-CS על ידי קריאה ל-Bluetooth (BT) stack. שאר תהליך האיפוס בצד המגיב מתבצע בפס דרך BT. כלומר, אם BT מופעל, בצד המגיב לא צריך לעשות שום דבר אחרי קבלת ההודעה Ranging Configuration
או ההודעה Stop Ranging
ל-CS. המכשיר המגיב יכול להשתמש בהודעות האלה כטריגר לעדכון ממשק המשתמש, או למשל להבהב בנורות ה-LED של המכשיר.