حبَّار: التحكم في البيئة

توضح هذه الصفحة كيفية التحكم في البيئة في جهاز حبّار باستخدام واجهة برمجة تطبيقات REST أو واجهة سطر الأوامر. على سبيل المثال، يمكنك تعديل إشارة Wi-Fi أو تحديث موقع نظام تحديد المواقع العالمي (GPS) لجهاز الحبار.

الخدمات

يوفّر الأمر cvd env الخدمات التالية للتحكم في بيئة أسماك الحبار:

الخدمات الوصف
GnssGrpcProxy تتحكّم هذه السياسة في GNSS في رصد الموقع الجغرافي لسمكة حبّار. الجديدة.
OpenwrtControlService تتحكّم هذه السياسة في Openwrt، وهو نقطة وصول افتراضية عبر شبكة Wi-Fi. لميزة Wi-Fi التي يقدمها تطبيق Cuttlefish.
WmediumdService تتحكّم هذه السياسة في Wmediumd، وهو محاكي وسيط لاسلكي. لميزة Wi-Fi يا حبَّار.

التحكم في البيئة باستخدام واجهة برمجة تطبيقات 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 التالي مع رقم تعريف الجهاز أو خدمة والاسم واسم الطريقة. يجب تضمين النموذج الأوّلي بتنسيق JSON في جسم.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/METHOD_NAME

مثال على حالة الاستخدام

في ما يلي مثال على حالة استخدام Rest API لتعديل إعدادات شبكة Wi-Fi. قوة الإشارة من خلال الاتصال بالرقم SetTxpower.

  1. تحديد اسم الخدمة واسم الطريقة ونوع رسالة الطلب لتعديل قوة إشارة Wi-Fi.

    1. يمكنك الحصول على قائمة بجميع الخدمات المتاحة من خلال إرسال طلب GET إلى التالي.

      https://localhost:1443/devices/cvd-1/services
      

      هذا مثال على إجابة.

      {"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
      
    2. يمكنك الحصول على قائمة بطرق WmediumdService من خلال إرسال طلب GET. إلى عنوان URL التالي.

      https://localhost:1443/devices/cvd-1/services/WmediumdService
      

      هذا مثال على إجابة.

      {"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
      
    3. الحصول على معلومات عن أنواع رسائل الطلب والردّ SetTxpower عن طريق إرسال طلب GET إلى عنوان URL التالي.

      https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
      

      هذا مثال على إجابة.

      {"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
      
  2. الاطّلاع على معلومات مفصّلة حول طلب "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;
    }
    
  3. يمكنك إرسال طلب استدعاء إجراء عن بُعد (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 لإرسال طلب استدعاء إجراء عن بُعد (RPC).

cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME

إرسال طلب استدعاء إجراء عن بُعد لإجراء تغييرات على البيئة

لإرسال طلب استدعاء إجراء عن بُعد (RPC) لاستدعاء طريقة لخدمة باستخدام نموذج أوّلي بتنسيق 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.

  1. تحديد اسم الخدمة واسم الطريقة ونوع رسالة الطلب لتعديل قوة إشارة 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"
    }
    
  2. الاطّلاع على معلومات مفصّلة حول طلب "wmediumdserver.SetTxpowerRequest" لنوع الرسالة.

    cvd env type WmediumdService wmediumdserver.SetTxpowerRequest
    (Omitted)
    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. يمكنك إرسال طلب استدعاء إجراء عن بُعد (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
    {}