قراءة المعاملات

قراءة المعاملة

من أولى حالات الاستخدام عند التفاعل مع العُقد في Matter هي قراءة سمة من عقدة أخرى، مثل قيمة درجة الحرارة من جهاز استشعار. في مثل هذه التفاعلات، يجب تنفيذ الإجراء "طلب القراءة" أولاً.

تسلسل عمليات قراءة المعاملة
الشكل 1: عملية القراءة

إجراء طلب القراءة

الاتجاه: أداة البدء -> الهدف

في هذا الإجراء، يطلب البادئ من الهدف تقديم ما يلي:

  • طلبات السمات: قائمة تتضمّن صفرًا أو أكثر من سمات الهدف. تتألف هذه القائمة من صفر أو أكثر من مسارات إلى سمات الهدف المطلوبة.
  • طلبات الأحداث: قائمة تتضمّن صفرًا أو أكثر من مسارات الأحداث المطلوبة من الهدف.

بعد أن يتلقّى الجهاز المستهدف إجراء طلب القراءة، سيجمّع إجراء بيانات التقرير مع المعلومات المطلوبة.

إجراء بيانات التقرير

الاتجاه: الهدف -> المبدأ

في هذا الإجراء، يردّ الهدف بما يلي:

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

إجراء الردّ على الحالة

الاتجاه: إما الهدف -> المُنشئ أو المُنشئ -> الهدف

بعد أن يتلقّى "المُرسِل" البيانات المطلوبة، عليه تلقائيًا إنشاء "إجراء استجابة الحالة". يتم إرسال هذا الإجراء من "المُرسِل"، مع الإقرار باستلام البيانات المُبلَغ عنها. في حال تم ضبط العلامة Suppress Status Response، يجب ألا يرسل Initiator الإجراء Status Response.

بعد أن يرسل "المصدر" إجراء "الردّ على الحالة"، أو بعد أن يتلقّى "المصدر" إجراء "بيانات التقرير" مع تفعيل علامة "إيقاف الردّ"، ينتهي طلب القراءة/التقرير.

يحتوي إجراء الاستجابة للحالة ببساطة على حقل الحالة الذي سيؤكّد إما نجاح العملية أو يعرض رمز تعذّر.

قيود القراءة

إنّ إجراء طلب القراءة وإجراء بيانات التقارير هما Unicast فقط. بالإضافة إلى ذلك، قد لا تستهدف مسارات هذه الطلبات مجموعة من العُقد.

الإجراء "الردّ على حالة" متاح فقط في Unicast ولا يمكن إنشاؤه كردّ على بث جماعي.

معاملة الاشتراك

تسلسل عمليات معاملة الاشتراك
الشكل 2: معاملة الاشتراك

إجراء طلب الاشتراك

الاتجاه: أداة البدء -> الهدف

بالإضافة إلى إجراء طلب قراءة واحد، يمكن للمنشئ أيضًا الاشتراك في تلقّي تحديثات دورية لسمة أو حدث. وبالتالي، يمكن إنشاء إجراء بيانات التقرير نفسه نتيجةً لتعديلات دورية على البيانات تتّبع معاملة اشتراك.

ينشئ تفاعل الاشتراك علاقة بين عقدتين، حيث ينشئ الهدف بشكل دوري إجراءات بيانات التقارير إلى المبدئ. يكون "المُنشئ" هو المشترك و"الهدف" هو الناشر.

يحتوي إجراء طلب الاشتراك على ما يلي:

  • الحدّ الأدنى للفاصل الزمني: الحدّ الأدنى للفاصل الزمني بين التقارير.
  • الحدّ الأقصى للمدة الفاصلة: الحدّ الأقصى للمدة الفاصلة بين التقارير.
  • تقارير السمات: قائمة تتضمّن صفرًا أو أكثر من السمات التي تم الإبلاغ عنها والمطلوبة في طلب إجراء القراءة.
  • تقارير الأحداث: قائمة تتضمّن صفرًا أو أكثر من الأحداث التي تمّ الإبلاغ عنها.

بعد طلب الاشتراك، يستجيب "المستهدف" إلى "المصدر" من خلال إجراء "بيانات التقارير" الذي يتضمّن الدفعة الأولى من البيانات التي تم إعداد تقارير عنها، وهي البيانات المنشورة التي تم إعدادها.

بعد ذلك، يقرّ "المُنشئ" بإجراء "بيانات التقرير" من خلال "ردّ الحالة" الذي يتضمّن الإجراء المُرسَل إلى "الهدف". بعد أن يتلقّى الجهاز المستهدف "إجراء استجابة الحالة" (Status Response Action) الذي لا يشير إلى أي أخطاء، يرسل "إجراء استجابة الاشتراك" (Subscribe Response Action).

سيرسل الجهاز المستهدف بعد ذلك "إجراء بيانات التقارير" بشكل دوري في الفاصل الزمني المتفق عليه، وسيردّ الجهاز البادئ على هذه الإجراءات إلى أن يتم فقدان الاشتراك أو إلغاؤه.

إجراء الرد على الاشتراك

الاتجاه: الهدف -> المبدأ

هذا هو الإجراء الأخير بشأن معاملة الاشتراك، وهو يختتم العملية. ويشمل ذلك:

  • رقم تعريف الاشتراك: عدد صحيح يعرّف الاشتراك.
  • الحدّ الأدنى للفاصل الزمني: هو الحدّ الأدنى النهائي المحدَّد للفاصل الزمني بين التقارير.
  • الحدّ الأقصى للفاصل الزمني: هو الحدّ الأقصى النهائي والمحدّد للفاصل الزمني بين التقارير.

قيود الاشتراك

  • إنّ إجراء طلب الاشتراك وإجراء الردّ على الاشتراك هما إجراءان Unicast فقط.
  • يجب أن تتضمّن جميع إجراءات بيانات التقارير في تفاعل الاشتراك معرّف الاشتراك نفسه.
  • إذا لم يتلقَّ المشترك إجراءً بشأن بيانات التقرير خلال الحد الأقصى للفترة الزمنية المتفق عليها بين الإجراءات، سيتم إنهاء الاشتراك.
  • نتيجةً للقاعدة السابقة، يجوز للناشر إنهاء تفاعل الاشتراك من خلال التوقّف ببساطة عن إرسال إجراءات بيانات التقارير الدورية.
  • يجوز للمشترك إنهاء "تفاعل الاشتراك" من خلال الردّ على "إجراء بيانات التقرير" باستخدام رمز الحالة INACTIVE_SUBSCRIPTION.