다음을 통해 공유


실시간 지원 애플리케이션과 통신

Azure Sphere는 상위 수준 애플리케이션과 RTApp(실시간 지원 애플리케이션) 간의 코어 간 통신을 지원합니다. 고급 애플리케이션은 applibs Application_Connect 함수를 사용하여 RTApp과 통신할 때 데이터를 보내고 받을 수 있습니다. Application_Connect RTApp과 통신하는 데 사용되는 소켓에 대한 파일 설명자를 검색합니다. 파일 설명자가 열려 있는 동안 send/recv와 같은 작업을 수행할 수 있습니다.

IntercoreComms 샘플에서는 고급 애플리케이션을 사용하여 MT3620에서 RTApp과 통신하는 방법을 보여 줍니다. 고급 애플리케이션과 통신 하여 RTApp에 대한 프로그래밍 고려 사항을 설명합니다.

요구 사항

앱 간 통신을 사용하는 상위 수준 애플리케이션에는 적절한 헤더 파일이 포함되어야 하며 애플리케이션 매니페스트에 애플리케이션 설정을 추가해야 합니다.

헤더 파일

#include <sys/socket.h>
#include <applibs/application.h>

앱 매니페스트 설정

RTApp과 통신하려면 두 애플리케이션 모두 애플리케이션 매니페스트에 AllowedApplicationConnections 기능을 포함해야 합니다.

  • 상위 수준 애플리케이션은 AllowedApplicationConnections 기능에서 실시간 지원 애플리케이션의 구성 요소 ID를 나열해야 합니다.
  • 실시간 지원 애플리케이션은 AllowedApplicationConnections 기능에서 상위 수준 애플리케이션의 구성 요소 ID를 나열해야 합니다.
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]

파트너 애플리케이션

Azure Sphere 디바이스에 애플리케이션을 로드하는 경우 Azure Sphere 배포 도구는 기본적으로 모든 기존 애플리케이션을 삭제합니다. 서로 통신하는 애플리케이션 쌍을 개발할 때 이런 일이 발생하지 않도록 하려면 애플리케이션을 파트너로 표시해야 합니다. 애플리케이션 중 하나를 배포하면 해당 파트너가 삭제되지 않습니다. 자세한 내용은 애플리케이션을 파트너로 표시 를 참조하세요.

소켓 열기

RTApp과 통신하기 전에 Application_Connect 함수를 호출하여 소켓을 열어야 합니다. 이 함수 호출에서 반환된 파일 설명자는 소켓에서 송신/recv 작업을 수행하는 데 사용됩니다.

데이터 보내기

POSIX send() 함수를 호출하여 RTApp에 메시지를 보낼 수 있습니다. 최대 메시지 크기는 1KB입니다.

데이터 수신

POSIX recv() 함수를 호출하여 RTApp에서 메시지를 받을 수 있습니다.

소켓 닫기

소켓을 닫려면 POSIX close() 함수를 호출합니다.