פרטי המכשיר
ספקים יכולים לשלוח למחפש מידע על המכשיר באמצעות זרם ההודעות.
| שם קבוצת ההודעות | ערך |
|---|---|
| אירוע פרטי מכשיר | 0x03 |
| שם הקוד של פרטי המכשיר | ערך |
|---|---|
| מזהה דגם | 0x01 |
| כתובת ה-BLE עודכנה | 0x02 |
| הסוללה עודכנה | 0x03 |
| הזמן שנותר לסוללה | 0x04 |
| בקשה לרכיבים פעילים | 0x05 |
| תשובה לגבי רכיבים פעילים | 0x06 |
| (הוצא משימוש) יכולות | 0x07 |
| סוג הפלטפורמה | 0x08 |
| גרסת הקושחה | 0x09 |
| מזהה זמני נוכחי של FHN | 0x0B |
מזהה דגם
פרטי מזהה המודל (במקרה של Retroactively Writing AccountKey) צריכים להישלח אל Seeker כשמתבצעת התחברות ל-Message Stream. לדוגמה, 0x03010003AABBCC
יהיה:
- 0x03: אירוע פרטי מכשיר
- 0x01: ערך מזהה המודל
- 0x0003: נתונים נוספים, אורך 3
- 0xAABBCC: נתונים נוספים, מזהה מודל
כתובת BLE
פרטי כתובת BLE (לכתיבה רטרואקטיבית של AccountKey), אם הספק יכול להשיג אותם, יישלחו גם אל המשתמש שמחפש את המכשיר כשהחיבור של Message Stream מתבצע ובכל פעם שהכתובת מתחלפת. לדוגמה,
0x03020006AABBCCDDEEFF יהיה:
- 0x03: אירוע פרטי מכשיר
- 0x02: ערך כתובת BLE
- 0x0006: נתונים נוספים, אורך 6
- 0xAABBCCDDEEFF: נתונים נוספים, כתובת BLE
הסוללה עודכנה
בספקי שירות שתומכים בהתראות על הסוללה, אפשר לשלוח את פרטי הסוללה גם באמצעות Message Stream. כשמתבצע חיבור של Message Stream או כשערך הסוללה משתנה, צריך לשלוח עדכון. כשמפרסמים נתוני סוללה באמצעות BLE, בקטע הנתונים הנוספים של החבילה צריכים להיות נתונים זהים לנתונים בבייטים s + 2, s + 3, s + 4. לדוגמה,
0x0303000357417F יהיה:
- 0x03: אירוע פרטי מכשיר
- 0x03: ערך הסוללה
- 0x0003: נתונים נוספים, אורך 3
- 0x57417F: נתונים נוספים, ערכי סוללה
- 0x57: ערך האוזנייה השמאלית, לא בטעינה, 87% סוללה
- 0x41: ערך האוזנייה הימנית, לא בטעינה, 65% סוללה
- 0x7F: ערך המארז, לא בטעינה, סוללה לא ידועה
הספקים יכולים גם לעדכן את הזמן שנותר עד שהסוללה תיגמר (אם ידוע), לדוגמה,
0x03040001F0 יהיה:
- 0x03: אירוע פרטי מכשיר
- 0x04: הזמן שנותר לסוללה
- 0x0001: נתונים נוספים, אורך 1 (יכול להיות 2 עבור uint16 אם צריך).
- 0xF0: נתונים נוספים, זמן הסוללה שנותר בדקות, 240 דקות
רכיבים פעילים
לפעמים, אנשים שמחפשים עזרה רוצים לדעת אילו רכיבים פעילים כרגע, כלומר אפשר לבצע בהם פעולה (ראו פעולות במכשיר). כשהספק מקבל בקשה שמכילה את הקוד active components request (0x05), הוא צריך להחזיר תגובה תוך שנייה אחת שמציינת את המצב הנוכחי של הספק. התשובה תשתמש בקוד התגובה של הרכיבים הפעילים (0x06) ותכיל נתונים נוספים שמציינים אילו רכיבים זמינים.
אם לספק יש רכיב יחיד, צריך להגדיר את הנתונים הנוספים כ-0x00 אם הם לא זמינים. לדוגמה, מצב חיסכון בסוללה שבו לא תתבצע הפעלת מדיה. אחרת, צריך להגדיר את הנתונים הנוספים לערך 0x01.
באוזניות עם כמה רכיבים (לדוגמה, אוזנייה ימנית ואוזנייה שמאלית), כל ביט בנתונים הנוספים מייצג אם הרכיב הזה פעיל. דוגמה לרכיב לא פעיל יכולה להיות אוזנייה שנמצאת בנרתיק הטעינה ולא בשימוש. באופן ספציפי לגבי הנרתיק של האוזנייה השמאלית והאוזנייה הימנית:
- 0x00 (0b00000000): אף אחד מהניצנים לא פעיל
- 0x01 (0b00000001): האוזנייה הימנית פעילה, האוזנייה השמאלית לא פעילה
- 0x02 (0b00000010): האוזנייה השמאלית פעילה, האוזנייה הימנית לא פעילה
- 0x03 (0b00000011): שתי האוזניות פעילות
סוג פלטפורמה
יכול להיות שספקים ירצו לבצע פעולות שונות בהתאם לפלטפורמה שאליה הם מחוברים. בשלב הזה, ההתאמה המהירה מתבצעת רק דרך Android, אבל יכול להיות שהתמיכה תורחב בעתיד.
ההודעה תכיל את הבייט הראשון שמזהה את סוג הפלטפורמה בנתונים הנוספים:
| שם הפלטפורמה | ערך |
|---|---|
| Android | 0x01 |
הבייט השני יותאם אישית לכל פלטפורמה. ב-Android, הערך הזה מתייחס לגרסת ה-SDK. לדוגמה, ל-Android Pie יהיה ערך של 28 (0x1C).
גרסת הקושחה
גרסת הקושחה של הספק כמחרוזת בקידוד utf-8. זה אותו מידע שמופיע במאפיין של עדכון הקושחה.
מזהה זמני נוכחי של FHN
ספקים שמפרסמים פריימים של FHN צריכים לדווח על המזהה האפמרי הנוכחי של FHN (EID) עם ערך השעון הנוכחי שלהם כדי לבצע סנכרון עם המכשיר המחפש במקרה של סחיפת שעון (לדוגמה, בגלל סוללה ריקה).
לדוגמה:
- 0x03: אירוע פרטי מכשיר
- 0x0B: הודעה עם מזהה זמני של FHN
- 0x0018: נתונים נוספים, אורך 24 או 36 בייט
- 0x13F9EA80: נתונים נוספים (ערך השעון; 4 בייטים)
- 0x1122334455667788990011223344556677889900: נתונים נוספים (מספר EID נוכחי; 20 או 32 בייט)