Обмен данными с приложениями, поддерживающими режим реального времени
Внимание
Это документация по 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().