रनटाइम में क्षमताएं बदलें

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

मैसेज ग्रुप का नाम वैल्यू
डिवाइस की जानकारी से जुड़ा इवेंट 0x03
मैसेज कोड का नाम वैल्यू
फ़र्मवेयर रिविज़न 0x09

फ़र्मवेयर रिविज़न कोड मिलने के बाद, सीकर उसकी जांच, कैश मेमोरी में सेव किए गए कोड से करेगा. अगर फ़र्मवेयर में बदलाव किया गया है, तो सीकर कैश मेमोरी के फ़र्मवेयर वर्शन को अपडेट करेगा और Message Stream के ज़रिए क्षमताओं के बारे में क्वेरी करेगा.

हम सेवा देने वाली कंपनी को यह अनुमति भी देते हैं कि वह बिना किसी अनुरोध के, नौकरी देने वालों को सीधे तौर पर सेवाएं दे सके. ऐसा इसलिए, क्योंकि आने वाले समय में, ज़्यादा बेहतर डिवाइस (हो सकता है कि वे Android पर आधारित हों) एक ही फ़र्मवेयर बदलाव के लिए फ़्लैग के आधार पर डाइनैमिक कॉन्फ़िगरेशन करेंगे.

इसलिए, हम नीचे एक नया मैसेज ग्रुप और मैसेज कोड जोड़ देते हैं.

मैसेज ग्रुप का नाम वैल्यू
डिवाइस की क्षमता का सिंक इवेंट 0x06
मैसेज कोड का नाम वैल्यू
अनुरोध की क्षमता के बारे में अपडेट (Seeker से भेजा गया) 0x01
एफ़एमडीएन ट्रैकिंग 0x03

0x0601 मिलने के बाद,

  • अगर सेवा देने वाली कंपनी ने एफ़एमडीएन ट्रैकिंग की सुविधा चालू की है, तो उसे इस तरह से जवाब देना चाहिए:
ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 डिवाइस की क्षमता का सिंक इवेंट 0x06
1 uint8 एफ़एमडीएन ट्रैकिंग 0x03
2 से 3 uint16 अतिरिक्त डेटा लंबाई 0x0007
4 uint8 एफ़एमडीएन प्रावधान की स्थिति प्रावधान नहीं होने पर 0x00; अगर किसी खाते से प्रावधान किया गया है, तो 0x01
5 - 10 uint8[] डिवाइस का मौजूदा BLE MAC पता अलग-अलग