อ่านธุรกรรม

อ่านธุรกรรม

หนึ่งในกรณีการใช้งานแรกๆ เมื่อโต้ตอบกับโหนดใน Matter คือการอ่านแอตทริบิวต์จากโหนดอื่น เช่น ค่าอุณหภูมิจากเซ็นเซอร์ ในการโต้ตอบดังกล่าว การดำเนินการแรกที่ต้องทำคือการดำเนินการคำขออ่าน

ลำดับการดำเนินการของธุรกรรมการอ่าน
รูปที่ 1: อ่านธุรกรรม

การดำเนินการคำขออ่าน

ทิศทาง: ผู้เริ่ม -> เป้าหมาย

ในการดำเนินการนี้ ผู้เริ่มจะค้นหาเป้าหมายโดยระบุข้อมูลต่อไปนี้

  • คำขอแอตทริบิวต์: รายการแอตทริบิวต์ของเป้าหมายตั้งแต่ 0 รายการขึ้นไป รายการนี้ประกอบด้วยเส้นทางไปยังแอตทริบิวต์ที่ขอของเป้าหมายตั้งแต่ 0 เส้นทางขึ้นไป
  • คำขอเหตุการณ์: รายการเส้นทางไปยังเหตุการณ์ที่ขอของเป้าหมายตั้งแต่ 0 เส้นทางขึ้นไป

หลังจากเป้าหมายได้รับคำขออ่านแล้ว เป้าหมายจะรวบรวมการดำเนินการข้อมูลรายงานพร้อมข้อมูลที่ขอ

การดำเนินการข้อมูลรายงาน

ทิศทาง: เป้าหมาย -> ผู้เริ่ม

ในการดำเนินการนี้ เป้าหมายจะตอบกลับด้วยข้อมูลต่อไปนี้

  • รายงานแอตทริบิวต์: รายการแอตทริบิวต์ที่รายงานซึ่งขอในการดำเนินการคำขออ่านตั้งแต่ 0 รายการขึ้นไป
  • รายงานเหตุการณ์: รายการเหตุการณ์ที่รายงานตั้งแต่ 0 รายการขึ้นไป
  • ระงับการตอบกลับ: แฟล็กที่กำหนดว่าควรระงับการตอบกลับ สถานะ สำหรับการดำเนินการนี้หรือไม่
  • รหัสการสมัครใช้บริการ: หากรายงานนี้เป็นส่วนหนึ่งของธุรกรรมการสมัครใช้บริการ รายงานต้องมีจำนวนเต็มที่ใช้ระบุธุรกรรมการสมัครใช้บริการ

การดำเนินการตอบกลับสถานะ

ทิศทาง: เป้าหมาย -> ผู้เริ่ม หรือผู้เริ่ม -> เป้าหมาย

เมื่อผู้เริ่มได้รับข้อมูลที่ขอแล้ว ผู้เริ่มต้องสร้างการดำเนินการตอบกลับสถานะโดยค่าเริ่มต้น การดำเนินการนี้จะส่งจากผู้เริ่มเพื่อยืนยันการรับข้อมูลที่รายงาน หากตั้งค่าแฟล็ก "ระงับการตอบกลับสถานะ" ผู้เริ่มต้องไม่ส่งการดำเนินการตอบกลับสถานะ

เมื่อผู้เริ่มส่งการดำเนินการตอบกลับสถานะ หรือผู้เริ่มได้รับการดำเนินการข้อมูลรายงานโดยเปิดใช้แฟล็ก "ระงับการตอบกลับ" การค้นหาการอ่าน/รายงานจะเสร็จสมบูรณ์

การดำเนินการตอบกลับสถานะจะมีเพียงฟิลด์สถานะ ที่จะยืนยันความสำเร็จของการดำเนินการหรือแสดงรหัสข้อผิดพลาด

ข้อจำกัดในการอ่าน

การดำเนินการคำขออ่านและการดำเนินการข้อมูลรายงานเป็นการดำเนินการแบบ Unicast-only. นอกจากนี้ เส้นทางของคำขอเหล่านี้อาจกำหนดเป้าหมายเป็นกลุ่มโหนดไม่ได้

การดำเนินการตอบกลับสถานะเป็นการดำเนินการแบบ Unicast-only และไม่สามารถ สร้างขึ้นเพื่อตอบกลับการส่งแบบกลุ่มได้

ธุรกรรมการสมัครใช้บริการ

ลำดับการดำเนินการของธุรกรรมการสมัครใช้บริการ
รูปที่ 2: ธุรกรรมการสมัครใช้บริการ

การดำเนินการคำขอสมัครใช้บริการ

ทิศทาง: ผู้เริ่ม -> เป้าหมาย

นอกจากการดำเนินการคำขออ่านแบบเอกพจน์แล้ว ผู้เริ่มยังสมัครใช้บริการเพื่อรับการอัปเดตแอตทริบิวต์หรือเหตุการณ์เป็นระยะได้ด้วย ดังนั้น ระบบจึงสร้างการดำเนินการข้อมูลรายงานเดียวกันได้จากการอัปเดตข้อมูลเป็นระยะซึ่งเป็นไปตามธุรกรรมการสมัครใช้บริการ

การโต้ตอบการสมัครใช้บริการจะสร้างความสัมพันธ์ระหว่างโหนด 2 โหนด ซึ่งเป้าหมายจะสร้างการดำเนินการข้อมูลรายงานให้กับผู้เริ่มเป็นระยะ ผู้เริ่มคือผู้สมัครใช้บริการ และเป้าหมายคือผู้เผยแพร่

การดำเนินการคำขอสมัครใช้บริการประกอบด้วยข้อมูลต่อไปนี้

  • ช่วงเวลาขั้นต่ำ: ช่วงเวลาขั้นต่ำระหว่างรายงาน
  • ช่วงเวลาสูงสุด: ช่วงเวลาสูงสุดระหว่างรายงาน
  • รายงานแอตทริบิวต์: รายการแอตทริบิวต์ที่รายงานซึ่งขอในการดำเนินการคำขออ่านตั้งแต่ 0 รายการขึ้นไป
  • รายงานเหตุการณ์: รายการเหตุการณ์ที่รายงานตั้งแต่ 0 รายการขึ้นไป

หลังจากได้รับคำขอสมัครใช้บริการแล้ว เป้าหมายจะตอบกลับผู้เริ่มด้วยการดำเนินการข้อมูลรายงานที่มีข้อมูลที่รายงานชุดแรก ซึ่งก็คือข้อมูลที่เผยแพร่ที่เตรียมไว้

จากนั้นผู้เริ่มจะยืนยันการดำเนินการข้อมูลรายงานด้วยการดำเนินการตอบกลับสถานะที่ส่งไปยังเป้าหมาย เมื่อเป้าหมายได้รับการดำเนินการตอบกลับสถานะที่รายงานว่าไม่มีข้อผิดพลาด เป้าหมายจะส่งการดำเนินการตอบกลับการสมัครใช้บริการ

จากนั้นเป้าหมายจะส่งการดำเนินการข้อมูลรายงานเป็นระยะตามช่วงเวลาที่ตกลงกันไว้ และผู้เริ่มจะตอบกลับการดำเนินการเหล่านั้นจนกว่าการสมัครใช้บริการจะสิ้นสุดหรือถูกยกเลิก

การดำเนินการตอบกลับการสมัครใช้บริการ

ทิศทาง: เป้าหมาย -> ผู้เริ่ม

นี่คือการดำเนินการสุดท้ายในธุรกรรมการสมัครใช้บริการและสรุปกระบวนการ ซึ่งประกอบด้วยข้อมูลต่อไปนี้

  • รหัสการสมัครใช้บริการ: จำนวนเต็มที่ระบุการสมัครใช้บริการ
  • ช่วงเวลาขั้นต่ำ: ช่วงเวลาขั้นต่ำ สุดท้าย, ที่กำหนด ระหว่าง รายงาน
  • ช่วงเวลาสูงสุด: ช่วงเวลาสูงสุด สุดท้าย ที่กำหนด ระหว่าง รายงาน

ข้อจำกัดในการสมัครใช้บริการ

  • การดำเนินการคำขอสมัครใช้บริการและการดำเนินการตอบกลับการสมัครใช้บริการเป็นการดำเนินการแบบ Unicast-เท่านั้น
  • การดำเนินการข้อมูลรายงานทั้งหมดในการโต้ตอบการสมัครใช้บริการต้องมีรหัสการสมัครใช้บริการเดียวกัน
  • หากผู้สมัครใช้บริการไม่ได้รับการดำเนินการข้อมูลรายงานภายในช่วงเวลาสูงสุดที่ตกลงกันไว้ระหว่างการดำเนินการ การสมัครใช้บริการจะสิ้นสุดลง
  • จากกฎก่อนหน้า ผู้เผยแพร่สามารถยุติการโต้ตอบการสมัครใช้บริการได้โดยเพียงแค่หยุดส่งการดำเนินการข้อมูลรายงานเป็นระยะ
  • ผู้สมัครใช้บริการสามารถยุติการโต้ตอบการสมัครใช้บริการได้โดยการตอบกลับการดำเนินการข้อมูลรายงานด้วยรหัสสถานะ INACTIVE_SUBSCRIPTION