Trang này mô tả cách kiểm soát môi trường trong thiết bị Mực nang bằng API REST hoặc giao diện dòng lệnh. Ví dụ: bạn có thể sửa đổi tín hiệu Wi-Fi hoặc cập nhật vị trí GPS của thiết bị Mực nang.
Dịch vụ
Lệnh cvd env
cung cấp các dịch vụ sau để kiểm soát môi trường Mực nang:
Dịch vụ | Sự miêu tả |
---|---|
GnssGrpcProxy | Kiểm soát GNSS cho tính năng định vị địa lý của Mực nang. |
OpenwrtControlService | Kiểm soát Openwrt , nhà cung cấp AP Wi-Fi ảo hóa cho tính năng Wi-Fi Mực nang. |
WmediumdService | Điều khiển Wmediumd , một trình mô phỏng phương tiện không dây cho tính năng Wi-Fi của Mực nang. |
Kiểm soát môi trường bằng API REST
Phần này mô tả cách kiểm soát môi trường bằng Rest API thông qua điểm cuối dịch vụ <https://localhost:1443>
.
Liệt kê các dịch vụ hoặc phương pháp hiện có
Để có danh sách tất cả các dịch vụ, hãy gửi yêu cầu GET
tới URL sau kèm theo ID thiết bị.
https://localhost:1443/devices/DEVICE_ID/services
Để có danh sách tất cả các phương thức cho một dịch vụ, hãy gửi yêu cầu GET
tới URL sau cùng với ID thiết bị và tên dịch vụ.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME
Để nhận thông tin chi tiết về một phương thức, chẳng hạn như loại thông báo yêu cầu hoặc phản hồi, hãy gửi yêu cầu GET
tới URL sau cùng với ID thiết bị, tên dịch vụ và tên phương thức.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Nhận thông tin chi tiết về các loại yêu cầu và phản hồi
Để nhận thông tin chi tiết về loại thông báo yêu cầu hoặc phản hồi, hãy gửi yêu cầu GET
tới URL sau cùng với ID thiết bị, tên dịch vụ và loại thông báo yêu cầu hoặc phản hồi. Thao tác này sẽ in tất cả tên và loại của từng trường trong tin nhắn. Sau đó, bạn có thể sử dụng thông tin này để viết thông báo nguyên mẫu có định dạng JSON để gửi yêu cầu RPC.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
Gửi yêu cầu RPC để thực hiện thay đổi môi trường
Để gửi yêu cầu RPC để gọi một phương thức của dịch vụ có nguyên mẫu có định dạng JSON, hãy gửi yêu cầu POST
tới URL sau cùng với ID thiết bị, tên dịch vụ và tên phương thức. Proto có định dạng JSON phải được đưa vào nội dung.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME
Trường hợp sử dụng ví dụ
Sau đây là trường hợp sử dụng mẫu của Rest API để sửa đổi cường độ tín hiệu Wi-Fi bằng cách gọi SetTxpower
.
Xác định tên dịch vụ, tên phương thức và tên loại thông báo yêu cầu để sửa đổi cường độ tín hiệu Wi-Fi.
Nhận danh sách tất cả các dịch vụ có sẵn bằng cách gửi yêu cầu
GET
tới URL sau.https://localhost:1443/devices/cvd-1/services
Đây là một phản ứng ví dụ.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
Nhận danh sách các phương thức cho
WmediumdService
bằng cách gửi yêu cầuGET
tới URL sau.https://localhost:1443/devices/cvd-1/services/WmediumdService
Đây là một phản ứng ví dụ.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
Nhận thông tin về các loại thông báo yêu cầu và phản hồi cho phương thức
SetTxpower
bằng cách gửi yêu cầuGET
tới URL sau.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
Đây là một phản ứng ví dụ.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
Nhận thông tin chi tiết về loại thông báo yêu cầu
wmediumdserver.SetTxpowerRequest
bằng cách gửi yêu cầuGET
tới URL sau.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
Đây là một phản ứng ví dụ.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Gửi yêu cầu RPC tới dịch vụ
WmediumdService
để sửa đổi cường độ tín hiệu Wi-Fi đến mức mong muốn bằng cách gửi yêu cầuPOST
tới URL này với nội dung yêu cầu sau.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
Đây là một phản ứng ví dụ.
{}
Kiểm soát môi trường bằng dòng lệnh
Phần này mô tả các lệnh phụ có sẵn cho lệnh cvd env
CLI. Để biết thêm chi tiết, hãy in thông báo trợ giúp bằng cách sử dụng cvd help env
.
Liệt kê các dịch vụ hoặc phương pháp hiện có
Để có danh sách tất cả các dịch vụ, hãy sử dụng cvd env ls
mà không có bất kỳ đối số nào.
cvd env ls
Để có danh sách tất cả các phương thức cho một dịch vụ, hãy đưa tên của dịch vụ đó làm đối số.
cvd env ls SERVICE_NAME
Để nhận thông tin chi tiết như loại thông báo yêu cầu hoặc phản hồi của một phương thức, hãy bao gồm tên dịch vụ và tên phương thức.
cvd env ls SERVICE_NAME METHOD_NAME
Nhận thông tin chi tiết về các loại yêu cầu và phản hồi
Để nhận thông tin chi tiết về loại thông báo yêu cầu hoặc phản hồi, hãy sử dụng lệnh cvd env type
. Lệnh này in tất cả tên và loại của từng trường trong tin nhắn. Sau đó, bạn có thể sử dụng thông tin này để viết thông báo nguyên mẫu có định dạng JSON để gửi yêu cầu RPC.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
Gửi yêu cầu RPC để thực hiện thay đổi môi trường
Để gửi yêu cầu RPC để gọi một phương thức của dịch vụ có nguyên mẫu có định dạng JSON, hãy sử dụng lệnh cvd enc call
. Khi yêu cầu RPC kết thúc, giao diện sẽ in thông báo Rpc succeeded with OK status
và nếu có, một thông báo phản hồi bao gồm các giá trị.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
Trường hợp sử dụng ví dụ
Sau đây là trường hợp sử dụng mẫu của lệnh cvd env
CLI để sửa đổi cường độ tín hiệu Wi-Fi bằng cách gọi SetTxpower
.
Xác định tên dịch vụ, tên phương thức và tên loại thông báo yêu cầu để sửa đổi cường độ tín hiệu Wi-Fi.
Nhận danh sách tất cả các dịch vụ có sẵn.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
Nhận danh sách các phương thức cho
WmediumdService
.cvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
Nhận thông tin về các loại thông báo yêu cầu và phản hồi cho phương thức
SetTxpower
.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
Nhận thông tin chi tiết về loại thông báo yêu cầu
wmediumdserver.SetTxpowerRequest
.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Gửi yêu cầu RPC tới dịch vụ
WmediumdService
để sửa đổi cường độ tín hiệu Wi-Fi đến mức mong muốn.cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}" (Omitted) Rpc succeeded with OK status {}