หน้านี้อธิบายวิธีควบคุมสภาพแวดล้อมในอุปกรณ์ 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
ดูข้อมูลโดยละเอียดเกี่ยวกับประเภทคำขอและการตอบกลับ
หากต้องการดูข้อมูลโดยละเอียดเกี่ยวกับประเภทข้อความคำขอหรือการตอบกลับ ให้ส่งคำขอไปยัง URL ต่อไปนี้พร้อมรหัสอุปกรณ์ ชื่อบริการ และประเภทข้อความคำขอหรือการตอบกลับGET
ซึ่งจะพิมพ์ชื่อและประเภทของแต่ละ
ฟิลด์ในข้อความ จากนั้นคุณจะใช้ข้อมูลนี้เพื่อเขียนข้อความ Proto ในรูปแบบ JSON สำหรับส่งคำขอ RPC ได้
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
ส่งคำขอ RPC เพื่อทำการเปลี่ยนแปลงสภาพแวดล้อม
หากต้องการส่งคำขอ RPC เพื่อเรียกใช้เมธอดของบริการด้วย Proto ที่จัดรูปแบบ JSON
ให้ส่งคำขอ POST
ไปยัง URL ต่อไปนี้พร้อมรหัสอุปกรณ์ ชื่อบริการ
และชื่อเมธอด ต้องรวม Proto ที่จัดรูปแบบ JSON ไว้ใน
เนื้อหา
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
ตัวอย่างกรณีการใช้งาน
ต่อไปนี้เป็นตัวอย่างกรณีการใช้งานของ 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
request message type โดยส่งคำขอ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
หากต้องการดูข้อมูลโดยละเอียด เช่น ประเภทข้อความคำขอหรือการตอบกลับของ เมธอด ให้ระบุชื่อบริการและชื่อเมธอด
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 เพื่อเรียกใช้เมธอดของบริการที่มี 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 {}