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 poniższe usługi do kontrolowania
Środowisko mątwy:
Usługi | Opis |
---|---|
GnssGrpcProxy
|
Kontroluje GNSS na potrzeby geolokalizacji mątwy funkcji. |
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. |
Sterowanie środowiskiem przy użyciu interfejsu API REST
W tej sekcji dowiesz się, jak sterować środowiskiem za pomocą interfejsu Rest API
przez punkt końcowy usługi <https://localhost:1443>
.
Wyświetl listę dostępnych usług lub metod
Aby uzyskać listę wszystkich usług, wyślij żądanie GET
na ten adres URL, podając:
identyfikator 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
na poniższy adres URL wraz z identyfikatorem urządzenia, nazwą usługi i atrybutem
żądania lub odpowiedzi. Spowoduje to wydrukowanie wszystkich nazw i typów każdego
w wiadomości. Możesz potem użyć tych informacji do stworzenia
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ład zastosowania
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 typ wiadomości żądania nazwa zmiany siły sygnału Wi-Fi.
Uzyskaj listę wszystkich dostępnych usług, wysyłając żądanie
GET
do ten adres 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
To jest przykładowa odpowiedź.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
Uzyskaj informacje o typach wiadomości żądań i odpowiedzi dotyczących
SetTxpower
, wysyłając żądanieGET
na ten adres URL.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
To jest przykładowa odpowiedź.
{"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}
To jest przykładowa odpowiedź.
{}
Sterowanie środowiskiem przy użyciu wiersza poleceń
W tej sekcji opisujemy polecenia podrzędne dostępne dla polecenia interfejsu wiersza poleceń cvd env
.
Aby dowiedzieć się więcej, wydrukuj wiadomość pomocy, używając pliku cvd help env
.
Wyświetl listę dostępnych usług lub metod
Aby wyświetlić listę wszystkich usług, użyj funkcji cvd env ls
bez żadnych argumentów.
cvd env ls
Aby uzyskać listę wszystkich metod dla danej usługi, podaj w niej nazwę metody jako argumentu.
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 powoduje wydrukowanie wszystkich nazw i typów każdego pola
w wiadomości. Możesz następnie użyć tych informacji do utworzenia pliku w formacie JSON
komunikat proto do wysłania żądania RPC.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
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,
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ład zastosowania
Poniżej znajduje się przykład użycia polecenia interfejsu wiersza poleceń cvd env
do modyfikowania
siłę sygnału Wi-Fi, dzwoniąc pod numer SetTxpower
.
Określ nazwę usługi, nazwę metody i typ wiadomości żądania nazwa 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" ] }
Uzyskaj informacje o typach wiadomości żądań i odpowiedzi dotyczących Metoda
SetTxpower
.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
Uzyskaj szczegółowe informacje o żądaniu
wmediumdserver.SetTxpowerRequest
typ wiadomości.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 {}