בדף הזה מוסבר איך לשלוט בסביבה במכשיר Cuttlefish באמצעות ה-API ל-REST או ממשק שורת הפקודה. לדוגמה, אפשר לשנות את אותות ה-Wi-Fi או לעדכן את מיקום ה-GPS של מכשיר Cuttlefish.
שירותים
הפקודה cvd env
מספקת את השירותים הבאים לצורך בקרה על סביבת Cuttlefish:
שירותים | תיאור |
---|---|
GnssGrpcProxy
|
קובעת את המדיניות של GNSS לתכונה 'מיקום גיאוגרפי' של Cuttlefish. |
OpenwrtControlService
|
קובע את המדיניות של Openwrt , ספק AP וירטואלי של Wi-Fi לתכונה Cuttlefish Wi-Fi. |
WmediumdService
|
קובע את התנהגות Wmediumd , סימולטור של אמצעי תקשורת אלחוטי לתכונת ה-Wi-Fi של Cuttlefish. |
CasimirControlService
|
קובע את ההתנהגות של Casimir , סימולטור למכשירי NFC חיצוניים. |
שליטה בסביבה באמצעות ה-API ל-REST
בקטע הזה מוסבר איך לשלוט בסביבה באמצעות API ל-Rest דרך נקודת הקצה של השירות <https://localhost:1443>
.
הצגת רשימה של השירותים או השיטות הזמינים
כדי לקבל רשימה של כל השירותים, שולחים בקשת GET
לכתובת ה-URL הבאה עם מזהה מכשיר.
https://localhost:1443/devices/DEVICE_ID/services
כדי לקבל רשימה של כל השיטות של שירות, שולחים בקשה מסוג GET
לכתובת ה-URL הבאה עם מזהה מכשיר ושם השירות.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
כדי לקבל מידע מפורט על method, כמו סוגי ההודעות של הבקשה או התגובה, שולחים בקשה מסוג GET
לכתובת ה-URL הבאה עם מזהה מכשיר, שם שירות ושם method.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
מידע מפורט על סוגי הבקשות והתשובות
כדי לקבל מידע מפורט על סוג של בקשה או הודעה בתגובה, שולחים בקשה מסוג GET
לכתובת ה-URL הבאה עם מזהה מכשיר, שם שירות וסוג הבקשה או ההודעה בתגובה. הפקודה הזו מדפיסה את כל השמות והסוגים של כל שדה בהודעה. לאחר מכן תוכלו להשתמש במידע הזה כדי לכתוב הודעת proto בפורמט JSON לשליחת בקשת RPC.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
שליחת בקשת RPC כדי לבצע שינויים בסביבה
כדי לשלוח בקשת RPC לקריאה לשיטה של שירות בפורמט JSON, שולחים בקשת POST
לכתובת ה-URL הבאה עם מזהה מכשיר, שם שירות ושם השיטה. צריך לכלול את ה-proto בפורמט JSON בגוף ההודעה.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
תרחיש שימוש לדוגמה
בדוגמה הבאה מוצג תרחיש לדוגמה לשימוש ב-API ל-REST כדי לשנות את עוצמת האות של ה-Wi-Fi באמצעות קריאה ל-SetTxpower
.
קובעים את שם השירות, שם השיטה ושם סוג הודעת הבקשה לשינוי עוצמת האות של ה-Wi-Fi.
כדי לקבל רשימה של כל השירותים הזמינים, שולחים בקשה מסוג
GET
לכתובת ה-URL הבאה.https://localhost:1443/devices/cvd-1/services
זוהי דוגמה לתגובה.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
כדי לקבל רשימה של שיטות ל-
WmediumdService
, שולחים בקשתGET
לכתובת ה-URL הבאה.https://localhost:1443/devices/cvd-1/services/WmediumdService
זוהי דוגמה לתגובה.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
כדי לקבל מידע על סוגי ההודעות של הבקשה והתגובה של השיטה
SetTxpower
, שולחים בקשה מסוגGET
לכתובת ה-URL הבאה.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
זוהי דוגמה לתגובה.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
כדי לקבל מידע מפורט על סוג הודעת הבקשה
wmediumdserver.SetTxpowerRequest
, שולחים בקשתGET
לכתובת ה-URL הבאה.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
זוהי דוגמה לתגובה.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
כדי לשנות את עוצמת האות של ה-Wi-Fi לרמה הרצויה, שולחים בקשת RPC לשירות
WmediumdService
. לשם כך, שולחים בקשתPOST
לכתובת ה-URL הזו עם גוף הבקשה הבא.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
זוהי דוגמה לתגובה.
{}
שליטה בסביבה באמצעות שורת הפקודה
בקטע הזה מתוארות פקודות המשנה הזמינות לפקודת ה-CLI cvd env
.
לפרטים נוספים, מדפיסים את הודעת העזרה באמצעות cvd help env
.
הצגת רשימה של השירותים או השיטות הזמינים
כדי לקבל רשימה של כל השירותים, משתמשים ב-cvd env ls
ללא ארגומנטים.
cvd env ls
כדי לקבל רשימה של כל השיטות של שירות מסוים, צריך לכלול את שם השירות כארגומנטים.
cvd env ls SERVICE_NAME
כדי לקבל מידע מפורט, כמו סוגי ההודעות של הבקשה או התשובה של שיטת API, צריך לכלול את שם השירות ואת שם השיטה.
cvd env ls SERVICE_NAME METHOD_NAME
מידע מפורט על סוגי הבקשות והתשובות
כדי לקבל מידע מפורט על סוג של בקשה או הודעה בתגובה, משתמשים בפקודה cvd env type
. הפקודה הזו מדפיסה את כל השמות והסוגים של כל שדה בהודעה. לאחר מכן תוכלו להשתמש במידע הזה כדי לכתוב הודעת proto בפורמט JSON לשליחת בקשת RPC.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
שליחת בקשת RPC כדי לבצע שינויים בסביבה
כדי לשלוח בקשת RPC לקריאה ל-method של שירות עם proto בפורמט 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 {}