すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:リリースノート

最終更新日:Apr 17, 2025

V3.0.1以前のバージョンとの主な違いは、ビジネス要件に基づいて特定の機能のCファイルを選択し、SDKをカスタム方法でコンパイルできることです。 SDKの組み込みコンパイラを使用する必要はなくなりました。

V3.0.1

2018年11月にリリースされたSDK V2.3.0と2019年3月にリリースされたSDK V3.0.1の違いについて説明します。

ソースコードを使用した移植

  • この開発方法は、Ubuntu16.04 64ビットWindows XPWindows 7、およびWindows 10を実行するオンプレミスマシンに適しています。

  • Ubuntuでmake menuconfigコマンドを実行するか、Windowsでconfig.batファイルをクリックして機能を選択できます。

  • ビジネス要件に基づいて機能を選択したら、Ubuntuでextract.shコマンドを実行するか、Windowsでextract.batファイルをクリックして必要なソースファイルを抽出します。

  • オンプレミスマシン上のプロジェクトにソースファイルを追加し、優先メソッドを使用してソースコードをコンパイルできます。

実装する必要があるすべてのハードウェア抽象化レイヤー (HAL) インターフェイスは、output/eng/wrappersディレクトリのwrapper.cファイルに自動的に収集されます。

以前は、SDKのクロスコンパイルに失敗した場合、開発操作を実行できませんでした。 SDK V3.0.1により、移植性と使いやすさが向上します。

ディレクトリ構造

  • SDK V3.0.1は、使いやすいフラットディレクトリ構造を使用します。 たとえば、すべて。hと。クラウド上のMQTT (Message Queuing Telemetry Transport) 機能に関するcファイルは、src/mqttディレクトリに格納されます。

  • インフラストラクチャを含むsrc/infraディレクトリを除き、src/xxxディレクトリはSDK機能にマップされ、その機能のすべてのソースファイルを含みます。 src/xxxディレクトリの数は、SDK機能の数と同じです。 例:

    • src/dynamic_register: 製品ごとの一意証明書検証または動的登録機能のすべてのソースファイルが含まれています。

    • src/dev_sign: デバイスシグネチャ機能のすべてのソースファイルが含まれています。

    • src/mqtt: MQTT接続機能のすべてのソースファイルが含まれています。

    • src/ota: 無線 (OTA) ファームウェア更新機能のすべてのソースファイルが含まれています。

    • src/dev_model: Thing Specification Language (TSL) モデル管理またはサブデバイス管理機能のすべてのソースファイルが含まれます。

APIとHALインターフェイスのプレゼンテーション

SDKの以前のバージョンでは、グローバルヘッダーファイルiot_import.hにはSDKが依存する外部HAL_XXX() インターフェイスが含まれ、グローバルヘッダーファイルiot_export.hにはSDKによって提供されるIOT_XXX APIが含まれています。

特定のお客様は、iot_import.hファイルに100を超えるすべてのHALインターフェイスを実装し、iot_import.hファイルに200を超えるすべてのAPIを理解する必要があると想定しています。 これにより、顧客のワークロードが重くなります。

SDK V3.0.1では、次の改善が行われます。

  • iot_import.hおよびiot_export.hファイルは削除されます。

  • ルートディレクトリのincludeディレクトリが削除されました。

  • ソースファイルは、過剰な情報表示を防ぐため、SDKの機能に基づいて専用のディレクトリに分類および保存されます。

SDK V3.0.1を使用するには、次の手順を実行する必要があります。

  • IoT PlatformへのMQTT接続やOTAアップデートなどのSDK機能に精通していることを確認し、必要な機能を決定してから、グラフィカルユーザーインターフェイス (GUI) で機能を設定および選択してください。

  • 次に、Ubuntuでextract.shスクリプト、Windowsでextract.batスクリプトを実行して、選択したフィーチャのソースファイルを取得し、ソースファイルをoutputディレクトリに保存します。

  • 次のルールに基づいて、SDKを使用するためのAPIとHALインターフェイスを実装します。

    • output/eng/xxxディレクトリには、xxx機能のソースファイルが格納されます。 ソースファイルはsrc/xxxディレクトリから取得します。

    • output/eng/xxx/xxx_api.hファイルには、xxx機能のAPIが含まれています。 APIはsrc/xxx/xxx_api.hファイルから取得します。

    • 特定の組み込みシステムと対話するために実装する必要があるすべてのHAL_XXX() インターフェイスは、output/eng/wrappers/wrapper.cファイルに自動的に追加されます。

    • output/eng/xxx/xxx_api.hファイルのsrc/xxx/xxx_api.hに必要な機能のソースファイルのみを表示する必要があります。 ビジネス要件とは無関係なAPI宣言は表示されません。

    • 実装する必要があるすべてのHALインターフェイスは、output/eng/wrappers/wrapper.cファイルに追加されます。 ビジネス要件に関係のないHALインターフェイスは表示されません。

たとえば、SDKの基本的な機能は、IoT PlatformへのMQTT接続を確立するための署名を計算することです。 この機能は、src/dev_signまたはoutput/eng/dev_signインターフェイスでサポートされています。

  • この場合、dev_sign_api.hファイルには、署名計算機能のインターフェイスが1つだけ表示されます。

  • この機能には依存関係がなく、c関数が必要ないため、HALインターフェイスやwrapper. Cファイルは表示されません。

make.settingsファイル

  • Linuxを実行するオンプレミスマシンとは別に、開発者はWindows XPWindows 7、またはWindows 10マシンでconfig.batを実行して、GUIで必要な機能を構成できます。

  • 次の表に、名前が変更されるFEATURE_XXXオプションを示します。

以前の名前

新しい名前

説明

FEATURE_AWSS_SUPPORT_PHONEASAP

FEATURE_AWSS_SUPPORT_AHA

Wi-Fiセットアップの電話アクセスポイントモード (phone-ap-config) 。

FEATURE_AWSS_SUPPORT_ROUTER

FEATURE_AWSS_SUPPORT_ADHA

Wi-Fiセットアップのルーター設定モード (router-config) 。

  • 次のオプションが追加されます。

    • FEATURE_AWSS_SUPPORT_SMARTCONFIG_WPS: Wi-Fiセットアップのポイントツーポイント設定モード。

    • FEATURE_AWSS_SUPPORT_DEV_AP: Wi-Fiセットアップのデバイスアクセスポイントモード (dev-ap-config) 。

MQTTインタフェース

  • IOT_MQTT_Construct() インターフェイスを呼び出して、MQTT (Message Queuing Telemetry Transport) 接続を確立できます。 IOT_SetupConnInfo() インターフェイスは不要になりました。

  • IOT_MQTT_Construct() インターフェイスを呼び出すと、ほとんどの接続パラメーターを空のままにすることができます。 SDKは自動的にデフォルト値を使用し、エラーは返されません。

新機能とインターフェース

  • SDKの基本機能であるデバイス署名機能が追加されました。

    • IOT_Sign_MQTT() インターフェイスのみが機能に関連しています。

  • 製品ごとに固有の証明書検証機能が追加されました。 この機能は、ProductKey、DeviceName、およびDeviceSecretを含むデバイス証明書をすべてのデバイスに書き込むときに使用できます。

    • IOT_Dynamic_Register() インターフェイスのみが機能に関連しています。

  • デバイスリセット機能が追加されました。 この機能は、サブデバイスがIoT Platformに関連付け解除要求を送信した後、サブデバイスと対応するゲートウェイとの関連付けを解除するために使用できます。

    • 機能に関連するのは、IOT_DevReset_Report() インターフェイスだけです。

  • HTTP/2ファイルのアップロード機能が追加されました。 この機能を使用して、大きなファイルをIoT Platformにアップロードできます。

    • IOT_HTTP2_UploadFile_Connect()IOT_HTTP2_UploadFile_Request() 、およびIOT_HTTP2_UploadFile_Disconnect() インターフェイスは、この機能に関連しています。

削除された機能

  • CMakeは、ソースコードに基づくGNU makeと移植がサポートされているため、サポートされているコンパイルツールから削除されます。

V2.3.0

2018年8月31日にリリースされたSDK V2.2.1と2018年11月にリリースされたSDK V2.3.0の違いについて説明します。

make.settingsファイル

  • 開発者は、Ubuntu16.04 64ビットのオンプレミスマシンでmake menuconfigコマンドを実行して、GUIでmake.settingsファイルを構成できます。

  • 次の表に、名前が変更されるFEATURE_XXXオプションを示します。

以前の名前

新しい名前

説明

FEATURE_SDK_ENHANCE

FEATURE_DEVICE_MODEL_ENABLED

Thing Specification Language (TSL) モデル管理機能のスイッチ。 モデルはAlink JSONプロトコルに準拠している必要があります。

FEATURE_ENHANCED_ゲートウェイ

FEATURE_DEVICE_MODEL_ゲートウェイ

TSLモデル管理のゲートウェイ機能のスイッチ。

FEATURE_WIFI_AWSS_ENABLED

FEATURE_WIFI_PROVISION_ENABLED

Wi-Fiセットアップ機能のスイッチ。

  • 次のオプションが追加されます。

    • FEATURE_DEVICE_BIND_ENABLED: デバイスバインディング機能のスイッチ。 Living Linkコンソールを使用する場合は、このスイッチをオンにして、Cloud Intelligenceアプリがデバイスを制御できるようにする必要があります。

    • FEATURE_ALCS_CLIENT_ENABLED: ローカル通信で使用される特定のクライアント機能のスイッチ。 エッジゲートウェイおよびIoTサブデバイスを管理するその他のデバイスでは、このスイッチをオンにする必要があります。

    • FEATURE_ALCS_SERVER_ENABLED: ローカル通信で使用される特定のサーバー機能のスイッチ。 ローカルエリアネットワーク (LAN) 上のモバイルアプリまたはエッジゲートウェイによって管理されているデバイスの場合、このスイッチをオンにする必要があります。

    • FEATURE_AWSS_SUPPORT_SMARTCONFIG: Wi-FiセットアップのSmartConfigモード (smart-config) 。

    • FEATURE_AWSS_SUPPORT_ZEROCONFIG: Wi-Fiセットアップのゼロ設定モード (zero-config) 。

    • FEATURE_AWSS_SUPPORT_ROUTER: Wi-Fiセットアップのルーター設定モード (router-config) 。

    • FEATURE_AWSS_SUPPORT_PHONEASAP: Wi-Fiセットアップの電話アクセスポイントモード (phone-ap-config) 。

  • 次のオプションが削除されました。

    • FEATURE_COAP_DTLS_SUPPORT: IoT Platform over Constrained Application Protocol (CoAP) への接続がDatagram Transport Layer Security (DTLS) プロトコルを使用して暗号化されているかどうかを判断するスイッチです。 暗号化は常に有効になっているため、スイッチはカスタム設定から削除されます。

グローバルインターフェイス

  • IOT_OpenLog() およびIOT_CloseLog() インターフェイスは削除されます。 IOT_SetLogLevel() インターフェイスを呼び出して、SDKがログを印刷するかどうか、およびSDKで印刷するログを確認できます。

  • IOT_LOG_EMERGログレベルは、IOT_LOG_NONEログレベルに置き換えられます。 IOT_SetLogLevel(IOT_LOG_NONE) は、ロギング機能を無効にすることを指定します。

  • IOT_Linkkit_Ioctl() インターフェイスが削除されました。 IOT_Ioctl() インターフェイスを呼び出して、IOT_Linkkit_Ioctl() インターフェイスの機能を実装できます。 IOT_Ioctl() インターフェイスのオプションの詳細については、iotx_ioctl_option_t型の列挙値をご参照ください。

  • IOT_Ioctl() インターフェイスが強化されました。 IOTX_IOCTL_SET_MQTT_DOMAINおよびIOTX_IOCTL_SET_HTTP_DOMAINオプションが追加され、カスタムMQTTまたはHTTPエンドポイントを渡して、中国以外の新しいサービス展開サイトへの接続を確立できます。

MQTTインタフェース

  • 次のインターフェイスでは、handleパラメーターをNULLに設定して、既定のパラメーター値を使用して接続を作成したり、既定の接続を使用したりできます。

    • IOT_MQTT_Construct

    • IOT_MQTT_Destroy

    • IOT_MQTT_Yield

    • IOT_MQTT_LogPost

    • IOT_MQTT_CheckStateNormal

    • IOT_MQTT_サブスクライブ

    • IOT_MQTT_サブスクライブ解除

    • IOT_MQTT_パブリッシュ

    • IOT_MQTT_Subscribe_Sync

    • IOT_MQTT_Publish_Simple

  • pdrit_bufパラメーターとpread_bufパラメーターは、iotx_mqtt_param_t構造体から削除されます。

  • IOT_MQTT_Publish_Simple() インターフェイスが追加されました。 文字列型のパラメーターを渡して、トピックとペイロードを指定できます。

    int IOT_MQTT_Publish_Simple(void * handle、const char * topic_name、int qos、void * data、int len);
                        
  • IOT_MQTT_Subscribe_Sync() インターフェイスが追加されました。 同期サブスクリプションはブロッキング方式で実行でき、サブスクリプションが成功するまでデータは返されません。

    int IOT_MQTT_Subscribe_Sync(void * handle、
                                const char *topic_filter,
                                iotx_mqtt_qos_t qos、
                                iotx_mqtt_event_handle_func_fpt topic_handle_func、
                                void * pcontext、
                                int timeout_ms);
                        
  • IOT_MQTT_Subscribe() インターフェイスが最適化されています。 MQTT接続が確立される前に、オフラインメッセージをサブスクライブできます。 SDK for Cは、接続が確立された直後にサブスクリプションパケットを送信します。

OTA更新インターフェース

  • MQTTインターフェイスのhandleパラメーターがNULLに設定されている場合、デフォルトの接続を使用するためにIOT_OTA_Initインターフェイスの3番目のパラメーターもNULLに設定できます。 IOT_OTA_Initは、無線 (OTA) 更新のための基本インタフェースである。

    void * IOT_OTA_Init(const char * product_key、const char * device_name、void * ch_signal);
                        

削除されたインターフェース

以前のバージョンのSDKのlinkkit_xxx() およびlinkkit_gateway_xxx() インターフェイスは、コンパイルのオプションです。 デフォルトでは、インターフェイスはコンパイル設定に表示されません。

注意:1. make.settingsファイルで次のコマンドを実行して、linkkit_xxx() およびlinkkit_gateway_xxx() インターフェイスを表示できます。 この場合、新しいインターフェースは消えます。

FEATURE_DEPRECATED_LINKKIT=y
            

2. デバイスのメモリ使用量を減らすために、SDKのAPI操作を呼び出してプロパティの変更やイベントに関するメッセージを送信するときに、SDKはデータ形式の有効性をチェックしなくなりました。 したがって、IoT PlatformからTSLモデルのJSONファイルをエクスポートし、JSONデータをCの文字列に変換して、Cのコードに文字列を追加する必要はありません。

HALインターフェイス

  • HAL_Sys_rebootインターフェイスは、対応する機能がHAL_Rebootインターフェイスの機能と同じであるため、削除されます。