Cette page explique comment contrôler l'environnement dans un appareil seiche à l'aide de l'API REST ou de l'interface de ligne de commande. Par exemple, vous pouvez modifier le signal Wi-Fi ou mettre à jour la position GPS de l'appareil.
Services
La commande cvd env
fournit les services suivants pour contrôler le
Environnement de seiches:
Services | Description |
---|---|
GnssGrpcProxy
|
Contrôle le GNSS pour la géolocalisation Cuttlefish . |
OpenwrtControlService
|
Contrôle Openwrt , un point d'accès Wi-Fi virtualisé
pour la fonctionnalité Wi-Fi de Cuttlefish. |
WmediumdService
|
Contrôler Wmediumd , un simulateur de moyenne sans fil
pour la fonctionnalité Wi-Fi de Cuttlefish. |
Contrôler l'environnement à l'aide de l'API REST
Cette section explique comment contrôler l'environnement à l'aide de l'API REST
via le point de terminaison du service <https://localhost:1443>
.
Lister les services ou méthodes disponibles
Pour obtenir la liste de tous les services, envoyez une requête GET
à l'URL suivante avec
un ID d'appareil.
https://localhost:1443/devices/DEVICE_ID/services
Pour obtenir la liste de toutes les méthodes appliquées à un service, envoyez une requête GET
au
l'URL suivante avec un ID d'appareil et le nom du service.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
Obtenir des informations détaillées sur une méthode, telles que la requête ou la réponse
envoyez une requête GET
à l'URL suivante avec un ID d'appareil :
un nom de service et le nom de la méthode.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Obtenir des informations détaillées sur les types de requêtes et de réponses
Pour obtenir des informations détaillées sur un type de requête ou de réponse, envoyez une GET
à l'URL suivante avec un ID d'appareil, un nom de service et le
de requête ou de réponse. Cela imprime tous les noms et types de chaque
dans le message. Vous pouvez ensuite utiliser ces informations pour rédiger
Message proto au format JSON pour l'envoi d'une requête RPC.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
Envoyer une requête RPC pour apporter des modifications à l'environnement
Pour envoyer une requête RPC afin d'appeler une méthode d'un service avec un proto au format JSON,
envoyez une requête POST
à l'URL suivante avec un ID d'appareil : un service
le nom et le nom de la méthode. Le fichier .proto au format JSON doit être inclus dans
.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Exemple de cas d'utilisation
Voici un exemple de cas d'utilisation de l'API REST permettant de modifier le réseau Wi-Fi
puissance du signal en appelant SetTxpower
.
Déterminer le nom du service, le nom de la méthode et le type de message de la requête nom permettant de modifier l'intensité du signal Wi-Fi.
Obtenez la liste de tous les services disponibles en envoyant une requête
GET
au l'URL suivante.https://localhost:1443/devices/cvd-1/services
Ceci est un exemple de réponse.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
Obtenir la liste des méthodes pour
WmediumdService
en envoyant une requêteGET
à l'URL suivante.https://localhost:1443/devices/cvd-1/services/WmediumdService
Ceci est un exemple de réponse.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
Permet d'obtenir des informations sur les types de messages de demande et de réponse pour le
SetTxpower
en envoyant une requêteGET
à l'URL suivante.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
Ceci est un exemple de réponse.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
Obtenir des informations détaillées sur la requête
wmediumdserver.SetTxpowerRequest
en envoyant une requêteGET
à l'URL suivante.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
Ceci est un exemple de réponse.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Envoyer une requête RPC au service
WmediumdService
pour modifier le Wi-Fi au niveau souhaité en envoyant une requêtePOST
à cette URL avec le corps de requête suivant.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
Ceci est un exemple de réponse.
{}
Contrôler l'environnement à l'aide de la ligne de commande
Cette section décrit les sous-commandes disponibles pour la commande CLI cvd env
.
Pour en savoir plus, imprimez le message d'aide avec cvd help env
.
Lister les services ou méthodes disponibles
Pour obtenir la liste de tous les services, utilisez cvd env ls
sans aucun argument.
cvd env ls
Pour obtenir la liste de toutes les méthodes d'un service, incluez le nom du service en tant qu'argument.
cvd env ls SERVICE_NAME
Pour obtenir des informations détaillées, comme les types de messages de demande ou de réponse d'une , incluez le nom du service et celui de la méthode.
cvd env ls SERVICE_NAME METHOD_NAME
Obtenir des informations détaillées sur les types de requêtes et de réponses
Pour obtenir des informations détaillées sur un type de message de requête ou de réponse, utilisez la méthode
cvd env type
. Cette commande imprime tous les noms et types de chaque champ
dans le message. Vous pouvez ensuite utiliser ces informations pour écrire un fichier
proto pour envoyer une requête RPC.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
Envoyer une requête RPC pour apporter des modifications à l'environnement
Pour envoyer une requête RPC afin d'appeler une méthode d'un service avec un proto au format JSON,
utilisez la commande cvd enc call
. Lorsque la requête RPC se termine, l'interface
affiche le message Rpc succeeded with OK status
et, le cas échéant, une réponse
message incluant les valeurs.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
Exemple de cas d'utilisation
Voici un exemple de cas d'utilisation de la commande CLI cvd env
permettant de modifier
l'intensité du signal Wi-Fi en appelant SetTxpower
.
Déterminer le nom du service, le nom de la méthode et le type de message de la requête nom permettant de modifier l'intensité du signal Wi-Fi.
Obtenez la liste de tous les services disponibles.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
Obtenez la liste des méthodes pour
WmediumdService
.cvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
Permet d'obtenir des informations sur les types de messages de demande et de réponse pour le
SetTxpower
.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
Obtenir des informations détaillées sur la requête
wmediumdserver.SetTxpowerRequest
type de message.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Envoyer une requête RPC au service
WmediumdService
pour modifier le Wi-Fi au niveau souhaité.cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}" (Omitted) Rpc succeeded with OK status {}