Đọc giao dịch

Đọc giao dịch

Một trong những trường hợp sử dụng đầu tiên khi tương tác với các Nút trong Matter là đọc Thuộc tính từ một Nút khác, chẳng hạn như giá trị nhiệt độ từ một cảm biến. Trong những Tương tác như vậy, Hành động đầu tiên cần được thực hiện là Hành động yêu cầu đọc.

Trình tự thao tác của một Giao dịch đọc
Hình 1: Đọc giao dịch

Hành động yêu cầu đọc

Hướng: Trình khởi tạo -> Mục tiêu

Trong hành động này, Người khởi tạo truy vấn một Mục tiêu cung cấp:

  • Yêu cầu thuộc tính: một danh sách gồm không hoặc nhiều Thuộc tính của mục tiêu. Danh sách này bao gồm không hoặc nhiều Đường dẫn đến các Thuộc tính được yêu cầu của Mục tiêu.
  • Yêu cầu sự kiện: danh sách không có hoặc nhiều Đường dẫn đến Sự kiện được yêu cầu của Mục tiêu.

Sau khi Mục tiêu nhận được Hành động yêu cầu đọc, Hành động này sẽ tập hợp một Hành động dữ liệu báo cáo với thông tin được yêu cầu.

Hành động liên quan đến dữ liệu báo cáo

Hướng: Mục tiêu -> Trình khởi tạo

Trong Hành động này, Mục tiêu sẽ phản hồi bằng:

  • Báo cáo thuộc tính: một danh sách gồm 0 hoặc nhiều Thuộc tính được báo cáo và cần thiết trong Yêu cầu hành động đọc.
  • Báo cáo sự kiện: danh sách không có hoặc nhiều Sự kiện được báo cáo.
  • Phản hồi chặn: một cờ xác định xem có nên chặn phản hồi trạng thái cho hành động này hay không.
  • Mã nhận dạng gói thuê bao: nếu báo cáo này nằm trong một giao dịch mua gói thuê bao, thì báo cáo này phải bao gồm một số nguyên dùng để xác định giao dịch đó.

Hành động phản hồi trạng thái

Hướng: Mục tiêu -> Trình khởi tạo hoặc Trình khởi tạo -> Mục tiêu

Sau khi Trình khởi tạo nhận được dữ liệu được yêu cầu, theo mặc định, Trình khởi tạo phải tạo một Hành động phản hồi trạng thái. Hành động này được gửi từ Trình khởi tạo, xác nhận việc nhận dữ liệu được báo cáo. Nếu bạn đặt cờ Phản hồi trạng thái chặn, Trình khởi tạo không được gửi Hành động phản hồi trạng thái.

Sau khi Trình khởi tạo gửi Hành động phản hồi trạng thái hoặc Trình khởi tạo nhận được Hành động phản hồi báo cáo với cờ Phản hồi chặn, truy vấn đọc/báo cáo đã hoàn tất.

Hành động phản hồi trạng thái chỉ chứa trường trạng thái sẽ xác nhận thao tác thành công hoặc hiển thị mã lỗi.

Các hạn chế về việc đọc

Hành động yêu cầu đọc và Hành động báo cáo dữ liệu chỉ có Unicast. Hơn nữa, Đường dẫn của các yêu cầu này có thể không nhắm mục tiêu đến một Nhóm nút.

Hành động phản hồi trạng thái chỉ có giá trị Unicast và không thể tạo dưới dạng phản hồi cho một truyền nhóm.

Giao dịch gói thuê bao

Trình tự thao tác của một Giao dịch gói thuê bao
Hình 2: Giao dịch gói thuê bao

Hành động trong yêu cầu đăng ký

Hướng: Trình khởi tạo -> Mục tiêu

Ngoài một Hành động yêu cầu đọc số ít, Trình khởi tạo cũng có thể đăng ký nhận các bản cập nhật định kỳ của một Thuộc tính hoặc Sự kiện. Do đó, cùng một Hành động đối với dữ liệu báo cáo có thể được tạo ra do các lần cập nhật dữ liệu định kỳ thực hiện theo Giao dịch gói thuê bao.

Tương tác gói thuê bao tạo ra mối quan hệ giữa hai Nút, trong đó Mục tiêu sẽ định kỳ tạo các Hành động đối với dữ liệu báo cáo cho Trình khởi tạo. Người tạo là Người đăng ký và Mục tiêu là Nhà xuất bản.

Hành động yêu cầu đăng ký có:

  • Giá sàn tối thiểu: khoảng thời gian tối thiểu giữa các báo cáo.
  • Giá trần tối đa của khoảng thời gian tối đa: khoảng thời gian tối đa giữa các báo cáo.
  • Báo cáo thuộc tính: một danh sách gồm 0 hoặc nhiều Thuộc tính được báo cáo và cần có trong Yêu cầu hành động đọc.
  • Báo cáo sự kiện: danh sách không có hoặc nhiều Sự kiện được báo cáo.

Sau khi Yêu cầu đăng ký, Mục tiêu sẽ phản hồi Trình khởi tạo bằng Hành động dữ liệu báo cáo chứa nhóm dữ liệu được báo cáo đầu tiên: Dữ liệu đã xuất bản được ưu tiên.

Sau đó, Trình tạo xác nhận Hành động đối với dữ liệu báo cáo bằng Hành động phản hồi trạng thái được gửi đến Mục tiêu. Sau khi nhận được Hành động phản hồi trạng thái báo cáo không có lỗi, Mục tiêu sẽ gửi một Hành động phản hồi đăng ký.

Sau đó, Mục tiêu sẽ gửi Hành động đối với dữ liệu báo cáo theo định kỳ vào khoảng thời gian đã thương lượng và Trình khởi tạo sẽ phản hồi các Hành động đó cho đến khi gói thuê bao bị mất hoặc bị huỷ.

Hành động phản hồi đăng ký

Hướng: Mục tiêu -> Trình khởi tạo

Đây là Hành động cuối cùng trên Giao dịch thuê bao và kết thúc quá trình này. Thư mục này bao gồm:

  • Mã nhận dạng gói thuê bao: một số nguyên xác định gói thuê bao.
  • Khoảng thời gian tối thiểu: khoảng thời gian tối thiểu cuối cùng, được xác định giữa các báo cáo.
  • Khoảng thời gian tối đa: khoảng thời gian tối đa cuối cùng, được xác định giữa các báo cáo.

Hạn chế đăng ký

  • Hành động yêu cầu đăng ký và Hành động phản hồi đăng ký là các hành động chỉ Unicast.
  • Tất cả các Hành động đối với dữ liệu báo cáo trong một Tương tác gói thuê bao phải có cùng Mã gói thuê bao.
  • Nếu Người đăng ký không nhận được Hành động liên quan đến dữ liệu báo cáo trong khoảng thời gian thương lượng tối đa giữa các Hành động, thì gói thuê bao sẽ bị chấm dứt.
  • Do quy tắc trước đó, Nhà xuất bản có thể chấm dứt một Tương tác của gói thuê bao bằng cách ngừng gửi các Hành động định kỳ liên quan đến Dữ liệu báo cáo.
  • Người đăng ký có thể chấm dứt Hoạt động tương tác của gói thuê bao bằng cách phản hồi một Hành động báo cáo dữ liệu bằng mã trạng thái INACTIVE_SUBSCRIPTION.