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

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

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

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

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

الاتجاه: بادئ التشغيل -> الهدف

في هذا الإجراء، يطلب البادئ الإجابة عن هدف يوفّر ما يلي:

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

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

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

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

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

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

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

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

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

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

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

قراءة القيود

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

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

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

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

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

الاتجاه: بادئ التشغيل -> الهدف

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

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

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

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

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

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

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

إجراء الاستجابة للاشتراك

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

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

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

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

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