דיונון: בקרת סביבה

דף זה מתאר כיצד לשלוט בסביבה בהתקן Cuttlefish באמצעות REST API או ממשק שורת הפקודה. לדוגמה, אתה יכול לשנות את אות ה-Wi-Fi או לעדכן את מיקום ה-GPS של מכשיר הדיונון.

שירותים

הפקודה cvd env מספקת את השירותים הבאים לשליטה בסביבת הדיונון:

שירותים תיאור
GnssGrpcProxy שולט ב-GNSS עבור תכונת המיקום הגיאוגרפי של דיונון.
OpenwrtControlService שולט Openwrt , ספק Wi-Fi AP וירטואלי עבור תכונת ה-Cuttlefish Wi-Fi.
WmediumdService שולט Wmediumd , סימולטור בינוני אלחוטי עבור תכונת ה-Cuttlefish Wi-Fi.

שלוט בסביבה באמצעות 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 לכתובת ה-URL הבאה עם מזהה מכשיר, שם שירות ושם השיטה.

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 להתקשר לשיטה של ​​שירות עם פרוטו בפורמט JSON, שלח בקשת POST לכתובת ה-URL הבאה עם מזהה מכשיר, שם שירות ושם השיטה. הפרוטו בפורמט JSON חייב להיכלל בגוף.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME

מקרה שימוש לדוגמה

להלן מקרה שימוש לדוגמה של Rest API לשינוי עוצמת אות ה-Wi-Fi על ידי קריאה ל- SetTxpower .

  1. קבע את שם השירות, שם השיטה ושם סוג הודעת הבקשה לשינוי עוצמת אות ה-Wi-Fi.

    1. קבל רשימה של כל השירותים הזמינים על ידי שליחת בקשת GET לכתובת האתר הבאה.

      https://localhost:1443/devices/cvd-1/services
      

      זוהי תגובה לדוגמה.

      {"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
      
    2. קבל רשימה של שיטות עבור WmediumdService על ידי שליחת בקשת GET לכתובת האתר הבאה.

      https://localhost:1443/devices/cvd-1/services/WmediumdService
      

      זוהי תגובה לדוגמה.

      {"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
      
    3. קבל מידע על סוגי הודעות הבקשה והתשובה עבור שיטת SetTxpower על ידי שליחת בקשת GET לכתובת ה-URL הבאה.

      https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
      

      זוהי תגובה לדוגמה.

      {"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
      
  2. קבל מידע מפורט עבור סוג הודעת הבקשה wmediumdserver.SetTxpowerRequest על ידי שליחת בקשת GET לכתובת האתר הבאה.

    https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
    

    זוהי תגובה לדוגמה.

    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. שלח בקשת RPC לשירות WmediumdService כדי לשנות את עוצמת האות של Wi-Fi לרמה הרצויה על ידי שליחת בקשת POST לכתובת האתר הזו עם גוף הבקשה הבא.

    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 .

  1. קבע את שם השירות, שם השיטה ושם סוג הודעת הבקשה לשינוי עוצמת אות ה-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"
    }
    
  2. קבל מידע מפורט עבור סוג הודעת הבקשה wmediumdserver.SetTxpowerRequest .

    cvd env type WmediumdService wmediumdserver.SetTxpowerRequest
    (Omitted)
    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. שלח בקשת 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
    {}