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

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

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

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

読み取りリクエスト アクション

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

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

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

読み取りリクエスト アクションがターゲットによって受信されると、要求された情報を含むレポートデータ アクションが組み立てられます。

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

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

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

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

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

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

イニシエータが要求されたデータを受信すると、デフォルトでステータス レスポンス アクションが生成されます。このアクションはイニシエータから送信され、報告されたデータの受信を確認します。フラグ [ステータス レスポンスの抑制] が設定されている場合、イニシエータはステータス レスポンス アクションを送信しないでください。

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

ステータス レスポンス アクションには、オペレーションの成功を確認するか、失敗コードを表示する ステータス フィールドが含まれています。

読み取りの制限

読み取りリクエスト アクションとレポートデータ アクションは Unicast-専用です。また、これらのリクエストのパスはノードのグループをターゲットにすることはできません。

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

サブスクリプション トランザクション

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

サブスクライブ リクエスト アクション

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

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

サブスクリプション インタラクションは、2 つのノード間の関係を作成します。この関係では、ターゲットはレポートデータ アクションをイニシエータに定期的に生成します。 イニシエータはサブスクライバー 、ターゲットはパブリッシャー です。

サブスクライブ リクエスト アクションには次のものが含まれます。

  • 最小インターバル下限: レポート間の最小インターバル。
  • 最大間隔の上限: レポート間の最大間隔。
  • 属性レポート: 読み取りアクション リクエストで要求された報告対象の属性の 0 個以上のリスト。
  • イベント レポート: 報告対象のイベントの 0 個以上のリスト。

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

次に、イニシエータは、ターゲットに送信されたステータス レスポンス アクションでレポートデータ アクションを確認します。ターゲットがエラーなしを報告するステータス レスポンス アクションを受信すると、サブスクライブ レスポンス アクションが送信されます。

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

サブスクライブ レスポンス アクション

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

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

  • サブスクリプション ID: サブスクリプションを識別する整数。
  • 最小間隔: レポート間の最終的に決定された最小間隔。
  • 最大間隔: レポート間の最終的に決定された最大間隔。

サブスクライブの制限

  • サブスクライブ リクエスト アクションとサブスクライブ レスポンス アクションは Unicast-only アクションです。
  • サブスクリプション インタラクションのすべてのレポートデータ アクションに同じサブスクリプション ID が必要です。
  • サブスクライバーがアクション間の最大ネゴシエート間隔内にレポートデータ アクションを受信しない場合、サブスクリプションは終了します。
  • 前のルールにより、パブリッシャーは定期的なレポートデータ アクションの送信を停止するだけで、サブスクリプション インタラクションを終了できます。
  • サブスクライバーは、INACTIVE_SUBSCRIPTION ステータス コードでレポートデータ アクションに応答することで、サブスクリプション インタラクションを終了できます。