Comunicación con una aplicación con respuesta en tiempo real
Importante
Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).
Azure Sphere admite la comunicación entre núcleos entre las aplicaciones de alto nivel y las aplicaciones con respuesta en tiempo real (RTApp). Las aplicaciones de alto nivel pueden utilizar la función Application_Connect de las bibliotecas de aplicaciones para enviar y recibir datos al comunicarse con una RTApp. Application_Connect recupera un descriptor de archivo para un socket que se usa para comunicarse con la RTApp. Mientras el descriptor de archivo esté abierto, puede realizar operaciones en él, como enviar y recibir.
El ejemplo de IntercoreComms muestra cómo usar una aplicación de alto nivel para comunicarse con una RTApp en un MT3620. Comunicación 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 aplicación.
Archivos de encabezado
#include <sys/socket.h>
#include <applibs/application.h>
Configuración del manifiesto de aplicación
Para comunicarse con una RTApp, ambas aplicaciones deben incluir la capacidad AllowedApplicationConnections en el manifiesto de aplicación:
- La aplicación de alto nivel debe incluir el identificador del componente de la aplicación con respuesta en tiempo real de la funcionalidad AllowedApplicationConnections.
- La aplicación con respuesta en tiempo real debe incluir el identificador del componente de la aplicación de alto nivel de la funcionalidad AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
Aplicaciones asociadas
Cuando se carga una aplicación en el dispositivo de Azure Sphere, las herramientas de implementación de Azure Sphere eliminan de forma predeterminada todas las aplicaciones existentes. Para evitar que esto suceda cuando desarrolle un par de aplicaciones que se comunican entre sí, debe marcar las aplicaciones como asociadas. De este modo, cuando se implemente una de las aplicaciones, no se eliminará su asociada. Consulte Marcado de aplicaciones como asociadas para más información.
Apertura del socket
Antes de comunicarse con una RTApp, debe abrir un socket mediante una llamada a la función Application_Connect. El descriptor de archivo que devuelve esta llamada de función se utiliza para realizar operaciones de enviar y recibir en el socket.
Enviar datos
Puede enviar un mensaje a una RTApp mediante una llamada a la función send() de POSIX. El tamaño máximo del mensaje es de 1 KB.
Recibir datos
Puede recibir un mensaje desde una RTApp mediante una llamada a la función recv() de POSIX.
Cierre del socket
Para cerrar el socket, llame a la función close() de POSIX.