Взаимодействие с приложением с поддержкой реального времени
Azure Sphere поддерживает взаимодействие между ядрами между приложениями высокого уровня и приложениями с поддержкой реального времени (RTApp). Высокоуровневые приложения могут использовать функцию applibs Application_Connect для отправки и получения данных при обмене данными с RTApp. Application_Connect извлекает дескриптор файла в сокет, используемый для связи с RTApp. Пока дескриптор файла открыт, с ним можно выполнять операции, например отправку и восстановление.
В примере IntercoreComms показано, как использовать высокоуровневое приложение для взаимодействия с RTApp в MT3620. Взаимодействие с приложением высокого уровня описывает рекомендации по программированию для RTApp.
Требования
Высокоуровневые приложения, использующие взаимодействие между приложениями, должны включать соответствующие файлы заголовков и добавлять параметры приложения в манифест приложения.
Файлы заголовков
#include <sys/socket.h>
#include <applibs/application.h>
Параметры манифеста приложения
Для взаимодействия с RTApp оба приложения должны включить в манифест приложения возможность AllowedApplicationConnections:
- Высокоуровневое приложение должно содержать идентификатор компонента приложения, поддерживающего режим реального времени, в возможности AllowedApplicationConnections.
- Приложение, поддерживающее режим реального времени, должно содержать идентификатор компонента высокоуровневого приложения в возможности AllowedApplicationConnections.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
Партнерские приложения
При загрузке приложения на устройство Azure Sphere средства развертывания Azure Sphere по умолчанию удаляют все существующие приложения. Чтобы избежать этого при разработке пары приложений, которые взаимодействуют друг с другом, необходимо пометить их как партнеров. При развертывании одного из приложений его партнер не будет удален. Дополнительные сведения см. в разделе Пометка приложений как партнеров .
Открытие сокета
Перед взаимодействием с RTApp необходимо открыть сокет, вызвав функцию Application_Connect . Дескриптор файла, возвращенный этим вызовом функции, используется для выполнения операций отправки и преобразования в сокете.
Отправка данных
Сообщение можно отправить в ПРИЛОЖЕНИЕ RTApp, вызвав функцию POSIX send(). Максимальный размер сообщения — 1 КБ.
Получение данных
Вы можете получить сообщение из RTApp, вызвав функцию RECV() POSIX.
Закрытие сокета
Чтобы закрыть сокет, вызовите функцию POSIX close().