در این صفحه نحوه کنترل محیط در دستگاه Cuttlefish با استفاده از REST API یا رابط خط فرمان توضیح داده شده است. به عنوان مثال، می توانید سیگنال Wi-Fi را تغییر دهید یا مکان GPS دستگاه Cuttlefish را به روز کنید.
خدمات
دستور cvd env
خدمات زیر را برای کنترل محیط Cuttlefish ارائه می دهد:
خدمات | توضیحات |
---|---|
GnssGrpcProxy | GNSS را برای ویژگی موقعیت جغرافیایی ساقه ماهی کنترل می کند. |
OpenwrtControlService | Openwrt کنترل میکند، یک ارائهدهنده AP مجازی Wi-Fi برای ویژگی Cuttlefish Wi-Fi. |
WmediumdService | Wmediumd کنترل می کند، یک شبیه ساز رسانه بی سیم برای ویژگی Wi-Fi Cuttlefish. |
CasimirControlService | Casimir کنترل می کند، شبیه ساز دستگاه های NFC خارجی. |
محیط را با استفاده از REST API کنترل کنید
این بخش نحوه کنترل محیط را با استفاده از Rest API از طریق <https://localhost:1443>
پایان سرویس توضیح می دهد.
خدمات یا روش های موجود را فهرست کنید
برای دریافت لیستی از تمام خدمات، یک درخواست GET
با یک شناسه دستگاه به آدرس اینترنتی زیر ارسال کنید.
https://localhost:1443/devices/DEVICE_ID/services
برای دریافت لیستی از همه روشهای یک سرویس، یک درخواست GET
با یک شناسه دستگاه و نام سرویس به آدرس اینترنتی زیر ارسال کنید.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
برای دریافت اطلاعات دقیق برای یک روش، مانند انواع پیام درخواست یا پاسخ، یک درخواست GET
با شناسه دستگاه، نام سرویس و نام روش به آدرس اینترنتی زیر ارسال کنید.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
اطلاعات دقیق در مورد انواع درخواست و پاسخ دریافت کنید
برای دریافت اطلاعات دقیق یک درخواست یا نوع پیام پاسخ، یک درخواست GET
با شناسه دستگاه، نام سرویس و نوع پیام درخواست یا پاسخ به آدرس اینترنتی زیر ارسال کنید. این همه نام ها و انواع هر فیلد در پیام را چاپ می کند. سپس می توانید از این اطلاعات برای نوشتن یک پیام پروتو با فرمت JSON برای ارسال درخواست RPC استفاده کنید.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
درخواست RPC را برای ایجاد تغییرات در محیط ارسال کنید
برای ارسال درخواست RPC برای فراخوانی روشی از سرویس با پروتو فرمت JSON، یک درخواست POST
را با شناسه دستگاه، نام سرویس و نام روش به آدرس اینترنتی زیر ارسال کنید. پروتو با فرمت JSON باید در بدنه گنجانده شود.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
مثال استفاده
در زیر نمونهای از موارد استفاده Rest API برای تغییر قدرت سیگنال Wi-Fi با فراخوانی SetTxpower
است.
نام سرویس، نام روش و نام نوع پیام درخواست را برای تغییر قدرت سیگنال Wi-Fi تعیین کنید.
با ارسال یک درخواست
GET
به آدرس اینترنتی زیر، فهرستی از تمام خدمات موجود را دریافت کنید.https://localhost:1443/devices/cvd-1/services
این یک نمونه پاسخ است.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
با ارسال یک درخواست
GET
به URL زیر، فهرستی از روشها را برایWmediumdService
دریافت کنید.https://localhost:1443/devices/cvd-1/services/WmediumdService
این یک نمونه پاسخ است.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
با ارسال یک درخواست
GET
به آدرس اینترنتی زیر، اطلاعات مربوط به انواع پیام درخواست و پاسخ را برای روشSetTxpower
دریافت کنید.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
این یک نمونه پاسخ است.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
با ارسال یک درخواست
GET
به URL زیر، اطلاعات دقیقی را برایwmediumdserver.SetTxpowerRequest
نوع پیام درخواست دریافت کنید.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
این یک نمونه پاسخ است.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
یک درخواست RPC به سرویس
WmediumdService
ارسال کنید تا با ارسال یک درخواستPOST
به این URL با بدنه درخواست زیر، قدرت سیگنال Wi-Fi را به سطح مورد نظر تغییر دهید.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
این یک نمونه پاسخ است.
{}
با استفاده از خط فرمان محیط را کنترل کنید
این بخش دستورات فرعی موجود برای دستور cvd env
CLI را توضیح می دهد. برای جزئیات بیشتر، پیام راهنما را با استفاده از cvd help env
چاپ کنید.
خدمات یا روش های موجود را فهرست کنید
برای دریافت لیستی از تمامی سرویس ها، cvd env ls
بدون هیچ استدلالی استفاده کنید.
cvd env ls
برای دریافت لیستی از تمام متدهای یک سرویس، نام سرویس را به عنوان آرگومان وارد کنید.
cvd env ls SERVICE_NAME
برای دریافت اطلاعات دقیق مانند انواع پیام درخواست یا پاسخ یک روش، نام سرویس و نام روش را وارد کنید.
cvd env ls SERVICE_NAME METHOD_NAME
اطلاعات دقیق در مورد انواع درخواست و پاسخ دریافت کنید
برای دریافت اطلاعات دقیق از نوع پیام درخواست یا پاسخ، از دستور cvd env type
استفاده کنید. این دستور همه نام ها و انواع هر فیلد را در پیام چاپ می کند. سپس می توانید از این اطلاعات برای نوشتن یک پیام پروتو با فرمت JSON برای ارسال درخواست RPC استفاده کنید.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
درخواست RPC را برای ایجاد تغییرات در محیط ارسال کنید
برای ارسال درخواست RPC برای فراخوانی روشی از یک سرویس با پروتو فرمت JSON، از دستور cvd enc call
استفاده کنید. هنگامی که درخواست RPC خاتمه می یابد، رابط پیام Rpc succeeded with OK status
و در صورت وجود، یک پیام پاسخ شامل مقادیر را چاپ می کند.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
مثال استفاده
در زیر نمونهای از دستور cvd env
CLI برای تغییر قدرت سیگنال Wi-Fi با فراخوانی SetTxpower
است.
نام سرویس، نام روش و نام نوع پیام درخواست را برای تغییر قدرت سیگنال Wi-Fi تعیین کنید.
لیستی از تمام خدمات موجود را دریافت کنید.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
لیستی از روش ها را برای
WmediumdService
دریافت کنید.cvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
اطلاعاتی در مورد انواع پیام درخواست و پاسخ برای روش
SetTxpower
دریافت کنید.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
اطلاعات دقیق برای
wmediumdserver.SetTxpowerRequest
نوع پیام درخواست دریافت کنید.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
درخواست RPC را به سرویس
WmediumdService
ارسال کنید تا قدرت سیگنال Wi-Fi را به سطح مورد نظر تغییر دهید.cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}" (Omitted) Rpc succeeded with OK status {}