トランザクションの読み取り

取引の読み取り

Matter でノードを操作する最初のユースケースの 1 つは、センサーの温度値など、別のノードから属性を読み取ることです。このようなインタラクションでは、最初に実行するアクションはリクエストの読み取りアクションです。

読み取りトランザクションのオペレーションの順序
図 1: 読み取りトランザクション

読み取りリクエストの操作

方向: イニシエータ -> ターゲット

このアクションでは、開始元がターゲットにクエリを実行し、次の情報を提供します。

  • 属性リクエスト: ターゲットの属性のリスト(0 個以上)。このリストは、ターゲットのリクエストされた属性へのパスで構成されます。
  • イベント リクエスト: ターゲットのリクエストされたイベントへの 0 個以上のパスのリスト。

ターゲットが読み取りリクエスト アクションを受信すると、リクエストされた情報を使用してレポートデータ アクションが組み立てられます。

レポートデータ アクション

方向: ターゲット -> 開始元

このアクションでは、ターゲットは次のように応答します。

  • 属性レポート: 読み取りアクション リクエストでリクエストされた、報告された属性のリスト(0 個以上)。
  • イベント レポート: 報告されたイベントのリスト(0 個以上)。
  • Suppress Response: このアクションに対するステータス レスポンスを抑制するかどうかを決定するフラグ。
  • サブスクリプション ID: このレポートがサブスクリプション トランザクションの一部である場合は、サブスクリプション トランザクションの識別に使用される整数を含める必要があります。

ステータス レスポンス アクション

方向: ターゲット -> イニシエーターまたはイニシエーター -> ターゲット

リクエストされたデータを開始元が受け取ると、デフォルトではステータス レスポンス アクションを生成する必要があります。このアクションは、報告されたデータの受信を承認するために開始元から送信されます。フラグ Suppress Status Response が設定されている場合、開始側は Status Response Action を送信できません。

開始元によってステータス レスポンス アクションが送信されたか、レスポンスの抑制フラグが有効になっているレポート データ アクションが開始元によって受信されると、読み取り/レポート クエリは終了します。

ステータス レスポンス アクションには、操作の成功を承認するか、失敗コードを示す status フィールドのみが含まれます。

読み取り制限

リクエストの読み取りアクションとレポート データ アクションは Unicast のみです。また、これらのリクエストのパスでは、ノードグループをターゲットに設定できない場合があります。

ステータス レスポンス アクションは Unicast のみで、グループキャストへのレスポンスとして生成することはできません。

定期購入の取引

サブスクリプション トランザクションのオペレーションの順序
図 2: 定期購入取引

登録リクエスト アクション

方向: イニシエータ -> ターゲット

イニシエーターは、単一の読み取りリクエスト アクションに加えて、属性またはイベントの定期的な更新をサブスクライブすることもできます。したがって、定期購入トランザクションに続く定期的なデータ更新の結果として、同じレポートデータ アクションが生成される可能性があります。

サブスクリプション インタラクションは、2 つのノードの間に関係を作成します。この関係では、ターゲットがイニシエータに対してレポートデータ アクションを定期的に生成します。開始元はチャンネル登録者で、ターゲットはパブリッシャーです。

登録リクエスト アクションには次が含まれます。

  • Min Interval Floor: レポート間の最小間隔。
  • Max Interval Ceiling: レポート間の最大間隔。
  • 属性レポート: 読み取りアクション リクエストでリクエストされた報告された属性のリスト(0 個以上)。
  • イベント レポート: 報告されたイベントのリスト(0 件以上)。

サブスクライブ リクエストの後、ターゲットは、報告されたデータの最初のバッチ(プライミングされた公開データ)を含むレポートデータ アクションでイニシエータに応答します。

その後、開始側は、ステータス レスポンス アクションをターゲットに送信して、レポートデータ アクションを承認します。エラーがないことを伝えるステータス レスポンス アクションをターゲットが受信すると、ターゲットはサブスクライブ レスポンス アクションを送信します。

その後、ターゲットはネゴシエートされた間隔で定期的にレポートデータ アクションを送信し、開始側はサブスクリプションが失われたかキャンセルされるまで、これらのアクションに応答します。

登録の応答アクション

方向: ターゲット -> 開始元

これはサブスクリプション トランザクションの最後のアクションであり、プロセスは終了します。次の内容が含まれます。

  • サブスクリプション ID: サブスクリプションを識別する整数。
  • 最小間隔: レポート間の最小間隔(最終決定済み)。
  • 最大間隔: レポート間の最終的な最大間隔。決定済み

チャンネル登録の制限

  • サブスクリプション リクエスト アクションとサブスクリプション レスポンス アクションは Unicast 専用のアクションです。
  • サブスクリプション インタラクション内のすべてのレポートデータ アクションには、同じサブスクリプション ID が必要です。
  • サブスクライバーが、アクション間のネゴシエートされた最大間隔内にレポートデータ アクションを受信しなかった場合、サブスクリプションは終了します。
  • 以前のルールでは、定期的なレポートデータ アクションの送信を停止するだけで、ニュース メディアは定期購入インタラクションを終了できました。
  • サブスクライバーは、レポートデータ アクションに INACTIVE_SUBSCRIPTION ステータス コードで応答することで、サブスクリプション インタラクションを終了できます。