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

:MQTT 経由で IoT Platform に接続する

最終更新日:Mar 22, 2025

このトピックでは、C 用 Link SDK を使用して Message Queuing Telemetry Transport (MQTT) 経由でデバイスを IoT Platform に接続するときに呼び出す必要がある API 操作について説明します。

IOT_MQTT_Construct

  • プロトタイプ

    void *IOT_MQTT_Construct(iotx_mqtt_param_t *pInitParams)
  • 説明

    MQTT 経由で IoT Platform に接続する操作を呼び出すときに、pInitParams パラメーターを NULL に設定すると、他のパラメーターにはデフォルト値が使用されます。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    pInitParams

    iotx_mqtt_param_t *

    リクエスト

    MQTT 初期化パラメーター。リクエストパラメーターに NULL を指定すると、構造体内のパラメーターにはデフォルト値が使用されます。

  • 構造体内のパラメーター

    typedef struct {
        uint16_t                   port; // ポート番号
        const char                 *host; // ホスト名
        const char                 *client_id; // クライアントID
        const char                 *username; // ユーザー名
        const char                 *password; // パスワード
        const char                 *pub_key; // 公開鍵
        const char                 *customize_info; // カスタム情報
        uint8_t                    clean_session; // クリーンセッション
        uint32_t                   request_timeout_ms; // リクエストタイムアウト
        uint32_t                   keepalive_interval_ms; // キープアライブ間隔
        uint32_t                   write_buf_size; // 書き込みバッファサイズ
        uint32_t                   read_buf_size; // 読み取りバッファサイズ
        iotx_mqtt_event_handle_t    handle_event; // イベントハンドラ
    } iotx_mqtt_param_t, *iotx_mqtt_param_pt;

    パラメーター

    説明

    port

    MQTT サーバーのポート番号。

    host

    MQTT サーバーのエンドポイント。

    client_id

    MQTT クライアントの ID。

    username

    MQTT サーバーにログインするために使用されるユーザー名。

    password

    MQTT サーバーにログインするために使用されるパスワード。

    pub_key

    MQTT 接続の暗号化方式とキー。

    clean_session

    MQTT のクリーンセッション機能を使用するかどうかを指定します。

    request_timeout_ms

    MQTT メッセージのタイムアウト期間。

    keepalive_interval_ms

    MQTT ハートビートのタイムアウト期間。

    write_buf_size

    送信される MQTT メッセージを格納するために使用されるバッファの最大サイズ。

    read_buf_size

    受信した MQTT メッセージを格納するために使用されるバッファの最大サイズ。

    handle_event

    MQTT モジュールからイベントデータを受信するために使用するカスタムコールバック関数。

    customize_info

    レポートされるカスタムデータ。文字列内のキーと値のペアをコンマ (,) で区切ります。たとえば、"pid=123456,mid=abcd"; は、製造元とモジュールに関する情報を記述するために使用されます。

    説明

    pInitParams 構造体の要素を 0 に設定するか、pInitParams パラメーターを NULL に設定すると、デフォルトの事前定義パラメーターが使用されます。

  • 戻り値

    説明

    NULL

    失敗

    NULL以外

    MQTT ハンドル

IOT_MQTT_Destroy

  • プロトタイプ

    int IOT_MQTT_Destroy(void **phandle);
  • 説明

    この操作を呼び出して、MQTT 接続を閉じ、関連するリソースを解放できます。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    phandle

    void **

    リクエスト

    MQTT ハンドル。パラメーターを NULL に設定できます。

  • 戻り値

    説明

    0

    成功

    < 0

    失敗

IOT_MQTT_Yield

  • プロトタイプ

    int IOT_MQTT_Yield(void *handle, int timeout_ms);
  • 説明

    この操作を呼び出して、ネットワークパケットを受信し、ネットワークパケット内のメッセージをカスタムコールバック関数に転送できます。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    handle

    void *

    リクエスト

    MQTT ハンドル。パラメーターを NULL に設定できます。

    timeout_ms

    int

    リクエスト

    パケットを受信するリクエストのタイムアウト期間。

  • 戻り値の説明

    説明

    0

    成功

IOT_MQTT_CheckStateNormal

  • プロトタイプ

    int IOT_MQTT_CheckStateNormal(void *handle);
  • 説明

    この操作を呼び出して、MQTT 接続の状態をクエリできます。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    handle

    void *

    リクエスト

    MQTT ハンドル。パラメーターを NULL に設定できます。

  • 戻り値の説明

    説明

    0

    切断

    1

    接続

IOT_MQTT_Subscribe

  • プロトタイプ

    int IOT_MQTT_Subscribe(void *handle,
                            const char *topic_filter,
                            iotx_mqtt_qos_t qos,
                            iotx_mqtt_event_handle_func_fpt topic_handle_func,
                            void *pcontext);
  • 説明

    この操作を呼び出して、IoT Platform の MQTT Topic をサブスクライブできます。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    handle

    void *

    リクエスト

    MQTT ハンドル。パラメーターを NULL に設定できます。

    topic_filter

    const char *

    リクエスト

    サブスクライブする Topic。

    qos

    iotx_mqtt_qos_t

    リクエスト

    サービス品質 (QoS) ポリシー。

    topic_handle_func

    iotx_mqtt_event_handle_func_fpt

    リクエスト

    MQTT メッセージを受信するために使用するコールバック関数。

    pcontext

    void *

    リクエスト

    カスタムコンテキスト。コンテキストはコールバック関数から返されます。

  • 戻り値の説明

    説明

    0

    成功

    < 0

    失敗

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 Platform の MQTT Topic をサブスクライブできます。この操作は同期的に機能します。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    handle

    void *

    リクエスト

    MQTT ハンドル。パラメーターを NULL に設定できます。

    topic_filter

    const char *

    リクエスト

    サブスクライブする Topic。

    qos

    iotx_mqtt_qos_t

    リクエスト

    QoS ポリシー。

    topic_handle_func

    iotx_mqtt_event_handle_func_fpt

    リクエスト

    MQTT メッセージを受信するために使用するコールバック関数。

    pcontext

    void *

    リクエスト

    カスタムコンテキスト。コンテキストはコールバック関数から返されます。

    timeout_ms

    int

    リクエスト

    同期呼び出しのタイムアウト期間。

  • 戻り値の説明

    説明

    0

    成功

    < 0

    失敗

IOT_MQTT_Unsubscribe

  • プロトタイプ

    int IOT_MQTT_Unsubscribe(void *handle, const char *topic_filter);
  • 説明

    この操作を呼び出して、IoT Platform の Topic のサブスクリプションを解除できます。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    handle

    void *

    リクエスト

    MQTT ハンドル。パラメーターを NULL に設定できます。

    topic_filter

    const char *

    リクエスト

    サブスクリプションを解除する Topic。

  • 戻り値の説明

    説明

    0

    成功

    < 0

    失敗

IOT_MQTT_Publish

  • プロトタイプ

    int IOT_MQTT_Publish(void *handle, const char *topic_name, iotx_mqtt_topic_info_pt topic_msg);
  • 説明

    この操作を呼び出して、Topic にメッセージをプッシュできます。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    handle

    void *

    リクエスト

    MQTT ハンドル。パラメーターを NULL に設定できます。

    topic_name

    const char *

    リクエスト

    メッセージをプッシュする Topic。

    topic_msg

    iotx_mqtt_topic_info_pt

    リクエスト

    プッシュするメッセージ。

  • 戻り値の説明

    説明

    > 0

    成功。この値は、QoS 1 メッセージが受信されたときに返されます。この値は、レポートされたパケットに含まれる MQTT メッセージの ID です。この値は、MQTT プロトコルの messageId フィールドの値に対応します。

    0

    成功。この値は、QoS 0 メッセージが受信されたときに返されます。

    < 0

    失敗

IOT_MQTT_Publish_Simple

  • プロトタイプ

    int IOT_MQTT_Publish_Simple(void *handle, const char *topic_name, int qos, void *data, int len)
  • 説明

    この操作を呼び出して、Topic にメッセージをプッシュできます。

    説明
    • IOT_MQTT_Publish: 共通メッセージを送信します。

    • IOT_MQTT_Publish_Simple: より多くの構成オプションを使用してメッセージを送信します。

    IOT_MQTT_Publish 操作を呼び出して、共通メッセージを送信できます。 IOT_MQTT_Publish_Simple 操作を呼び出して、より多くの構成オプションを使用してメッセージを送信できます。

  • パラメーター

    パラメーター

    カテゴリ

    説明

    handle

    void *

    リクエスト

    MQTT ハンドル。パラメーターを NULL に設定できます。

    topic_name

    const char *

    リクエスト

    メッセージをプッシュする Topic。

    qos

    int

    リクエスト

    QoS ポリシー。

    data

    void *

    リクエスト

    プッシュするメッセージ。

    len

    int

    リクエスト

    メッセージの長さ。

  • 戻り値の説明

    説明

    > 0

    成功。この値は、QoS 1 メッセージが受信されたときに返されます。この値は、レポートされたパケットに含まれる MQTT メッセージの ID です。この値は、MQTT プロトコルの messageId フィールドの値に対応します。

    0

    成功。この値は、QoS 0 メッセージが受信されたときに返されます。

    < 0

    失敗