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