リアルタイム対応アプリケーションとの通信

重要

これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。

Azure Sphere では、高度なアプリケーションとリアルタイム対応アプリケーション (RTApp) とのコア間通信がサポートされています。 高度なアプリケーションでは、RTApp との通信時に applibs Application_Connect 関数を使用してデータを送受信できます。 Application_Connect では、RTApp との通信に使用されるソケットへのファイル記述子を取得します。 ファイル記述子が開いている間、送受信などの操作を実行できます。

高度なアプリケーションを使用して MT3620 で RTApp と通信する方法については、IntercoreComms サンプルを参照してください。 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 関数を呼び出すことでソケットを開く必要があります。 この関数の呼び出しによって返されるファイル記述子を使用して、ソケットの送受信操作が実行されます。

データを送信する

POSIX send() 関数を呼び出すことによって、RTApp にメッセージを送信できます。 メッセージの最大サイズは 1 KB です。

データの受信

POSIX recv () 関数を呼び出すことによって、RTApp からメッセージを受信できます。

ソケットを閉じる

ソケットを閉じるには、POSIX close() 関数を呼び出します。