Halaman ini menjelaskan cara mengontrol lingkungan di perangkat Cuttlefish menggunakan REST API atau antarmuka command line. Misalnya, Anda dapat mengubah sinyal Wi-Fi atau memperbarui lokasi GPS perangkat Cuttlefish.
Layanan
Perintah cvd env
menyediakan layanan berikut untuk mengontrol
lingkungan Cuttlefish:
Layanan | Deskripsi |
---|---|
GnssGrpcProxy
|
Mengontrol GNSS untuk fitur geolokasi Cuttlefish. |
OpenwrtControlService
|
Mengontrol Openwrt , penyedia AP Wi-Fi virtual
untuk fitur Wi-Fi Cuttlefish. |
WmediumdService
|
Mengontrol Wmediumd , simulator sedang nirkabel
untuk fitur Wi-Fi Cuttlefish. |
CasimirControlService
|
Mengontrol Casimir , simulator untuk perangkat NFC eksternal. |
Mengontrol lingkungan menggunakan REST API
Bagian ini menjelaskan cara mengontrol lingkungan menggunakan Rest API
melalui endpoint layanan <https://localhost:1443>
.
Mencantumkan 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 untuk 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 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
Mendapatkan informasi mendetail mengenai jenis permintaan dan respons
Untuk mendapatkan informasi mendetail tentang jenis pesan permintaan atau respons, kirim permintaan GET
ke URL berikut dengan ID perangkat, nama layanan, dan
jenis pesan permintaan atau respons. Tindakan ini akan mencetak semua nama dan jenis setiap kolom dalam pesan. Selanjutnya, Anda 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
Mengirim 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. Protokol berformat JSON harus disertakan dalam
isi.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Contoh kasus penggunaan
Berikut adalah contoh kasus penggunaan Rest API untuk mengubah kekuatan sinyal Wi-Fi
dengan memanggil SetTxpower
.
Tentukan nama layanan, nama metode, dan nama jenis pesan permintaan untuk mengubah kekuatan sinyal Wi-Fi.
Dapatkan daftar semua layanan yang tersedia dengan mengirimkan permintaan
GET
ke URL berikut.https://localhost:1443/devices/cvd-1/services
Ini adalah contoh respons.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
Dapatkan daftar metode untuk
WmediumdService
dengan mengirimkan permintaanGET
ke URL berikut.https://localhost:1443/devices/cvd-1/services/WmediumdService
Ini adalah contoh respons.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
Dapatkan informasi tentang jenis pesan permintaan dan respons untuk metode
SetTxpower
dengan mengirimkan permintaanGET
ke URL berikut.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
Ini adalah contoh respons.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
Dapatkan informasi mendetail untuk jenis pesan permintaan
wmediumdserver.SetTxpowerRequest
dengan mengirimkan permintaanGET
ke URL berikut.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
Ini adalah contoh respons.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Kirim permintaan RPC ke layanan
WmediumdService
untuk mengubah kekuatan sinyal Wi-Fi ke tingkat yang diinginkan dengan mengirim permintaanPOST
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 respons.
{}
Mengontrol lingkungan menggunakan command line
Bagian ini menjelaskan subperintah yang tersedia untuk perintah CLI cvd env
.
Untuk detail lebih lanjut, cetak pesan bantuan menggunakan cvd help env
.
Mencantumkan 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 untuk layanan, sertakan nama layanan sebagai argumen.
cvd env ls SERVICE_NAME
Untuk mendapatkan informasi mendetail seperti jenis pesan permintaan atau respons dari metode, sertakan nama layanan dan nama metode.
cvd env ls SERVICE_NAME METHOD_NAME
Mendapatkan informasi mendetail mengenai jenis permintaan dan respons
Untuk mendapatkan informasi mendetail tentang jenis pesan permintaan atau respons, gunakan
perintah cvd env type
. Perintah ini mencetak semua nama dan jenis setiap kolom dalam pesan. Kemudian, Anda dapat menggunakan informasi ini untuk menulis pesan proto berformat JSON
untuk mengirim permintaan RPC.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
Mengirim permintaan RPC untuk membuat perubahan pada lingkungan
Untuk mengirim permintaan RPC guna memanggil metode layanan dengan proto berformat JSON,
gunakan perintah cvd enc call
. Saat permintaan RPC dihentikan, antarmuka
akan mencetak pesan Rpc succeeded with OK status
dan, jika tersedia, pesan
respons yang menyertakan nilai.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
Contoh kasus penggunaan
Berikut adalah contoh kasus penggunaan perintah CLI cvd env
untuk mengubah
kekuatan sinyal Wi-Fi dengan memanggil SetTxpower
.
Tentukan nama layanan, nama metode, dan nama jenis pesan permintaan untuk mengubah kekuatan sinyal Wi-Fi.
Mendapatkan 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" }
Dapatkan informasi mendetail untuk jenis pesan permintaan
wmediumdserver.SetTxpowerRequest
.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
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 {}