Đọ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 một 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 phải được thực hiện là Hành động yêu cầu đọc.

Trình tự hoạt động của Giao dịch đọc
Hình 1: Giao dịch đọc

Đọc yêu cầu hành động

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

Trong Thao tác này, Trình khởi tạo sẽ truy vấn một Mục tiêu cung cấp:

  • Yêu cầu về thuộc tính: danh sách gồm 0 hoặc nhiều Thuộc tính của Mục tiêu. Danh sách này bao gồm 0 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 về sự kiện: danh sách gồm 0 hoặc nhiều Đường dẫn đến Sự kiện được yêu cầu của Mục tiêu.

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

Thao tác đối với dữ liệu báo cáo

Hướng: Mục tiêu -> Người khởi tạo

Trong Thao tác này, Mục tiêu sẽ phản hồi bằng:

  • Báo cáo thuộc tính: danh sách gồm 0 hoặc nhiều Thuộc tính được báo cáo theo yêu cầu trong Yêu cầu hành động đọc.
  • Báo cáo sự kiện: danh sách gồm 0 hoặc nhiều Sự kiện được báo cáo.
  • Suppress Response: một cờ xác định xem có nên chặn status response đối với 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 là một phần của giao dịch thuê bao, thì báo cáo phải có một số nguyên dùng để nhận dạng giao dịch thuê bao.

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

Hướng: Target -> Initiator hoặc Initiator -> Target

Sau khi 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 Thao tác 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 cờ Suppress Status Response được đặt, thì Trình khởi tạo không được gửi Thao tác phản hồi trạng thái.

Sau khi Thao tác phản hồi trạng thái được Người khởi tạo gửi hoặc Thao tác dữ liệu báo cáo được Người khởi tạo nhận được khi cờ Phản hồi ngăn chặn được bật, truy vấn đọc/báo cáo sẽ hoàn tất.

Thao tác Phản hồi trạng thái chỉ chứa một trường status (trạng thái) sẽ xác nhận thành công của thao tác hoặc trình bày mã lỗi.

Quy định hạn chế về việc đọc

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

Status Response Action (Hành động phản hồi trạng thái) chỉ có thể là Unicast và không thể được tạo dưới dạng phản hồi cho một nhóm phát.

Giao dịch mua gói thuê bao

Trình tự hoạt động của Giao dịch thuê bao
Hình 2: Giao dịch đăng ký

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

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

Ngoài một Thao tác yêu cầu đọc duy nhất, Trình khởi tạo cũng có thể đăng ký nhận thông tin cập nhật định kỳ về một Thuộc tính hoặc Sự kiện. Do đó, cùng một Thao tác dữ liệu báo cáo có thể được tạo do các bản cập nhật dữ liệu định kỳ tuân theo một Giao dịch đăng ký.

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

Một thao tác Yêu cầu đăng ký bao gồm:

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

Sau Subscribe Request (Yêu cầu đăng ký), Target (Mục tiêu) sẽ phản hồi Initiator (Bên khởi tạo) bằng một Report Data Action (Thao tác dữ liệu báo cáo) chứa lô dữ liệu được báo cáo đầu tiên: Primed Published Data (Dữ liệu đã xuất bản được chuẩn bị).

Sau đó, Initiator sẽ xác nhận Report Data Action bằng một Status Response Action được gửi đến Target. Sau khi nhận được một Status Response Action (Hành động phản hồi trạng thái) báo cáo không có lỗi, Target sẽ gửi một Subscribe Response Action (Hành động phản hồi đăng ký).

Sau đó, Target sẽ định kỳ gửi Report Data Action theo khoảng thời gian đã thoả thuận và Initiator sẽ phản hồi các Action đó cho đến khi mất hoặc huỷ đăng ký.

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

Hướng: Mục tiêu -> Người khởi tạo

Đây là Hành động cuối cùng đối với Giao dịch đăng ký và kết thúc quy trình. 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, đã 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.

Quy định hạn chế đối với việc đă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ỉ dành cho Unicast.
  • Tất cả Report Data Actions trong một Subscription Interaction đều phải có cùng Subscription ID.
  • Nếu Người đăng ký không nhận được một Report Data Action trong khoảng thời gian tối đa đã thoả thuận giữa các Action, 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 đăng ký bằng cách chỉ cần ngừng gửi các Thao tác dữ liệu báo cáo định kỳ.
  • Người đăng ký có thể chấm dứt Tương tác với gói thuê bao bằng cách phản hồi một Thao tác báo cáo dữ liệu bằng mã trạng thái INACTIVE_SUBSCRIPTION.