读取事务

读取交易

在 Google Cloud 中与节点交互时的 Matter 是从另一个节点读取属性。 例如来自传感器的温度值。在此类互动中,第一个 必须执行的操作是读取请求操作。

<ph type="x-smartling-placeholder">
</ph> 读取事务的操作序列 <ph type="x-smartling-placeholder">
</ph> 图 1:读取事务

读取请求操作

方向:发起者 ->目标

在此 Action 中,发起方查询符合以下条件的目标:

  • 属性请求:目标的零个或多个属性的列表。 该列表包含零个或多个 路径,这些路径指向目标的 属性。
  • 事件请求:指向目标的请求的零个或多个路径的列表 活动。

目标收到读取请求操作后,它会创建一个 报告数据操作(包含请求的信息)。

报告数据操作

方向:定位 ->发起者

在此 Action 中,目标会返回以下内容:

  • 属性报告:零个或多个已报告属性的列表 请求的数据。
  • 事件报告:包含零个或多个已报告事件的列表。
  • 禁止响应:一个用于确定状态 响应
  • 订阅 ID:如果此报告是订阅交易的一部分, 必须包含用于标识订阅交易的整数。

状态响应操作

方向:目标 ->发起者 ->目标

一旦发起程序收到请求的数据,默认情况下,它必须生成 状态响应操作。此操作由发起者发送,用于确认 收到已报告数据。如果设置了“抑制状态响应”标志, 启动器不得发送状态响应操作。

发起者发送状态响应操作或报告数据后, 在已启用“抑制响应”标志的情况下,发起者收到操作后, 读取/报告查询完成。

状态响应操作只包含一个 status 字段,该字段将 确认操作成功或显示失败代码。

读取限制

“读取请求操作”和“报告数据操作”是 仅限 Unicast。此外,这些请求的路径 以一组节点为目标。

状态响应操作仅限 Unicast,不能是 。

订阅交易

<ph type="x-smartling-placeholder">
</ph> 订阅交易的操作序列 <ph type="x-smartling-placeholder">
</ph> 图 2:订阅交易

订阅请求操作

方向:发起者 ->目标

除单个读取请求操作外,发起者还可以订阅 定期更新属性或事件因此同一报告数据操作 可以作为定期数据更新产生的结果, 订阅交易

订阅互动会在两个节点之间创建关系,其中 目标会定期向发起者生成报告数据操作。 发起者为订阅者,目标为发布者。

订阅请求操作包含:

  • 最小间隔区间:两次报告之间的最小时间间隔。
  • 最大时间间隔上限:两次报告之间的最大时间间隔。
  • 属性报告:零个或多个已报告属性的列表 请求的数据。
  • 事件报告:包含零个或多个已报告事件的列表。

在订阅请求之后,目标以响应发起者 报告数据操作,包含第一批报告数据:Primed 已发布的数据中所述。

然后,发起者确认报告数据操作并附带状态响应 操作已发送到目标。目标收到状态响应操作后 报告没有错误,则会发送订阅响应操作。

随后,目标会定期发送报告数据操作: 发起者将对这些 Action 做出响应,直到 订阅丢失或被取消。

订阅响应操作

方向:定位 ->发起者

这是针对订阅交易的最后一个操作, 过程。It includes:

  • 订阅 ID:用于标识订阅的整数。
  • 最小间隔:二者之间确定的最小时间间隔 报告。
  • 最大间隔:二者之间最终确定的最长间隔 报告。

订阅限制

  • 订阅请求操作和订阅响应操作分别是 仅限 Unicast 的操作。
  • 订阅互动中的所有报告数据操作必须具有相同的 订阅 ID。
  • 如果订阅方没有收到报告数据操作的最大数量 约定的时间间隔,则订阅将终止。
  • 根据上一条规则的结果,发布商可以终止 只需停止发送定期报告数据,即可实现订阅互动 操作。
  • 订阅者可通过响应 状态代码为 INACTIVE_SUBSCRIPTION 的报告数据操作。