تصف هذه الصفحة طريقة التحكم في البيئة في جهاز Cuttlefish باستخدام واجهة برمجة تطبيقات REST أو واجهة سطر الأوامر. على سبيل المثال، يمكنك تعديل إشارة Wi-Fi أو تحديث موقع نظام تحديد المواقع العالمي (GPS) لجهاز الحبّار.
الخدمات
يوفر الأمر cvd env
الخدمات التالية للتحكم في بيئة الحبار:
الخدمات | الوصف |
---|---|
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 التالي مع رقم تعريف الجهاز واسم الخدمة ونوع رسالة الطلب أو الرد. يؤدي ذلك إلى طباعة جميع أسماء وأنواع
كل حقل في الرسالة. يمكنك بعد ذلك استخدام هذه المعلومات لكتابة رسالة
أوّلية بتنسيق JSON لإرسال طلب RPC.
https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type
إرسال طلب RPC لإجراء تغييرات على البيئة
لإرسال طلب RPC لاستدعاء طريقة لخدمة باستخدام ملف proto بتنسيق JSON،
أرسِل طلب POST
إلى عنوان URL التالي مع رقم تعريف الجهاز واسم الخدمة
واسم الطريقة. يجب تضمين النموذج الأوّلي بتنسيق 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) لاستدعاء طريقة لخدمة باستخدام نموذج أوّلي بتنسيق 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" ] }
الحصول على قائمة بالطرق المتاحة في
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; }
أرسِل طلبًا لاستدعاء إجراء عن بُعد إلى خدمة
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 {}