Comunicare con un'applicazione in tempo reale

Azure Sphere supporta la comunicazione inter-core tra applicazioni di alto livello e applicazioni in tempo reale (RTApp). Le applicazioni di alto livello possono usare la funzione Application_Connect applicazioni per inviare e ricevere dati durante la comunicazione con un'RTApp. Application_Connect recupera un descrittore di file in un socket utilizzato per comunicare con l'RTApp. Mentre il descrittore di file è aperto, è possibile eseguire operazioni su di esso, ad esempio send/recv.

L'esempio IntercoreComms dimostra come usare un'applicazione di alto livello per comunicare con un'RTApp su un MT3620. Per comunicare con un'applicazione di alto livello , vengono descritte considerazioni di programmazione per l'RTApp.

Requisiti

Le applicazioni di alto livello che utilizzano la comunicazione tra app devono includere i file di intestazione appropriati e aggiungere le impostazioni dell'applicazione al manifesto dell'applicazione.

File di intestazione

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

Impostazioni del manifesto dell'app

Per comunicare con un'RTApp, entrambe le applicazioni devono includere la funzionalità AllowedApplicationConnections nel manifesto dell'applicazione:

  • L'applicazione di livello elevato deve elencare l'ID componente dell'applicazione che supporta il tempo reale nella funzionalità AllowedApplicationConnections.
  • L'applicazione che supporta il tempo reale deve elencare l'ID componente dell'applicazione di livello elevato nella funzionalità AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]

Applicazioni partner

Quando si carica un'applicazione nel dispositivo Azure Sphere, gli strumenti di distribuzione di Azure Sphere eliminano per impostazione predefinita tutte le applicazioni esistenti. Per evitare che ciò si verifichi quando si sviluppano una coppia di applicazioni che comunicano tra loro, è necessario contrassegnare le applicazioni come partner. Quando si distribuisce una delle applicazioni, il relativo partner non verrà eliminato. Per informazioni dettagliate, vedere Contrassegnare le applicazioni come partner .

Aprire la presa

Prima di comunicare con un'RTApp, è necessario aprire un socket chiamando la funzione Application_Connect . Il descrittore di file restituito da questa chiamata di funzione viene utilizzato per eseguire operazioni di invio/recv sul socket.

Inviare dati

È possibile inviare un messaggio a un'RTApp chiamando la funzione POSIX send(). La dimensione massima del messaggio è 1 KB.

Ricevere dati

È possibile ricevere un messaggio da un'RTApp chiamando la funzione POSIX recv().

Chiudere la presa

Per chiudere il socket, chiamare la funzione POSIX close().