Communiceren met een toepassing die geschikt is voor realtime
Azure Sphere biedt ondersteuning voor communicatie tussen toepassingen op hoog niveau en realtime compatibele toepassingen (RTApp). Toepassingen op hoog niveau kunnen de functie applibs Application_Connect gebruiken om gegevens te verzenden en te ontvangen wanneer ze communiceren met een RTApp. Application_Connect haalt een bestandsdescriptor op naar een socket die wordt gebruikt om te communiceren met de RTApp. Terwijl de bestandsdescriptor is geopend, kunt u er bewerkingen op uitvoeren, zoals verzenden/recv.
Het Voorbeeld van IntercoreComms laat zien hoe u een toepassing op hoog niveau gebruikt om te communiceren met een RTApp op een MT3620. Communiceren met een toepassing op hoog niveau beschrijft programmeeroverwegingen voor de RTApp.
Eisen
Toepassingen op hoog niveau die gebruikmaken van communicatie tussen apps, moeten de juiste headerbestanden bevatten en toepassingsinstellingen toevoegen aan het toepassingsmanifest.
Koptekstbestanden
#include <sys/socket.h>
#include <applibs/application.h>
App-manifestinstellingen
Als u wilt communiceren met een RTApp, moeten beide toepassingen de mogelijkheid AllowedApplicationConnections opnemen in het toepassingsmanifest:
- De toepassing op hoog niveau moet de onderdeel-id van de realtime compatibele toepassing vermelden in de mogelijkheid AllowedApplicationConnections.
- In de realtime compatibele toepassing moet de onderdeel-id van de toepassing op hoog niveau worden vermeld in de mogelijkheid AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
Partnertoepassingen
Wanneer u een toepassing op het Azure Sphere-apparaat laadt, worden met de Azure Sphere-implementatiehulpprogramma's standaard alle bestaande toepassingen verwijderd. Als u wilt voorkomen dat dit gebeurt wanneer u een paar toepassingen ontwikkelt die met elkaar communiceren, moet u de toepassingen markeren als partners. Wanneer u een van de toepassingen implementeert, wordt de partner niet verwijderd. Zie Toepassingen markeren als partners voor meer informatie.
De socket openen
Voordat u met een RTApp communiceert, moet u een socket openen door de functie Application_Connect aan te roepen. De bestandsdescriptor die door deze functieaanroep wordt geretourneerd, wordt gebruikt om verzend-/recv-bewerkingen uit te voeren op de socket.
Gegevens verzenden
U kunt een bericht verzenden naar een RTApp door de functie POSIX send() aan te roepen. De maximale berichtgrootte is 1 kB.
Gegevens ontvangen
U kunt een bericht ontvangen van een RTApp door de functie POSIX recv() aan te roepen.
Sluit de socket
Als u de socket wilt sluiten, roept u de functie POSIX close() aan.