Поделиться через


Обмен данными с приложениями, поддерживающими режим реального времени

Внимание

Это документация по Azure Sphere (устаревшая версия). Служба Azure Sphere (устаревшая версия) выходит на пенсию 27 сентября 2027 г., и к этому времени пользователи должны перейти в Azure Sphere (интегрированная). Используйте селектор версий, расположенный над toC, чтобы просмотреть документацию по Azure Sphere (интегрированная).

Azure Sphere поддерживает взаимодействие между высокоуровневыми приложениями и приложениями, поддерживающими режим реального времени (RTApp), работающими на разных ядрах. Высокоуровневые приложения могут использовать функцию Application_Connect библиотеки Applibs для отправки и получения данных при взаимодействии с приложением 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, по умолчанию средства развертывания этой службы удаляют все существующие приложения. Чтобы это не произошла при разработке пары приложений, взаимодействующих друг с другом, необходимо пометить эти приложения как партнеров. При развертывании одного из приложений его приложение-партнер не будет удалено. См. сведения о том, как помечать приложения как партнерские.

Открытие сокета

Прежде чем взаимодействовать с приложением RTApp, необходимо открыть сокет путем вызова функции Application_Connect. Дескриптор файла, возвращаемый этим вызовом функции, используется для выполнения операций отправки и получения в сокете.

Отправка данных

Можно отправить сообщение в приложение RTApp, вызвав функцию POSIX send(). Максимальный размер сообщения — 1 КБ.

Получение данных

Вы можете получить сообщение из приложения RTApp, вызвав функцию POSIX recv().

Закрытие сокета

Чтобы закрыть сокет, вызовите функцию POSIX close().