หน้านี้อธิบายวิธีควบคุมสภาพแวดล้อมในอุปกรณ์หมึกกระดอง โดยใช้ REST API หรืออินเทอร์เฟซบรรทัดคำสั่ง ตัวอย่างเช่น คุณสามารถแก้ไข สัญญาณ Wi-Fi หรืออัปเดตตำแหน่ง GPS ของอุปกรณ์ Cuttlefish
บริการ
คำสั่ง cvd env
ให้บริการต่อไปนี้สำหรับการควบคุม
สภาพแวดล้อมของหมึกกระดอง:
บริการ | คำอธิบาย |
---|---|
GnssGrpcProxy
|
ควบคุม GNSS สำหรับตำแหน่งทางภูมิศาสตร์ของ Cuttlefish |
OpenwrtControlService
|
ควบคุม Openwrt ซึ่งเป็น Wi-Fi AP เสมือนจริง
ผู้ให้บริการฟีเจอร์ Wi-Fi ของ Cuttlefish |
WmediumdService
|
ควบคุม Wmediumd เครื่องมือจำลองขนาดกลางแบบไร้สาย
สำหรับฟีเจอร์ Cuttlefish Wi-Fi |
ควบคุมสภาพแวดล้อมโดยใช้ REST API
ส่วนนี้จะอธิบายวิธีควบคุมสภาพแวดล้อมโดยใช้ 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
หากต้องการดูรายละเอียดวิธีการ เช่น คำขอหรือคำตอบ
ประเภทข้อความ ให้ส่งคำขอ 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 ต่อไปนี้พร้อมรหัสอุปกรณ์ซึ่งเป็นบริการ
และชื่อเมธอด 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
โดยส่งคำขอ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
คำสั่งนี้จะพิมพ์ชื่อและประเภททั้งหมดของแต่ละช่อง
ในข้อความ จากนั้นใช้ข้อมูลนี้เพื่อเขียนรูปแบบ JSON
ข้อความ Proto สำหรับการส่งคำขอ 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 ของคำสั่ง 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 {}