שינוי היכולות בזמן ריצה

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

שם קבוצת ההודעות ערך
אירוע של פרטי המכשיר 0x03
שם קוד ההודעה ערך
גרסה של קושחה 0x09

לאחר קבלת קוד הגרסה של הקושחה, ה-Seeker בודק אותו מול הגרסה ששמורה במטמון. אם גרסת הקושחה השתנתה, ה-Seeker יעדכן את גרסת הקושחה של המטמון וישלח שאילתה לגבי היכולות דרך Message Stream.

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

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

שם קבוצת ההודעות ערך
אירוע סנכרון של יכולות המכשיר 0x06
שם קוד ההודעה ערך
בקשה לעדכון היכולות (נשלחת מ-Seeker) 0x01
מעקב FHN 0x03

לאחר קבלת 0x0601,

  • אם הספק הפעיל תמיכה במעקב FHN, התגובה שלו אמורה להיות כזו:
אוקטט סוג הנתונים תיאור ערך
0 uint8 אירוע סנכרון של יכולות המכשיר 0x06
1 uint8 מעקב FHN 0x03
2 עד 3 uint16 אורך הנתונים הנוספים 0x0007
4 uint8 מצב ההקצאה של FHN 0x00 אם לא הוקצה, 0x01 אם הוקצה על ידי חשבון כלשהו
5 - 10 uint8[] כתובת ה-MAC הנוכחית של המכשיר ב-BLE משתנה