Comunicar-se com um aplicativo com capacidade em tempo real

O Azure Sphere dá suporte à comunicação inter-core entre aplicativos de alto nível e RTApp (aplicativos com capacidade em tempo real). Aplicativos de alto nível podem usar os applibs Application_Connect função para enviar e receber dados ao se comunicar com um RTApp. Application_Connect recupera um descritor de arquivo para um soquete usado para se comunicar com o RTApp. Enquanto o descritor de arquivo estiver aberto, você pode executar operações nele, como enviar/recv.

O exemplo IntercoreComms demonstra como usar um aplicativo de alto nível para se comunicar com um RTApp em um MT3620. Comunicar-se com um aplicativo de alto nível descreve considerações de programação para o RTApp.

Requisitos

Aplicativos de alto nível que usam comunicação entre aplicativos devem incluir os arquivos de cabeçalho apropriados e adicionar configurações de aplicativo ao manifesto do aplicativo.

Arquivos de cabeçalho

#include <sys/socket.h>
#include <applibs/application.h>

Configurações do manifesto do aplicativo

Para se comunicar com um RTApp, ambos os aplicativos precisam incluir o recurso AllowedApplicationConnections no manifesto do aplicativo:

  • O aplicativo de alto nível deve listar a ID do componente do aplicativo com capacidade em tempo real no recurso AllowedApplicationConnections.
  • O aplicativo com capacidade em tempo real deve listar a ID do componente do aplicativo de alto nível no recurso AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]

Aplicativos parceiros

Quando você carrega um aplicativo no dispositivo do Azure Sphere, as ferramentas de implantação do Azure Sphere, por padrão, excluem todos os aplicativos existentes. Para evitar que isso aconteça quando você desenvolve um par de aplicativos que se comunicam entre si, você precisa marcar os aplicativos como parceiros. Quando você implantar um dos aplicativos, seu parceiro não será excluído. Consulte Marcar aplicativos como parceiros para obter detalhes.

Abra o soquete

Antes de se comunicar com um RTApp, você deve abrir um soquete chamando a função Application_Connect . O descritor de arquivo retornado por essa chamada de função é usado para executar operações de envio/recv no soquete.

Enviar dados

Você pode enviar uma mensagem para um RTApp chamando a função SENDX send(). O tamanho máximo da mensagem é 1 KB.

Receber dados

Você pode receber uma mensagem de um RTApp chamando a função RECV() POSIX.

Fechar o soquete

Para fechar o soquete, chame a função POSIX close().