Na tej stronie opisano, jak kontrolować środowisko na urządzeniu mątwy za pomocą interfejsu API REST lub interfejsu wiersza poleceń. Możesz na przykład zmodyfikować sygnał Wi-Fi lub zaktualizować lokalizację GPS urządzenia mątwy.
Usługi
Polecenie cvd env
udostępnia następujące usługi umożliwiające kontrolowanie środowiska mątwy:
Usługi | Opis |
---|---|
GnssGrpcProxy | Steruje GNSS dla funkcji geolokalizacji mątwy. |
OpenwrtControlService | Kontroluje Openwrt , zwirtualizowanego dostawcę punktów dostępu Wi-Fi dla funkcji Wi-Fi mątwy. |
WmediumdService | Kontroluje Wmediumd , bezprzewodowy symulator medium dla funkcji Wi-Fi mątwy. |
Kontroluj środowisko za pomocą API REST
W tej sekcji opisano, jak kontrolować środowisko za pomocą interfejsu API Rest za pośrednictwem punktu końcowego usługi <https://localhost:1443>
.
Lista dostępnych usług lub metod
Aby uzyskać listę wszystkich usług, wyślij żądanie GET
na następujący adres URL z identyfikatorem urządzenia.
https://localhost:1443/devices/DEVICE_ID/services
Aby uzyskać listę wszystkich metod usługi, wyślij żądanie GET
na następujący 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, takie jak typy komunikatów żądania lub odpowiedzi, wyślij żądanie GET
na następujący adres URL z identyfikatorem urządzenia, nazwą usługi i nazwą metody.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Uzyskaj szczegółowe informacje na temat typów żądań i odpowiedzi
Aby uzyskać szczegółowe informacje o typie żądania lub odpowiedzi, wyślij żądanie GET
na następujący adres URL, podając identyfikator urządzenia, nazwę usługi oraz typ żądania lub odpowiedzi. Spowoduje to wydrukowanie wszystkich nazw i typów każdego pola w wiadomości. Następnie możesz użyć tych informacji do napisania komunikatu proto w formacie JSON w celu 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 następujący adres URL z identyfikatorem urządzenia, nazwą usługi i nazwą metody. Proto w formacie JSON musi być zawarte w treści.
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 API Rest do modyfikowania siły sygnału Wi-Fi poprzez wywołanie SetTxpower
.
Określ nazwę usługi, nazwę metody i nazwę typu komunikatu żądania dotyczącego modyfikacji siły sygnału Wi-Fi.
Uzyskaj listę wszystkich dostępnych usług, wysyłając żądanie
GET
na następujący adres URL.https://localhost:1443/devices/cvd-1/services
To jest przykładowa odpowiedź.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
Uzyskaj listę metod dla
WmediumdService
, wysyłając żądanieGET
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 na temat typów komunikatów żądań i odpowiedzi dla metody
SetTxpower
, wysyłając żądanieGET
na następujący 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 na temat typu komunikatu żądania
wmediumdserver.SetTxpowerRequest
, wysyłając żądanieGET
na następujący 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ć siłę sygnału Wi-Fi do żądanego poziomu, wysyłając żądaniePOST
na ten adres URL z następującą 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ź.
{}
Kontroluj środowisko za pomocą wiersza poleceń
W tej sekcji opisano podkomendy dostępne dla komendy cvd env
CLI. Aby uzyskać więcej informacji, wydrukuj komunikat pomocy za pomocą cvd help env
.
Lista dostępnych usług lub metod
Aby uzyskać listę wszystkich usług, użyj cvd env ls
bez żadnych argumentów.
cvd env ls
Aby uzyskać listę wszystkich metod usługi, jako argument podaj nazwę usługi.
cvd env ls SERVICE_NAME
Aby uzyskać szczegółowe informacje, takie jak typy komunikatów żądania lub odpowiedzi metody, podaj nazwę usługi i nazwę metody.
cvd env ls SERVICE_NAME METHOD_NAME
Uzyskaj szczegółowe informacje na temat typów żądań i odpowiedzi
Aby uzyskać szczegółowe informacje o typie żądania lub odpowiedzi, użyj polecenia cvd env type
. To polecenie wyświetla wszystkie nazwy i typy każdego pola w wiadomości. Następnie możesz użyć tych informacji do napisania komunikatu proto w formacie JSON w celu 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 wypisuje komunikat Rpc succeeded with OK status
oraz, jeśli jest dostępny, komunikat odpowiedzi zawierający wartości.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
Przykładowy przypadek użycia
Poniżej znajduje się przykład użycia polecenia cvd env
CLI do modyfikowania siły sygnału Wi-Fi poprzez wywołanie SetTxpower
.
Określ nazwę usługi, nazwę metody i nazwę typu komunikatu żądania dotyczącego modyfikacji siły sygnału Wi-Fi.
Uzyskaj listę wszystkich dostępnych usług.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
Uzyskaj listę metod dla
WmediumdService
.cvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
Uzyskaj informacje na temat typów komunikatów żądań i odpowiedzi dla metody
SetTxpower
.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
Uzyskaj szczegółowe informacje na temat typu komunikatu żądania
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ć siłę sygnału 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 {}