הדף הזה מתאר כיצד לשלוט בסביבה במכשיר דיונון באמצעות API ל-REST או ממשק שורת הפקודה (CLI). לדוגמה, אפשר לשנות את אות Wi-Fi או עדכן את מיקום ה-GPS של מכשיר הדיונון.
שירותים
הפקודה cvd env
מספקת את השירותים הבאים לשליטה
סביבת דיונון:
שירותים | תיאור |
---|---|
GnssGrpcProxy
|
שולטת ב-GNSS עבור המיקום הגיאוגרפי של הדיונון . |
OpenwrtControlService
|
שליטה ב-Openwrt , נקודת Wi-Fi וירטואלית
לתכונת ה-Wi-Fi של הדיונון. |
WmediumdService
|
שליטה ב-Wmediumd , סימולטור אלחוטי בגוון ביניים
לתכונת ה-Wi-Fi של הדיונון. |
שליטה בסביבה באמצעות API ל-REST
בקטע הזה מוסבר איך לשלוט בסביבה באמצעות אריזת API
דרך נקודת הקצה של השירות <https://localhost:1443>
.
פירוט השירותים או השיטות הזמינים
כדי לקבל רשימה של כל השירותים, צריך לשלוח בקשת GET
לכתובת ה-URL הבאה עם
מזהה מכשיר.
https://localhost:1443/devices/DEVICE_ID/services
כדי לקבל רשימה של כל השיטות בשירות מסוים, צריך לשלוח בקשת GET
אל
את כתובת ה-URL הבאה עם מזהה המכשיר ושם השירות.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
כדי לקבל מידע מפורט על שיטה מסוימת, כמו הבקשה או התשובה
סוגי ההודעות, צריך לשלוח בקשת GET
לכתובת ה-URL הבאה עם מזהה מכשיר
שם השירות ושם ה-method.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
קבלת מידע מפורט על סוגי הבקשות והתשובות
כדי לקבל מידע מפורט על סוג ההודעה של הבקשה או התשובה, יש לשלוח GET
לכתובת ה-URL הבאה ולציין את מזהה המכשיר, שם השירות ו
סוג ההודעה או התגובה לבקשה. הפעולה הזו מדפיסה את כל השמות והסוגים של כל אחד מהם
בהודעה. ואז תוכלו להשתמש במידע הזה כדי לכתוב
הודעת אב בפורמט JSON לשליחת בקשת RPC.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
שליחה של בקשת RPC לביצוע שינויים בסביבה
כדי לשלוח בקשת RPC לקריאה לשיטה של שירות עם Proto בפורמט JSON,
צריך לשלוח בקשת POST
לכתובת ה-URL הבאה עם מזהה מכשיר ושירות
ואת שם ה-method. ה-Proto בפורמט JSON חייב להיות כלול
גוף ההודעה.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
תרחיש לדוגמה
הדוגמה הבאה היא תרחיש לדוגמה לשימוש ב-Rest API לשינוי רשת ה-Wi-Fi
עוצמת האות באמצעות קריאה ל-SetTxpower
.
קובעים את שם השירות, שם ה-method וסוג הודעת הבקשה שם לשינוי עוצמת אות ה-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; }
יש לשלוח בקשת RPC לשירות
WmediumdService
כדי לשנות את ה-Wi-Fi את עוצמת האות לרמה הרצויה על ידי שליחת בקשתPOST
לכתובת ה-URL הזו עם גוף הבקשה הבא.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
כדי לקבל מידע מפורט, כמו הסוגים של הודעת הבקשה או התשובה של , צריך לכלול את שם השירות ואת שם ה-method.
cvd env ls SERVICE_NAME METHOD_NAME
קבלת מידע מפורט על סוגי הבקשות והתשובות
כדי לקבל מידע מפורט לגבי סוג ההודעה של בקשה או תשובה, צריך להשתמש
הפקודה cvd env type
. הפקודה הזו מדפיסה את כל השמות והסוגים של כל שדה
בהודעה. לאחר מכן אפשר להשתמש במידע הזה כדי לכתוב קובץ בפורמט JSON
הודעת פרוטו לשליחת בקשת RPC.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
שליחה של בקשת RPC לביצוע שינויים בסביבה
כדי לשלוח בקשת RPC לקריאה לשיטה של שירות עם 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
.
קובעים את שם השירות, שם ה-method וסוג הודעת הבקשה שם לשינוי עוצמת אות ה-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 {}