कान में पहनने वाले स्मार्ट डिवाइस के कंट्रोल
Fast Pair पर उपलब्ध हियरबल कंट्रोल का मकसद, Android पर हियरबल की ज़रूरी सुविधाओं के लिए बेहतर ऐक्सेस कंट्रोल उपलब्ध कराना है. इसके लिए, मैसेज स्ट्रीम में, सुनने में मदद करने वाले डिवाइसों के कंट्रोल का नया मैसेज ग्रुप जोड़ा गया है.
| मैसेज ग्रुप का नाम | मान |
|---|---|
| कान में पहनने वाले स्मार्ट डिवाइस को कंट्रोल करने की सुविधा | 0x08 |
शोर को कंट्रोल करने की सुविधा
शोर को कंट्रोल करने की सुविधा, प्रीमियम हेडफ़ोन के लिए एक अहम सुविधा बन गई है. डिवाइस ढूंढने वाले व्यक्ति के डिवाइस पर, फ़ास्ट पेयर की सुविधा में यूज़र इंटरफ़ेस (यूआई) और लॉजिक होगा. इससे डिवाइस का स्टेटस सेट किया जा सकेगा, स्टेटस की जानकारी पाई जा सकेगी, और स्टेटस सेव किया जा सकेगा. डिवाइस का स्टेटस, डिवाइस ढूंढने वाले व्यक्ति के डिवाइस पर सेव किया जाएगा. इवेंट स्ट्रीम कनेक्ट होने पर, सेवा देने वाली कंपनी के लिए Session Nonce भेजना ज़रूरी है. इसके लिए, यहां दिए गए मैसेज कोड तय किए गए हैं:
| मैसेज का कोड नेम | मान | ट्रांसफ़र करने वाला व्यक्ति | जवाब देने वाला व्यक्ति | MAC | ACK |
|---|---|---|---|---|---|
| एएनसी की स्थिति पाना | 0x11 | सीकर | सेवा देने वाली कंपनी | नहीं | नहीं |
| एएनसी की स्थिति सेट करें | 0x12 | सीकर | सेवा देने वाली कंपनी | Y | Y |
| एएनसी की स्थिति के बारे में सूचना दें | 0x13 | सेवा देने वाली कंपनी | सीकर | नहीं | नहीं |
जब कोई डिवाइस, सेवा देने वाले डिवाइस से कनेक्ट होता है या जब सेवा देने वाले डिवाइस को "Get ANC state" मैसेज मिलता है, तो सेवा देने वाला डिवाइस, एएनसी की स्थिति की सूचना दे सकता है. इससे, सेवा लेने वाले डिवाइस को एएनसी की सुविधा और उसकी सेव की गई स्थिति के बारे में पता चलता है. मैसेज यहां दिया गया है:
| बाइट | डेटा टाइप | ब्यौरा | मान |
|---|---|---|---|
| 0 | uint8 | कान में पहनने वाले स्मार्ट डिवाइस को कंट्रोल करने की सुविधा | 0x08 |
| 1 | uint8 | एएनसी की स्थिति के बारे में सूचना दें | 0x13 |
| 2 - 3 | uint16 | अतिरिक्त डेटा का साइज़ | 0x04 |
| 4 - 7 | एएनसी कंट्रोल का डेटा | अलग-अलग होती है |
एएनसी कंट्रोल डेटा
| बाइट | डेटा टाइप | ब्यौरा | मान |
|---|---|---|---|
| 0 | uint8 | वर्शन का कोड | अलग-अलग होता है, इस वर्शन के लिए 0x02 |
| 1 | झंडे | यूज़र इंटरफ़ेस (यूआई) टॉगल हर मोड को उसके फ़्लैग बिट की वैल्यू के हिसाब से चालू (1) या बंद (0) किया जाता है. जैसे: बिट 0 (एमएसबी): ट्रांसपैरेंट बिट 1: अडैप्टिव (अगर यह सुविधा मौजूद नहीं है, तो 0) बिट 2: बंद बिट 3: रिज़र्व (बिट को 0 पर सेट करें) बिट 4: एएनसी |
अलग-अलग होती है |
| 2 | झंडे | सेट किए जा सकने वाले टॉगल ऊपर दिए गए यूज़र इंटरफ़ेस (यूआई) के किसी भी या सभी टॉगल बिट को यहां भी सेट किया जा सकता है. इससे यह पता चलता है कि फ़िलहाल कौनसे टॉगल चालू हैं. |
अलग-अलग होती है |
| 3 | झंडे | मौजूदा स्थिति सिर्फ़ एक बिट सेट की जा सकती है और इस बाइट की वैल्यू शून्य नहीं होनी चाहिए. |
अलग-अलग होती है |
सीकर, एएनसी कंट्रोल डेटा के हिसाब से टॉगल यूज़र इंटरफ़ेस (यूआई) दिखाएगा.
उदाहरण 1: मान लें कि सेवा देने वाली कंपनी, तीन तरह के एएनसी मोड उपलब्ध कराती है: ट्रांसपैरेंट - बंद - एएनसी. साथ ही, ईयरबड कान में लगे हैं, सभी मोड सेट किए जा सकते हैं, और फ़िलहाल एएनसी मोड बंद है:
| बाइट | डेटा टाइप | ब्यौरा | मान |
|---|---|---|---|
| 0 | uint8 | वर्शन का कोड | 0x02 |
| 1 | झंडे | यूज़र इंटरफ़ेस (यूआई) टॉगल | 0b10101000 |
| 2 | झंडे | सेट किए जा सकने वाले टॉगल | 0b10101000 |
| 3 | झंडे | मौजूदा स्थिति | 0b00100000 |
दूसरा उदाहरण: मान लें कि ईयरबड बनाने वाली कंपनी, तीन तरह के एएनसी मोड उपलब्ध कराती है: ट्रांसपैरेंट - बंद - एएनसी. फ़िलहाल, सिर्फ़ एक ईयरबड कान में लगा है या कोई भी ईयरबड कान में नहीं लगा है. इसलिए, कोई भी मोड सेट नहीं किया जा सकता. साथ ही, एएनसी मोड बंद है:
| बाइट | डेटा टाइप | ब्यौरा | मान |
|---|---|---|---|
| 0 | uint8 | वर्शन का कोड | 0x02 |
| 1 | झंडे | यूज़र इंटरफ़ेस (यूआई) टॉगल | 0b10101000 |
| 2 | झंडे | सेट किया जा सकने वाला टॉगल | 0b00000000 |
| 3 | झंडे | मौजूदा स्थिति | 0b00100000 |
अगर उपयोगकर्ता टॉगल को स्विच करता है, तो Seeker, Provider के लिए मौजूदा स्थिति को इस तरह सेट करेगा:
| बाइट | डेटा टाइप | ब्यौरा | मान |
|---|---|---|---|
| 0 | uint8 | कान में पहनने वाले स्मार्ट डिवाइस को कंट्रोल करने की सुविधा | 0x08 |
| 1 | uint8 | एएनसी की स्थिति सेट करें | 0x12 |
| 2 - 3 | uint16 | अतिरिक्त डेटा का साइज़ | varies, 0x04 या 0x14 |
| 4 | uint8 | नौकरी ढूंढने वाले का वर्शन कोड | अलग-अलग, 0x01 या 0x02 |
| 5 | झंडे | एएनसी के लिए सेट किए जा सकने वाले मोड (यूज़र इंटरफ़ेस टॉगल) | अलग-अलग होती है |
| 6 | झंडे | एएनसी की सुविधा वाले मोड (टॉगल सेट किया जा सकता है) | अलग-अलग होती है |
| 7 | झंडे | एएनसी मोड का नया इंडेक्स (नई स्थिति) | अलग-अलग होती है |
| 8 - 23 | बुकिंग की गई | अलग-अलग होती है |
बाइट 4 से 7, असल में एएनसी कंट्रोल डेटा होता है, जिसे सीकर की ओर से भेजा जाता है. अगर लंबाई की अतिरिक्त वैल्यू 0x14 पर सेट है, तो रिज़र्व किए गए बाइट 8-23 मौजूद होंगे. साथ ही, इन बाइट को पाने पर, सेवा देने वाली कंपनी को इन्हें अनदेखा करना चाहिए. अगर अतिरिक्त लंबाई की वैल्यू 0x04 के तौर पर सेट की जाती है, तो कोई भी रिज़र्व बाइट मौजूद नहीं होती.
जब किसी सेवा देने वाली कंपनी को "Set ANC state" मैसेज मिलता है, तो उसे पुष्टि करनी चाहिए और कनेक्ट किए गए सभी सेवा लेने वालों को एएनसी की स्थिति के बारे में सूचना देनी चाहिए. अगर उपयोगकर्ता हेडसेट के जेस्चर या कंपैनियन ऐप्लिकेशन के ज़रिए सेटिंग बदलता है, तो सेवा देने वाली कंपनी को, कनेक्ट किए गए सभी लोगों को सूचना भेजनी चाहिए.
तीसरा उदाहरण: सेवा देने वाली कंपनी, एएनसी के चार मोड उपलब्ध कराती है: पारदर्शी - अडैप्टिव - बंद - एएनसी, कान में ईयरबड लगे हैं, अब सभी मोड सेट किए जा सकते हैं, और फ़िलहाल अडैप्टिव मोड चालू है:
| बाइट | डेटा टाइप | ब्यौरा | मान |
|---|---|---|---|
| 0 | uint8 | वर्शन का कोड | 0x02 |
| 1 | झंडे | यूज़र इंटरफ़ेस (यूआई) टॉगल | 0b11101000 |
| 2 | झंडे | सेट किया जा सकने वाला टॉगल | 0b11101000 |
| 3 | झंडे | मौजूदा स्थिति | 0b01000000 |