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

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

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

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

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

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

في هذا الإجراء، يرسل "المبادر" طلبًا إلى "الهدف" يتضمّن ما يلي:

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

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

الإبلاغ عن إجراء بيانات

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

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

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

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

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

Once the Initiator receives the requested data, by default it must generate a Status Response Action. يتم إرسال هذا الإجراء من "المبادر"، مع الإقرار باستلام بيانات التقارير. إذا تم ضبط العلامة "إيقاف الاستجابة للحالة"، يجب ألا يرسل "البادئ" "إجراء الاستجابة للحالة".

بمجرد إرسال إجراء الاستجابة للحالة من قبل البادئ، أو تلقي إجراء بيانات التقرير من قبل البادئ مع تمكين علامة منع الاستجابة، يتم الانتهاء من استعلام القراءة/التقرير.

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

الاطّلاع على القيود

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

لا يمكن إنشاء إجراء الردّ على الحالة إلا من خلال Unicast، ولا يمكن إنشاؤه كردّ على بث جماعي.

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

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

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

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

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

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

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

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

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

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

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

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

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

هذا هو الإجراء الأخير في "معاملة الاشتراك" (Subscription Transaction) ويُنهي العملية. ويشمل ذلك:

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

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

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