Tous les produits
Search
Centre de documentation

IoT Platform:Exemple

Dernière mise à jour :Aug 10, 2026

Utilisez l'API C du Link SDK pour implémenter la fonctionnalité RRPC (Revert-RPC) sur un appareil. Cet exemple s'appuie sur le fichier de code demos/mqtt_rrpc_demo.c.

Contexte

  • Pour en savoir plus sur la fonctionnalité RRPC, consultez la rubrique Présentation.

  • La fonctionnalité RRPC est réservée aux appareils connectés à IoT Platform via MQTT. Pour plus d'informations sur le code de connexion MQTT, consultez la rubrique Présentation.

Procédure

  1. Initialisez un client.

    Pour plus d'informations, consultez la section Étape 1 : Initialisation.

  2. Configurez les fonctionnalités requises.

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

  3. Établissez une connexion.

    Pour plus d'informations, consultez la section Étape 3 : Demande de connexion.

  4. Recevez un message RRPC.

    1. Une fois l'appareil connecté à IoT Platform, appelez l'opération RRpc pour envoyer une commande RRPC à l'appareil. Vous pouvez utiliser les rubriques suivantes :

    2. L'appareil appelle la fonction aiot_mqtt_recv pour recevoir le message RRPC. Une fonction de rappel traite ensuite le message.

      Cet exemple utilise une fonction de rappel nommée demo_mqtt_default_recv_handler.

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

      Important

      L'appareil doit envoyer une réponse dans un délai de 8 secondes après réception de la demande. Sinon, IoT Platform considère l'appel comme échoué, même si l'appareil a bien reçu la demande.

      Lors de la définition de la logique de rappel, tenez compte des points suivants :

      • Vérifiez si le message est un message RRPC selon le format du topic.

        • Si vous utilisez un topic spécifique à RRPC, l'appareil n'a pas besoin de s'y abonner.

          Format du topic : /sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId}. Pour plus d'informations, consultez la rubrique Utiliser des topics spécifiques à RRPC.

        • Si vous utilisez un topic personnalisé, l'appareil doit s'y abonner. Pour plus d'informations, consultez la section Étape 6 : Abonnement à un topic.

          Lorsque vous utilisez un topic personnalisé pour envoyer un message, celui-ci est transmis à l'appareil via le topic de demande RRPC correspondant. Format du topic de demande RRPC : /ext/rrpc/${messageId}/${topic}. Pour plus d'informations, consultez la rubrique Appeler un topic personnalisé (recommandé).

      • Définissez la logique de traitement du rappel : après réception du message RRPC, l'appareil traite la commande et envoie une réponse à IoT Platform.

      • Dans cet exemple, le message RRPC est imprimé et une réponse avec le paramètre payload défini sur pong est renvoyée à IoT Platform.

      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: Define the logic for processing business messages that are sent by the server. */  */
                  /* The following sample code shows a sample RRPC response. */        
                  {
                      char *payload = "pong";
                      char resp_topic[256];
                      if(packet->data.pub.topic_len > 256) {
                          break;
                      }
      
                      memset(resp_topic, 0, sizeof(resp_topic));
                      memcpy(resp_topic, packet->data.pub.topic, packet->data.pub.topic_len);
      
                      aiot_mqtt_pub(handle, resp_topic, (uint8_t *)payload, (uint32_t)strlen(payload), 0);
                  } 
              }
              break;
      
              ……
              ……       
      
              default: {
      
              }
          }
      }
  5. Fermez la connexion.

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

  6. Quittez le programme.

    Pour plus d'informations, consultez la section Étape 9 : Quitter le programme.

Étapes suivantes

  • Après avoir configuré le fichier de code d'exemple, compilez-le pour générer un fichier exécutable. Dans cet exemple, le fichier exécutable ./output/mqtt-rrpc-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 Afficher les journaux.