IoT Platformは、デバイスによって送信されたステータスとIoT Platformによって送信されたコマンドをキャッシュするデバイスシャドウ機能を提供します。 オンラインデバイスは、IoT Platformからコマンドを受信できます。 デバイスがオフラインの場合、デバイスがオンラインになった後にIoT Platformからコマンドを要求できます。 この記事では、デバイスシャドウ機能を実現するためにLink SDK for Cを設定する方法について説明します。
前提条件
デバイスの検証情報が取得される。
デバイスは、IoT Platformによって発行されたデバイス証明書を使用して検証されます。 詳細については、「デバイス検証情報の取得」をご参照ください。
デバイスは、カスタムデバイス検証情報を使用して検証されます。 詳細については、「MQTTゲートウェイ製品へのデバイスの追加」をご参照ください。
[SDKのカスタマイズ] ページでSDKをカスタマイズする場合は、[高度な機能] を [デバイスシャドウ] に設定します。
開発環境を準備する。
背景情報
- デバイスシャドウは、IoT Platformに保存されているJSONファイルです。 シャドウは、送信されたデバイスプロパティ (
レポート済み) とクラウドアプリケーションの必要なプロパティ (望ましい) をキャッシュするために使用されます。詳細については、「概要」をご参照ください。
- デバイスシャドウのJSON形式の詳細については、「デバイスシャドウのJSON形式」をご参照ください。
- デバイスシャドウのデータ転送プロセスの詳細については、「デバイスシャドウデータの転送」をご参照ください。
制御ポリシー機能の動作
デバイスはLink SDK for CのAPI操作を呼び出して、MQTT経由でIoT Platformにステータス情報を送信します。 IoT Platformは、情報をデバイスシャドウとしてキャッシュします。 デバイスはAPI操作を呼び出して、シャドウ内のプロパティを照会および削除できます。
プロセスを次の図に示します。 この例では、。/demos/shadow_basic_demo.cサンプルコードファイルを使用します。

デバイスシャドウ固有のAPI操作の詳細については、「aiot_shadow_api.h」をご参照ください。
例
- 例。
- aiot_shadow_api.h. 。