डिवाइस की जानकारी

प्रोवाइडर, मैसेज स्ट्रीम के ज़रिए, डिवाइस की जानकारी के बारे में सीकर्स को सूचनाएं भेज सकते हैं.

मैसेज ग्रुप का नाम मान
डिवाइस की जानकारी का इवेंट 0x03
डिवाइस की जानकारी के कोड का नाम मान
मॉडल आईडी 0x01
BLE का पता अपडेट किया गया 0x02
बैटरी की जानकारी अपडेट की गई 0x03
बची हुई बैटरी का समय 0x04
चालू कॉम्पोनेंट के लिए अनुरोध 0x05
चालू कॉम्पोनेंट के लिए जवाब 0x06
(अब इस्तेमाल में नहीं है) सुविधाएं 0x07
प्लैटफ़ॉर्म का टाइप 0x08
फ़र्मवेयर का वर्शन 0x09
मौजूदा FHN एफ़ेमरल आइडेंटिफ़ायर 0x0B

मॉडल आईडी

मैसेज स्ट्रीम के कनेक्ट होने पर, मॉडल आईडी की जानकारी (रेट्रोऐक्टिव तरीके से AccountKey लिखने के लिए) सीकर को भेजी जानी चाहिए. उदाहरण के लिए, 0x03010003AABBCC का मतलब होगा:

  • 0x03: डिवाइस की जानकारी का इवेंट
  • 0x01: मॉडल आईडी की वैल्यू
  • 0x0003: अतिरिक्त डेटा, लंबाई 3
  • 0xAABBCC: अतिरिक्त डेटा, मॉडल आईडी

BLE का पता

अगर प्रोवाइडर, BLE के पते की जानकारी (रेट्रोऐक्टिव तरीके से AccountKey लिखने के लिए) हासिल कर सकता है, तो उसे मैसेज स्ट्रीम के कनेक्ट होने पर सीकर को भेजा जाना चाहिए. साथ ही, जब भी पते को रोटेट किया जाता है, तब भी यह जानकारी भेजी जानी चाहिए. उदाहरण के लिए, 0x03020006AABBCCDDEEFF का मतलब होगा:

  • 0x03: डिवाइस की जानकारी का इवेंट
  • 0x02: BLE के पते की वैल्यू
  • 0x0006: अतिरिक्त डेटा, लंबाई 6
  • 0xAABBCCDDEEFF: अतिरिक्त डेटा, BLE का पता

बैटरी की जानकारी अपडेट की गई

बैटरी की सूचनाओं की सुविधा देने वाले प्रोवाइडर, मैसेज स्ट्रीम के ज़रिए बैटरी की जानकारी भी भेज सकते हैं. मैसेज स्ट्रीम के कनेक्ट होने या बैटरी की वैल्यू में बदलाव होने पर, अपडेट भेजा जाना चाहिए. 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 एन्कोडिंग में स्ट्रिंग के तौर पर. यह वही जानकारी है जो फ़र्मवेयर के रिविज़न की विशेषता में होती है.

मौजूदा FHN एफ़ेमरल आइडेंटिफ़ायर

FHN फ़्रेम दिखाने वाले प्रोवाइडर को, मौजूदा FHN एफ़ेमरल आइडेंटिफ़ायर (ईआईडी) की जानकारी, अपनी मौजूदा क्लॉक वैल्यू के साथ देनी चाहिए. ऐसा इसलिए, ताकि क्लॉक में गड़बड़ी होने पर (उदाहरण के लिए, बैटरी खत्म होने की वजह से) सीकर के साथ सिंक किया जा सके.

उदाहरण के लिए:

  • 0x03: डिवाइस की जानकारी का इवेंट
  • 0x0B: मौजूदा FHN एफ़ेमरल आइडेंटिफ़ायर का मैसेज
  • 0x0018: अतिरिक्त डेटा, लंबाई 24 या 36 बाइट
  • 0x13F9EA80: अतिरिक्त डेटा (क्लॉक वैल्यू; 4 बाइट)
  • 0x1122334455667788990011223344556677889900: अतिरिक्त डेटा (मौजूदा ईआईडी; 20 या 32 बाइट)