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

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

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

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

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

جهت: Initiator -> Target

در این اقدام، Initiator یک هدف را درخواست می کند که ارائه می دهد:

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

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

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

جهت: Target -> Initiator

در این اقدام، هدف با:

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

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

جهت: یا Target -> Initiator یا Initiator -> Target

هنگامی که Initiator داده های درخواستی را دریافت کرد، به طور پیش فرض باید یک Status Response Action ایجاد کند. این اقدام با تأیید دریافت داده های گزارش شده از سوی Initiator ارسال می شود. اگر پرچم Suppress Status Response تنظیم شده باشد، Initiator نباید اقدام Status Response را ارسال کند.

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

Status Response Action به سادگی حاوی یک فیلد وضعیت است که یا موفقیت عملیات را تأیید می کند یا یک کد شکست ارائه می دهد.

محدودیت ها را بخوانید

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

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

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

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

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

جهت: Initiator -> Target

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

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

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

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

پس از درخواست اشتراک، هدف با یک اقدام داده گزارش حاوی اولین دسته از داده های گزارش شده به آغازگر پاسخ می دهد: داده های منتشر شده Primed .

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

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

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

جهت: Target -> Initiator

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

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

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

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