توضح هذه الصفحة كيفية التحكم في البيئة في جهاز حبّار باستخدام واجهة برمجة تطبيقات REST أو واجهة سطر الأوامر. على سبيل المثال، يمكنك تعديل إشارة Wi-Fi أو تعديل الموقع الجغرافي لجهاز Cuttlefish باستخدام نظام تحديد المواقع العالمي (GPS).
الخدمات
يقدّم الأمر cvd env
الخدمات التالية للتحكّم في
بيئة Cuttlefish:
الخدمات | الوصف |
---|---|
GnssGrpcProxy
|
تتحكّم هذه السياسة في نظام تحديد المواقع العالمي (GNSS) لميزة تحديد الموقع الجغرافي باستخدام Cuttlefish . |
OpenwrtControlService
|
تتحكّم هذه السياسة في Openwrt ، وهو نقطة وصول افتراضية عبر شبكة Wi-Fi.
لميزة Wi-Fi التي يقدمها تطبيق Cuttlefish. |
WmediumdService
|
تتحكّم هذه السياسة في Wmediumd ، وهو محاكي وسيط لاسلكي.
لميزة Wi-Fi يا حبَّار. |
CasimirControlService
|
تتحكّم هذه السياسة في Casimir ، وهو محاكي لأجهزة NFC
الخارجية. |
التحكّم في البيئة باستخدام واجهة برمجة التطبيقات REST
يوضّح هذا القسم طريقة التحكّم في البيئة باستخدام 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 التالي مع معرّف الجهاز واسم خدمة
نوع رسالة الطلب أو الرد. يطبع هذا جميع أسماء وأنواع كل
في الرسالة. يمكنك بعد ذلك استخدام هذه المعلومات لكتابة
رسالة أوّلية بتنسيق JSON لإرسال طلب استدعاء إجراء عن بُعد (RPC).
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
إرسال طلب استدعاء إجراء عن بُعد لإجراء تغييرات على البيئة
لإرسال طلب استدعاء إجراء عن بُعد (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
.
لمزيد من التفاصيل، اطبع رسالة المساعدة باستخدام 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 لاستدعاء طريقة لخدمة باستخدام ملف 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 {}