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().