कटलफ़िश: एनवायरमेंट कंट्रोल

इस पेज पर, REST API या कमांड लाइन इंटरफ़ेस का इस्तेमाल करके, Cuttlefish डिवाइस में एनवायरमेंट को कंट्रोल करने का तरीका बताया गया है. उदाहरण के लिए, Cuttlefish डिवाइस के वाई-फ़ाई सिग्नल में बदलाव किया जा सकता है या जीपीएस की जगह की जानकारी अपडेट की जा सकती है.

सेवाएं

cvd env कमांड, Cuttlefish एनवायरमेंट को कंट्रोल करने के लिए ये सेवाएं उपलब्ध कराती है:

सेवाएं ब्यौरा
GnssGrpcProxy यह कुकी, Cuttlefish की जियोलोकेशन सुविधा के लिए GNSS को कंट्रोल करती है.
OpenwrtControlService यह Openwrt को कंट्रोल करता है. यह Cuttlefish की वाई-फ़ाई सुविधा के लिए, वर्चुअलाइज़ किया गया वाई-फ़ाई एपी प्रोवाइडर है.
WmediumdService यह कुकी, Cuttlefish की वाई-फ़ाई सुविधा के लिए वायरलेस मीडियम सिम्युलेटर Wmediumd को कंट्रोल करती है.
CasimirControlService यह कुकी, Casimir को कंट्रोल करती है. यह बाहरी एनएफ़सी डिवाइसों के लिए एक सिम्युलेटर है.

REST API का इस्तेमाल करके एनवायरमेंट को कंट्रोल करना

इस सेक्शन में, <https://localhost:1443> सर्विस एंडपॉइंट के ज़रिए Rest API का इस्तेमाल करके, एनवायरमेंट को कंट्रोल करने का तरीका बताया गया है.

उपलब्ध सेवाओं या तरीकों की सूची बनाना

सभी सेवाओं की सूची पाने के लिए, डिवाइस आईडी के साथ नीचे दिए गए यूआरएल पर GET अनुरोध भेजें.

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

किसी सेवा के लिए उपलब्ध सभी तरीकों की सूची पाने के लिए, डिवाइस आईडी और सेवा के नाम के साथ इस यूआरएल पर GET अनुरोध भेजें.

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

किसी तरीके के बारे में ज़्यादा जानकारी पाने के लिए, जैसे कि अनुरोध या जवाब के मैसेज टाइप, डिवाइस आईडी, सेवा का नाम, और तरीके के नाम के साथ, नीचे दिए गए यूआरएल पर GET अनुरोध भेजें.

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

अनुरोध और जवाब के टाइप के बारे में पूरी जानकारी पाएं

अनुरोध या जवाब के मैसेज टाइप के बारे में ज़्यादा जानकारी पाने के लिए, डिवाइस आईडी, सेवा का नाम, और अनुरोध या जवाब के मैसेज टाइप के साथ, इस यूआरएल पर GET अनुरोध भेजें. इससे मैसेज में मौजूद हर फ़ील्ड का नाम और टाइप प्रिंट होता है. इसके बाद, इस जानकारी का इस्तेमाल करके, आरपीसी अनुरोध भेजने के लिए JSON फ़ॉर्मैट में प्रोटो मैसेज लिखा जा सकता है.

https://localhost:1443/devices/DEVICE_ID/services/SERVICE_NAME/REQUEST_OR_RESPONSE_TYPE_NAME/type

एनवायरमेंट में बदलाव करने के लिए, आरपीसी अनुरोध भेजना

JSON फ़ॉर्मैट वाले प्रोटो का इस्तेमाल करके, किसी सेवा के तरीके को कॉल करने के लिए आरपीसी अनुरोध भेजें. इसके लिए, डिवाइस आईडी, सेवा का नाम, और तरीके के नाम के साथ, इस यूआरएल पर POST अनुरोध भेजें. JSON फ़ॉर्मैट वाला प्रोटो, बॉडी में शामिल होना चाहिए.

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

इस्तेमाल का उदाहरण

यहां SetTxpower को कॉल करके, वाई-फ़ाई सिग्नल की मज़बूती में बदलाव करने के लिए, Rest API के इस्तेमाल का उदाहरण दिया गया है.

  1. वाई-फ़ाई सिग्नल की मज़बूती में बदलाव करने के लिए, सेवा का नाम, तरीका, और अनुरोध मैसेज टाइप का नाम तय करें.

    1. नीचे दिए गए यूआरएल पर GET अनुरोध भेजकर, उपलब्ध सभी सेवाओं की सूची पाएं.

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

      यह जवाब का एक उदाहरण है.

      {"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
      
    2. WmediumdService के लिए उपलब्ध तरीकों की सूची पाने के लिए, इस यूआरएल पर GET अनुरोध भेजें.

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

      यह जवाब का एक उदाहरण है.

      {"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
      
    3. SetTxpower तरीके के लिए, अनुरोध और जवाब के मैसेज टाइप के बारे में जानकारी पाएं. इसके लिए, यहां दिए गए यूआरएल पर GET अनुरोध भेजें.

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

      यह जवाब का एक उदाहरण है.

      {"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
      
  2. wmediumdserver.SetTxpowerRequest अनुरोध मैसेज टाइप के बारे में ज़्यादा जानकारी पाने के लिए, नीचे दिए गए यूआरएल पर wmediumdserver.SetTxpowerRequest अनुरोध भेजें.GET

    https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
    

    यह जवाब का एक उदाहरण है.

    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. WmediumdService सेवा को आरपीसी अनुरोध भेजकर, वाई-फ़ाई सिग्नल की स्ट्रेंथ को अपनी ज़रूरत के हिसाब से बदलें. इसके लिए, इस यूआरएल पर POST अनुरोध भेजें. अनुरोध के मुख्य हिस्से में यह जानकारी शामिल करें.

    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 कमांड का इस्तेमाल करें. इस कमांड से, मैसेज में मौजूद हर फ़ील्ड के सभी नाम और टाइप प्रिंट होते हैं. इसके बाद, इस जानकारी का इस्तेमाल करके, आरपीसी अनुरोध भेजने के लिए JSON फ़ॉर्मैट वाला प्रोटो मैसेज लिखा जा सकता है.

cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME

एनवायरमेंट में बदलाव करने के लिए, आरपीसी अनुरोध भेजना

JSON फ़ॉर्मैट वाले प्रोटो का इस्तेमाल करके, किसी सेवा के तरीके को कॉल करने के लिए आरपीसी अनुरोध भेजने के लिए, cvd enc call कमांड का इस्तेमाल करें. जब आरपीसी अनुरोध खत्म हो जाता है, तो इंटरफ़ेस Rpc succeeded with OK status मैसेज प्रिंट करता है. साथ ही, अगर उपलब्ध हो, तो वैल्यू वाला जवाब भी प्रिंट करता है.

cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO

इस्तेमाल का उदाहरण

यहां SetTxpower को कॉल करके, वाई-फ़ाई सिग्नल की क्षमता में बदलाव करने के लिए, cvd env सीएलआई कमांड के इस्तेमाल का उदाहरण दिया गया है.

  1. वाई-फ़ाई सिग्नल की मज़बूती में बदलाव करने के लिए, सेवा का नाम, तरीका, और अनुरोध मैसेज टाइप का नाम तय करें.

    सभी उपलब्ध सेवाओं की सूची पाएं.

    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. वाई-फ़ाई सिग्नल की ताकत को अपनी ज़रूरत के हिसाब से बदलने के लिए, WmediumdService सेवा को आरपीसी अनुरोध भेजें.

    cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}"
    (Omitted)
    Rpc succeeded with OK status
    {}