Bu sayfada, REST API veya komut satırı arayüzü kullanılarak Cuttlefish cihazlarındaki ortamın nasıl kontrol edileceği açıklanmaktadır. Örneğin, kablosuz bağlantı sinyalini değiştirebilir veya Mürekkep balığı cihazının GPS konumunu güncelleyebilirsiniz.
Hizmetler
cvd env
komutu, Cuttlefish ortamını kontrol etmek için aşağıdaki hizmetleri sağlar:
Hizmetler | Açıklama |
---|---|
GnssGrpcProxy
|
Mürekkep balığı coğrafi konum özelliği için GNSS'yi kontrol eder. |
OpenwrtControlService
|
Cuttlefish Wi-Fi özelliğinin sanallaştırılmış bir Kablosuz AP sağlayıcısı olan Openwrt 'i kontrol eder. |
WmediumdService
|
Mürekkep Balığı kablosuz özelliği için kablosuz ortam simülasyon aracı olan Wmediumd 'yi kontrol eder. |
CasimirControlService
|
Harici NFC cihazlar için bir simülatör olan Casimir 'yi kontrol eder. |
REST API'yi kullanarak ortamı kontrol etme
Bu bölümde, <https://localhost:1443>
hizmet uç noktası üzerinden Rest API'yi kullanarak ortamın nasıl kontrol edileceği açıklanmaktadır.
Kullanılabilir hizmetleri veya yöntemleri listeleme
Tüm hizmetlerin listesini almak için aşağıdaki URL'ye bir cihaz kimliğiyle GET
isteği gönderin.
https://localhost:1443/devices/DEVICE_ID/services
Bir hizmetin tüm yöntemlerinin listesini almak için aşağıdaki URL'ye cihaz kimliği ve hizmet adını içeren bir GET
isteği gönderin.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
Bir yöntem hakkında (istek veya yanıt mesajı türleri gibi) ayrıntılı bilgi almak için aşağıdaki URL'ye cihaz kimliği, hizmet adı ve yöntem adıyla birlikte bir GET
isteği gönderin.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
İstek ve yanıt türleri hakkında ayrıntılı bilgi edinme
Bir istek veya yanıt mesajı türüyle ilgili ayrıntılı bilgi edinmek için aşağıdaki URL'ye cihaz kimliği, hizmet adı ve istek veya yanıt mesajı türünü içeren bir GET
istek gönderin. Bu, iletideki her bir alanın tüm adlarını ve türlerini yazdırır. Daha sonra bu bilgiyi, RPC isteği göndermek amacıyla JSON biçimli bir proto mesajı yazmak için kullanabilirsiniz.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
Ortamda değişiklik yapmak için RPC isteği gönderme
JSON biçimli bir proto ile bir hizmetin yöntemini çağırmak için RPC isteği göndermek üzere aşağıdaki URL'ye cihaz kimliği, hizmet adı ve yöntem adını içeren bir POST
isteği gönderin. JSON biçimli proto, gövdeye dahil edilmelidir.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Kullanım alanı örneği
Aşağıda, SetTxpower
çağırarak kablosuz ağ sinyal gücünü değiştirmek için Rest API'nin örnek kullanım alanı verilmiştir.
Kablosuz sinyal gücünü değiştirmek için hizmet adını, yöntem adını ve istek mesajı türü adını belirleyin.
Aşağıdaki URL'ye
GET
isteği göndererek kullanılabilir tüm hizmetlerin listesini alın.https://localhost:1443/devices/cvd-1/services
Bu bir örnek yanıttır.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
Aşağıdaki URL'ye bir
GET
isteği göndererekWmediumdService
için yöntemlerin listesini alın.https://localhost:1443/devices/cvd-1/services/WmediumdService
Bu, örnek bir yanıttır.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
Aşağıdaki URL'ye
GET
isteği göndererekSetTxpower
yöntemi için istek ve yanıt mesajı türleri hakkında bilgi edinin.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
Bu bir örnek yanıttır.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
Aşağıdaki URL'ye
GET
isteği göndererekwmediumdserver.SetTxpowerRequest
istek mesajı türü hakkında ayrıntılı bilgi edinin.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
Bu, örnek bir yanıttır.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Aşağıdaki istek gövdesiyle birlikte bu URL'ye bir
POST
isteği göndererek kablosuz ağ sinyal gücünü istenen düzeye değiştirmek içinWmediumdService
hizmetine RPC isteği gönderin.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
Bu bir örnek yanıttır.
{}
Komut satırını kullanarak ortamı kontrol etme
Bu bölümde, cvd env
KSA komutu için kullanılabilen alt komutlar açıklanmaktadır.
Daha fazla bilgi için cvd help env
simgesini kullanarak yardım mesajını yazdırın.
Kullanılabilir hizmetleri veya yöntemleri listeleme
Tüm hizmetlerin listesini almak için cvd env ls
değerini herhangi bir bağımsız değişken olmadan kullanın.
cvd env ls
Bir hizmete ait tüm yöntemlerin listesini almak için hizmetin adını bağımsız değişken olarak ekleyin.
cvd env ls SERVICE_NAME
Bir yöntemin istek veya yanıt mesajı türleri gibi ayrıntılı bilgiler almak için hizmet adını ve yöntem adını ekleyin.
cvd env ls SERVICE_NAME METHOD_NAME
İstek ve yanıt türleriyle ilgili ayrıntılı bilgi edinin
Bir istek veya yanıt mesajı türüyle ilgili ayrıntılı bilgileri almak için cvd env type
komutunu kullanın. Bu komut, iletideki her alanın tüm adlarını ve türlerini yazdırır. Ardından, RPC isteği göndermek için JSON biçimli bir proto mesajı yazmak üzere bu bilgileri kullanabilirsiniz.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
Ortamda değişiklik yapmak için RPC isteği gönderme
JSON biçimli bir proto ile bir hizmetin yöntemini çağırmak için RPC isteği göndermek üzere cvd enc call
komutunu kullanın. RPC isteği sona erdiğinde arayüz, Rpc succeeded with OK status
mesajını ve varsa değerleri içeren bir yanıt mesajı yazdırır.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
Örnek kullanım alanı
Aşağıda, SetTxpower
çağrısı yaparak kablosuz sinyal gücünü değiştirmek için cvd env
KSA komutunun örnek bir kullanım alanı verilmiştir.
Kablosuz bağlantının sinyal gücünü değiştirmek için hizmet adını, yöntem adını ve istek mesajı türü adını belirleyin.
Kullanılabilir tüm hizmetlerin listesini alın.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
WmediumdService
için yöntemlerin listesini alın.cvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
SetTxpower
yöntemi için istek ve yanıt mesajı türleri hakkında bilgi edinin.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
wmediumdserver.SetTxpowerRequest
istek mesajı türüyle ilgili ayrıntılı bilgi edinin.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Kablosuz ağ sinyal gücünü istenen düzeye değiştirmek için
WmediumdService
hizmetine RPC isteği gönderin.cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}" (Omitted) Rpc succeeded with OK status {}