หน้านี้อธิบายวิธีควบคุมสภาพแวดล้อมในอุปกรณ์ Cuttlefish โดยใช้ REST API หรืออินเทอร์เฟซบรรทัดคำสั่ง เช่น คุณอาจแก้ไขสัญญาณ Wi-Fi หรืออัปเดตตำแหน่ง GPS ของอุปกรณ์ Cuttlefish ได้
บริการ
คำสั่ง cvd env
มีบริการต่อไปนี้สำหรับควบคุมสภาพแวดล้อม Cuttlefish
บริการ | คำอธิบาย |
---|---|
GnssGrpcProxy
|
ควบคุม GNSS สำหรับฟีเจอร์ตำแหน่งทางภูมิศาสตร์ของ Cuttlefish |
OpenwrtControlService
|
ควบคุม Openwrt ซึ่งเป็นผู้ให้บริการ AP Wi-Fi เสมือนจริงสำหรับฟีเจอร์ Wi-Fi ของ Cuttlefish |
WmediumdService
|
ควบคุม Wmediumd ซึ่งเป็นเครื่องจำลองสื่อไร้สายสำหรับฟีเจอร์ Wi-Fi ของ Cuttlefish |
CasimirControlService
|
ควบคุม Casimir ซึ่งเป็นเครื่องจำลองสำหรับอุปกรณ์ NFC ภายนอก |
ควบคุมสภาพแวดล้อมโดยใช้ REST 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 ต่อไปนี้พร้อมรหัสอุปกรณ์ ชื่อบริการ และชื่อเมธอด
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 ต่อไปนี้พร้อมรหัสอุปกรณ์ ชื่อบริการ และชื่อเมธอด ต้องใส่โปรโตคอลรูปแบบ JSON ไว้ในเนื้อหา
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
ตัวอย่าง Use Case
ต่อไปนี้คือตัวอย่างกรณีการใช้งาน Rest API สำหรับแก้ไขความแรงของสัญญาณ 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; }
ส่งคำขอ 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}
นี่คือตัวอย่างการตอบกลับ
{}
ควบคุมสภาพแวดล้อมโดยใช้บรรทัดคำสั่ง
ส่วนนี้จะอธิบายคำสั่งย่อยที่ใช้ได้กับคำสั่ง CLI cvd env
หากต้องการรายละเอียดเพิ่มเติม ให้พิมพ์ข้อความความช่วยเหลือโดยใช้ cvd help env
แสดงรายการบริการหรือวิธีการที่ใช้ได้
หากต้องการดูรายการบริการทั้งหมด ให้ใช้ cvd env ls
โดยไม่มีอาร์กิวเมนต์
cvd env ls
หากต้องการดูรายการเมธอดทั้งหมดของบริการ ให้ใส่ชื่อบริการเป็นอาร์กิวเมนต์
cvd env ls SERVICE_NAME
หากต้องการดูรายละเอียด เช่น ประเภทข้อความคำขอหรือคำตอบของเมธอด ให้ใส่ชื่อบริการและชื่อเมธอด
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 เพื่อเรียกใช้เมธอดของบริการที่มีโปรโตคอลรูปแบบ JSON ให้ใช้คําสั่ง cvd enc call
เมื่อคําขอ RPC สิ้นสุดลง อินเทอร์เฟซจะพิมพ์ข้อความ Rpc succeeded with OK status
และข้อความตอบกลับพร้อมค่า (หากมี)
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
ตัวอย่าง Use Case
ต่อไปนี้คือตัวอย่าง Use Case ของคําสั่ง CLI cvd env
สําหรับการแก้ไขความแรงของสัญญาณ 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 {}