Берегись! Скоро будут запущены новые программы Developer Preview. Подайте заявку здесь и станьте одним из первых, кто опробует новые инструменты и оставит отзыв.

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

Прочитать транзакцию

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

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

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

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

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

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

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

Сообщить о действии данных

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

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

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

Статус Ответ Действие

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

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

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

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

Читать ограничения

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

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

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

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

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

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

В дополнение к отдельному действию «Запрос на чтение» Инициатор также может подписаться на периодические обновления Атрибута или События. Таким образом, одно и то же действие Report Data Action может быть сгенерировано в результате периодических обновлений данных, следующих за транзакцией подписки .

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

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

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

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

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

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

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

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

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

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

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

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