Comunicarse con una aplicación en tiempo real
Azure Sphere admite la comunicación entre núcleos entre aplicaciones de alto nivel y aplicaciones compatibles con tiempo real (RTApp). Las aplicaciones de alto nivel pueden usar la función applibs Application_Connect para enviar y recibir datos al comunicarse con una RTApp. Application_Connect recupera un descriptor de archivo a un socket que se utiliza para comunicarse con la RTApp. Mientras el descriptor de archivo está abierto, puede realizar operaciones en él, como send/recv.
El ejemplo de IntercoreComms muestra cómo usar una aplicación de alto nivel para comunicarse con una RTApp en un MT3620. Comunicarse con una aplicación de alto nivel describe consideraciones de programación para la RTApp.
Requisitos
Las aplicaciones de alto nivel que usan la comunicación entre aplicaciones deben incluir los archivos de encabezado adecuados y agregar la configuración de la aplicación al manifiesto de la aplicación.
Archivos de encabezado
#include <sys/socket.h>
#include <applibs/application.h>
Configuración de manifiesto de la aplicación
Para comunicarse con una RTApp, ambas aplicaciones deben incluir la funcionalidad AllowedApplicationConnections en el manifiesto de la aplicación:
- La aplicación de alto nivel debe mostrar el id. de componente de la aplicación en tiempo real en la funcionalidad AllowedApplicationConnections.
- La aplicación en tiempo real debe incluir el id. de componente de la aplicación de alto nivel en la funcionalidad AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
Aplicaciones de partners
Al cargar una aplicación en el dispositivo Azure Sphere, las herramientas de implementación de Azure Sphere eliminan de forma predeterminada todas las aplicaciones existentes. Para evitar que esto ocurra cuando desarrolla un par de aplicaciones que se comunican entre sí, debe marcar las aplicaciones como partners. Al implementar una de las aplicaciones, su partner no se eliminará. Consulte Marcar aplicaciones como partners para obtener más información.
Abrir el socket
Antes de comunicarse con una RTApp, debe abrir un socket llamando a la función Application_Connect . El descriptor de archivo devuelto por esta llamada de función se usa para realizar operaciones de envío y recv en el socket.
Enviar datos
Puede enviar un mensaje a una RTApp llamando a la función send() de POSIX. El tamaño máximo del mensaje es de 1 KB.
Recibir datos
Puede recibir un mensaje de una RTApp llamando a la función POSIX recv().
Cerrar el socket
Para cerrar el socket, llame a la función POSIX close().