قراءة المعاملة
من بين حالات الاستخدام الأولى عند التفاعل مع العُقد في Matter قراءة سمة من عقدة أخرى، مثل قيمة درجة الحرارة من جهاز استشعار. في عمليات التفاعل هذه، يجب تنفيذ الإجراء "طلب القراءة" أولاً.
الإجراء "طلب القراءة"
الاتجاه: المُرسِل -> المستلِم
في هذا الإجراء، يطلب المُرسِل بيانات من المستلِم ويقدّم ما يلي:
- طلبات السمات: قائمة تتضمّن صفرًا أو أكثر من سمات المستلِم. تتألّف هذه القائمة من صفر أو أكثر من مسارات السمات المطلوبة للمستلِم.
- طلبات الأحداث: قائمة تتضمّن صفرًا أو أكثر من مسارات الأحداث المطلوبة للمستلِم.
بعد أن يتلقّى المستلِم الإجراء "طلب القراءة"، سيُنشئ الإجراء "بيانات التقرير" الذي يتضمّن المعلومات المطلوبة.
الإجراء "بيانات التقرير"
الاتجاه: المستلِم -> المُرسِل
في هذا الإجراء، يردّ المستلِم بما يلي:
- تقارير السمات: قائمة تتضمّن صفرًا أو أكثر من السمات التي تم الإبلاغ عنها والمطلوبة في الإجراء "طلب القراءة".
- تقارير الأحداث: قائمة تتضمّن صفرًا أو أكثر من الأحداث التي تم الإبلاغ عنها.
- إخفاء الردّ: علامة تحدّد ما إذا كان يجب إخفاء ردّ الحالة على هذا الإجراء.
- رقم تعريف الاشتراك: إذا كان هذا التقرير جزءًا من معاملة اشتراك، يجب أن يتضمّن عددًا صحيحًا يُستخدَم لتحديد معاملة الاشتراك.
الإجراء "ردّ الحالة"
الاتجاه: إما المستلِم -> المُرسِل أو المُرسِل -> المستلِم
بعد أن يتلقّى المُرسِل البيانات المطلوبة، يجب أن يُنشئ تلقائيًا الإجراء "ردّ الحالة". يتم إرسال هذا الإجراء من المُرسِل، ما يؤكّد استلام البيانات التي تم الإبلاغ عنها. إذا تم ضبط العلامة "إخفاء ردّ الحالة"، يجب ألا يرسل المُرسِل الإجراء "ردّ الحالة".
بعد أن يرسل المُرسِل الإجراء "ردّ الحالة"، أو بعد أن يتلقّى المُرسِل الإجراء "بيانات التقرير" مع تفعيل العلامة "إخفاء الردّ"، ينتهي طلب القراءة/التقرير.
يحتوي الإجراء "ردّ الحالة" ببساطة على حقل الحالة الذي سيؤكّد نجاح العملية أو يعرض رمز خطأ.
قيود القراءة
الإجراءان "طلب القراءة" و"بيانات التقرير" هما إجراءان Unicast-فقط. بالإضافة إلى ذلك، قد لا تستهدف مسارات هذه الطلبات مجموعة من العُقد.
الإجراء "ردّ الحالة" هو إجراء Unicast-فقط ولا يمكن إنشاؤه كردّ على إرسال جماعي.
معاملة الاشتراك
الإجراء "طلب الاشتراك"
الاتجاه: المُرسِل -> المستلِم
بالإضافة إلى الإجراء "طلب القراءة" الفردي، يمكن للمُرسِل أيضًا الاشتراك في تحديثات دورية لسمة أو حدث. وبالتالي، يمكن إنشاء الإجراء "بيانات التقرير" نفسه نتيجةً لتحديثات البيانات الدورية التي تتّبع معاملة الاشتراك.
ينشئ تفاعل الاشتراك علاقة بين عقدتين، حيث يُنشئ المستلِم بشكل دوري الإجراء "بيانات التقرير" للمُرسِل. المُرسِل هو المشترِك والمستلِم هو الناشر.
يحتوي الإجراء "طلب الاشتراك" على ما يلي:
- الحدّ الأدنى للفاصل الزمني: الحدّ الأدنى للفاصل الزمني بين التقارير.
- الحدّ الأقصى للفاصل الزمني: الحدّ الأقصى للفاصل الزمني بين التقارير.
- تقارير السمات: قائمة تتضمّن صفرًا أو أكثر من السمات التي تم الإبلاغ عنها والمطلوبة في الإجراء "طلب القراءة".
- تقارير الأحداث: قائمة تتضمّن صفرًا أو أكثر من الأحداث التي تم الإبلاغ عنها.
بعد الإجراء "طلب الاشتراك"، يردّ المستلِم على المُرسِل بالإجراء "بيانات التقرير" الذي يتضمّن الدفعة الأولى من البيانات التي تم الإبلاغ عنها: البيانات المنشورة الأولية.
بعد ذلك، يؤكّد المُرسِل الإجراء "بيانات التقرير" من خلال الإجراء "ردّ الحالة" الذي يتم إرساله إلى المستلِم. بعد أن يتلقّى المستلِم الإجراء "ردّ الحالة" الذي لا يشير إلى أي أخطاء، يرسل الإجراء "ردّ الاشتراك".
بعد ذلك، سيرسل المستلِم الإجراء "بيانات التقرير" بشكل دوري في الفاصل الزمني المتفق عليه، وسيردّ المُرسِل على هذه الإجراءات إلى أن يتم فقدان الاشتراك أو إلغاؤه.
الإجراء "ردّ الاشتراك"
الاتجاه: المستلِم -> المُرسِل
هذا هو الإجراء الأخير في معاملة الاشتراك ويُنهي العملية. ويشمل ذلك:
- رقم تعريف الاشتراك: عدد صحيح يحدّد الاشتراك.
- الحدّ الأدنى للفاصل الزمني: الحدّ الأدنى النهائي و المحدّد للفاصل الزمني بين التقارير.
- الحدّ الأقصى للفاصل الزمني: الحدّ الأقصى النهائي و المحدّد للفاصل الزمني بين التقارير.
قيود الاشتراك
- الإجراءان "طلب الاشتراك" و"ردّ الاشتراك" هما Unicast-فقط.
- يجب أن تتضمّن جميع الإجراءات "بيانات التقرير" في تفاعل الاشتراك رقم تعريف الاشتراك نفسه.
- إذا لم يتلقَّ المشترِك الإجراء "بيانات التقرير" خلال الحدّ الأقصى للفاصل الزمني المتفق عليه بين الإجراءات، سيتم إنهاء الاشتراك.
- نتيجةً للقاعدة السابقة، يمكن للناشر إنهاء تفاعل الاشتراك من خلال التوقّف ببساطة عن إرسال الإجراءات "بيانات التقرير" الدورية.
- يمكن للمشترِك إنهاء تفاعل الاشتراك من خلال الردّ على الإجراء "بيانات التقرير" باستخدام رمز الحالة
INACTIVE_SUBSCRIPTION.