डिवाइस की जानकारी
सेवा देने वाली कंपनियां, मैसेज स्ट्रीम की मदद से, डिवाइस की जानकारी के बारे में खोज करने वाले व्यक्ति को सूचना दे सकती हैं.
मैसेज ग्रुप का नाम | मान |
---|---|
डिवाइस की जानकारी देने वाला इवेंट | 0x03 |
डिवाइस की जानकारी वाले कोड का नाम | मान |
---|---|
मॉडल आईडी | 0x01 |
बीएलई पता अपडेट किया गया | 0x02 |
बैटरी की जानकारी अपडेट की गई | 0x03 |
बैटरी का बचा हुआ समय | 0x04 |
ऐक्टिव कॉम्पोनेंट का अनुरोध | 0x05 |
ऐक्टिव कॉम्पोनेंट का जवाब | 0x06 |
(अब काम नहीं करती)क्षमताएं | 0x07 |
प्लैटफ़ॉर्म का टाइप | 0x08 |
फ़र्मवेयर का वर्शन | 0x09 |
एफ़एचएन का मौजूदा इफ़ेमरल आइडेंटिफ़ायर | 0x0B |
मॉडल आईडी
RFCOMM कनेक्ट होने पर, मॉडल आईडी की जानकारी (पिछले समय की जानकारी को AccountKey में लिखने के लिए) को Seeker को भेजा जाना चाहिए. उदाहरण के लिए, 0x03010003AABBCC
इस तरह होगा:
- 0x03: डिवाइस की जानकारी वाला इवेंट
- 0x01: मॉडल आईडी की वैल्यू
- 0x0003: अतिरिक्त डेटा, लंबाई 3
- 0xAABBCC: अतिरिक्त डेटा, मॉडल आईडी
बीएलई पता
अगर उपलब्ध हो, तो पिछले समय की जानकारी को AccountKey में लिखने के लिए, बीएलई पते की जानकारी को भी Seeker को भेजा जाना चाहिए. ऐसा तब भी किया जाना चाहिए, जब RFCOMM कनेक्ट हो और पते को बदला जाए. उदाहरण के लिए, 0x03020006AABBCCDDEEFF
:
- 0x03: डिवाइस की जानकारी वाला इवेंट
- 0x02: BLE पते की वैल्यू
- 0x0006: अतिरिक्त डेटा, लंबाई 6
- 0xAABBCCDDEEFF: अतिरिक्त डेटा, बीएलई पता
बैटरी की जानकारी अपडेट की गई
बैटरी की सूचनाएं की सुविधा देने वाली कंपनियों के लिए, बैटरी की जानकारी को RFCOMM के ज़रिए भी भेजा जा सकता है. RFCOMM कनेक्ट होने या बैटरी की वैल्यू बदलने पर, अपडेट भेजा जाना चाहिए. BLE पर बैटरी डेटा का विज्ञापन करते समय, पैकेट के अतिरिक्त डेटा सेक्शन में, बाइट s + 2, s + 3, s + 4 जैसा डेटा होना चाहिए. उदाहरण के लिए,0x0303000357417F
:
- 0x03: डिवाइस की जानकारी वाला इवेंट
- 0x03: बैटरी की वैल्यू
- 0x0003: अतिरिक्त डेटा, लंबाई 3
- 0x57417F: अतिरिक्त डेटा, बैटरी की वैल्यू
- 0x57: बाएं बड की वैल्यू, चार्ज नहीं हो रहा है, 87% बैटरी
- 0x41: दाएं बड की वैल्यू, चार्ज नहीं हो रहा है, 65% बैटरी
- 0x7F: केस वैल्यू, चार्ज नहीं हो रही है, बैटरी की जानकारी नहीं है
सेवा देने वाली कंपनियां, बची हुई बैटरी का समय भी अपडेट कर सकती हैं. उदाहरण के लिए,
0x03040001F0
का मतलब होगा:
- 0x03: डिवाइस की जानकारी वाला इवेंट
- 0x04: बैटरी कितनी देर तक चलेगी
- 0x0001: अतिरिक्त डेटा, लंबाई 1 (ज़रूरत पड़ने पर uint16 के लिए 2 हो सकता है.)
- 0xF0: अतिरिक्त डेटा, बैटरी का बचा हुआ समय मिनट में, 240 मिनट
ऐक्टिव कॉम्पोनेंट
कभी-कभी, खोज करने वाले लोग यह जानना चाहते हैं कि फ़िलहाल कौनसे कॉम्पोनेंट चालू हैं. इसका मतलब है कि उन पर कोई कार्रवाई की जा सकती है. डिवाइस पर की जाने वाली कार्रवाइयां देखें. जब प्रोवाइडर को चालू कॉम्पोनेंट का अनुरोध कोड (0x05) वाला अनुरोध मिलता है, तो एक सेकंड के अंदर जवाब दिया जाना चाहिए. इससे प्रोवाइडर की मौजूदा स्थिति का पता चलता है. रिस्पॉन्स में, ऐक्टिव कॉम्पोनेंट रिस्पॉन्स कोड (0x06) का इस्तेमाल किया जाएगा. साथ ही, इसमें ज़्यादा डेटा भी शामिल होगा, जिससे यह पता चलेगा कि कौनसे कॉम्पोनेंट उपलब्ध हैं.
अगर किसी प्रोवाइडर के पास एक ही कॉम्पोनेंट है, तो अतिरिक्त डेटा उपलब्ध न होने पर उसे 0x00 पर सेट किया जाना चाहिए. इसका एक उदाहरण, कम पावर मोड हो सकता है, जहां मीडिया चलाने की सुविधा काम नहीं करती. अगर ऐसा नहीं है, तो अतिरिक्त डेटा को 0x01 पर सेट किया जाना चाहिए.
एक से ज़्यादा कॉम्पोनेंट वाले हेडसेट (उदाहरण के लिए, बाईं और दाईं ओर के बड) के लिए, अतिरिक्त डेटा में मौजूद हर बिट से पता चलता है कि वह कॉम्पोनेंट चालू है या नहीं. इनऐक्टिव कॉम्पोनेंट का उदाहरण, ऐसा बड हो सकता है जो केस में मौजूद है और इस्तेमाल में नहीं है. खास तौर पर, बाएं और दाएं ईयरबड के लिए:
- 0x00 (0b00000000): कोई भी बड चालू नहीं है
- 0x01 (0b00000001): दायां ईयरबड चालू है, बायाँ ईयरबड बंद है
- 0x02 (0b00000010): बायां ईयरबड चालू है, दायां ईयरबड बंद है
- 0x03 (0b00000011): दोनों बड चालू हैं
प्लेटफ़ॉर्म प्रकार
ऐसा हो सकता है कि सेवा देने वाली कंपनियां, जिस प्लैटफ़ॉर्म से जुड़ी हैं उसके आधार पर अलग-अलग तरीके से काम करना चाहें. फ़ास्ट पेयर की सुविधा फ़िलहाल सिर्फ़ Android डिवाइसों पर काम करती है. हालांकि, आने वाले समय में इसे अन्य डिवाइसों के लिए भी उपलब्ध कराया जा सकता है.
मैसेज में, अतिरिक्त डेटा में प्लैटफ़ॉर्म टाइप की पहचान करने वाला पहला बाइट शामिल होगा:
प्लैटफ़ॉर्म का नाम | मान |
---|---|
Android | 0x01 |
दूसरा बाइट, हर प्लैटफ़ॉर्म के हिसाब से कस्टमाइज़ किया जाएगा. Android में, यह SDK टूल के वर्शन का रेफ़रंस देगा. उदाहरण के लिए, Android Pie की वैल्यू 28 (0x1C) होगी.
फ़र्मवेयर का वर्शन
फ़र्मवेयर का वर्शन, UTF-8 एन्कोडिंग में स्ट्रिंग के तौर पर. यह जानकारी, फ़र्मवेयर रिविज़न की विशेषता में दी गई जानकारी से मेल खाती है.
मौजूदा एफ़एचएन इफ़ेमरल आइडेंटिफ़ायर
एफ़एचएन फ़्रेम का विज्ञापन करने वाली कंपनियों को, अपनी मौजूदा घड़ी की वैल्यू के साथ एफ़एचएन के मौजूदा इफ़ेमरल आइडेंटिफ़ायर (ईआईडी) की जानकारी देनी चाहिए. इससे, घड़ी के काम न करने (जैसे, बैटरी खत्म होने की वजह से) की स्थिति में, खोज करने वाले के साथ सिंक किया जा सकता है.
उदाहरण के लिए:
- 0x03: डिवाइस की जानकारी वाला इवेंट
- 0x0B: फ़िलहाल, एफ़एचएन के लिए इस्तेमाल किया जा रहा इफ़ेमरल आइडेंटिफ़ायर मैसेज
- 0x0018: अतिरिक्त डेटा, लंबाई 24 या 36 बाइट
- 0x13F9EA80: अतिरिक्त डेटा (क्लॉक वैल्यू; चार बाइट)
- 0x1122334455667788990011223344556677889900: अतिरिक्त डेटा (मौजूदा EID; 20 या 32 बाइट)