פקדים של מכשירי שמיעה
הפקדים של מכשירי שמיעה ב-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 |