Dela via


Kommunicera med ett program som kan användas i realtid

Azure Sphere har stöd för inter-core-kommunikation mellan program på hög nivå och realtidsaktiva program (RTApp). Program på hög nivå kan använda funktionen applibs Application_Connect för att skicka och ta emot data när de kommunicerar med en RTApp. Application_Connect hämtar en filbeskrivning till ett uttag som används för att kommunicera med RTApp. När filbeskrivning är öppen kan du utföra åtgärder på den, till exempel skicka/recv.

IntercoreComms-exemplet visar hur du använder ett program på hög nivå för att kommunicera med en RTApp på en MT3620. Kommunicera med ett program på hög nivå beskriver programmeringsöverväganden för RTApp.

Krav

Program på hög nivå som använder kommunikation mellan appar måste innehålla lämpliga huvudfiler och lägga till programinställningar i programmanifestet.

Sidhuvudfiler

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

Inställningar för appmanifest

Om du vill kommunicera med en RTApp måste båda programmen ta med funktionen AllowedApplicationConnections i programmanifestet:

  • Det övergripande programmet måste visa komponent-ID:et för det realtidskomapabla programmet i funktionen AllowedApplicationConnections.
  • Det realtidskom kapabla programmet måste visa komponent-ID:et för det högnivåprogram som finns i funktionen AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]

Partnerprogram

När du läser in ett program på Azure Sphere-enheten tar Azure Sphere-distributionsverktygen som standard bort alla befintliga program. För att förhindra att detta händer när du utvecklar ett par program som kommunicerar med varandra måste du markera programmen som partner. När du distribuerar ett av programmen tas dess partner inte bort. Mer information finns i Markera program som partner .

Öppna socketen

Innan du kommunicerar med en RTApp måste du öppna ett uttag genom att anropa funktionen Application_Connect . Den filbeskrivning som returneras av funktionsanropet används för att utföra send/recv-åtgärder i socketen.

Skicka data

Du kan skicka ett meddelande till en RTApp genom att anropa funktionen POSIX send(). Den maximala meddelandestorleken är 1 kB.

Ta emot data

Du kan ta emot ett meddelande från en RTApp genom att anropa funktionen POSIX recv().

Stäng uttaget

Om du vill stänga socketen anropar du funktionen POSIX close().