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

IoT Platform:例:

最終更新日:Apr 09, 2025

このトピックでは、デバイスのブロードキャスト通信機能を実装するためにLink SDK for CのAPI操作を呼び出す方法について説明します。 この例では、という名前のサンプルコードファイルです。/demos/mqtt_broadcast_demo.cが使用されます。

背景情報

  • ブロードキャスト通信機能の詳細については、「概要」をご参照ください。

  • ブロードキャスト通信機能は、MQTT (Message Queuing Telemetry Transport) を介してIoT Platformに接続されているデバイスでのみ使用できます。 機能を設定するためのMQTT接続関連コードの詳細については、「概要」をご参照ください。

手順

  1. クライアントを初期化します。

    詳細については、「手順1: クライアントの初期化」をご参照ください。

  2. 必要な機能を設定します。

    詳細については、「手順2: 機能の設定」をご参照ください。

  3. 接続を確立します。

    詳細については、「手順3: 接続の確立」をご参照ください。

  4. オプションです。 製品のすべてのデバイスにブロードキャストメッセージを送信する場合、デバイスはaiot_mqtt_sub関数を呼び出して指定されたトピックをサブスクライブする必要があります。

    • サンプルコード:

          {
              char * sub_topic = "/broadcast/a18wP ******/test";
      
              res = aiot_mqtt_sub(mqtt_handle, sub_topic, NULL, 1, NULL);
              if (res < 0) {
                  printf("aiot_mqtt_sub failed, res: -0x % 04X\n", -res);
                  return -1;
              }
          }
    • パラメーター:

      パラメーター

      説明

      sub_topic

      /ブロードキャスト /a18wP ****** /テスト

      ブロードキャストメッセージが送信されるトピック。 形式: /broadcast/${productKey}/<カスタムフィールド> この例のパラメータ:

      • a18wP ****** はデバイスのProductKeyです。

      • testはカスタムフィールドを示します。

      詳細については、「トピック」をご参照ください。

  5. ブロードキャストメッセージを受信します。

    1. デバイスがIoT Platformに接続された後、IoT PlatformのPubBroadcast操作を呼び出して、デバイスにブロードキャストメッセージを送信できます。

      重要

      スロットリングを防ぐために、1分あたり最大で1つのブロードキャストメッセージを送信することを推奨します。

      詳細については、「ブロードキャストメッセージ」をご参照ください。

    2. デバイスは、ブロードキャストメッセージを受信するためにaiot_mqtt_recv関数を呼び出す。 次に、コールバック関数を呼び出して必要な操作を実行します。

      この例では、demo_mqtt_default_recv_handlerという名前のコールバック関数が使用され

    3. ブロードキャストメッセージを処理するコールバック関数を定義します。

      トピック形式に基づいて、メッセージがブロードキャストメッセージであるかどうかを確認します。

      • 製品のすべてのオンラインデバイスにブロードキャストメッセージを送信する場合、デバイスはブロードキャストトピックをサブスクライブする必要はありません。 各デバイスがブロードキャストメッセージを受信した後、ブロードキャストトピック形式に基づいてメッセージがブロードキャストメッセージであるかどうかを確認できます。 ブロードキャストトピックの形式は /sys/${productKey}/${deviceName}/broadcast/request/${MessageId} です。

      • カスタムブロードキャストトピックをサブスクライブするすべてのデバイスにブロードキャストメッセージを送信する場合、デバイスはトピックをサブスクライブする必要があります。 カスタムブロードキャストトピックの形式は、/broadcast/${productKey}/<custom field> です。

      ビジネス要件に基づいて、コールバックの処理ロジックを指定できます。 この例では、ブロードキャストメッセージが印刷される。

      void demo_mqtt_default_recv_handler(void * handle, const aiot_mqtt_recv_t * packet, void * userdata)
      {
          switch (packet->type) {
              ……
              ……
              ケースAIOT_MQTTRECV_PUB: {
                  printf("pub, qos: % d, topic: %.* s\n", packet->data.pub.qos, packet->data.pub.topic_len, packet->data.pub.topic);
                  printf("pub, payload: %.* s\n", packet->data.pub.payload_len, packet->data.pub.payload);
                  /* TODO: ブロードキャストメッセージを印刷する * /           
              }
              break;
      
              ……
              ……       
      
              default: {
      
              }
          }
      }
  6. 接続を閉じます。

    詳細については、「手順8: IoT Platformからデバイスを切断する」をご参照ください。

  7. プログラムを終了します。

    詳細については、「ステップ9: プログラムを終了する」をご参照ください。

次のステップ

  • サンプルコードファイルを設定したら、ファイルをコンパイルして実行可能ファイルを生成します。 この例では、demos/mqtt-broadcast-demo実行可能ファイルが生成されます。

    詳細については、「環境の準備」をご参照ください。

  • 実行結果の詳細については、「ログの表示」をご参照ください。