

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 受管整合中的功能和裝置互動
<a name="managedintegrations-sdk-device-interactions"></a>

本節說明 C-Function 實作的角色，以及裝置與受管整合裝置功能之間的互動。

**Topics**
+ [處理遠端命令](#managedintegrations-sdk-interactions-commands)
+ [處理未經要求的事件](#managedintegrations-sdk-interactions-unsolicited)

## 處理遠端命令
<a name="managedintegrations-sdk-interactions-commands"></a>

遠端命令是由結束裝置 SDK 與 功能之間的互動所處理。下列動作描述了如何使用此互動開啟燈泡的範例。

**MQTT 用戶端接收承載並傳遞至 Data Model Handler**  
當您傳送遠端命令時，MQTT 用戶端會收到 JSON 格式的受管整合訊息。然後，它會將承載傳遞給資料模型處理常式。例如，假設您想要使用受管整合來開啟燈泡。燈泡具有支援OnOff叢集的端點 \#1。在此情況下，當您傳送命令以開啟燈泡時，受管整合會透過 MQTT 將請求傳送至裝置，這表示它想要在端點 \#1 上叫用開啟命令。

**資料模型處理常式會檢查回呼函數並叫用它們**  
資料模型處理常式會剖析 JSON 請求。如果請求包含屬性或動作，Data Model Handler 會尋找端點，並依序叫用對應的回呼函數。例如，在燈泡的情況下，當 Data Model Handler 收到 MQTT 訊息時，它會檢查與OnOff叢集中定義之 On 命令對應的回呼函數是否已在 endpoint\#1 上註冊。

**處理常式和 C-Function 實作執行 命令**  
Data Model Handler 會呼叫找到並叫用的適當回呼函數。C-Function 實作接著會呼叫對應的硬體函數來控制實體硬體，並傳回執行結果。例如，在燈泡的情況下，Data Model Handler 會呼叫回呼函數並存放執行結果。回呼函數接著會開啟燈泡。

**Data Model Handler 傳回執行結果**  
呼叫所有回呼函數後，資料模型處理常式會合併所有結果。然後，它會以 JSON 格式封裝回應，並使用 MQTT 用戶端將結果發佈至受管整合雲端。在燈泡的情況下，回應中的 MQTT 訊息將包含回呼函數開啟燈泡的結果。

## 處理未經要求的事件
<a name="managedintegrations-sdk-interactions-unsolicited"></a>

未經請求的事件也會由結束裝置 SDK 與 功能之間的互動處理。下列動作說明如何進行。

**裝置傳送通知至資料模型處理常式**  
發生屬性變更或事件時，例如在裝置上推送實體按鈕時，C-Function 實作會產生未經要求的事件通知，並呼叫對應的通知函數，將通知傳送至 Data Model Handler。

**資料模型處理常式翻譯通知**  
資料模型處理常式會處理收到的通知，並將其轉譯為 AWS 資料模型。

**資料模型處理常式會將通知發佈至雲端**  
資料模型處理常式接著會使用 MQTT 用戶端，將未經要求的事件發佈至受管整合雲端。