কাটলফিশ: পরিবেশ নিয়ন্ত্রণ

এই পৃষ্ঠাটি বর্ণনা করে যে কিভাবে REST API বা কমান্ড লাইন ইন্টারফেস ব্যবহার করে একটি Cuttlefish ডিভাইসে পরিবেশ নিয়ন্ত্রণ করা যায়। উদাহরণস্বরূপ, আপনি Wi-Fi সংকেত পরিবর্তন করতে পারেন বা Cuttlefish ডিভাইসের GPS অবস্থান আপডেট করতে পারেন।

সেবা

cvd env কমান্ড Cuttlefish পরিবেশ নিয়ন্ত্রণের জন্য নিম্নলিখিত পরিষেবা প্রদান করে:

সেবা বর্ণনা
GnssGrpcProxy Cuttlefish জিওলোকেশন বৈশিষ্ট্যের জন্য GNSS নিয়ন্ত্রণ করে।
OpenwrtControlService Cuttlefish Wi-Fi বৈশিষ্ট্যের জন্য একটি ভার্চুয়ালাইজড Wi-Fi AP প্রদানকারী Openwrt নিয়ন্ত্রণ করে।
WmediumdService Wmediumd নিয়ন্ত্রণ করে, Cuttlefish Wi-Fi বৈশিষ্ট্যের জন্য একটি ওয়্যারলেস মিডিয়াম সিমুলেটর।

REST API ব্যবহার করে পরিবেশ নিয়ন্ত্রণ করুন

এই বিভাগে <https://localhost:1443> সার্ভিস এন্ডপয়েন্টের মাধ্যমে Rest API ব্যবহার করে পরিবেশ কীভাবে নিয়ন্ত্রণ করা যায় তা বর্ণনা করে।

উপলব্ধ পরিষেবা বা পদ্ধতি তালিকা

সমস্ত পরিষেবার একটি তালিকা পেতে, একটি ডিভাইস আইডি সহ নিম্নলিখিত URL এ একটি GET অনুরোধ পাঠান৷

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

একটি পরিষেবার জন্য সমস্ত পদ্ধতির একটি তালিকা পেতে, একটি ডিভাইস আইডি এবং পরিষেবার নাম সহ নিম্নলিখিত URL এ একটি GET অনুরোধ পাঠান৷

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

একটি পদ্ধতির জন্য বিস্তারিত তথ্য পেতে, যেমন অনুরোধ বা প্রতিক্রিয়া বার্তা প্রকার, একটি ডিভাইস আইডি, একটি পরিষেবার নাম এবং পদ্ধতির নাম সহ নিম্নলিখিত URL-এ একটি GET অনুরোধ পাঠান৷

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

অনুরোধ এবং প্রতিক্রিয়া ধরনের বিস্তারিত তথ্য পান

একটি অনুরোধ বা প্রতিক্রিয়া বার্তা প্রকারের বিস্তারিত তথ্য পেতে, একটি ডিভাইস আইডি, একটি পরিষেবার নাম এবং অনুরোধ বা প্রতিক্রিয়া বার্তার ধরন সহ নিম্নলিখিত URL এ একটি GET অনুরোধ পাঠান৷ এটি বার্তার প্রতিটি ক্ষেত্রের সমস্ত নাম এবং প্রকারগুলি প্রিন্ট করে৷ আপনি তারপর একটি RPC অনুরোধ পাঠানোর জন্য একটি JSON- ফরম্যাটেড প্রোটো বার্তা লিখতে এই তথ্য ব্যবহার করতে পারেন৷

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

পরিবেশে পরিবর্তন করতে RPC অনুরোধ পাঠান

JSON-ফর্ম্যাটেড প্রোটো সহ একটি পরিষেবার একটি পদ্ধতিতে কল করার জন্য একটি RPC অনুরোধ পাঠাতে, একটি ডিভাইস আইডি, একটি পরিষেবার নাম এবং পদ্ধতির নাম সহ নিম্নলিখিত URL এ একটি POST অনুরোধ পাঠান৷ JSON-ফরম্যাট করা প্রোটো অবশ্যই বডিতে অন্তর্ভুক্ত করতে হবে।

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

উদাহরণ ব্যবহার ক্ষেত্রে

নিচে SetTxpower কল করে Wi-Fi সংকেত শক্তি পরিবর্তন করার জন্য Rest API-এর একটি উদাহরণ ব্যবহার করা হল।

  1. Wi-Fi সংকেত শক্তি পরিবর্তন করার জন্য পরিষেবার নাম, পদ্ধতির নাম এবং অনুরোধ বার্তার প্রকারের নাম নির্ধারণ করুন।

    1. নিম্নলিখিত URL এ একটি GET অনুরোধ পাঠিয়ে সমস্ত উপলব্ধ পরিষেবাগুলির একটি তালিকা পান৷

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

      এটি একটি উদাহরণ প্রতিক্রিয়া.

      {"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
      
    2. নিম্নলিখিত URL-এ একটি GET অনুরোধ পাঠিয়ে WmediumdService এর পদ্ধতির একটি তালিকা পান।

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

      এটি একটি উদাহরণ প্রতিক্রিয়া.

      {"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
      
    3. নিম্নলিখিত URL এ একটি GET অনুরোধ পাঠিয়ে SetTxpower পদ্ধতির জন্য অনুরোধ এবং প্রতিক্রিয়া বার্তা প্রকারের তথ্য পান৷

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

      এটি একটি উদাহরণ প্রতিক্রিয়া.

      {"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
      
  2. নিম্নলিখিত URL-এ একটি GET অনুরোধ পাঠিয়ে wmediumdserver.SetTxpowerRequest অনুরোধ বার্তা প্রকারের জন্য বিস্তারিত তথ্য পান।

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

    এটি একটি উদাহরণ প্রতিক্রিয়া.

    message SetTxpowerRequest {
      string mac_address = 1;
      int32 tx_power = 2;
    }
    
  3. নিম্নলিখিত অনুরোধের অংশের সাথে এই URL-এ একটি POST অনুরোধ পাঠিয়ে ওয়াই-ফাই সিগন্যাল শক্তি পছন্দসই স্তরে পরিবর্তন করতে WmediumdService পরিষেবাতে একটি RPC অনুরোধ পাঠান।

    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 কমান্ড ব্যবহার করুন। এই কমান্ডটি বার্তার প্রতিটি ক্ষেত্রের সমস্ত নাম এবং প্রকারগুলি প্রিন্ট করে। আপনি তারপর একটি RPC অনুরোধ পাঠানোর জন্য একটি JSON- ফরম্যাটেড প্রোটো বার্তা লিখতে এই তথ্য ব্যবহার করতে পারেন৷

cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME

পরিবেশে পরিবর্তন করতে RPC অনুরোধ পাঠান

একটি JSON-ফরম্যাটেড প্রোটো সহ একটি পরিষেবার একটি পদ্ধতিতে কল করার জন্য একটি RPC অনুরোধ পাঠাতে, cvd enc call কমান্ড ব্যবহার করুন৷ যখন RPC অনুরোধ সমাপ্ত হয়, ইন্টারফেস Rpc succeeded with OK status বার্তাটি প্রিন্ট করে এবং, যদি উপলব্ধ থাকে, মান সহ একটি প্রতিক্রিয়া বার্তা।

cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO

উদাহরণ ব্যবহার ক্ষেত্রে

নিম্নলিখিতটি SetTxpower কল করে Wi-Fi সংকেত শক্তি পরিবর্তন করার জন্য cvd env CLI কমান্ডের একটি উদাহরণ ব্যবহার করা হয়েছে।

  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. ওয়াই-ফাই সিগন্যাল শক্তিকে পছন্দসই স্তরে পরিবর্তন করতে WmediumdService পরিষেবাতে RPC অনুরোধ পাঠান।

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