व्हीकल मोड और पावर मैनेजमेंट (वीपीएम) एजेंट, गाड़ी को सॉफ़्टवेयर से तय होने वाले व्हीकल (एसडीवी) इकोसिस्टम के पावर सिस्टम को कंट्रोल करने में मदद करता है.
वीपीएम एजेंट, गाड़ी और पावर मोड के बारे में जानकारी, एसडीवी एजेंट और एसडीवी में शामिल सर्विस बंडल जैसे अलग-अलग सॉफ़्टवेयर कॉम्पोनेंट को भेजता है.
वीपीएम एजेंट, एसडीवी कॉम्पोनेंट को गाड़ी की मौजूदा स्थिति पर नज़र रखने की सुविधा देता है. जैसे, गाड़ी का ऑपरेशनल मोड (उदाहरण के लिए, पार्क की गई है या ड्राइव की जा रही है) और पावर स्टेटस (उदाहरण के लिए, चालू है, सस्पेंड है या बंद है). गाड़ी की स्थिति, गाड़ी के सभी सॉफ़्टवेयर में एक जैसी होती है. हालांकि, पावर स्टेट, गाड़ी में मौजूद हर एसडीवी वीएम के लिए अलग होती है.
वीपीएम एजेंट, एसडीवी सिस्टम प्लैटफ़ॉर्म को खास पावर मोड शुरू करने का सिग्नल देता है. यह केपबिलिटी पावर की खपत को ऑप्टिमाइज़ करती है और अगर गाड़ी को फिर से चालू किया जाता है, तो बूट होने में लगने वाला समय कम हो जाता है. इससे एसडीवी के अलग-अलग सॉफ़्टवेयर कॉम्पोनेंट को बेहतर तरीके से काम करने में मदद मिलती है.
इस पेज पर, वीपीएम एजेंट से जुड़ी ज़रूरी शर्तें, पाबंदियां, और डिपेंडेंसी के बारे में बताया गया है. इसमें, ओरिजनल इक्विपमेंट मैन्युफ़ैक्चरर (ओईएम) और एसडीवी के अन्य डेवलपर के लिए, वीपीएम एजेंट की उम्मीद के मुताबिक काम करने की क्षमता और इंटिग्रेशन से जुड़ी गाइडलाइन के बारे में बताया गया है.
आर्किटेक्चर
पहली इमेज में, पावर मैनेजमेंट के आर्किटेक्चर के बारे में बताया गया है:
पहली इमेज. पावर मैनेजमेंट का आर्किटेक्चर.
वीपीएम एजेंट को, ओईएम की पावर मैनेजमेंट सेवा से पावर मोड के निर्देश मिलते हैं. जैसे, शटडाउन और सस्पेंड.
वीपीएम एजेंट, इन निर्देशों को सही एसडीवी एजेंट को फ़ॉरवर्ड करता है और एजेंट के इन निर्देशों को पूरा करने का इंतज़ार करता है. इस कोऑर्डिनेटेड अप्रोच से, पावर मोड के बीच आसानी से और सुरक्षित तरीके से ट्रांज़िशन करने में मदद मिलती है. इससे डेटा खोने या सिस्टम के अस्थिर होने का जोखिम कम हो जाता है.
सभी एसडीवी एजेंट के पावर ट्रांज़िशन पूरे होने के बाद, वीपीएम एजेंट ओईएम को सूचना देता है. इससे ओईएम सिस्टम, ज़रूरी कार्रवाइयां कर पाते हैं. जैसे, अगली स्थिति पर जाना या शटडाउन करना. पावर ट्रांज़िशन ब्लॉक हो रहे हैं. ट्रांज़िशन सिर्फ़ तब होता है, जब सभी एसडीवी एजेंट, ओईएम की तय की गई समयसीमा के अंदर ट्रांज़िशन पूरा करते हैं.
पावर मैनेजमेंट के लिए स्टेट मशीन, यहां दिए गए डायग्राम में दिखाई गई है:
दूसरी इमेज. पावर मैनेजमेंट की स्टेट मशीन.
वीपीएम एजेंट, ऑर्केस्ट्रेशन और लाइफ़साइकल मैनेजमेंट सिस्टम के साथ मिलकर काम करता है. इससे एसडीवी सर्विस बंडल को, पावर मोड के अपडेट के बारे में सूचना मिलती है. इससे सर्विस बंडल, पावर ट्रांज़िशन को मैनेज कर पाते हैं और उनके ऑपरेशन में रुकावट नहीं आती. सर्विस बंडल के साथ पावर मैनेजमेंट की स्थितियों का इस्तेमाल करने और एसडीवी कम्यूनिकेशन को मैनेज करने के बारे में जानने के लिए, सस्पेंड और फिर से चालू करने की सुविधा को मैनेज करना लेख पढ़ें.
पावर स्टेट
एसडीवी में, पावर मैनेजमेंट के लिए ये स्थितियां उपलब्ध हैं:
| राज्य | जानकारी |
|---|---|
REPORT_UNSPECIFIED |
अगर कोई रिपोर्ट तय नहीं की गई है, तो यह डिफ़ॉल्ट वैल्यू होती है. |
POWER_OFF_EXIT |
वीएम, कोल्ड बूट से बूट हो रहा है. एसडीवी एजेंट, init.rc से शुरू होते हैं. |
SUSPEND_TO_RAM_EXIT |
वीएम, सस्पेंड से रैम पर वापस आ रहा है. एसडीवी एजेंट, रैम से फिर से शुरू होते हैं. साथ ही, अगर उन्होंने पावर स्टेट की सूचनाओं की सदस्यता ली है, तो उन्हें पावर अपडेट के बारे में सूचना मिलती है. |
ON |
वीएम सामान्य रूप से काम कर रहा है. |
POWER_OFF_ENTER |
वीएम, पावर ऑफ़ होने की तैयारी कर रहा है. ओईएम के ऐसे ऐप्लिकेशन जिन्हें पहले ही साफ़ किया जा सकता है उन्हें इस स्थिति में साफ़ किया जाना चाहिए. ओईएम के ऐप्लिकेशन, इस स्टेज पर काम कर रहे एसडीवी एजेंट पर अब भी निर्भर रह सकते हैं. एसडीवी एजेंट को इस स्टेज पर सस्पेंड या पावर ऑफ़ नहीं करना चाहिए, क्योंकि ओईएम के ऐप्लिकेशन को अब भी उनसे कम्यूनिकेट करने की ज़रूरत पड़ सकती है. |
SUSPEND_TO_RAM_ENTER |
वीएम, सस्पेंड से रैम पर वापस आने की तैयारी कर रहा है. ओईएम के ऐसे ऐप्लिकेशन जिन्हें पहले ही साफ़ किया जा सकता है उन्हें इस स्थिति में साफ़ किया जाना चाहिए. ओईएम के ऐप्लिकेशन, इस स्टेज पर काम कर रहे एसडीवी एजेंट पर अब भी निर्भर रह सकते हैं. एसडीवी एजेंट को इस स्टेज पर सस्पेंड या पावर ऑफ़ नहीं करना चाहिए, क्योंकि ओईएम के ऐप्लिकेशन को अब भी उनसे कम्यूनिकेट करने की ज़रूरत पड़ सकती है. |
WAIT_FOR_FINISH |
वीएम ने शुरुआती साफ़-सफ़ाई पूरी कर ली है. साथ ही, ओईएम से सिग्नल मिलने का इंतज़ार कर रहा है, ताकि पावर ऑफ़ या सस्पेंड की प्रोसेस को पूरा किया जा सके या रद्द किया जा सके. |
SHUTDOWN_CANCELLED |
ओईएम ने शटडाउन की तैयारी को रद्द करने का अनुरोध किया है. यह अनुरोध, WAIT_FOR_FINISH से पहले किया जा सकता है. लाइफ़साइकल मैनेजर, ओईएम के ऐप्लिकेशन से सस्पेंड या बंद करने की तैयारी को वापस लेने का अनुरोध करता है. |
POWER_OFF_POST_FINISH |
ओईएम से FINISH_SHUTDOWN का अनुरोध मिलने के बाद, वीएम, आखिरी साफ़-सफ़ाई पूरी कर रहा है और प्लैटफ़ॉर्म को पावर ऑफ़ कर रहा है. एसडीवी एजेंट को पावर ऑफ़ करने से पहले, साफ़-सफ़ाई करनी चाहिए. |
SUSPEND_TO_RAM_POST_FINISH |
वीएम, सस्पेंड से रैम पर वापस आने वाला है. साथ ही, प्लैटफ़ॉर्म को रैम पर सस्पेंड करने वाला है. ओईएम के ऐप्लिकेशन को इस समय एसडीवी एजेंट पर निर्भर नहीं रहना चाहिए, क्योंकि वे भी सस्पेंड हो जाते हैं. एसडीवी एजेंट को सस्पेंड होने से पहले, साफ़-सफ़ाई करनी चाहिए. |
गाड़ी की स्थिति के बारे में अपडेट पाना
वीपीएम एजेंट को, ओईएम के व्हीकल कंट्रोल सर्विस बंडल से, गाड़ी के मौजूदा मोड के बारे में अपडेट मिलते हैं.
इसके बाद, एजेंट, एसडीवी के स्टैंडर्ड कम्यूनिकेशन स्टैक के ज़रिए, यह जानकारी काम के एसडीवी कॉम्पोनेंट को फ़ॉरवर्ड करता है. इससे सभी एसडीवी कॉम्पोनेंट को गाड़ी की ऑपरेशनल स्थिति के बारे में पता चलता है, ताकि वे अपने व्यवहार को उसके मुताबिक ढाल सकें.
गाड़ी की स्थितियों के बारे में अपडेट पाने के लिए, अपने सर्विस बंडल में 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 |
उपयोगकर्ता के हिसाब से कार बंद है, लेकिन पीसीयू अब भी यह पता लगा सकता है कि कार चालू है. |
SOFTWARE_UPDATE |
गाड़ी के कुछ या सभी हिस्सों पर सॉफ़्टवेयर अपडेट हो रहे हैं. ये सॉफ़्टवेयर अपडेट, एसडीवी से जुड़े नहीं हैं. |
PARK |
ग्राहक की मौजूदगी के बिना, इस खास गतिविधि के लिए कुछ ईसीयू सप्लाई किए जाते हैं. |
LIFE_ON_BOARD |
सीट हीटर, क्लस्टर, और सेंट्रल पैनल जैसे आरामदायक ईसीयू सप्लाई किए जाते हैं और इस्तेमाल किए जा सकते हैं. इसके अलावा, ग्राहक की गतिविधि का पता चलता है. जैसे, दरवाज़ा खोलना या कार को अनलॉक करना. |
VEHICLE_ON |
इंजन ईसीयू सप्लाई किए जाते हैं, इंजन चालू है, और ड्राइविंग नहीं की जा सकती. |
TRACTION_ON |
इंजन ईसीयू सप्लाई किए जाते हैं, इंजन चालू है, और ड्राइविंग की जा सकती है. |
वीपीएम एजेंट की मदद से, गाड़ी और पावर मैनेजमेंट को कंट्रोल करना
एसडीवी में, पावर स्टेट मशीन को कंट्रोल करने वाला सर्विस बंडल लागू करने के लिए, 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"
}
}
बंडल लागू करने और वीपीएम एजेंट में एसीएल जोड़ने के बाद, बंडल, वीपीएम एजेंट को आरपीसी अनुरोध भेज सकता है. साथ ही, तय किए गए सर्वर पर पावर स्टेट की सूचनाएं पा सकता है.