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

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

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

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

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

שם הקוד של ההודעה ערך השולח משיב/ה MAC ACK
קבלת סטטוס ANC 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 בהתאם לנתוני השליטה של ANC.

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

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

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

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

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

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