लेन-देन की जानकारी पढ़ना
Matter में नोड के साथ इंटरैक्ट करते समय, इस्तेमाल के सबसे पहले मामलों में से एक, किसी दूसरे नोड से एट्रिब्यूट को पढ़ना है. जैसे, किसी सेंसर से तापमान की वैल्यू पढ़ना. इस तरह के इंटरैक्शन में, सबसे पहले Read Request Action को पूरा करना ज़रूरी है.
अनुरोध पढ़ने की कार्रवाई
दिशा: शुरू करने वाला -> टारगेट
इस कार्रवाई में, अनुरोध करने वाला पक्ष टारगेट से क्वेरी करता है. इसके लिए, वह यह जानकारी देता है:
- एट्रिब्यूट के अनुरोध: टारगेट के एट्रिब्यूट की सूची. इसमें कोई एट्रिब्यूट नहीं भी हो सकता है. इस सूची में, टारगेट के अनुरोध किए गए एट्रिब्यूट के लिए शून्य या उससे ज़्यादा पाथ शामिल होते हैं.
- इवेंट के अनुरोध: टारगेट के अनुरोध किए गए इवेंट के लिए, शून्य या इससे ज़्यादा पाथ की सूची.
Read Request Action मिलने के बाद, टारगेट डिवाइस Report Data Action को इकट्ठा करेगा. इसमें अनुरोध की गई जानकारी शामिल होगी.
डेटा से जुड़ी कार्रवाई की रिपोर्ट करना
दिशा: टारगेट -> शुरू करने वाला
इस कार्रवाई में टारगेट, इन चीज़ों के साथ जवाब देता है:
- एट्रिब्यूट रिपोर्ट: इसमें, Read Action Request में अनुरोध किए गए, रिपोर्ट किए गए एट्रिब्यूट की सूची होती है. इसमें शून्य या उससे ज़्यादा एट्रिब्यूट हो सकते हैं.
- इवेंट की रिपोर्ट: रिपोर्ट किए गए इवेंट की सूची. इसमें कोई इवेंट नहीं भी हो सकता है.
- जवाब न दिखाएं: यह एक फ़्लैग है. इससे यह तय होता है कि इस कार्रवाई के लिए status response को छिपाया जाना चाहिए या नहीं.
- सदस्यता आईडी: अगर यह रिपोर्ट, सदस्यता लेने के लेन-देन का हिस्सा है, तो इसमें सदस्यता लेने के लेन-देन की पहचान करने के लिए इस्तेमाल किया गया पूर्णांक शामिल होना चाहिए.
स्टेटस रिस्पॉन्स ऐक्शन
दिशा: टारगेट -> शुरू करने वाला या शुरू करने वाला -> टारगेट
अनुरोध करने वाले पक्ष को अनुरोध किया गया डेटा मिलने के बाद, उसे डिफ़ॉल्ट रूप से स्थिति की जानकारी देने वाली कार्रवाई जनरेट करनी होगी. यह कार्रवाई, अनुरोध करने वाला पक्ष भेजता है. इससे यह पुष्टि होती है कि उसे रिपोर्ट किया गया डेटा मिल गया है. अगर 'स्थिति की जानकारी देने वाली कार्रवाई को छिपाएं' फ़्लैग सेट है, तो अनुरोध करने वाले पक्ष को स्थिति की जानकारी देने वाली कार्रवाई नहीं भेजनी चाहिए.
जब अनुरोध करने वाला व्यक्ति, स्टेटस रिस्पॉन्स ऐक्शन भेज देता है या अनुरोध करने वाले व्यक्ति को रिपोर्ट डेटा ऐक्शन मिलता है और उसमें Suppress Response फ़्लैग चालू होता है, तब read/report क्वेरी पूरी हो जाती है.
स्टेटस रिस्पॉन्स ऐक्शन में सिर्फ़ एक status फ़ील्ड होता है. इससे यह पता चलता है कि ऑपरेशन पूरा हुआ या नहीं.
पढ़ने से जुड़ी पाबंदियां
रीड रिक्वेस्ट ऐक्शन और रिपोर्ट डेटा ऐक्शन, सिर्फ़ Unicast के लिए उपलब्ध हैं. इसके अलावा, इन अनुरोधों के पाथ, नोड के ग्रुप को टारगेट नहीं कर सकते.
स्टेटस रिस्पॉन्स ऐक्शन सिर्फ़ Unicast के लिए उपलब्ध है. इसे ग्रुपकास्ट के जवाब के तौर पर जनरेट नहीं किया जा सकता.
सदस्यता से जुड़ा लेन-देन
सदस्यता लेने के अनुरोध से जुड़ी कार्रवाई
दिशा: शुरू करने वाला -> टारगेट
पढ़ने के अनुरोध की एक कार्रवाई के अलावा, अनुरोध करने वाला व्यक्ति किसी एट्रिब्यूट या इवेंट के समय-समय पर मिलने वाले अपडेट के लिए भी सदस्यता ले सकता है. इसलिए, सदस्यता के लेन-देन के बाद, समय-समय पर डेटा अपडेट होने की वजह से एक ही रिपोर्ट डेटा ऐक्शन जनरेट हो सकता है.
सदस्यता इंटरैक्शन, दो नोड के बीच संबंध बनाता है. इसमें टारगेट, समय-समय पर रिपोर्ट डेटा ऐक्शन जनरेट करता है, ताकि उन्हें शुरू करने वाले नोड को भेजा जा सके. सदस्य, अनुरोध करने वाला है और पब्लिशर, अनुरोध पाने वाला है.
सदस्यता लेने के अनुरोध वाली कार्रवाई में ये शामिल होते हैं:
- रिपोर्ट के बीच का कम से कम इंटरवल: रिपोर्ट के बीच का कम से कम इंटरवल.
- रिपोर्ट के बीच ज़्यादा से ज़्यादा समय: रिपोर्ट के बीच ज़्यादा से ज़्यादा समय.
- एट्रिब्यूट रिपोर्ट: इसमें, रिपोर्ट किए गए एट्रिब्यूट की एक सूची होती है. इसमें शून्य या उससे ज़्यादा एट्रिब्यूट हो सकते हैं. ये एट्रिब्यूट, Read Action Request में मांगे गए होते हैं.
- इवेंट की रिपोर्ट: रिपोर्ट किए गए इवेंट की सूची. इसमें कोई इवेंट नहीं भी हो सकता है.
'सदस्यता का अनुरोध' करने के बाद, टारगेट, अनुरोध करने वाले को रिपोर्ट डेटा ऐक्शन के साथ जवाब देता है. इसमें रिपोर्ट किए गए डेटा का पहला बैच होता है: प्राइम किया गया पब्लिश किया गया डेटा.
इसके बाद, शुरू करने वाला व्यक्ति, 'डेटा की रिपोर्ट करें' कार्रवाई की पुष्टि करता है. इसके लिए, वह टारगेट को स्टेटस रिस्पॉन्स ऐक्शन भेजता है. जब टारगेट को स्टेटस रिस्पॉन्स ऐक्शन मिलता है और उसमें कोई गड़बड़ी नहीं होती है, तो वह सदस्यता के लिए रिस्पॉन्स ऐक्शन भेजता है.
इसके बाद, टारगेट, बातचीत के दौरान तय किए गए समय अंतराल पर, रिपोर्ट डेटा ऐक्शन भेजेगा. वहीं, सदस्यता खत्म होने या रद्द होने तक, इनीशिएटर उन ऐक्शन का जवाब देगा.
Subscribe Response Action
दिशा: टारगेट -> शुरू करने वाला
यह सदस्यता से जुड़े लेन-देन पर की गई आखिरी कार्रवाई है. इसके बाद, यह प्रोसेस पूरी हो जाती है. इसमें ये चीज़ें शामिल हैं:
- सदस्यता आईडी: यह एक पूर्णांक होता है, जिससे सदस्यता की पहचान की जाती है.
- कम से कम इंटरवल: यह रिपोर्ट के बीच का तय किया गया आखिरी कम से कम इंटरवल होता है.
- ज़्यादा से ज़्यादा इंटरवल: यह रिपोर्ट के बीच का फ़ाइनल, तय किया गया ज़्यादा से ज़्यादा इंटरवल होता है.
सदस्यता लेने से जुड़ी पाबंदियां
- 'सदस्यता का अनुरोध करें' कार्रवाई और 'सदस्यता का जवाब दें' कार्रवाई, Unicast-ओनली कार्रवाइयां हैं.
- सदस्यता से जुड़ी किसी इंटरैक्शन में, रिपोर्ट डेटा से जुड़ी सभी कार्रवाइयों का सदस्यता आईडी एक ही होना चाहिए.
- अगर सदस्य को कार्रवाइयों के बीच तय किए गए ज़्यादा से ज़्यादा समय के अंदर, रिपोर्ट डेटा ऐक्शन नहीं मिलता है, तो सदस्यता रद्द कर दी जाएगी.
- पिछले नियम के मुताबिक, पब्लिशर सिर्फ़ समय-समय पर रिपोर्ट डेटा ऐक्शन भेजना बंद करके, सदस्यता इंटरैक्शन को खत्म कर सकता है.
- सदस्य, सदस्यता इंटरैक्शन को खत्म कर सकता है. इसके लिए, उसे
INACTIVE_SUBSCRIPTIONस्टेटस कोड के साथ, Report Data Action का जवाब देना होगा.