Чтение транзакций

Чтение транзакции

Одним из первых вариантов использования при взаимодействии с Узлами в Matter является считывание Атрибута из другого Узла, например значения температуры с датчика. В таких взаимодействиях первое действие, которое необходимо выполнить, — это действие запроса на чтение.

Последовательность операций транзакции чтения
Рисунок 1: Чтение транзакции

Чтение запроса действия

Направление: Инициатор -> Цель

В этом действии Инициатор запрашивает Цель, предоставляя:

  • Запросы атрибутов : список из нуля или более атрибутов цели. Этот список состоит из нуля или более путей к запрошенным атрибутам цели.
  • Запросы событий : список из нуля или более путей к запрошенным событиям цели.

После того, как действие запроса на чтение будет получено целью, оно соберет действие с данными отчета с запрошенной информацией.

Действие по данным отчета

Направление: Цель -> Инициатор

В этом действии Цель отвечает:

  • Отчеты об атрибутах : список из нуля или более атрибутов, о которых сообщается, запрошенных в запросе на чтение.
  • Отчеты о событиях : список из нуля или более зарегистрированных событий.
  • Suppress Response : флаг, определяющий, следует ли подавлять ответ состояния на это действие.
  • Идентификатор подписки : если этот отчет является частью транзакции подписки, он должен включать целое число, используемое для идентификации транзакции подписки.

Статус Реакция Действие

Направление: либо Цель -> Инициатор, либо Инициатор -> Цель.

Как только инициатор получает запрошенные данные, он по умолчанию должен сгенерировать действие ответа на статус. Это действие отправляется от Инициатора, подтверждающего получение сообщаемых данных. Если установлен флаг Suppress Status Response, Инициатор не должен отправлять действие Status Response.

Как только инициатор отправляет действие ответа на состояние или получает действие с данными отчета инициатором с включенным флагом подавления ответа, запрос чтения/отчета завершается.

Действие ответа на статус просто содержит поле статуса , которое либо подтверждает успех операции, либо отображает код ошибки.

Чтение ограничений

Действия запроса чтения и действия отчета о данных доступны только для Unicast . Более того, пути этих запросов не могут быть нацелены на группу узлов.

Действие ответа на статус предназначено только Unicast и не может быть сгенерировано как ответ на групповую рассылку.

Транзакция подписки

Последовательность операций транзакции подписки
Рисунок 2: Транзакция подписки

Действие запроса на подписку

Направление: Инициатор -> Цель

В дополнение к отдельному действию запроса на чтение инициатор может также подписаться на периодические обновления атрибута или события. Таким образом, одно и то же действие с данными отчета может быть сгенерировано в результате периодических обновлений данных, которые следуют за транзакцией подписки .

Взаимодействие подписки создает связь между двумя узлами, в которой цель периодически генерирует действия с данными отчета для инициатора. Инициатором является подписчик , а целью — издатель .

Действие запроса на подписку содержит:

  • Min Interval Floor : минимальный интервал между отчетами.
  • Max Interval Ceiling : максимальный интервал между отчетами.
  • Отчеты об атрибутах: список из нуля или более атрибутов, о которых сообщается, запрошенных в запросе на чтение.
  • Отчеты о событиях: список из нуля или более зарегистрированных событий.

После запроса на подписку целевой объект отвечает инициатору действием с данными отчета, содержащим первый пакет сообщаемых данных: выделенные опубликованные данные .

Затем инициатор подтверждает действие с данными отчета с помощью действия ответа на статус, отправляемого цели. Как только цель получает действие ответа на статус, сообщающее об отсутствии ошибок, оно отправляет действие ответа на подписку.

Цель впоследствии будет периодически отправлять действия с данными отчета через согласованный интервал, а инициатор будет отвечать на эти действия до тех пор, пока подписка не будет потеряна или отменена.

Подписаться Ответное действие

Направление: Цель -> Инициатор

Это последнее действие по транзакции подписки, завершающее процесс. Оно включает:

  • Идентификатор подписки : целое число, идентифицирующее подписку.
  • Min Interval : окончательный , определенный минимальный интервал между отчетами.
  • Max Interval : окончательный , определенный максимальный интервал между отчетами.

Ограничения подписки

  • Действие запроса на подписку и действие ответа на подписку являются действиями только для Unicast .
  • Все действия с данными отчета во взаимодействии с подпиской должны иметь один и тот же идентификатор подписки.
  • Если подписчик не получит действие с данными отчета в течение максимального согласованного интервала между действиями, подписка будет прекращена.
  • Вследствие предыдущего правила Издатель может прекратить Взаимодействие по подписке, просто прекратив отправку периодических действий с данными отчета.
  • Подписчик может прекратить взаимодействие по подписке, ответив на действие с данными отчета кодом состояния INACTIVE_SUBSCRIPTION .