যানবাহন এবং বিদ্যুৎ ব্যবস্থাপনা নিয়ন্ত্রণ করুন

ভেহিকেল মোড অ্যান্ড পাওয়ার ম্যানেজমেন্ট (VPM) এজেন্ট যানবাহনটিকে সফটওয়্যার ডিফাইন্ড ভেহিকেল (SDV) ইকোসিস্টেমের পাওয়ার সিস্টেম নিয়ন্ত্রণ করতে সাহায্য করে।

VPM এজেন্ট, SDV-এর অন্তর্ভুক্ত SDV এজেন্ট এবং সার্ভিস বান্ডেলসহ বিভিন্ন সফটওয়্যার উপাদানের সাথে যানবাহন এবং পাওয়ার মোডের যোগাযোগ সহজতর করে।

VPM এজেন্ট SDV কম্পোনেন্টগুলোকে গাড়ির বর্তমান অবস্থা, যেমন এর অপারেশনাল মোড (উদাহরণস্বরূপ, পার্ক করা বা চালিত) এবং পাওয়ার স্ট্যাটাস (উদাহরণস্বরূপ, অন, সাসপেন্ড বা পাওয়ার অফ) ট্র্যাক করতে সক্ষম করে। গাড়ির অবস্থা সমস্ত ভেহিকেল সফটওয়্যারে একই থাকে; তবে, গাড়ির প্রতিটি SDV VM-এর জন্য পাওয়ার স্টেট স্বতন্ত্র।

VPM এজেন্ট নির্দিষ্ট পাওয়ার মোডগুলো চালু করার জন্য SDV সিস্টেম প্ল্যাটফর্মকে সংকেত দেয়। এই সক্ষমতা বিদ্যুৎ খরচ অপ্টিমাইজ করে এবং পুনরায় চালু হওয়ার ক্ষেত্রে বুট টাইম কমিয়ে আনে, এবং SDV-এর বিভিন্ন সফটওয়্যার উপাদানের দক্ষ কার্যক্রম নিশ্চিত করতে সহায়তা করে।

এই পৃষ্ঠায় VPM এজেন্টের সাথে সম্পর্কিত মূল প্রয়োজনীয়তা, সীমাবদ্ধতা এবং নির্ভরশীলতাগুলো বর্ণনা করা হয়েছে। এটি মূল সরঞ্জাম প্রস্তুতকারক (OEM) এবং অন্যান্য SDV ডেভেলপারদের জন্য VPM এজেন্টের প্রত্যাশিত কার্যকারিতা এবং ইন্টিগ্রেশন নির্দেশিকা ব্যাখ্যা করে।

স্থাপত্য

চিত্র ১-এ বিদ্যুৎ ব্যবস্থাপনা স্থাপত্যটি দেখানো হয়েছে:

পাওয়ার ম্যানেজমেন্ট আর্কিটেকচার

চিত্র ১. বিদ্যুৎ ব্যবস্থাপনা স্থাপত্য।

VPM এজেন্ট OEM-এর পাওয়ার ম্যানেজমেন্ট সার্ভিস থেকে পাওয়ার মোড কমান্ড (যেমন শাটডাউন এবং সাসপেন্ড) গ্রহণ করে।

VPM এজেন্ট এই কমান্ডগুলো উপযুক্ত SDV এজেন্টদের কাছে পাঠিয়ে দেয় এবং এজেন্টদের সেগুলো কার্যকর করার জন্য অপেক্ষা করে। এই সমন্বিত পদ্ধতিটি পাওয়ার মোডগুলোর মধ্যে একটি মসৃণ ও নিরাপদ রূপান্তর নিশ্চিত করতে সাহায্য করে, যার ফলে ডেটা নষ্ট হওয়া বা সিস্টেমের অস্থিতিশীলতার ঝুঁকি কমে আসে।

সমস্ত SDV এজেন্ট তাদের পাওয়ার ট্রানজিশন সম্পন্ন করার পর, VPM এজেন্ট OEM-কে অবহিত করে, যা OEM সিস্টেমগুলোকে প্রয়োজনীয় পদক্ষেপ (যেমন, পরবর্তী স্টেটে যাওয়া বা শাটডাউন করা) গ্রহণ করতে সক্ষম করে। পাওয়ার ট্রানজিশন হলো ব্লকিং; এই ট্রানজিশনটি তখনই ঘটে যখন সমস্ত SDV এজেন্ট একটি OEM-নির্ধারিত টাইমআউটের মধ্যে এটি সম্পন্ন করে।

পাওয়ার ম্যানেজমেন্টের স্টেট মেশিনটি নিম্নলিখিত ডায়াগ্রামে দেখানো হয়েছে:

পাওয়ার ম্যানেজমেন্ট স্টেট মেশিন

চিত্র ২. শক্তি ব্যবস্থাপনা অবস্থা যন্ত্র।

VPM এজেন্ট অর্কেস্ট্রেশন এবং লাইফসাইকেল ম্যানেজমেন্ট সিস্টেমের সাথে কাজ করে SDV সার্ভিস বান্ডেলগুলোকে যেকোনো পাওয়ার মোড আপডেট সম্পর্কে অবহিত করে। এর ফলে সার্ভিস বান্ডেলগুলো পাওয়ার পরিবর্তন সামলাতে পারে এবং তাদের কার্যক্রমে কোনো ব্যাঘাত এড়াতে পারে। সার্ভিস বান্ডেলের সাথে পাওয়ার ম্যানেজমেন্ট স্টেট ব্যবহার এবং SDV কমিউনিকেশন পরিচালনার বিষয়ে বিস্তারিত জানতে ‘সাসপেন্ড এবং রিজুম পরিচালনা’ দেখুন।

ক্ষমতার অবস্থা

SDV-তে পাওয়ার ম্যানেজমেন্টের জন্য অনুমোদিত স্টেটগুলো নিম্নরূপ:

রাজ্য ব্যাখ্যা
REPORT_UNSPECIFIED কোনো রিপোর্ট নির্দিষ্ট করা না থাকলে এটিই ডিফল্ট মান।
POWER_OFF_EXIT ভিএমটি কোল্ড বুট থেকে বুট হচ্ছে। এসডিভি এজেন্টগুলো init.rc দিয়ে চালু হয়।
SUSPEND_TO_RAM_EXIT ভিএমটি সাসপেন্ড অবস্থা থেকে র‍্যামে পুনরায় চালু হচ্ছে। এসডিভি এজেন্টরা র‍্যাম থেকে পুনরায় চালু হয় এবং যদি তারা পাওয়ার স্টেট নোটিফিকেশনের জন্য সাবস্ক্রাইব করে থাকে, তবে তারা পাওয়ার আপডেট সম্পর্কে একটি নোটিফিকেশন পায়।
ON ভিএমটি স্বাভাবিকভাবে চলছে।
POWER_OFF_ENTER ভিএমটি বন্ধ হওয়ার জন্য প্রস্তুত হচ্ছে। যে সমস্ত OEM অ্যাপ আগেভাগে পরিষ্কার করা যায়, সেগুলোকে এই অবস্থায় পরিষ্কার করে ফেলা উচিত। OEM অ্যাপগুলো এই পর্যায়েও চলমান SDV এজেন্টের উপর নির্ভর করতে পারে। এই পর্যায়ে SDV এজেন্টদের সাসপেন্ড বা বন্ধ করা উচিত নয়, কারণ OEM অ্যাপগুলোর তখনও তাদের সাথে যোগাযোগের প্রয়োজন হতে পারে।
SUSPEND_TO_RAM_ENTER ভিএমটি র‍্যামে সাসপেন্ড হওয়ার জন্য প্রস্তুত হচ্ছে। যে সমস্ত OEM অ্যাপ আগেভাগে পরিষ্কার করা যায়, সেগুলোকে এই অবস্থায় পরিষ্কার করে ফেলা উচিত। OEM অ্যাপগুলো এই পর্যায়েও চলমান SDV এজেন্টের উপর নির্ভর করতে পারে। এই পর্যায়ে SDV এজেন্টদের সাসপেন্ড বা পাওয়ার অফ করা উচিত নয়, কারণ OEM অ্যাপগুলোর তখনও তাদের সাথে যোগাযোগের প্রয়োজন হতে পারে।
WAIT_FOR_FINISH ভিএম প্রাথমিক পরিষ্করণ সম্পন্ন করেছে এবং পাওয়ার অফ বা সাসপেন্ড সম্পন্ন বা বাতিল করার জন্য ওইএম (OEM)-এর সংকেতের জন্য অপেক্ষা করছে।
SHUTDOWN_CANCELLED OEM শাটডাউন প্রস্তুতির জন্য একটি বাতিলের অনুরোধ করেছে। এই অনুরোধটি WAIT_FOR_FINISH এর পরে করা যাবে না। লাইফসাইকেল ম্যানেজার OEM অ্যাপগুলিকে সাসপেন্ড বা পাওয়ার অফ প্রস্তুতি বাতিল করার জন্য অনুরোধ করে।
POWER_OFF_POST_FINISH OEM-এর FINISH_SHUTDOWN অনুরোধের পর, VM চূড়ান্ত পরিষ্করণ শেষ করছে এবং অন্তর্নিহিত প্ল্যাটফর্মটি বন্ধ করে দিচ্ছে। SDV এজেন্টদের বন্ধ হওয়ার আগে পরিষ্করণ সম্পন্ন করা উচিত।
SUSPEND_TO_RAM_POST_FINISH ভিএমটি র‍্যামে সাসপেন্ড হতে চলেছে এবং এর অন্তর্নিহিত প্ল্যাটফর্মটিকেও র‍্যামে সাসপেন্ড করবে। এই পর্যায়ে OEM অ্যাপগুলোর SDV এজেন্টের উপর নির্ভর করা উচিত নয়, কারণ সেগুলোও সাসপেন্ড হয়ে গেছে। সাসপেনশনের আগে SDV এজেন্টদের তাদের ক্লিনআপ সম্পন্ন করা উচিত।

গাড়ির অবস্থা সম্পর্কে আপডেট পান

VPM এজেন্ট OEM-এর ভেহিকেল কন্ট্রোল সার্ভিস বান্ডেল থেকে গাড়ির বর্তমান মোডগুলোর আপডেট গ্রহণ করে।

এরপর এজেন্ট এই তথ্যটি প্রমিত SDV কমিউনিকেশন স্ট্যাকের মাধ্যমে প্রাসঙ্গিক SDV কম্পোনেন্টগুলোতে পাঠিয়ে দেয়। এর ফলে সমস্ত SDV কম্পোনেন্ট যানবাহনটির কার্যক্ষম অবস্থা সম্পর্কে অবগত হয়, যাতে তারা সেই অনুযায়ী নিজেদের আচরণ পরিবর্তন করতে পারে।

গাড়ির অবস্থা সম্পর্কে আপডেট পেতে, আপনার সার্ভিস বান্ডেলে নিম্নলিখিত VSIDL কনফিগারেশনটি ব্যবহার করুন:

package: "com.sdv.google.vpm.vehicle.client.subscriber"

service_bundle {
    name: "VehicleStateSubscriber"
    //Subscriber to the vehicle state updates.
    subscriber {
        message: "com.sdv.google.vpm.vehicle.VehicleStateChange"
    }
}

যানবাহনের মোড এবং ট্রানজিশনগুলো নন-ব্লকিং এবং অ্যাসিঙ্ক্রোনাস। পাওয়ার ট্রানজিশনের মতো, এখানে কোনো স্টেট মেশিন বলবৎ করা হয় না।

এসডিভি-তে একটি গাড়ির জন্য অনুমোদিত অবস্থাগুলো নিম্নরূপ:

রাজ্য ব্যাখ্যা
VEHICLE_STATE_UNSPECIFIED কোনো রাজ্য নির্দিষ্ট করা না থাকলে, গাড়ির রাজ্যগুলোর জন্য এটিই ডিফল্ট মান।
LOW_POWER ব্যবহারকারীর দৃষ্টিকোণ থেকে গাড়িটি বন্ধ থাকলেও, পিসিইউ (PCU) ঠিকই শনাক্ত করতে পারে যে গাড়িটি চালু আছে।
SOFTWARE_UPDATE গাড়ির কিছু বা সমস্ত অংশে সফটওয়্যার আপডেট চলছে। এই সফটওয়্যার আপডেটগুলো এসডিভি-সম্পর্কিত নয়।
PARK গ্রাহকের উপস্থিতি ছাড়াই এই নির্দিষ্ট কার্যক্রমের জন্য অল্প সংখ্যক ইসিইউ সরবরাহ করা হয়।
LIFE_ON_BOARD কমফোর্ট ইসিইউ (ECU), যেমন সিট হিটার, ক্লাস্টার এবং সেন্ট্রাল প্যানেল, সরবরাহ করা হয় এবং ব্যবহারযোগ্য থাকে, অথবা গ্রাহকের কার্যকলাপ শনাক্ত করা হয়, যেমন দরজা খোলা বা গাড়ি আনলক করা।
VEHICLE_ON ইঞ্জিন ইসিইউ সরবরাহ করা হয়েছে, ইঞ্জিন চালু আছে, কিন্তু গাড়ি চালানো সম্ভব নয়।
TRACTION_ON ইঞ্জিন ইসিইউ সরবরাহ করা হয়েছে, ইঞ্জিনটি চালু আছে এবং গাড়ি চালানো সম্ভব।

VPM এজেন্টের মাধ্যমে যানবাহন ও পাওয়ার ম্যানেজমেন্ট নিয়ন্ত্রণ করুন।

SDV-তে পাওয়ার স্টেট মেশিন নিয়ন্ত্রণকারী একটি সার্ভিস বান্ডেল বাস্তবায়ন করতে নিম্নলিখিত VSIDL সংজ্ঞাগুলো ব্যবহার করুন:

package: "com.sdv.google.vpm.client"

service_bundle {
    name: "VpmSystemClient"

    //Client for VPM system interface.
    client {
        service: "com.sdv.google.vpm.VpmSystemService"
    }

    //Server to VPM notification interface.
    server {
        service: "com.sdv.google.vpm.client.PowerNotificationService"
    }
}

বান্ডেলটি প্রয়োগ করা হলে এবং VPM এজেন্টে ACL যোগ করা হলে, বান্ডেলটি VPM এজেন্টের কাছে RPC অনুরোধ পাঠাতে এবং নির্ধারিত সার্ভারে পাওয়ার স্টেট নোটিফিকেশন গ্রহণ করতে পারে।