פרטי המכשיר

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

שם קבוצת ההודעות ערך
אירוע פרטי מכשיר 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), צריך לשלוח אותו גם ל-Seeker כשהוא מתחבר ל-Message Stream ובכל פעם שהכתובת משתנה. לדוגמה, 0x03020006AABBCCDDEEFF יהיה:

  • ‫0x03: אירוע פרטי מכשיר
  • ‫0x02: ערך כתובת BLE
  • ‫0x0006: נתונים נוספים, אורך 6
  • ‫0xAABBCCDDEEFF: נתונים נוספים, כתובת BLE

הסוללה עודכנה

בספקי שירות שתומכים בהתראות על הסוללה, אפשר לשלוח את פרטי הסוללה גם דרך Message Stream. כשמתבצע חיבור של Message Stream או כשערך הסוללה משתנה, צריך לשלוח עדכון. הנתונים הנוספים בחלק של המנה צריכים להיות זהים לנתונים בבייטים s + 2, ‏ s + 3, ‏ s + 4 כשמשדרים נתוני סוללה באמצעות BLE. לדוגמה, 0x0303000357417F יהיה:

  • ‫0x03: אירוע פרטי מכשיר
  • ‫0x03: ערך הסוללה
  • ‫0x0003: נתונים נוספים, אורך 3
  • ‫0x57417F: נתונים נוספים, ערכי סוללה
    • ‫0x57: ערך האוזנייה השמאלית, לא בטעינה, 87% סוללה
    • ‫0x41: ערך האוזנייה הימנית, לא בטעינה, 65% סוללה
    • ‫0x7F: ערך המארז, לא בטעינה, סוללה לא ידועה

הספקים יכולים גם לעדכן את הזמן שנותר עד שהסוללה תיגמר (אם ידוע), לדוגמה, ‫0x03040001F0 יהיה:

  • ‫0x03: אירוע פרטי מכשיר
  • ‫0x04: הזמן שנותר עד שהסוללה תתרוקן
  • ‫0x0001: נתונים נוספים, אורך 1 (יכול להיות 2 עבור uint16 אם צריך).
  • ‫0xF0: נתונים נוספים, זמן הסוללה שנותר בדקות, 240 דקות

רכיבים פעילים

לפעמים, יכול להיות שיהיה צורך לדעת אילו רכיבים פעילים כרגע, כלומר שאפשר לבצע בהם פעולה (ראו פעולות במכשיר). כשהספק מקבל בקשה שמכילה את קוד בקשת הרכיבים הפעילים (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 צריכים לדווח על המזהה הארעי (EID) הנוכחי של FHN יחד עם ערך השעון הנוכחי שלהם כדי לבצע סנכרון עם המכשיר המחפש במקרה של סטייה בשעון (לדוגמה, בגלל סוללה ריקה).

לדוגמה:

  • ‫0x03: אירוע פרטי מכשיר
  • ‫0x0B: הודעה עם מזהה זמני של FHN
  • ‫0x0018: נתונים נוספים, אורך 24 או 36 בייט
  • ‫0x13F9EA80: נתונים נוספים (ערך השעון; 4 בייטים)
  • ‫0x1122334455667788990011223344556677889900: נתונים נוספים (EID נוכחי; 20 או 32 בייט)