Mątwy: kontrola środowiska

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.

  1. Określ nazwę usługi, nazwę metody i typ wiadomości żądania nazwa zmiany siły sygnału Wi-Fi.

    1. 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"]}
      
    2. Wyślij żądanie GET, aby uzyskać listę metod działania WmediumdService 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"]}
      
    3. Uzyskaj informacje o typach wiadomości żądań i odpowiedzi dotyczących SetTxpower, wysyłając żądanie GET 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"}
      
  2. Uzyskaj szczegółowe informacje o żądaniu wmediumdserver.SetTxpowerRequest przez wysłanie żądania GET 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;
    }
    
  3. 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 żądanie POST. 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.

  1. 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"
    }
    
  2. 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;
    }
    
  3. 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
    {}