Ta strona opisuje, jak sterować środowiskiem na urządzeniu mątwy za pomocą interfejsu API typu REST lub interfejsu wiersza poleceń. Możesz na przykład zmienić Użyj sieci Wi-Fi lub zaktualizuj lokalizację GPS urządzenia Cuttlefish.
Usługi
Polecenie cvd env
udostępnia te usługi do kontrolowania środowiska Cuttlefish:
Usługi | Opis |
---|---|
GnssGrpcProxy
|
Element sterujący GNSS dla funkcji geolokalizacji Cuttlefish. |
OpenwrtControlService
|
Steruje urządzeniem Openwrt – zwirtualizowanym punktem dostępu Wi-Fi
operatora sieci Wi-Fi firmy Cuttlefish. |
WmediumdService
|
Steruje urządzeniem Wmediumd , symulatorem mediów bezprzewodowych
dla funkcji Wi-Fi dla mątwy. |
CasimirControlService
|
Kontroluje urządzenie Casimir , symulator zewnętrznej komunikacji NFC
urządzenia. |
Zarządzanie środowiskiem za pomocą interfejsu REST API
W tej sekcji opisaliśmy, jak zarządzać środowiskiem za pomocą interfejsu REST API za pomocą punktu końcowego usługi <https://localhost:1443>
.
Wyświetlanie listy dostępnych usług lub metod
Aby uzyskać listę wszystkich usług, wyślij żądanie GET
pod adresem URL z identyfikatorem urządzenia.
https://localhost:1443/devices/DEVICE_ID/services
Aby uzyskać listę wszystkich metod związanych z usługą, wyślij żądanie GET
do
poniższy adres URL z identyfikatorem urządzenia i nazwą usługi.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
Aby uzyskać szczegółowe informacje o metodzie, np. żądanie lub odpowiedź
typy wiadomości, wyślij żądanie GET
z identyfikatorem urządzenia na poniższy adres URL,
nazwę usługi i nazwę metody.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Uzyskaj szczegółowe informacje o typach żądań i odpowiedzi
Aby uzyskać szczegółowe informacje o typie żądania lub odpowiedzi, wyślij GET
żądanie pod adresem URL podanym poniżej, podając identyfikator urządzenia, nazwę usługi i typ żądania lub odpowiedzi. Spowoduje to wydrukowanie wszystkich nazw i typów każdego
w wiadomości. Następnie możesz użyć tych informacji, aby napisać
Komunikat protokołu w formacie JSON do wysłania żądania RPC.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
Wyślij żądanie RPC, aby wprowadzić zmiany w środowisku
Aby wysłać żądanie RPC w celu wywołania metody usługi z proto w formacie JSON:
wyślij żądanie POST
na poniższy adres URL z identyfikatorem urządzenia, usługą
nazwa i nazwa metody. Protokół w formacie JSON musi być zawarty w
.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Przykładowy przypadek użycia
Poniżej znajduje się przykład użycia interfejsu Rest API do modyfikowania sieci Wi-Fi
siłą sygnału połączenia: SetTxpower
.
Określ nazwę usługi, nazwę metody i nazwę typu wiadomości z prośbą o zmianę siły sygnału Wi-Fi.
Aby uzyskać listę wszystkich dostępnych usług, wyślij
GET
do tego adresu URL.https://localhost:1443/devices/cvd-1/services
To jest przykładowa odpowiedź.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
Wyślij żądanie
GET
, aby uzyskać listę metod działaniaWmediumdService
na następujący adres URL.https://localhost:1443/devices/cvd-1/services/WmediumdService
Oto przykład odpowiedzi.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
Aby uzyskać informacje o typach żądań i odpowiedzi dla metody
SetTxpower
, wyślij żądanieGET
pod tym adresem URL.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
Oto przykład odpowiedzi.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
Uzyskaj szczegółowe informacje o żądaniu
wmediumdserver.SetTxpowerRequest
przez wysłanie żądaniaGET
na ten adres URL.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
To jest przykładowa odpowiedź.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Wyślij żądanie RPC do usługi
WmediumdService
, aby zmodyfikować sieć Wi-Fi siłę sygnału do odpowiedniego poziomu, wysyłając na ten adres URL żądaniePOST
. o następującej treści żądania.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
Oto przykład odpowiedzi.
{}
Sterowanie środowiskiem przy użyciu wiersza poleceń
Ta sekcja opisuje podpolecenia dostępne w przypadku polecenia wiersza poleceń cvd env
.
Aby uzyskać więcej informacji, wydrukuj komunikat pomocy, klikając cvd help env
.
Wyświetl listę dostępnych usług lub metod
Aby uzyskać listę wszystkich usług, użyj polecenia cvd env ls
bez żadnych argumentów.
cvd env ls
Aby uzyskać listę wszystkich metod danej usługi, podaj jej nazwę jako argument.
cvd env ls SERVICE_NAME
Aby uzyskać szczegółowe informacje, takie jak typy żądań lub odpowiedzi w należy podać nazwę usługi i metody.
cvd env ls SERVICE_NAME METHOD_NAME
Uzyskaj szczegółowe informacje o typach żądań i odpowiedzi
Szczegółowe informacje o typie żądania lub odpowiedzi znajdziesz w
cvd env type
. To polecenie wypisuje wszystkie nazwy i typy pól w wiadomości. Następnie możesz użyć tych informacji, aby napisać wiadomość proto w formacie JSON na potrzeby wysłania żądania RPC.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
Wysyłanie żądania RPC w celu wprowadzenia zmian w środowisku
Aby wysłać żądanie RPC w celu wywołania metody usługi z proto w formacie JSON:
użyj polecenia cvd enc call
. Po zakończeniu żądania RPC interfejs
drukuje wiadomość Rpc succeeded with OK status
oraz, jeśli jest dostępna, odpowiedź
wraz z wartościami.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
Przykładowy przypadek użycia
Poniżej znajduje się przykład użycia polecenia interfejsu wiersza poleceń cvd env
do modyfikacji
siłę sygnału Wi-Fi, dzwoniąc pod numer SetTxpower
.
Określ nazwę usługi, nazwę metody i nazwę typu wiadomości z żądaniem zmiany siły sygnału Wi-Fi.
Zobacz listę wszystkich dostępnych usług.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
Uzyskaj listę metod dla funkcji
WmediumdService
.cvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
Dowiedz się więcej o typach żądań i odpowiedzi w metodach
SetTxpower
.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
Uzyskaj szczegółowe informacje o typie wiadomości
wmediumdserver.SetTxpowerRequest
.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Wyślij żądanie RPC do usługi
WmediumdService
, aby zmodyfikować sieć Wi-Fi do żądanego poziomu.cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}" (Omitted) Rpc succeeded with OK status {}