Kommunizieren mit einer Echtzeitanwendung
Wichtig
Dies ist die Dokumentation zu Azure Sphere (Legacy). Azure Sphere (Legacy) wird am 27. September 2027 eingestellt, und Benutzer müssen bis zu diesem Zeitpunkt zu Azure Sphere (integriert) migrieren. Verwenden Sie die Versionsauswahl oberhalb des Inhaltsverzeichniss, um die Dokumentation zu Azure Sphere (Integriert) anzuzeigen.
Azure Sphere unterstützt die kernübergreifende Kommunikation zwischen allgemeinen Anwendungen und Echtzeitanwendungen (RTApp). Allgemeine Anwendungen können bei der Kommunikation mit einer RTApp die Applibs-Funktion Application_Connect zum Senden und Empfangen von Daten verwenden. Application_Connect ruft einen Dateideskriptor für einen Socket ab, der zur Kommunikation mit der RTApp verwendet wird. Während der Dateideskriptor geöffnet ist, können Sie Vorgänge wie Senden und Empfangen (send/recv) darauf ausführen.
Das IntercoreComms-Beispiel zeigt, wie Sie eine High-Level-Anwendung für die Kommunikation mit einer RTApp auf einem MT3620 verwenden. Kommunizieren mit einer allgemeinen Anwendung beschreibt die Überlegungen bei der Programmierung für die RTApp.
Anforderungen
Allgemeine Anwendungen, die die Inter-App-Kommunikation verwenden, müssen die entsprechenden Headerdateien enthalten und Anwendungseinstellungen zum Anwendungsmanifest hinzufügen.
Headerdateien
#include <sys/socket.h>
#include <applibs/application.h>
Einstellungen für das App-Manifest
Um mit einer RTApp zu kommunizieren, müssen beide Anwendungen die AllowedApplicationConnections-Funktion im Anwendungsmanifest enthalten:
- Das Anwendungsmanifest der allgemeinen Anwendung muss die Komponenten-ID der Echtzeitanwendung in der AllowedApplicationConnections-Funktion enthalten.
- Das Anwendungsmanifest der Echtzeitanwendung muss die Komponenten-ID der allgemeinen Anwendung in der AllowedApplicationConnections-Funktion enthalten.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
Partneranwendungen
Wenn Sie eine Anwendung auf das Azure Sphere-Gerät laden, werden standardmäßig alle vorhandenen Anwendungen von den Azure Sphere-Bereitstellungstools gelöscht. Um dies zu verhindern, müssen Sie beim Entwickeln von zwei Anwendungen, die miteinander kommunizieren, die Anwendungen als Partner markieren. Wenn Sie eine der Anwendungen bereitstellen, wird der zugehörige Partner nicht gelöscht. Ausführliche Informationen finden Sie unter Kennzeichnen von Anwendungen als Partner.
Öffnen des Sockets
Bevor Sie mit einer RTApp kommunizieren, müssen Sie einen Socket öffnen, indem Sie die Funktion Application_Connect aufrufen. Der von diesem Funktionsaufruf zurückgegebene Dateideskriptor wird zum Durchführen von send/recv-Vorgängen auf dem Socket verwendet.
Send data
Sie können eine Nachricht an eine RTApp senden, indem Sie die POSIX-Funktion „send()“ aufrufen. Die maximale Nachrichtengröße beträgt 1 KB.
Empfangen von Daten
Sie können eine Nachricht von einer RTApp empfangen, indem Sie die POSIX-Funktion „recv()“ aufrufen.
Schließen des Sockets
Rufen Sie zum Schließen des Sockets die POSIX-Funktion „close()“ auf.