Todos los productos
Search
Centro de documentos

IoT Platform:Ejemplo

Última actualización: Sep 03, 2026

Utilice la API de Link SDK for C para implementar la función revert-RPC (RRPC) en un dispositivo. En este ejemplo se usa el archivo de código de muestra demos/mqtt_rrpc_demo.c.

Contexto

  • Para obtener más información sobre la función RRPC, consulte Overview.

  • RRPC solo está disponible para dispositivos conectados a IoT Platform mediante MQTT. Para obtener más información sobre el código de conexión MQTT, consulte Overview.

Procedimiento

  1. Inicialice un cliente.

    Para obtener más información, consulte Step 1: Initialization.

  2. Configure las funciones obligatorias.

    Para obtener más información, consulte Step 2: Configure features.

  3. Establezca una conexión.

    Para obtener más información, consulte Step 3: Request a connection.

  4. Reciba un mensaje RRPC.

    1. Una vez que el dispositivo se conecta a IoT Platform, llame a la operación RRpc para enviar un comando RRPC al dispositivo. Los siguientes topics están disponibles:

    2. El dispositivo llama a la función aiot_mqtt_recv para recibir el mensaje RRPC. A continuación, una función callback procesa el mensaje.

      En este ejemplo, se utiliza una función callback llamada demo_mqtt_default_recv_handler.

    3. Defina una función callback para procesar el mensaje RRPC.

      Importante

      Después de que el dispositivo recibe la solicitud, debe enviar una respuesta dentro de los 8 segundos siguientes. De lo contrario, IoT Platform determina que la llamada falló, independientemente de si el dispositivo recibió la solicitud.

      Al definir la lógica del callback, tenga en cuenta los siguientes puntos:

      • Compruebe si el mensaje es un mensaje RRPC según el formato del topic.

        • Si utiliza un topic específico de RRPC, el dispositivo no necesita suscribirse a dicho topic.

          Formato del topic: /sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId}. Para obtener más información, consulte Use RRPC-specific topics.

        • Si utiliza un topic personalizado, el dispositivo debe suscribirse a él. Para obtener más información, consulte Step 6: Subscribe to a topic.

          Cuando se utiliza un topic personalizado para enviar un mensaje, este se entrega al dispositivo a través del topic de solicitud RRPC correspondiente. Formato del topic de solicitud RRPC: /ext/rrpc/${messageId}/${topic}. Para obtener más información, consulte Call a custom topic (Recommended).

      • Defina la lógica de procesamiento del callback: tras recibir el mensaje RRPC, el dispositivo procesa el comando y envía una respuesta a IoT Platform.

      • En este ejemplo, se imprime el mensaje RRPC y se devuelve una respuesta a IoT Platform con el payload establecido en pong.

      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. Cierre la conexión.

    Para obtener más información, consulte Step 8: Disconnect.

  6. Salga del programa.

    Para obtener más información, consulte Step 9: Exit the program.

Siguientes pasos

  • Una vez configurado el archivo de código de muestra, compílelo para generar un archivo ejecutable. En este ejemplo, se genera el archivo ejecutable ./output/mqtt-rrpc-demo.

    Para obtener más información, consulte Compile and run.

  • Para obtener más información sobre el resultado de la ejecución, consulte View logs.