रनटाइम के दौरान सुविधाओं में बदलाव करना
प्रोवाइडर पर फ़र्मवेयर को अपग्रेड करके, नई सुविधाएं (जैसे, डाइनैमिक बफ़र साइज़) चालू की जा सकती हैं. इसलिए, हम रनटाइम के दौरान प्रोवाइडर की सुविधाओं को पाने का एक तरीका उपलब्ध कराना चाहते हैं. बार-बार क्वेरी करने से बचने के लिए, पहले प्रोवाइडर को कनेक्ट होने पर, मैसेज स्ट्रीम के ज़रिए, फ़र्मवेयर रिविज़न को सीकर को भेजना चाहिए. इसलिए, हम मौजूदा मैसेज ग्रुप, डिवाइस की जानकारी वाले इवेंट में नया मैसेज कोड जोड़ते हैं.
मैसेज ग्रुप का नाम | मान |
---|---|
डिवाइस की जानकारी देने वाला इवेंट | 0x03 |
मैसेज कोड का नाम | मान |
---|---|
फ़र्मवेयर में बदलाव | 0x09 |
फ़र्मवेयर रिविज़न कोड मिलने के बाद, सीकर को यह देखना होगा कि वह कोड, कैश मेमोरी में सेव किए गए कोड से मेल खाता है या नहीं. अगर फ़र्मवेयर रिविज़न बदला गया है, तो Seeker कैश मेमोरी में मौजूद फ़र्मवेयर रिविज़न को अपडेट करेगा. साथ ही, Message Stream की मदद से सुविधाओं के बारे में क्वेरी करेगा.
हम प्रोवाइडर को, सीधे तौर पर अनुरोध किए बिना, डिवाइस इस्तेमाल करने वाले को सुविधाएं देने की अनुमति भी देते हैं. ऐसा इसलिए है, क्योंकि हमें लगता है कि आने वाले समय में, ज़्यादा बेहतर डिवाइस (शायद Android-आधारित) एक ही फ़र्मवेयर रिविज़न के लिए, फ़्लैग के आधार पर डाइनैमिक कॉन्फ़िगरेशन करेंगे.
इसलिए, हम यहां एक नया मैसेज ग्रुप और मैसेज कोड जोड़ते हैं.
मैसेज ग्रुप का नाम | मान |
---|---|
डिवाइस की क्षमता सिंक करने वाला इवेंट | 0x06 |
मैसेज कोड का नाम | मान |
---|---|
अनुरोध की सुविधा को अपडेट करने का अनुरोध (खोज करने वाले व्यक्ति से भेजा गया) | 0x01 |
FHN ट्रैकिंग | 0x03 |
0x0601
मिलने पर,
- अगर सेवा देने वाली कंपनी ने एफ़एचएन ट्रैकिंग की सुविधा चालू की है, तो उसे इस तरह जवाब देना चाहिए:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | डिवाइस की क्षमता सिंक करने वाला इवेंट | 0x06 |
1 | uint8 | एफ़एचएन ट्रैकिंग | 0x03 |
2 - 3 | uint16 | अतिरिक्त डेटा की लंबाई | 0x0007 |
4 | uint8 | FHN प्रॉविज़निंग की स्थिति | अगर डिवाइस के लिए कोई खाता सेट नहीं किया गया है, तो 0x00; अगर किसी खाते से सेट किया गया है, तो 0x01 |
5 - 10 | uint8[] | डिवाइस का मौजूदा BLE मैक पता | अलग-अलग होता है |