פקדים של מכשירי שמיעה

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

שם קבוצת ההודעות ערך
שליטה במכשיר שמיעה 0x08

ביטול רעשים פעיל

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

שם הקוד של ההודעה ערך השולח משיב/ה MAC ACK
קבלת סטטוס סינון הרעשים הפעיל 0x11 מבקש ספק לא לא
הגדרת מצב ANC 0x12 מבקש ספק Y Y
הודעה על מצב ה-ANC 0x13 ספק מבקש לא לא

כשמכשיר Seeker מתחבר למכשיר Provider, או כשמכשיר Provider מקבל הודעה מסוג Get ANC state, מכשיר Provider יכול לשלוח הודעה על מצב ה-ANC כדי שמכשיר Seeker ידע מה היכולות של ה-ANC ומה המצב השמור שלו. ההודעה היא:

בייט סוג הנתונים תיאור ערך
0 uint8 שליטה במכשיר שמיעה 0x08
1 uint8 הודעה על מצב ה-ANC 0x13
2 - 3 uint16 אורך הנתונים הנוספים 0x04
‫4 - 7 נתוני בקרה של ANC משתנה
נתוני בקרה של סינון רעשים פעיל (ANC)
בייט סוג הנתונים תיאור ערך
0 uint8 קוד גירסה משתנה, 0x02 לגרסה הזו
1 דגלים מתגי ממשק המשתמש
כל מצב מופעל (1) או מושבת (0) בהתאם לערך של הביט בדגל שלו, באופן הבא:
ביט 0 (MSB): שקוף
ביט 1: אדפטיבי (או 0 אם הוא לא נתמך)
ביט 2: כבוי
ביט 3: שמור (הגדרת הביט ל-0)
ביט 4: ANC
משתנה
2 דגלים מתגים שאפשר להגדיר
אפשר להגדיר כאן גם חלק מהמתגים או את כולם שמופיעים למעלה בממשק המשתמש, כדי לציין אילו מהם מופעלים כרגע.
משתנה
3 דגלים המצב הנוכחי
אפשר להגדיר רק ביט אחד, והערך של הבייט הזה לא יכול להיות אפס.
משתנה

בממשק המשתמש של פס ההתקדמות יוצג המתג בהתאם לנתוני השליטה של ANC.

דוגמה 1: הספק תומך ב-ANC תלת-כיווני: שקוף – מושבת – ANC, והאוזניות מונחות על הראש. אפשר להגדיר את כל המצבים, והמצב הנוכחי מושבת:

בייט סוג הנתונים תיאור ערך
0 uint8 קוד גירסה 0x01
1 דגלים לחצנים להחלפת מצב בממשק המשתמש 0b10101000
2 דגלים מתגים שניתנים להגדרה 0b10101000
3 דגלים המצב הנוכחי 0b00100000

דוגמה 2: הספק תומך ב-ANC עם 3 מצבים: שקוף – כבוי – ANC. רק אוזנייה אחת מונחת על הראש או שאף אוזנייה לא מונחת על הראש, ולכן אי אפשר להגדיר מצבים, והמצב הנוכחי הוא כבוי:

בייט סוג הנתונים תיאור ערך
0 uint8 קוד גירסה 0x01
1 דגלים מתג בממשק המשתמש 0b10101000
2 דגלים מתג שאפשר להגדיר 0b00000000
3 דגלים המצב הנוכחי 0b00100000

אם המשתמש משנה את מצב המתג, כלי החיפוש יגדיר את המצב הנוכחי לספק באופן הבא:

בייט סוג הנתונים תיאור ערך
0 uint8 שליטה במכשיר שמיעה 0x08
1 uint8 הגדרת מצב ANC 0x12
2 - 3 uint16 אורך הנתונים הנוספים משתנה, 0x04 או 0x14
4 uint8 קוד גרסת Seeker משתנה, 0x01 או 0x02
5 דגלים מצבים שניתן להגדיר ל-ANC (החלפה בממשק המשתמש) משתנה
6 דגלים מצבים שבהם ANC מופעל (אפשר להגדיר את ההחלפה ביניהם) משתנה
7 דגלים אינדקס חדש של מצב ANC (מצב חדש) משתנה
‫8 - 23 בוצעה הזמנה משתנה

בפועל, בבייט 4 עד 7 יש נתוני בקרה של ANC שנשלחים מצד ה-Seeker. אם ערך האורך הנוסף מוגדר כ-0x14, הבייטים השמורים 8-23 יהיו נוכחים, והספק צריך להתעלם מהם כשהוא מקבל אותם. אם ערך האורך הנוסף מוגדר כ-0x04, לא קיימים בייטים שמורים.

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

דוגמה 3: הספק תומך ב-ANC ב-4 דרכים: שקוף – דינמי – מושבת – ANC, האוזניות על הראש, כל המצבים ניתנים להגדרה עכשיו, והמצב הנוכחי הוא דינמי:

בייט סוג הנתונים תיאור ערך
0 uint8 קוד גירסה 0x01
1 דגלים מתג בממשק המשתמש 0b11101000
2 דגלים מתג שאפשר להגדיר 0b11101000
3 דגלים המצב הנוכחי 0b01000000