Comunicar-se com um aplicativo com capacidade em tempo real
Importante
Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).
O Azure Sphere oferece suporte à comunicação entre núcleos entre aplicativos de alto nível e aplicativos com capacidade para tempo real (RTApp). Os aplicativos de alto nível podem usar a função Application_Connect de applibs para enviar e receber dados ao se comunicar com um RTApp. O Application_Connect recupera um descritor de arquivo em um soquete que é usado para se comunicar com o RTApp. Enquanto o descritor de arquivo estiver aberto, você pode executar operações, como enviar/receber.
A amostra de IntercoreComms explica 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 as considerações de programação para o RTApp.
Requisitos
Os aplicativos de alto nível que usam a 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 a funcionalidade de AllowedApplicationConnections na manifesto do aplicativo:
- O aplicativo de alto nível atual deve listar a ID do componente do aplicativo capacitado para tempo real em AllowedApplicationConnections.
- O aplicativo capacitado para tempo real deve listar a ID do componente do aplicativo de alto nível em AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
Aplicativos de parceiros
Quando você carrega um aplicativo no dispositivo do Azure Sphere, as ferramentas de implantação do Azure Sphere excluem todos os aplicativos existentes por padrão. 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ê implanta um dos aplicativos, o parceiro não será excluído. Consulte Marcar aplicativos como parceiros para obter detalhes.
Abra o soquete
Para se comunicar com um RTApp, você precisará 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/recebimento no soquete.
Enviar dados
Você pode enviar uma mensagem para um RTApp chamando a função de send() do POSIX. O tamanho máximo da mensagem é de 1 KB.
Receber dados
Você poderá receber uma mensagem de um RTApp chamando a função POSIX recv().
Feche o soquete
Para fechar o soquete, chame a função POSIX close().