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

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

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

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

Read Request Action

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

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

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

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

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

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

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

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

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

الاتجاه: إما Target -> Initiator أو Initiator -> Target

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

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

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

قيود القراءة

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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