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

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

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

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

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

כיוון: מאתחל -> יעד

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

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

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

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

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

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

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

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

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

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

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

הפעולה Status Response Action מכילה רק את השדה status, שמאשר שהפעולה הצליחה או מציג קוד שגיאה.

קריאת ההגבלות

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

הפעולה Status Response Action מיועדת רק ל-Unicast ואי אפשר ליצור אותה כתגובה ל-groupcast.

עסקת מינוי

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

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

כיוון: מאתחל -> יעד

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

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

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

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

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

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

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

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

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

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

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

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

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