توضّح هذه الصفحة كيفية التحكّم في البيئة في جهاز Cuttlefish باستخدام واجهة برمجة التطبيقات REST API أو واجهة سطر الأوامر. على سبيل المثال، يمكنك تعديل إشارة Wi-Fi أو تعديل الموقع الجغرافي لجهاز Cuttlefish باستخدام نظام تحديد المواقع العالمي (GPS).
الخدمات
يقدّم الأمر cvd env الخدمات التالية للتحكّم في
بيئة Cuttlefish:
| الخدمات | الوصف |
|---|---|
GnssGrpcProxy
|
تتحكّم هذه السياسة في نظام تحديد المواقع العالمي (GNSS) لميزة تحديد الموقع الجغرافي باستخدام Cuttlefish. |
OpenwrtControlService
|
تتحكّم هذه السياسة في Openwrt، وهو مزوّد نقطة وصول Wi-Fi افتراضي
لميزة Wi-Fi في Cuttlefish. |
WmediumdService
|
التحكّم في Wmediumd، وهو محاكي وسيط لاسلكي
لميزة Wi-Fi في Cuttlefish |
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 التالي مع إدراج معرّف الجهاز واسم الخدمة و
نوع رسالة الطلب أو الاستجابة. يؤدي ذلك إلى طباعة جميع الأسماء وأنواع كل
حقل في الرسالة. يمكنك بعد ذلك استخدام هذه المعلومات لكتابة رسالة 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نوع الرسالة من خلال إرسال طلب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 لإجراء تغييرات على البيئة
لإرسال طلب RPC لاستدعاء طريقة لخدمة باستخدام ملف proto بتنسيق JSON،
استخدِم الأمر cvd enc call. عند انتهاء طلب RPC، تُطبع الواجهة الرسالة Rpc succeeded with OK status ورسالة استجابة، إن توفّرت، تتضمّن القيم.
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTOمثال على حالة الاستخدام
في ما يلي مثال على حالة استخدام الأمر cvd env من واجهة سطر الأوامر لتعديل
قوة إشارة Wi-Fi من خلال الاتصال بـ SetTxpower.
حدِّد اسم الخدمة واسم الطريقة ونوع رسالة الطلب اسمًا لتعديل قوة إشارة Wi-Fi.
الحصول على قائمة بجميع الخدمات المتاحة
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }الحصول على قائمة بالطرق المتاحة في
WmediumdServicecvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }الحصول على معلومات عن أنواع رسائل الطلب والاستجابة لطريقة
SetTxpowercvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }الحصول على معلومات تفصيلية لنوع
wmediumdserver.SetTxpowerRequestrequest الرسالةcvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }أرسِل طلبًا لاستدعاء إجراء عن بُعد إلى خدمة
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 {}