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

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

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

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

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

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

في هذا الإجراء، يُجري البادئ طلب بحث عن هدف يقدّم ما يلي:

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

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

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

الاتجاه: الهدف -> المشغِّل

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

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

إجراء الاستجابة للحالة

الاتجاه: إما الهدف -> المشغِّل أو المشغِّل -> الهدف

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

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

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

القيود المفروضة على القراءة

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

لا يمكن استخدام إجراء الاستجابة للحالة إلا مع Unicast ولا يمكن إنشاؤه استجابةً لبث جماعي.

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

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

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

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

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

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

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

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

بعد طلب الاشتراك، يستجيب "الهدف" إلى "المُشغِّل" من خلال إجراء إعداد البيانات المُبلّغ عنها الذي يحتوي على المجموعة الأولى من البيانات المُبلّغ عنها: البيانات المنشورة التي تم إعدادها.

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

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

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

الاتجاه: الهدف -> المشغِّل

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

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

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

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