Communiquer avec une application compatible en temps réel
Azure Sphere prend en charge la communication intercœurs entre les applications de haut niveau et les applications compatibles en temps réel (RTApp). Les applications de haut niveau peuvent utiliser les bibliothèques d’applications Application_Connect fonction pour envoyer et recevoir des données lors de la communication avec une application en temps réel. Application_Connect récupère un descripteur de fichier dans un socket utilisé pour communiquer avec l’application en temps réel. Lorsque le descripteur de fichier est ouvert, vous pouvez effectuer des opérations sur celui-ci, telles que send/recv.
L’exemple IntercoreComms montre comment utiliser une application de haut niveau pour communiquer avec une rtapp sur un MT3620. Communiquer avec une application de haut niveau décrit les considérations relatives à la programmation de l’application en temps réel.
Exigences
Les applications de haut niveau qui utilisent la communication entre applications doivent inclure les fichiers d’en-tête appropriés et ajouter des paramètres d’application au manifeste de l’application.
Fichiers d’en-tête
#include <sys/socket.h>
#include <applibs/application.h>
Paramètres du manifeste d’application
Pour communiquer avec une application en temps réel, les deux applications doivent inclure la fonctionnalité AllowedApplicationConnections dans le manifeste de l’application :
- L’application de haut niveau doit répertorier l’ID de composant de l’application prenant en compte le temps réel dans la fonctionnalité AllowedApplicationConnections.
- L’application prenant en compte le temps réel doit répertorier l’ID de composant de l’application de haut niveau dans la fonctionnalité AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
Applications partenaires
Lorsque vous chargez une application sur l’appareil Azure Sphere, les outils de déploiement Azure Sphere suppriment par défaut toutes les applications existantes. Pour éviter que cela ne se produise lorsque vous développez une paire d’applications qui communiquent entre elles, vous devez marquer les applications comme des partenaires. Lorsque vous déployez l’une des applications, son partenaire n’est pas supprimé. Pour plus d’informations, consultez Marquer des applications en tant que partenaires .
Ouvrir le socket
Avant de communiquer avec une application rtapp, vous devez ouvrir un socket en appelant la fonction Application_Connect . Le descripteur de fichier retourné par cet appel de fonction est utilisé pour effectuer des opérations d’envoi/récurrence sur le socket.
Envoyer des données
Vous pouvez envoyer un message à une application en temps réel en appelant la fonction POSIX send(). La taille maximale des messages est de 1 Ko.
Recevoir des données
Vous pouvez recevoir un message d’une application en temps réel en appelant la fonction POSIX recv().
Fermer le socket
Pour fermer le socket, appelez la fonction POSIX close().