Partilhar via


Comunicar com uma aplicação em tempo real

O Azure Sphere suporta a comunicação entre núcleos entre aplicações de alto nível e aplicações com capacidade em tempo real (RTApp). As aplicações de alto nível podem utilizar a função applibs Application_Connect para enviar e receber dados ao comunicar com uma RTApp. Application_Connect obtém um descritor de ficheiros para um socket que é utilizado para comunicar com o RTApp. Enquanto o descritor de ficheiros estiver aberto, pode efetuar operações no mesmo, como o envio/recv.

O exemplo IntercoreComms demonstra como utilizar uma aplicação de alto nível para comunicar com uma RTApp num MT3620. Comunicar com uma aplicação de alto nível descreve considerações de programação para o RTApp.

Requisitos

As aplicações de alto nível que utilizam a comunicação entre aplicações têm de incluir os ficheiros de cabeçalho adequados e adicionar definições de aplicação ao manifesto da aplicação.

Ficheiros de cabeçalho

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

Definições do manifesto da aplicação

Para comunicar com uma RTApp, ambas as aplicações têm de incluir a capacidade AllowedApplicationConnections no manifesto da aplicação:

  • A aplicação de alto nível tem de listar o ID do componente da aplicação com capacidade em tempo real na capacidade AllowedApplicationConnections.
  • A aplicação com capacidade em tempo real tem de listar o ID do componente da aplicação de alto nível na capacidade AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]

Aplicações de parceiros

Quando carrega uma aplicação para o dispositivo do Azure Sphere, as ferramentas de implementação do Azure Sphere eliminam todas as aplicações existentes por predefinição. Para impedir que isto aconteça quando desenvolve um par de aplicações que comunicam entre si, tem de marcar as aplicações como parceiros. Quando implementa uma das aplicações, o respetivo parceiro não será eliminado. Veja Marcar aplicações como parceiros para obter detalhes.

Abrir o socket

Antes de comunicar com uma RTApp, tem de abrir um socket ao chamar a função Application_Connect . O descritor de ficheiros devolvido por esta chamada de função é utilizado para realizar operações de envio/recv no socket.

Enviar dados

Pode enviar uma mensagem para uma RTApp ao chamar a função POSIX send(). O tamanho máximo da mensagem é 1 KB.

Receber dados

Pode receber uma mensagem de uma RTApp ao chamar a função POSIX recv().

Fechar o socket

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