ב-Android 16 נוסף מודול מדידת טווח. במפרט הזה של הפרוטוקול והמטען הייעודי (payload) מוגדרים רצף ההודעות והמטען הייעודי של תקשורת מחוץ לתחום (OOB) שמשמשים להחלפת הגדרות של מדידת מרחק, ולהתחלה ולהפסקה של מדידת מרחק, בין המכשיר היוזם לבין המכשיר המגיב שמשתתפים במדידת המרחק. ב-Android 16 QPR3 מוצגת גרסה 2 של המפרט הזה.
המטרה העיקרית של הדף הזה היא לאפשר לספקי מכשירים שאינם מכשירי Android ליישם את המפרט הזה, כדי שהמכשירים שלהם יוכלו להיות תואמים לטווח עם מכשירי Android.
הטמעה של המפרט הזה ב-Packet Description Language (PDL) של Google זמינה ב-GitHub. מתוך ההטמעה הזו, מהדר ה-PDL יכול ליצור קוד סריאליזציה ודה-סריאליזציה עבור ההודעות שמוגדרות במפרט הזה. הוא תומך במגוון שפות יעד, כולל C++, Rust ו-Java.
מה חדש בגרסה 2
גרסה 2 של מפרט OOB כוללת את השינויים הבאים:
- מעבר בין טכנולוגיות: מאפשר מעבר דינמי בין טכנולוגיות מדידה במהלך סשן פעיל, בלי להפריע לזרם הנתונים.
- Ranging Capability Response
- כולל שדה חדש
Supported technology transitioningשמציין תמיכה במעברים טכנולוגיים של make-before-break. - כולל שדה חדש
Device typeשהיוזם יכול להשתמש בו כדי לבצע אופטימיזציה של צריכת החשמל בין המכשירים.
- כולל שדה חדש
סדר בתים (Endianness)
אלא אם צוין אחרת, כל השדות המספריים מרובי הבייטים בהודעות הם בסדר little-endian.
הודעות ורצף הודעות
בקטע הזה מתוארות ההודעות ורצף חילופי ההודעות.
בטבלה הבאה מוצגות כל ההודעות שקיימות בחילופי הנתונים מחוץ לתחום:
| הודעה | מזהה ההודעה |
|---|---|
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. החלפת הודעות OOB באמצעות ערוץ תקשורת שמבוסס על חיבור.
בערוצי תקשורת מבוססי-פרסום, המכשיר המשיב מתחיל בפרסום Ranging Capability. במקרה כזה, הנתונים של Ranging Capability Request לא נשלחים מהמכשיר שממנו מתבצעת ההעברה. במקום זאת, אחרי זיהוי המודעה, כשהמכשיר היוזם (הסורק הראשוני) מוכן, הוא מגיב בפרסום Ranging Configuration כהודעה הראשונה שלו, כמו שמוצג באיור 2:
איור 2. החלפת הודעות מחוץ לפס באמצעות תקשורת שמבוססת על מודעות.
שאר ההודעות שמועברות זהות בשני המקרים. המכשיר המשיב מתחיל למדוד את הטווח מיד אחרי שהוא מקבל את ההודעה Ranging Configuration.
המכשיר המשיב מפסיק את טווח המדידה אחרי שהוא מקבל או מזהה את ההודעה Stop
Ranging.
בתהליך מבוסס-החיבור, מכשיר המשיב מאכלס את היכולות רק של טכנולוגיות הטווח שהתבקשו בהודעה Ranging Capability Request, בעוד שבתהליך מבוסס-הפרסום, מכשיר המשיב חייב לפרט את כל היכולות שלו כי אין הודעה קודמת של בקשת יכולות.
המכשיר שיוזם את הבקשה מניח שהוא יקבל רק תגובה אחת לכל הודעת בקשה שהוא שולח. המכשיר שמשיב לא יכול להניח הנחות כאלה, כדי שיוכל להשיב לכל בקשה בכל סדר. הבדיקה הזו מוודאת שהמכשיר המשיב יכול להגיב למספר הודעות Ranging Capability Request רצופות, או לכל הודעה אחרת שלא מגיעה לפי הסדר, מהמכשיר היוזם.
מעבר לטכנולוגיה אחרת
במפרט של OOB גרסה 2 יש תמיכה מפורשת במעבר בין טכנולוגיות. כך המכשירים יכולים לעבור באופן דינמי בין טכנולוגיות שונות של מדידת מרחק במהלך סשן. כדי לעשות זאת, יוזם השיחה יכול:
- שולחים כמה הודעות
Ranging Configurationכדי להתחיל להשתמש בטכנולוגיות חדשות. - שולחים כמה הודעות
Stop Rangingכדי להפסיק את הטכנולוגיות הפעילות.
סדר ההודעות האלה משתנה בהתאם לתוכנית המעבר שנתמכת על ידי המשיב:
- הפסקת השיחה לפני התחלת שיחה חדשה: יוזם השיחה יכול לעבור לטכנולוגיה חדשה רק אחרי שהוא מפסיק את השיחה הראשונה באמצעות הודעה מסוג
Stop Rangingואז מתחיל את השיחה השנייה באמצעות הודעה מסוגRanging Configuration. - הפעלה לפני השבתה: יוזם הפעולה יכול להפעיל טכנולוגיה חדשה באמצעות הודעה מסוג
Ranging Configurationלפני שהוא משבית טכנולוגיות קיימות באמצעות הודעה מסוגStop Ranging.
התגובה חייבת לתמוך באחת מתוכניות המעבר האלה בהתאם לערך של השדה supported technology transitioning ב-Capability Response שלה.
מזהים של טכנולוגיות לטווח
בטבלה הבאה מפורטים המזהים של טכנולוגיות הטווח:
| טכנולוגיה למדידת מרחק | מזהה |
|---|---|
| UWB | 0x0 |
| CS | 0x1 |
| Wi-Fi NAN RTT | 0x2 |
| RSSI | 0x3 |
| RFU | 0x4 - 0xFF |
המזהים האלה מופיעים בטבלאות הבאות, שבהן נדרש מזהה של טכנולוגיית טווח. בשדות שמכילים שדה סיביות של טכנולוגיית מדידת מרחק, סיבית שתואמת לאינדקס של מזהה הטכנולוגיה מוגדרת כשהטכנולוגיה הזו נכללת בשדה הסיביות.
לדוגמה, ל-RSSI יש ערך מזהה 3, אבל אם ה-RSSI נכלל בשדה הביטים של טכנולוגיית מדידת הטווח, הביט עם המיקום של המזהה (3) צריך להיות מופעל (הביט הראשון נמצא במיקום 0), ולכן ערך שדה הביטים שיתקבל הוא 0x8. אם גם UWB וגם RSSI כלולים, הערך של שדה הביטים הוא 0x0A (הביטים 0 ו-3 מופעלים).
פורמט ההודעה
כל הודעה מורכבת מכותרת וממטען ייעודי.
איור 3. פורמט ההודעה.
כותרת
גודל: 2 בייטים
תיאור: הכותרת משותפת לכל ההודעות, והיא החלק הראשון שמופיע בהודעה. הכותרת מכילה גרסה ומזהה של סוג ההודעה. השדה version מציין את הגרסה של המפרט הזה שהתוכן של ההודעה תואם לה. הגרסה הנוכחית של המפרט הזה היא 2. למידע נוסף על השימוש בניהול גרסאות בין מכשירים עם גרסאות שונות, אפשר לעיין במאמר בנושא ניהול גרסאות. הכותרת
נשארת תואמת לאחור בין גרסאות שונות, מה שאומר שתמיד אפשר לנתח אותה כדי לקבוע את הגרסה ואת המזהה של ההודעה.
בטבלה הבאה מופיע סיכום של הכותרת:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8 | גרסה |
|
| 1 | unit8 | מזהה ההודעה |
|
מטען ייעודי (payload)
גודל: משתנה (תלוי בסוג ההודעה)
תיאור: מטען היישום הוא החלק האחרון של ההודעה, אחרי הכותרת. המטען תלוי בסוג ההודעה. הפורמט של המטען הייעודי (Payload) של כל סוג הודעה מוגדר בקטעים הבאים.
מטען ייעודי (payload) של הודעת בקשה ליכולת מדידת מרחק
גודל (לא כולל גודל הכותרת): 2 בייט
תיאור: נשלח על ידי המכשיר היוזם כדי להתחיל את חילופי ההודעות.
ההודעה הזו היא אופציונלית כשערוץ התקשורת מבוסס על פרסום. במקרה כזה, המכשיר שמשיב נדרש לפרסם הודעת Ranging
Capability כשלב ראשון. המכשיר היוזם (הסורק הראשוני) קורא את הפרסום ומשיב ישירות בהודעה Ranging Capability, כך שההודעה הזו לא נדרשת.
בטבלה הבאה מפורט סיכום של Ranging Capability Request מטען ההודעה:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8*2 | שדה סיביות של טכנולוגיות טווח מבוקשות |
|
מטען ייעודי (payload) של הודעת תגובה על יכולת מדידת מרחק
גודל (לא כולל גודל הכותרת): משתנה (חלק משותף של 2 בייטים בתוספת הגודל של כל בייט של טכנולוגיית טווח כלולה)
תיאור: נשלח על ידי המשיב כתשובה להודעה Ranging Capability
Request. מטען הייעודי (payload) של ההודעה הזו מורכב מהחלק המשותף ומחלקים ספציפיים לטכנולוגיה (BLE CS, Wi-Fi NAN RTT, BLE RSSI), כמו שמוצג בטבלאות הבאות. צריך להוסיף כל חלק שספציפי לטכנולוגיית מדידת מרחק רק אם המכשיר המשיב תומך בטכנולוגיית מדידת המרחק הזו והיא נדרשת בהודעת Ranging Capability Request. במקרה של ערוץ תקשורת של פרסומת, צריך לכלול את כל טכנולוגיות הטווח הנתמכות.
בטבלה הבאה מפורט תוכן המטען (payload) של ההודעה הנפוצה Ranging Capability Response:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8*2 | שדה סיביות של טכנולוגיות נתמכות למדידת מרחק. מציין את קבוצת היכולות של טכנולוגיות טווח שמופיעות בשאר המטען הייעודי (Payload). |
|
| 2 | מערך בייטים | בייטים של יכולת טכנולוגיית טווח. | בלוקים חוזרים של מבנים שמוגדרים לפי הטכנולוגיה. |
| משתנה | uint8 | מציין תמיכה במעבר לטכנולוגיה חדשה. |
|
| משתנה | uint16 | מציין את סוג המכשיר של המשיב. |
|
בטבלה הבאה מפורט סיכום של מטען הנתונים של הודעת ה-UWB Ranging Capability Response:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8 | מזהה טכנולוגיית טווח | 0x0 - UWB |
| 1 | uint8 | גודל | גודל היכולות של UWB בבייטים (כולל השדות מזהה הטכנולוגיה וגודל) בבייטים. |
| 2 | uint8*2 | כתובת UWB | כתובת UWB של המכשיר באורך 2 בייט. |
| 4 | uint8*4 | שדה סיביות של ערוצים נתמכים | שדה סיביות של ערוצים נתמכים. אם הביט מוגדר ל-0, המשמעות היא שאין תמיכה, ואם הוא מוגדר ל-1, המשמעות היא שיש תמיכה. ביט 0 מתאים לערוץ 0.LSB == channel 0MSB == channel 31 |
| 8 | uint8*4 | שדה סיביות של אינדקס פתיחה נתמך | שדה ביטים של אינדקסים נתמכים של מבוא. אם הביט מוגדר ל-0, המשמעות היא שאין תמיכה, ואם הוא מוגדר ל-1, המשמעות היא שיש תמיכה. ביט 0 תואם לאינדקס 1 של הפתיח.LSB == preamble index 1MSB == 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.
|
בטבלה הבאה מפורט תוכן ההודעה של BLE CS Ranging Capability Response:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8 | מזהה טכנולוגיית טווח | 0x1 – BLE CS |
| 1 | uint8 | גודל | גודל היכולות של BLE CS בבייטים (כולל השדות מזהה הטכנולוגיה וגודל) בבייטים. |
| 2 | uint8 | שדה סיביות של סוג אבטחה נתמך | שדה סיביות של סוגי אבטחה נתמכים עבור BLE CS.
|
| 3 | uint8*6 | כתובת המכשיר | הכתובת של המכשיר שמשמש ל-BLE CS, בסדר Big Endian. |
בטבלה הבאה מפורט מטען הנתונים של ההודעה Ranging Capability Response Wi-Fi NAN RTT:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8 | מזהה טכנולוגיית טווח | 0x2 – Wi-Fi NAN RTT |
| 1 | uint8 | גודל | גודל היכולות של BLE RSSI בבייטים (כולל השדות מזהה הטכנולוגיה וגודל) בבייטים. |
| 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 למדידת המרחק.
|
בטבלה הבאה מפורט תוכן ההודעה של BLE RSSI Ranging Capability Response:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8 | מזהה טכנולוגיית טווח | 0x3 – BLE RSSI |
| 1 | uint8 | גודל | גודל היכולות של BLE RSSI בבייטים (כולל השדות Technology ID ו-Size) |
| 2 | uint8*6 | כתובת המכשיר | הכתובת של המכשיר שמשמש ל-BLE RSSI; בסדר Big Endian |
מטען ייעודי (payload) של הודעת הגדרה של טווח
גודל (לא כולל גודל הכותרת): משתנה (החלק המשותף הוא 4 בייטים בתוספת הגודל של כל בייט של טכנולוגיית הטווח הכלולה).
תיאור: ההודעה הזו נשלחת על ידי הגורם היוזם והיא מכילה את ההגדרות שכל טכנולוגיית מדידת מרחק יכולה להתחיל למדוד איתן את המרחק. מכשיר המשיב צריך לנסות להתחיל למדוד את המרחק באמצעות כל טכנולוגיה לציון מרחק שמצוינת בהודעה הזו, ברגע שהוא מקבל אותה. מטען ההודעה הזה מורכב מהחלק המשותף ומחלקים ספציפיים לטכנולוגיות טווח (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI), כמו שמוצג בטבלאות הבאות.
בטבלה הבאה מפורט תוכן המטען (payload) של ההודעה הנפוצה Ranging Configuration:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8*2 | שדה סיביות להגדרת טכנולוגיות לטווח | שדה סיביות של טכנולוגיות טווח שההודעה הזו מכילה נתוני הגדרה לגביהן, ושצריך להגדיר עבורן פרמטרים של הגדרה.
|
| 2 | uint8*2 | שדה סיביות | RFU. הערך צריך להיות זהה לערך בשדה Ranging technologies configuration set bitfield. |
| 4 | מערך בייטים | בייטים של הגדרות טכנולוגיות לחישוב טווח | בלוקים חוזרים של מבנים שמוגדרים לכל טכנולוגיה |
בטבלה הבאה מפורט מטען ייעודי (payload) ההודעה של UWB Ranging Configuration:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 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, שני הבייטים הראשונים הם מזהה הספק וששת הבייטים הבאים הם וקטור אתחול סטטי של STS. אם נעשה שימוש ב-P-STS, זהו מפתח סשן של 16 או 32 בייט. סוג האבטחה שנעשה בו שימוש נקבע לפי מזהה ההגדרה. |
| משתנה | uint8*2 | קוד מדינה | קוד מדינה לפי תקן ISO 3166-1 alpha-2, שמיוצג על ידי שני תווים ב-ASCII |
| משתנה | uint8 | התפקיד שנבחר למכשיר |
|
| משתנה | uint8 | מצב המכשיר שנבחר |
|
בטבלה הבאה מפורט תוכן ההודעה של BLE CS Ranging Configuration:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8 | מזהה טכנולוגיית טווח | 0x1 – BLE CS |
| 1 | uint8 | גודל | הגודל של הגדרת ה-BLE CS (כולל השדות Technology ID ו-Size) בבייטים |
| 2 | uint8 | סוג האבטחה שנבחר | סוג האבטחה שנבחר. ערכים מותרים:
|
| 3 | uint8*6 | כתובת המכשיר | הכתובת של המכשיר שמשמש ל-BLE CS, בסדר Big Endian |
בטבלה הבאה מפורט מטען הנתונים של הודעת ה-RTT של Wi-Fi NAN: Ranging Configuration
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8 | מזהה טכנולוגיית טווח | 0x2 – Wi-Fi NAN RTT |
| 1 | uint8 | גודל | הגודל של הגדרת ה-Wi-Fi NAN RTT (כולל השדות 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 | שימוש בטווח תקופתי |
|
בטבלה הבאה מפורט תוכן ההודעה של BLE RSSI Ranging Configuration:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8 | מזהה טכנולוגיית טווח | 0x3 – BLE RSSI |
| 1 | uint8 | גודל | הגודל של הגדרת BLE RSSI (כולל השדות Technology ID ו-Size) בבייטים |
| 2 | uint8*6 | כתובת המכשיר | הכתובת של המכשיר שמשמש ל-BLE RSSI; בסדר Big Endian |
מטען ייעודי (payload) של הודעת תגובה להגדרת טווח
גודל (לא כולל גודל הכותרת): 2 בייט
תיאור: ההודעה הזו נשלחת על ידי המשיב בתגובה להודעה [Ranging Configuration]. ההודעה הזו היא אופציונלית, והיא נדרשת רק אם הערוץ שבו משתמשים מחייב תגובה מפורשת לכל בקשה.
בטבלה הבאה מפורט סיכום של מטען הנתונים של ההודעה Ranging Configuration Response:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8*2 | שדה סיביות להגדרת טכנולוגיות לטווח | שדה ביטים של טכנולוגיות לחישוב מרחקים שהוגדרו בהצלחה. שדה הביטים מגדיר את הביט של טכנולוגיית הטווח ל-1 אם הטכנולוגיה נדרשה והוגדרה בהצלחה, אחרת הוא מוגדר ל-0.
|
הפסקת טווח המטען הייעודי (payload) של ההודעה
גודל (לא כולל גודל הכותרת): 2 בייט
תיאור: ההודעה הזו נשלחת על ידי המכשיר היוזם כשהגיע הזמן להפסיק את מדידת הטווח באמצעות טכנולוגיית מדידת הטווח שצוינה.
בטבלה הבאה מפורט מטען הנתונים של ההודעה Stop Ranging:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8*2 | טכנולוגיות של טווחים לעצירת שדה סיביות | שדה סיביות של טכנולוגיות לחישוב מרחק שצריך להפסיק את חישוב המרחק. אם הביט מוגדר כ-1, טכנולוגיית מדידת הטווח צריכה להפסיק את מדידת הטווח. אם הביט מוגדר כ-0, טכנולוגיית מדידת הטווח לא מדדה את הטווח מלכתחילה, או שהיא צריכה להמשיך למדוד את הטווח אם היא כבר מדדה אותו. בטכנולוגיות מסוימות למדידת מרחק (כמו CS), הפעולה הזו לא משפיעה כי מדידת המרחק מתחילה ומסתיימת רק בצד של היוזם.
|
מטען ייעודי (payload) של הודעת תגובה לטווח
גודל (לא כולל גודל הכותרת): 2 בייט
תיאור: ההודעה הזו נשלחת על ידי המשיב בתגובה להודעה [Stop Ranging]. ההודעה הזו היא אופציונלית, והיא נדרשת רק כשערוץ התקשורת שבו נעשה שימוש דורש תגובה מפורשת לכל בקשה.
בטבלה הבאה מפורט סיכום של Stop Ranging Response מטען ההודעה:
| Octet | סוג נתונים | תיאור | ערך |
|---|---|---|---|
| 0 | uint8*2 | Ranging technologies stopped successfully 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 תואם לאחור, כל השדות החדשים שנוספים למטען הייעודי (payload) של ההודעה Ranging
Capability Response בגרסה הבאה של המפרט הזה צריכים להופיע בסוף המטען הייעודי, ואסור לשנות אף אחד מהשדות הקיימים. כשמנתחים את ההגדרה, אם הגודל שצוין גדול מהצפוי, מכשירים שיכולים להבין רק את הגרסה הישנה יותר של המפרט צריכים להתעלם משדות נוספים.
פרגמנטציה
המפרט הזה לא תלוי בערוץ התקשורת, ולכן הוא לא מגדיר איך לפצל את מטען ההודעה במקרים שבהם הודעה אחת גדולה מדי ולא נכנסת לחבילת העברה של ערוץ התקשורת שבו נעשה שימוש. מודול הטווח מצפה לקבל כל הודעה בצורה מלאה. האחריות לפיצול מוטלת על מי שמטמיע את ערוץ התקשורת מחוץ לפס.
Ranging-technology-specifics
בקטע הזה מפורטים פרטים ספציפיים לטכנולוגיית טווח.
פרטים ספציפיים על Ultra Wideband (UWB)
בקטע הזה מפורטים פרטים ספציפיים לגבי Ultra Wideband (UWB).
מזהי הגדרות
נתוני ההגדרה של OOB שמוחלפים ב-UWB לא מכילים קבוצה מלאה של פרמטרים זמינים להגדרה שנדרשים ל-UWB כדי להתחיל סשן של מדידת מרחק ב-UWB. הסיבה לכך היא שפרמטרים מסוימים נבחרים באופן מרומז על ידי מזהה ההגדרה שנבחר.
כל מזהה הגדרה הוא קבוצה של פרמטרים מוגדרים מראש של UWB, שמפורטים במאמר UwbRangingParams. המכשיר המשיב שולח רשימה של כל מזהי ההגדרות שהוא תומך בהם כחלק מהודעת התגובה של היכולת, והמכשיר היוזם בוחר אחד ממזהי ההגדרות הנתמכים שבהם הוא ישתמש. כך אפשר להחליף קבוצה קטנה יותר של פרמטרים של config במהלך OOB. היא גם מגבילה את מספר השילובים האפשריים של פרמטרים שאפשר להשתמש בהם למדידת מרחק באמצעות UWB, כך שאפשר לבדוק רק שילובים מותרים של פרמטרים.
בקשת יכולות אחרי כל סשן UWB
אחרי שמפסיקים סשן UWB קיים ולפני שמתחילים סשן UWB חדש, מכשיר היוזם צריך לבקש את היכולות של מכשיר המשיב ולהגדיר מחדש את פרמטרי ההגדרה, כי כתובת ה-UWB יכולה להשתנות ברגע שמסתיים סשן המדידה הנוכחי.
פרטים ספציפיים על בדיקת תקינות הערוץ (CS) ב-BLE
בקטע הזה מפורטים פרטים ספציפיים לגבי בדיקת תקינות הערוץ.
הקשר הנדרש בין המכשירים
כדי להשתמש בטכנולוגיית מדידת הטווח באמצעות בדיקת הערוץ, צריך ליצור קשר קיים בין המכשיר היוזם למכשיר המגיב. במפרט הזה לא מוסבר איך ליצור שיוך בין מכשירים. המשתמש בממשקי ה-API של Ranging צריך ליצור את הקישור הזה בין המכשירים.
נדרשת פעולה מצד המשיב ב-CS
ב-UWB, שני המכשירים צריכים להפעיל באופן מפורש את ממשקי ה-API של UWB start ranging ו-stop ranging. לעומת זאת, ב-CS, רק המכשיר היוזם נדרש כדי להתחיל את טווח ה-CS על ידי קריאה למערך Bluetooth (BT). שאר ההפעלה בצד המשיב מתבצעת בתוך הפס באמצעות BT. כלומר, כשמתקבלת הודעת Ranging Configuration או הודעת Stop Ranging עבור CS, בצד המשיב לא צריך לעשות כלום אם BT מופעל. המכשיר המגיב יכול להשתמש בהודעות האלה כטריגר לעדכון ממשק המשתמש, או למשל להבהב את נוריות ה-LED של המכשיר.