Sotong: Pengendalian lingkungan

Halaman ini menjelaskan cara mengontrol lingkungan di perangkat Sotong menggunakan REST API atau antarmuka baris perintah. Misalnya, Anda dapat mengubah sinyal Wi-Fi atau memperbarui lokasi GPS perangkat Sotong.

Jasa

Perintah cvd env menyediakan layanan berikut untuk mengendalikan lingkungan Sotong:

Jasa Keterangan
GnssGrpcProxy Mengontrol GNSS untuk fitur geolokasi Sotong.
OpenwrtControlService Mengontrol Openwrt , penyedia AP Wi-Fi tervirtualisasi untuk fitur Wi-Fi Cuttlefish.
WmediumdService Mengontrol Wmediumd , simulator media nirkabel untuk fitur Wi-Fi Cuttlefish.

Kontrol lingkungan menggunakan REST API

Bagian ini menjelaskan cara mengontrol lingkungan menggunakan Rest API melalui titik akhir layanan <https://localhost:1443> .

Buat daftar layanan atau metode yang tersedia

Untuk mendapatkan daftar semua layanan, kirim permintaan GET ke URL berikut dengan ID perangkat.

https://localhost:1443/devices/DEVICE_ID/services

Untuk mendapatkan daftar semua metode layanan, kirim permintaan GET ke URL berikut dengan ID perangkat dan nama layanan.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME

Untuk mendapatkan informasi mendetail tentang suatu metode, seperti jenis pesan permintaan atau respons, kirim permintaan GET ke URL berikut dengan ID perangkat, nama layanan, dan nama metode.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME

Dapatkan informasi mendetail tentang jenis permintaan dan respons

Untuk mendapatkan informasi detail tentang jenis pesan permintaan atau respons, kirim permintaan GET ke URL berikut dengan ID perangkat, nama layanan, dan jenis pesan permintaan atau respons. Ini mencetak semua nama dan tipe setiap bidang dalam pesan. Anda kemudian dapat menggunakan informasi ini untuk menulis pesan proto berformat JSON untuk mengirim permintaan RPC.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type

Kirim permintaan RPC untuk membuat perubahan pada lingkungan

Untuk mengirim permintaan RPC guna memanggil metode layanan dengan proto berformat JSON, kirim permintaan POST ke URL berikut dengan ID perangkat, nama layanan, dan nama metode. Proto berformat JSON harus disertakan dalam isi.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME

Contoh kasus penggunaan

Berikut ini contoh kasus penggunaan Rest API untuk mengubah kekuatan sinyal Wi-Fi dengan memanggil SetTxpower .

  1. Tentukan nama layanan, nama metode, dan nama jenis pesan permintaan untuk mengubah kekuatan sinyal Wi-Fi.

    1. Dapatkan daftar semua layanan yang tersedia dengan mengirimkan permintaan GET ke URL berikut.

      https://localhost:1443/devices/cvd-1/services
      

      Ini adalah contoh tanggapan.

      {"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
      
    2. Dapatkan daftar metode untuk WmediumdService dengan mengirimkan permintaan GET ke URL berikut.

      https://localhost:1443/devices/cvd-1/services/WmediumdService
      

      Ini adalah contoh tanggapan.

      {"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
      
    3. Dapatkan informasi tentang jenis pesan permintaan dan respons untuk metode SetTxpower dengan mengirimkan permintaan GET ke URL berikut.

      https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
      

      Ini adalah contoh tanggapan.

      {"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
      
  2. Dapatkan informasi detail untuk jenis pesan permintaan wmediumdserver.SetTxpowerRequest dengan mengirimkan permintaan GET ke URL berikut.

    https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
    

    Ini adalah contoh tanggapan.

    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. Kirim permintaan RPC ke layanan WmediumdService untuk mengubah kekuatan sinyal Wi-Fi ke tingkat yang diinginkan dengan mengirimkan permintaan POST ke URL ini dengan isi permintaan berikut.

    https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
    
    {"mac_address":"42:00:00:00:00:00", "tx_power":1}
    

    Ini adalah contoh tanggapan.

    {}
    

Kontrol lingkungan menggunakan baris perintah

Bagian ini menjelaskan sub-perintah yang tersedia untuk perintah cvd env CLI. Untuk detail lebih lanjut, cetak pesan bantuan menggunakan cvd help env .

Buat daftar layanan atau metode yang tersedia

Untuk mendapatkan daftar semua layanan, gunakan cvd env ls tanpa argumen apa pun.

cvd env ls

Untuk mendapatkan daftar semua metode layanan, sertakan nama layanan sebagai argumen.

cvd env ls SERVICE_NAME

Untuk mendapatkan informasi mendetail seperti jenis pesan permintaan atau respons suatu metode, sertakan nama layanan dan nama metode.

cvd env ls SERVICE_NAME METHOD_NAME

Dapatkan informasi mendetail tentang jenis permintaan dan respons

Untuk mendapatkan informasi detail tentang jenis pesan permintaan atau respons, gunakan perintah cvd env type . Perintah ini mencetak semua nama dan tipe setiap kolom dalam pesan. Anda kemudian dapat menggunakan informasi ini untuk menulis pesan proto berformat JSON untuk mengirim permintaan RPC.

cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME

Kirim permintaan RPC untuk membuat perubahan pada lingkungan

Untuk mengirim permintaan RPC guna memanggil metode layanan dengan proto berformat JSON, gunakan perintah cvd enc call . Ketika permintaan RPC berakhir, antarmuka mencetak pesan Rpc succeeded with OK status dan, jika tersedia, pesan respons termasuk nilai.

cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO

Contoh kasus penggunaan

Berikut ini adalah contoh kasus penggunaan perintah cvd env CLI untuk mengubah kekuatan sinyal Wi-Fi dengan memanggil SetTxpower .

  1. Tentukan nama layanan, nama metode, dan nama jenis pesan permintaan untuk mengubah kekuatan sinyal Wi-Fi.

    Dapatkan daftar semua layanan yang tersedia.

    cvd env ls
    (Omitted)
    {
      "services" :
      [
        "OpenwrtControlService",
        "EchoService",
        "GnssGrpcProxy",
        "WmediumdService"
      ]
    }
    

    Dapatkan daftar metode untuk WmediumdService .

    cvd env ls WmediumdService
    (Omitted)
    {
      "methods" :
      [
        "ListStations",
        "LoadConfig",
        "ReloadConfig",
        "SetCivicloc",
        "SetLci",
        "SetPosition",
        "SetSnr",
        "SetTxpower",
        "StartPcap",
        "StopPcap"
      ]
    }
    

    Dapatkan informasi tentang jenis pesan permintaan dan respons untuk metode SetTxpower .

    cvd env ls WmediumdService SetTxpower
    (Omitted)
    {
      "request_type" : "wmediumdserver.SetTxpowerRequest",
      "response_type" : "google.protobuf.Empty"
    }
    
  2. Dapatkan informasi detail untuk jenis pesan permintaan wmediumdserver.SetTxpowerRequest .

    cvd env type WmediumdService wmediumdserver.SetTxpowerRequest
    (Omitted)
    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. Kirim permintaan RPC ke layanan WmediumdService untuk mengubah kekuatan sinyal Wi-Fi ke tingkat yang diinginkan.

    cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}"
    (Omitted)
    Rpc succeeded with OK status
    {}