Ler transações

Ler transação

Um dos primeiros casos de uso ao interagir com nós em Matter é a leitura de um atributo de outro nó, como um valor de temperatura de um sensor. Nessas interações, a primeira ação a ser realizada é a ação de solicitação de leitura.

Sequência de operações de uma transação de leitura
Figura 1: transação de leitura

Ação de solicitação de leitura

Direção: iniciador -> destino

Nessa ação, o iniciador consulta um destino fornecendo:

  • Solicitações de atributo: uma lista de zero ou mais atributos do destino. Essa lista é composta de zero ou mais caminhos para os atributos solicitados do destino.
  • Solicitações de eventos: lista de zero ou mais caminhos para os eventos solicitados do destino.

Depois que a ação de solicitação de leitura é recebida pelo destino, ela monta uma ação de dados de relatório com as informações solicitadas.

Ação de dados do relatório

Direção: destino -> iniciador

Nesta ação, o destino responde com:

  • Attribute Reports: uma lista de zero ou mais dos atributos informados solicitados na solicitação de ação de leitura.
  • Relatórios de eventos: uma lista de zero ou mais eventos informados.
  • Suprimir resposta: uma flag que determina se a resposta de status a essa ação deve ser suprimida.
  • ID da assinatura: se este relatório fizer parte de uma transação de assinatura, ele precisará incluir um número inteiro usado para identificar a transação.

Ação de resposta de status

Direção: Target -> Initiator ou Initiator -> Target

Depois que o iniciador recebe os dados solicitados, por padrão, ele precisa gerar uma ação de resposta de status. Essa ação é enviada pelo iniciador, confirmando o recebimento dos dados informados. Se a flag "Suppress Status Response" estiver definida, o iniciador não poderá enviar a ação de resposta de status.

Quando a ação de resposta de status é enviada pelo iniciador ou uma ação de dados de relatório é recebida pelo iniciador com a flag "Suppress Response" ativada, a consulta de leitura/relatório é concluída.

A ação de resposta de status contém apenas um campo status que confirma o sucesso da operação ou apresenta um código de falha.

Restrições de leitura

As ações "Solicitar leitura" e "Dados do relatório" são exclusivas do Unicast. Além disso, os caminhos dessas solicitações não podem segmentar um grupo de nós.

A ação de resposta de status é exclusiva do Unicast e não pode ser gerada como resposta a uma transmissão em grupo.

Transação de assinatura

Sequência de operações de uma transação de assinatura
Figura 2: transação de assinatura

Ação de solicitação de inscrição

Direção: iniciador -> destino

Além de uma ação de solicitação de leitura única, um iniciador também pode se inscrever para atualizações periódicas de um atributo ou evento. Assim, a mesma ação de dados de relatório pode ser gerada como resultado de atualizações periódicas de dados que seguem uma transação de assinatura.

Uma interação de assinatura cria uma relação entre dois nós, em que o destino gera periodicamente ações de dados de relatório para o iniciador. O iniciador é o assinante e o destino é o publisher.

Uma ação de solicitação de inscrição contém:

  • Intervalo mínimo: o intervalo mínimo entre relatórios.
  • Limite máximo do intervalo: o intervalo máximo entre os relatórios.
  • AttributeReports: uma lista de zero ou mais dos atributos informados solicitados na solicitação de ação de leitura.
  • Relatórios de eventos: uma lista de zero ou mais eventos informados.

Depois da solicitação de inscrição, o destino responde ao iniciador com uma ação de dados de relatório que contém o primeiro lote de dados informados: os dados publicados preparados.

Em seguida, o iniciador confirma a ação de dados do relatório com uma ação de resposta de status enviada ao destino. Quando o destino recebe uma ação de resposta de status informando que não há erros, ele envia uma ação de resposta de inscrição.

O destino vai enviar periodicamente a ação de dados do relatório no intervalo negociado, e o iniciador vai responder a essas ações até que a assinatura seja perdida ou cancelada.

Ação de resposta de inscrição

Direção: destino -> iniciador

Esta é a última ação na transação de assinatura e conclui o processo. Ela inclui:

  • ID da assinatura: um número inteiro que identifica a assinatura.
  • Intervalo mínimo: o intervalo mínimo final e determinado entre relatórios.
  • Intervalo máximo: o intervalo máximo final e determinado entre os relatórios.

Restrições de inscrição

  • As ações de solicitação e resposta de inscrição são exclusivas do Unicast.
  • Todas as ações de dados de relatórios em uma interação de assinatura precisam ter o mesmo ID de assinatura.
  • Se o assinante não receber uma ação de dados de relatório dentro do intervalo máximo negociado entre as ações, a assinatura será encerrada.
  • Como consequência da regra anterior, o Publisher pode encerrar uma Interação de assinatura simplesmente parando de enviar Ações de Dados de relatório periódicos.
  • O assinante pode encerrar a interação de assinatura respondendo a uma ação de dados de relatório com um código de status INACTIVE_SUBSCRIPTION.