All Products
Search
Document Center

IoT Platform:Contoh

Last Updated:Jul 06, 2025

Topik ini menjelaskan cara memanggil operasi API dari Link SDK untuk C guna mengimplementasikan fitur revert-RPC (RRPC) pada perangkat. Contoh ini menggunakan file kode bernama demos/mqtt_rrpc_demo.c.

Informasi latar belakang

  • Untuk informasi lebih lanjut tentang fitur RRPC, lihat Ikhtisar.

  • Fitur RRPC hanya tersedia untuk perangkat yang terhubung ke IoT Platform melalui Message Queuing Telemetry Transport (MQTT). Untuk detail lebih lanjut tentang koneksi MQTT, lihat Ikhtisar.

Prosedur

  1. Inisialisasi klien.

    Untuk informasi lebih lanjut, lihat Langkah 1: Inisialisasi Klien.

  2. Konfigurasikan fitur yang diperlukan.

    Untuk informasi lebih lanjut, lihat Langkah 2: Konfigurasi Fitur.

  3. Buat koneksi.

    Untuk informasi lebih lanjut, lihat Langkah 3: Buat Koneksi.

  4. Terima pesan RRPC.

    1. Setelah perangkat terhubung ke IoT Platform, Anda dapat memanggil operasi RRpc dari IoT Platform untuk mengirimkan perintah RRPC ke perangkat. Topik berikut tersedia:

    2. Perangkat memanggil fungsi aiot_mqtt_recv untuk menerima pesan RRPC. Kemudian, fungsi callback dipanggil untuk memproses pesan tersebut.

      Dalam contoh ini, digunakan fungsi callback bernama demo_mqtt_default_recv_handler.

    3. Tentukan fungsi callback untuk memproses pesan RRPC.

      Penting

      Setelah perangkat menerima permintaan, Anda harus mengirimkan respons dalam waktu 8 detik. Jika tidak, IoT Platform akan menentukan bahwa panggilan gagal tanpa memperhatikan apakah perangkat menerima permintaan tersebut atau tidak.

      Saat menentukan logika pemrosesan callback, perhatikan hal-hal berikut:

      • Periksa apakah pesan tersebut adalah pesan RRPC berdasarkan format topik.

        • Jika Anda menggunakan topik spesifik RRPC, perangkat tidak perlu berlangganan topik tersebut.

          Format topik: /sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId}. Untuk informasi lebih lanjut, lihat Gunakan topik spesifik RRPC.

        • Jika Anda menggunakan topik kustom, perangkat harus berlangganan topik tersebut. Untuk informasi lebih lanjut tentang cara berlangganan topik, lihat Langkah 6: Berlangganan Topik.

          Setelah Anda menggunakan topik kustom untuk mengirim pesan, pesan tersebut dikirim ke perangkat melalui topik permintaan RRPC yang sesuai. Format topik permintaan RRPC: /ext/rrpc/${messageId}/${topic}. Untuk informasi lebih lanjut, lihat Gunakan topik kustom (disarankan).

      • Tentukan logika pemrosesan callback: Setelah perangkat menerima pesan RRPC, perangkat memproses perintah dan mengirimkan respons ke IoT Platform.

      • Dalam contoh ini, pesan RRPC dicetak, dan respons dengan parameter payload diatur ke pong dikembalikan ke 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: Tentukan logika untuk memproses pesan bisnis yang dikirim oleh server. */  
                  /* Kode contoh berikut menunjukkan contoh respons RRPC. */        
                  {
                      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. Tutup koneksi.

    Untuk informasi lebih lanjut, lihat Langkah 8: Putuskan Koneksi Perangkat dari IoT Platform.

  6. Keluar dari program.

    Untuk informasi lebih lanjut, lihat Langkah 9: Keluar dari Program.

Apa yang harus dilakukan selanjutnya

  • Setelah mengonfigurasi file kode contoh, kompilasi file tersebut untuk menghasilkan file yang dapat dieksekusi. Dalam contoh ini, file yang dapat dieksekusi ./output/mqtt-rrpc-demo dihasilkan.

    Untuk informasi lebih lanjut, lihat Siapkan Lingkungan.

  • Untuk informasi lebih lanjut tentang hasil eksekusi, lihat Lihat Log.