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

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

পরিষেবা

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

পরিষেবা বর্ণনা
GnssGrpcProxy কাটলফিশ জিওলোকেশন ফিচারের জন্য জিএনএসএস নিয়ন্ত্রণ করে।
OpenwrtControlService কাটলফিশ ওয়াই-ফাই ফিচারের জন্য একটি ভার্চুয়ালাইজড ওয়াই-ফাই এপি প্রোভাইডার Openwrt নিয়ন্ত্রণ করে।
WmediumdService কাটলফিশের ওয়াই-ফাই ফিচারের জন্য একটি ওয়্যারলেস মিডিয়াম সিমুলেটর Wmediumd নিয়ন্ত্রণ করে।
CasimirControlService Casimir নিয়ন্ত্রণ করে, যা বাহ্যিক এনএফসি ডিভাইসগুলোর জন্য একটি সিমুলেটর।

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

এই অংশে <https://localhost:1443> সার্ভিস এন্ডপয়েন্টের মাধ্যমে রেস্ট এপিআই ব্যবহার করে পরিবেশ নিয়ন্ত্রণ করার পদ্ধতি বর্ণনা করা হয়েছে।

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

সমস্ত পরিষেবার তালিকা পেতে, ডিভাইস আইডি সহ নিম্নলিখিত 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 কল করে ওয়াই-ফাই সিগন্যালের শক্তি পরিবর্তন করার Rest API-এর একটি উদাহরণ নিচে দেওয়া হলো।

  1. ওয়াই-ফাই সিগন্যালের শক্তি পরিবর্তন করার জন্য সার্ভিসের নাম, মেথডের নাম এবং অনুরোধ বার্তার ধরনের নাম নির্ধারণ করুন।

    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. ওয়াই-ফাই সিগন্যালের শক্তি পরিবর্তন করার জন্য সার্ভিসের নাম, মেথডের নাম এবং অনুরোধ বার্তার ধরনের নাম নির্ধারণ করুন।

    উপলব্ধ সকল পরিষেবার একটি তালিকা নিন।

    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
    {}