Взаимодействие с приложением с поддержкой реального времени

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