Communiquer avec une application prenant en charge le temps réel
Important
Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).
Azure Sphere prend en charge la communication inter-cœur entre les applications générales et les applications en temps réel. Les applications générales peuvent utiliser la fonction Application_Connect de bibliothèques d’applications pour envoyer et recevoir des données lors de la communication avec une application en temps réel. La fonction Application_Connect récupère un descripteur de fichier sur un socket utilisé pour communiquer avec l’application en temps réel. Pendant que le descripteur de fichier est ouvert, vous pouvez effectuer sur celui-ci des opérations, par exemple, d’envoi et de réception.
L’exemple IntercoreComms montre comment utiliser une application générale pour communiquer avec une application en temps réel sur un MT3620. Communiquer avec une application générale décrit des considérations relatives à la programmation pour l’application temps réel.
Spécifications
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 de l’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 générale doit mentionner l’ID de composant de l’application en temps réel dans la fonctionnalité AllowedApplicationConnections.
- L’application en temps réel doit mentionner l’ID de composant de l’application générale dans la fonctionnalité AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
Applications partenaires
Quand 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 ce problème quand vous développez une paire d’applications qui communiquent entre elles, vous devez marquer les applications en tant que partenaires. Quand vous déployez une des applications, sa partenaire n’est pas supprimée. Pour plus d’informations, consultez Marquer les applications comme partenaires.
Ouvrir le socket
Avant de communiquer avec une application en temps réel, 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 et de réception 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 du message 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().