與即時可用的應用程式通訊
重要
這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。
Azure Sphere 支援高階應用程式與即時可用的應用程式 (RTApp) 之間的核心間通訊。 高階應用程式可以使用 applibs Application_Connect 函式,在與 RTApp 通訊時傳送和接收數據。 Application_Connect會擷取檔案描述元到用來與 RTApp 通訊的套接字。 當檔案描述元開啟時,您可以對它執行作業,例如傳送/recv。
IntercoreComms 範例示範如何使用高階應用程式與 MT3620 上的 RTApp 通訊。 與高階應用程式 通訊說明 RTApp 的程式設計考慮。
需求
使用應用程式間通訊的高階應用程式必須包含適當的頭檔,並將應用程式設定新增至 應用程式指令清單。
標頭檔
#include <sys/socket.h>
#include <applibs/application.h>
應用程式指令清單設定
若要與 RTApp 通訊,這兩個應用程式都必須在應用程式指令清單中包含 AllowedApplicationConnections 功能:
- 高階應用程式必須在 AllowedApplicationConnections 功能中列出即時可用的應用程式的元件識別碼。
- 即時可用的應用程式必須在 AllowedApplicationConnections 功能中列出高階應用程式的元件識別碼。
"AllowedApplicationConnections": [ "005180BC-402F-4CB3-A662-72937DBCDE47" ]
合作夥伴應用程式
當您將應用程式載入 Azure Sphere 裝置時,Azure Sphere 部署工具預設會刪除所有現有的應用程式。 若要避免當您開發一對彼此通訊的應用程式時發生此情況,您必須將應用程式標示為 合作夥伴。 當您部署其中一個應用程式時,將不會刪除其夥伴。 如需詳細資訊,請參閱 將應用程式標示為合作夥伴 。
開啟套接字
在與 RTApp 通訊之前,您必須呼叫 Application_Connect 函式來開啟套接字。 此函式呼叫所傳回的檔案描述元可用來在套接字上執行傳送/recv 作業。
傳送資料
您可以呼叫 POSIX send() 函式,將訊息傳送至 RTApp。 訊息大小上限為 1 KB。
接收資料
您可以呼叫 POSIX recv() 函式,以接收來自 RTApp 的訊息。
關閉套接字
若要關閉套接字,請呼叫 POSIX close() 函式。