リアルタイム対応アプリケーションとの通信
重要
これは 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() 関数を呼び出します。