עסקאות שנקראו

קריאת העסקה

אחד מתרחישי השימוש הראשונים באינטראקציה עם צמתים ב-Matter הוא קריאה של מאפיין מצומת אחר, כמו ערך טמפרטורה מחיישן. באינטראקציות כאלה, הפעולה הראשונה שצריך לבצע היא פעולת בקשת הקריאה.

רצף הפעולות של עסקת קריאה
איור 1: קריאת טרנזקציה

קריאת בקשה לפעולה

כיוון: יוזם -> יעד

בפעולה הזו, הגורם היוזם שולח שאילתה ליעד ומספק:

  • בקשות למאפיינים: רשימה של אפס או יותר מאפיינים של היעד. הרשימה הזו מורכבת מאפס נתיבים או יותר למאפיינים המבוקשים של היעד.
  • בקשות לאירועים: רשימה של אפס או יותר נתיבים לאירועים המבוקשים של יעד.

אחרי שהיעד מקבל את פעולת בקשת הקריאה, הוא מרכיב פעולת נתוני דוח עם המידע המבוקש.

פעולה לגבי נתוני דיווח

כיוון: יעד -> יוזם

בפעולה הזו, היעד מגיב עם:

  • Attribute Reports: רשימה של אפס או יותר מאפיינים שדווחו שנכללו בבקשת פעולת הקריאה.
  • דוחות על אירועים: רשימה של אפס או יותר אירועים שדווחו.
  • Suppress Response: דגל שקובע אם צריך להשבית את תגובת הסטטוס לפעולה הזו.
  • מזהה מינוי: אם הדוח הזה הוא חלק מעסקת מינוי, הוא צריך לכלול מספר שלם שמשמש לזיהוי עסקת המינוי.

פעולת תגובה לסטטוס

כיוון: Target -> Initiator או Initiator -> Target

אחרי שהגורם היוזם מקבל את הנתונים המבוקשים, הוא צריך ליצור פעולת תגובה לסטטוס כברירת מחדל. הפעולה הזו נשלחת מהיוזם כדי לאשר את קבלת הנתונים שדווחו. אם הדגל Suppress Status Response מוגדר, היוזם לא יכול לשלוח את הפעולה Status Response.

אחרי שהפעולה Status Response נשלחת על ידי הצד היוזם, או שהפעולה Report Data מתקבלת על ידי הצד היוזם עם הדגל Suppress Response מופעל, השאילתה read/report מסתיימת.

פעולת התגובה של הסטטוס מכילה רק את השדה status שיאשר את הצלחת הפעולה או יציג קוד שגיאה.

הגבלות קריאה

הפעולות Read Request Action ו-Report Data Action הן פעולות מסוג Unicast בלבד. בנוסף, יכול להיות שהנתיבים של הבקשות האלה לא יפנו לקבוצת צמתים.

הפעולה 'תגובה עם סטטוס' זמינה רק ב-Unicast ואי אפשר ליצור אותה כתגובה לשידור לקבוצה.

עסקת מינוי

רצף הפעולות של עסקת מינוי
איור 2: עסקה של מינוי

פעולה של בקשת הרשמה

כיוון: יוזם -> יעד

בנוסף לפעולת בקשת קריאה יחידה, יוזם יכול גם להירשם לעדכונים תקופתיים של מאפיין או אירוע. לכן, אותה פעולה של נתוני דוח יכולה להיווצר כתוצאה מעדכוני נתונים תקופתיים שמתבצעים אחרי עסקת מינוי.

אינטראקציה של מינוי יוצרת קשר בין שני צמתים, שבהם צומת היעד יוצר מעת לעת פעולות של נתוני דוחות עבור הצומת היוזם. הצומת היוזם הוא המנוי וצומת היעד הוא המוציא לאור.

פעולה של בקשת הרשמה מכילה:

  • Min Interval Floor: המרווח המינימלי בין דוחות.
  • Max Interval Ceiling: המרווח המקסימלי בין דוחות.
  • דוחות שיוך (Attribution): רשימה של אפס או יותר מאפייני השיוך שדווחו, שנדרשו בבקשת פעולת הקריאה.
  • דוחות אירועים: רשימה של אפס או יותר אירועים שדווחו.

אחרי בקשת ההרשמה, המטרה מגיבה ליוזם באמצעות פעולת נתוני דוח שמכילה את קבוצת הנתונים הראשונה שדווחה: הנתונים שפורסמו אחרי ההכנה.

היוזם מאשר את הפעולה 'דיווח נתונים' באמצעות תגובת סטטוס הפעולה נשלחה ליעד. אחרי שרכיב היעד מקבל פעולת תגובה על סטטוס שמדווחת על כך שאין שגיאות, הוא שולח פעולת תגובה על הרשמה.

לאחר מכן, המטרה תשלח מעת לעת פעולה של נתוני דוח במרווח המוסכם, והיוזם יגיב לפעולות האלה עד שהמינוי יאבד או יבוטל.

פעולת תגובה להרשמה

כיוון: יעד -> יוזם

זו הפעולה האחרונה בעסקת המינוי, והיא מסיימת את התהליך. היא כוללת:

  • Subscription ID: מספר שלם שמזהה את המינוי.
  • Min Interval (מרווח מינימלי): המרווח המינימלי הסופי שנקבע בין הדוחות.
  • Max Interval (מרווח מקסימלי): המרווח המקסימלי הסופי והקבוע בין הדוחות.

הגבלות על הרשמה

  • הפעולה Subscribe Request Action והפעולה Subscribe Response Action הן פעולות מסוג Unicast-only.
  • לכל הפעולות של נתוני הדוחות באינטראקציה עם מינוי צריך להיות אותו מזהה מינוי.
  • אם המנוי לא יקבל פעולה של נתוני דוח בתוך המרווח המקסימלי שנקבע בין הפעולות, המינוי יבוטל.
  • כתוצאה מהכלל הקודם, בעל האתר יכול להפסיק את האינטראקציה עם המינוי פשוט על ידי הפסקת השליחה של פעולות נתוני הדוחות התקופתיים.
  • המשתמש שנרשם למינוי יכול לסיים את האינטראקציה עם המינוי בתגובה לפעולה 'דיווח על נתונים' עם קוד סטטוס INACTIVE_SUBSCRIPTION.