Dela via


Kommunicera med ett realtidskompatibelt program

Viktigt!

Det här är dokumentationen om Azure Sphere (Legacy). Azure Sphere (Legacy) upphör den 27 september 2027 och användarna måste migrera till Azure Sphere (integrerad) vid den här tiden. Använd versionsväljaren ovanför TOC för att visa dokumentationen om Azure Sphere (integrerad).

Azure Sphere stöder kommunikation mellan kärnor mellan högnivåprogram och realtidskompatibla 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 en socket som används för att kommunicera med RTApp. När filbeskrivningen är öppen kan du utföra åtgärder på den, till exempel send/recv.

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

Krav

Högnivåprogram som använder kommunikation mellan appar måste innehålla lämpliga huvudfiler och lägga till programinställningar i programmanifestet.

Rubrikfiler

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

Inställningar för appmanifest

För att kommunicera med en RTApp måste båda programmen inkludera funktionen AllowedApplicationConnections i programmanifestet:

  • Högnivåprogrammet måste visa komponent-ID:t för det realtidskompatibla programmet i funktionen AllowedApplicationConnections.
  • Det realtidskompatibla programmet måste visa komponent-ID:t för högnivåprogrammet 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 inte dess partner bort. Mer information finns i Markera program som partner .

Öppna socketen

Innan du kommunicerar med en RTApp måste du öppna en socket genom att anropa funktionen Application_Connect . Den filbeskrivning som returneras av det här funktionsanropet används för att utföra send/recv-åtgärder på 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 socketen

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