معاملات را بخوانید

تراکنش را بخوانید

یکی از اولین موارد استفاده هنگام تعامل با گره‌ها در Matter ، خواندن یک ویژگی از گره دیگر، مانند مقدار دما از یک حسگر است. در چنین تعاملاتی، اولین عملی که باید انجام شود، عمل درخواست خواندن است.

توالی عملیات یک تراکنش خواندن
شکل ۱: تراکنش خواندن

درخواست اقدام را بخوانید

جهت: آغازگر -> هدف

در این اقدام، آغازگر از یک هدف درخواست می‌کند که موارد زیر را ارائه دهد:

  • درخواست‌های ویژگی : فهرستی از صفر یا چند ویژگی هدف. این فهرست از صفر یا چند مسیر به ویژگی‌های درخواستی هدف تشکیل شده است.
  • درخواست‌های رویداد : فهرستی از صفر یا چند مسیر به رویدادهای درخواستی هدف.

پس از اینکه درخواست خواندن (Read Request Action) توسط Target دریافت شد، یک گزارش داده (Report Data Action) با اطلاعات درخواستی جمع‌آوری می‌کند.

گزارش اقدام داده

جهت: هدف -> آغازگر

در این اقدام، هدف با موارد زیر پاسخ می‌دهد:

  • گزارش‌های ویژگی : فهرستی از صفر یا بیشتر از ویژگی‌های گزارش‌شده که در درخواست اقدام خواندن درخواست شده‌اند.
  • گزارش‌های رویداد : فهرستی از صفر یا چند رویداد گزارش‌شده.
  • سرکوب پاسخ : پرچمی که تعیین می‌کند آیا پاسخ وضعیت به این اقدام باید سرکوب شود یا خیر.
  • شناسه اشتراک : اگر این گزارش بخشی از یک تراکنش اشتراک باشد، باید شامل یک عدد صحیح باشد که برای شناسایی تراکنش اشتراک استفاده می‌شود.

اقدام پاسخ به وضعیت

جهت: یا هدف -> آغازگر یا آغازگر -> هدف

هنگامی که آغازگر داده‌های درخواستی را دریافت می‌کند، به طور پیش‌فرض باید یک اقدام پاسخ وضعیت ایجاد کند. این اقدام از سوی آغازگر ارسال می‌شود و دریافت داده‌های گزارش شده را تأیید می‌کند. اگر پرچم «سرکوب پاسخ وضعیت» تنظیم شده باشد، آغازگر نباید اقدام پاسخ وضعیت را ارسال کند.

به محض اینکه اقدام پاسخ وضعیت توسط آغازگر ارسال شود، یا یک اقدام گزارش داده توسط آغازگر با پرچم سرکوب پاسخ فعال دریافت شود، پرس و جوی خواندن/گزارش پایان می‌یابد.

اقدام پاسخ به وضعیت (Status Response Action) صرفاً شامل یک فیلد وضعیت است که یا موفقیت عملیات را تأیید می‌کند یا کد خطا را ارائه می‌دهد.

محدودیت‌های خواندن

عمل درخواست خواندن و عمل گزارش داده فقط به Unicast هستند. علاوه بر این، مسیرهای این درخواست‌ها ممکن است گروهی از گره‌ها را هدف قرار ندهند.

اقدام پاسخ وضعیت فقط به صورت Unicast است و نمی‌تواند به عنوان پاسخی به groupcast تولید شود.

تراکنش اشتراک

توالی عملیات یک تراکنش اشتراک
شکل ۲: تراکنش اشتراک

درخواست اشتراک اقدام

جهت: آغازگر -> هدف

علاوه بر یک اقدام درخواست خواندن منفرد، یک آغازگر می‌تواند در به‌روزرسانی‌های دوره‌ای یک ویژگی یا رویداد نیز مشترک شود. بنابراین، همان اقدام گزارش داده می‌تواند در نتیجه به‌روزرسانی‌های دوره‌ای داده‌ها که پس از یک تراکنش اشتراک انجام می‌شوند، ایجاد شود.

یک تعامل اشتراکی، رابطه‌ای بین دو گره ایجاد می‌کند که در آن گره هدف به صورت دوره‌ای گزارش اقدامات داده‌ای را برای آغازگر ایجاد می‌کند. آغازگر، مشترک و گره هدف، ناشر است.

یک درخواست اشتراک شامل موارد زیر است:

  • حداقل فاصله زمانی : حداقل فاصله زمانی بین گزارش‌ها.
  • حداکثر فاصله زمانی : حداکثر فاصله زمانی بین گزارش‌ها.
  • گزارش‌های ویژگی: فهرستی از صفر یا بیشتر از ویژگی‌های گزارش‌شده که در درخواست اقدام خواندن درخواست شده‌اند.
  • گزارش‌های رویداد: فهرستی از صفر یا چند رویداد گزارش‌شده.

پس از درخواست اشتراک، هدف با یک اکشن گزارش داده (Report Data Action) که شامل اولین دسته از داده‌های گزارش‌شده است، به آغازگر (Initiator) پاسخ می‌دهد: داده‌های منتشرشده‌ی اولیه (Primed Published Data ).

سپس آغازگر، اقدام گزارش داده را با ارسال یک اقدام پاسخ وضعیت به مقصد تأیید می‌کند. به محض اینکه مقصد یک اقدام پاسخ وضعیت مبنی بر عدم خطا دریافت کند، یک اقدام پاسخ اشتراک ارسال می‌کند.

هدف متعاقباً گزارش داده اقدام را به صورت دوره‌ای در فاصله زمانی توافق شده ارسال می‌کند و آغازگر تا زمانی که اشتراک از بین برود یا لغو شود، به آن اقدامات پاسخ خواهد داد.

اقدام پاسخ مشترک شوید

جهت: هدف -> آغازگر

این آخرین اقدام در تراکنش اشتراک است و فرآیند را به پایان می‌رساند. این شامل موارد زیر است:

  • شناسه اشتراک : یک عدد صحیح که اشتراک را مشخص می‌کند.
  • حداقل فاصله زمانی : حداقل فاصله زمانی نهایی و تعیین شده بین گزارش‌ها.
  • حداکثر فاصله زمانی : حداکثر فاصله زمانی نهایی و تعیین‌شده بین گزارش‌ها.

محدودیت‌های اشتراک

  • اقدام درخواست اشتراک و اقدام پاسخ اشتراک، اقدامات Unicast هستند.
  • همه اقدامات مربوط به داده‌های گزارش در یک تعامل اشتراک باید دارای شناسه اشتراک یکسانی باشند.
  • اگر مشترک ظرف حداکثر فاصله زمانی توافق‌شده بین اقدامات، گزارش اقدام داده‌ای دریافت نکند، اشتراک خاتمه خواهد یافت.
  • در نتیجه‌ی قانون قبلی، ناشر می‌تواند با متوقف کردن ارسال گزارش‌های دوره‌ای مربوط به اقدامات داده، یک تعامل اشتراک را خاتمه دهد.
  • مشترک می‌تواند با پاسخ به یک گزارش داده با کد وضعیت INACTIVE_SUBSCRIPTION ، تعامل اشتراک را خاتمه دهد.