Auf dieser Seite wird beschrieben, wie du die Umgebung in einem Sepia-Gerät steuern kannst. über die REST API oder die Befehlszeilenschnittstelle. Sie können beispielsweise die WLAN-Signal oder aktualisieren Sie den GPS-Standort des Cuttlefish-Geräts.
Dienste
Der Befehl cvd env
bietet die folgenden Dienste zur Steuerung des
Umgebung von Tintenfischen:
Dienste | Beschreibung |
---|---|
GnssGrpcProxy
|
Steuert GNSS für die Sepia-Geolokalisierung . |
OpenwrtControlService
|
Steuert Openwrt , einen virtualisierten WLAN-ZP
für die WLAN-Funktion von Cuttlefish. |
WmediumdService
|
Steuert Wmediumd , einen drahtlosen Mediensimulator
für die WLAN-Funktion von Sepia. |
Umgebung mit der REST API steuern
In diesem Abschnitt wird beschrieben, wie Sie die Umgebung mithilfe der Rest API steuern können.
über den Dienstendpunkt <https://localhost:1443>
.
Verfügbare Dienste oder Methoden auflisten
Wenn Sie eine Liste aller Dienste abrufen möchten, senden Sie eine GET
-Anfrage an die folgende URL mit
eine Geräte-ID.
https://localhost:1443/devices/DEVICE_ID/services
Um eine Liste aller Methoden für einen Dienst abzurufen, senden Sie eine GET
-Anfrage an den
folgenden URL mit einer Geräte-ID und dem Dienstnamen ein.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
Um detaillierte Informationen zu einer Methode zu erhalten, z. B. die Anfrage oder Antwort
senden Sie eine GET
-Anfrage mit einer Geräte-ID an folgende URL,
einen Dienstnamen und den Methodennamen.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Detaillierte Informationen zu Anfrage- und Antworttypen abrufen
Wenn Sie detaillierte Informationen zu einem Anfrage- oder Antwortnachrichtentyp erhalten möchten, senden Sie eine GET
.
an die folgende URL mit einer Geräte-ID, einem Dienstnamen und dem
Anfrage- oder Antwortnachricht. Damit werden alle Namen und Typen jedes
in der Nachricht. Anhand dieser Informationen können Sie dann eine
JSON-formatierte Proto-Nachricht zum Senden einer RPC-Anfrage.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
RPC-Anfrage senden, um Änderungen an der Umgebung vorzunehmen
So senden Sie eine RPC-Anfrage zum Aufrufen einer Dienstmethode mit einem JSON-formatierten Proto:
POST
-Anfrage mit einer Geräte-ID, einem Dienst, an die folgende URL senden:
und den Namen der Methode. Das JSON-formatierte Proto muss im
Textkörper.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Anwendungsbeispiel
Im Folgenden sehen Sie ein Anwendungsbeispiel für die REST API zum Ändern des WLANs.
indem du SetTxpower
anrufst.
Dienstname, Methodennamen und Typ der Anfragenachricht ermitteln Name zum Ändern der WLAN-Signalstärke.
Rufen Sie eine Liste aller verfügbaren Dienste ab, indem Sie eine
GET
-Anfrage an den folgenden URL.https://localhost:1443/devices/cvd-1/services
Dies ist eine Beispielantwort.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
Eine Liste der Methoden für
WmediumdService
durch Senden einerGET
-Anfrage abrufen an die folgende URL an.https://localhost:1443/devices/cvd-1/services/WmediumdService
Dies ist eine Beispielantwort.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
Informationen zu den Anfrage- und Antwortnachrichtentypen für die
SetTxpower
durch Senden einerGET
-Anfrage an die folgende URL.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
Dies ist eine Beispielantwort.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
Detaillierte Informationen zur
wmediumdserver.SetTxpowerRequest
-Anfrage abrufen Nachrichtentyp durch Senden einerGET
-Anfrage an die folgende URL.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
Dies ist eine Beispielantwort.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
RPC-Anfrage an den Dienst
WmediumdService
senden, um das WLAN zu ändern bis die gewünschte Signalstärke dadurch erreicht werden kann, dass einePOST
-Anfrage an diese URL gesendet wird. durch den folgenden Anfragetext.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
Dies ist eine Beispielantwort.
{}
Umgebung über die Befehlszeile steuern
In diesem Abschnitt werden die für den Befehl cvd env
verfügbaren Unterbefehle beschrieben.
Wenn Sie weitere Informationen benötigen, drucken Sie die Hilfenachricht mit cvd help env
.
Verfügbare Dienste oder Methoden auflisten
Verwenden Sie cvd env ls
ohne Argumente, um eine Liste aller Dienste abzurufen.
cvd env ls
Um eine Liste aller Methoden für einen Dienst zu erhalten, geben Sie den Namen der Dienst als Argument.
cvd env ls SERVICE_NAME
Um detaillierte Informationen wie die Anfrage- oder Antwortnachrichtentypen einer den Dienstnamen und den Methodennamen.
cvd env ls SERVICE_NAME METHOD_NAME
Detaillierte Informationen zu Anfrage- und Antworttypen abrufen
Um detaillierte Informationen zu einem Anfrage- oder Antwortnachrichtentyp zu erhalten, verwenden Sie den
cvd env type
-Befehl. Dieser Befehl gibt alle Namen und Typen jedes Felds aus
in der Nachricht. Anhand dieser Informationen können Sie dann eine JSON-formatierte
Proto-Nachricht zum Senden einer RPC-Anfrage.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
RPC-Anfrage senden, um Änderungen an der Umgebung vorzunehmen
So senden Sie eine RPC-Anfrage zum Aufrufen einer Dienstmethode mit einem JSON-formatierten Proto:
Verwenden Sie den Befehl cvd enc call
. Wenn die RPC-Anfrage beendet wird,
gibt die Nachricht Rpc succeeded with OK status
und, falls verfügbar, eine Antwort aus
Nachricht mit Werten.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
Anwendungsbeispiel
Im Folgenden finden Sie ein Anwendungsbeispiel für den Befehl cvd env
der Befehlszeile zum Ändern
WLAN-Signalstärke durch Aufrufen von SetTxpower
.
Dienstname, Methodennamen und Typ der Anfragenachricht ermitteln Name zum Ändern der WLAN-Signalstärke.
Rufen Sie eine Liste aller verfügbaren Dienste ab.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
Liste der Methoden für
WmediumdService
abrufencvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
Informationen zu den Anfrage- und Antwortnachrichtentypen für die
SetTxpower
-Methode.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
Detaillierte Informationen zur
wmediumdserver.SetTxpowerRequest
-Anfrage abrufen Nachrichtentyp.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
RPC-Anfrage an den Dienst
WmediumdService
senden, um das WLAN zu ändern der Signalstärke bis zum gewünschten Pegel anzupassen.cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}" (Omitted) Rpc succeeded with OK status {}