Tous les produits
Search
Centre de documentation

IoT Platform:Exemple

Dernière mise à jour :Aug 10, 2026

Utilisez le fichier d'exemple de code ./demos/mqtt_broadcast_demo.c du Link SDK pour C afin d'implémenter la communication par diffusion pour un appareil.

Contexte

  • Pour plus d'informations sur la communication par diffusion, consultez la rubrique Présentation.

  • La fonctionnalité de communication par diffusion est disponible uniquement pour les appareils connectés à IoT Platform via MQTT. Pour plus d'informations sur le code relatif à la connexion MQTT, consultez la rubrique Présentation.

Procédure

  1. Initialisez un client.

    Pour plus d'informations, consultez l'étape Étape 1 : Initialisation.

  2. Configurez les fonctionnalités requises.

    Pour plus d'informations, consultez l'étape Étape 2 : Configuration des fonctionnalités.

  3. Établissez une connexion.

    Pour plus d'informations, consultez l'étape Étape 3 : Demande de connexion.

  4. Facultatif. Si vous souhaitez envoyer un message de diffusion à tous les appareils d'un produit, ces derniers doivent appeler la fonction aiot_mqtt_sub pour s'abonner à un topic spécifié.

    • Exemple de code :

          {
              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;
              }
          }
    • Paramètres :

      Paramètre

      Exemple

      Description

      sub_topic

      /broadcast/a18wP/test

      Topic auquel le message de diffusion est envoyé. Format : /broadcast/${productKey}/<custom field>. Paramètres dans cet exemple :

      • a18wP correspond à la ProductKey de l'appareil.

      • test indique un champ personnalisé.

      Pour plus d'informations sur les topics, consultez la rubrique Qu'est-ce qu'un topic ?.

  5. Recevez le message de diffusion.

    1. Une fois l'appareil connecté à IoT Platform, appelez l'opération PubBroadcast d'IoT Platform pour envoyer un message de diffusion à l'appareil.

      Important

      Nous vous recommandons d'envoyer au maximum un message de diffusion par minute afin d'éviter toute limitation de débit.

      Pour plus d'informations, consultez la rubrique Messages de diffusion.

    2. L'appareil appelle la fonction aiot_mqtt_recv pour recevoir le message de diffusion. Ensuite, une fonction de rappel est appelée pour exécuter les opérations requises.

      Dans cet exemple, la fonction de rappel demo_mqtt_default_recv_handler est utilisée.

    3. Définissez une fonction de rappel pour traiter le message de diffusion.

      Vérifiez si le message est un message de diffusion en vous basant sur le format du topic.

      • Si vous souhaitez envoyer le message de diffusion à tous les appareils en ligne d'un produit, ces derniers n'ont pas besoin de s'abonner à un topic de diffusion. Après réception du message de diffusion par chaque appareil, vérifiez s'il s'agit d'un message de diffusion en vous basant sur le format du topic de diffusion. Le format d'un topic de diffusion est /sys/${productKey}/${deviceName}/broadcast/request/${MessageId}.

      • Si vous souhaitez envoyer le message de diffusion à tous les appareils abonnés à un topic de diffusion personnalisé, ces derniers doivent s'abonner au topic. Le format d'un topic de diffusion personnalisé est /broadcast/${productKey}/<custom field>.

      Spécifiez la logique de traitement du rappel selon vos besoins métier. Dans cet exemple, le message de diffusion est affiché.

      void demo_mqtt_default_recv_handler(void *handle, const aiot_mqtt_recv_t *packet, void *userdata)
      {
          switch (packet->type) {
              ……
              ……
              case 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: Print the broadcast message */           
              }
              break;
      
              ……
              ……       
      
              default: {
      
              }
          }
      }
  6. Fermez la connexion.

    Pour plus d'informations, consultez l'étape Étape 8 : Déconnexion.

  7. Quittez le programme.

    Pour plus d'informations, consultez l'étape Étape 9 : Quitter le programme.

Étapes suivantes

  • Après avoir configuré le fichier d'exemple de code, compilez-le pour générer un fichier exécutable. Dans cet exemple, le fichier exécutable demos/mqtt-broadcast-demo est généré.

    Pour plus d'informations, consultez la section Compilation et exécution.

  • Pour plus d'informations sur le résultat de l'exécution, consultez la rubrique Affichage des journaux.