पावर मैनेजमेंट

वाहन-विशिष्ट पावर प्रबंधन का समर्थन करने के लिए, एंड्रॉइड एक CarPowerManagementService सेवा और एक CarPowerManager इंटरफ़ेस प्रदान करता है।

राज्य परिवर्तन वाहन मास्टर कंट्रोल यूनिट (वीएमसीयू) द्वारा शुरू किए जाते हैं। वीएमसीयू के साथ संचार करने के लिए, इंटीग्रेटर्स को कई घटकों को लागू करना होगा। इंटीग्रेटर्स वाहन हार्डवेयर एब्स्ट्रैक्शन लेयर (वीएचएएल) और कर्नेल कार्यान्वयन के साथ एकीकरण के लिए जिम्मेदार हैं। इंटीग्रेटर्स वेक स्रोतों को अक्षम करने और यह सुनिश्चित करने के लिए भी जिम्मेदार हैं कि शटडाउन अनिश्चित काल के लिए स्थगित नहीं किया जाता है।

शब्दावली

इस दस्तावेज़ में इन शब्दों का उपयोग किया गया है:

ऐप प्रोसेसर (एपी)
चिप पर सिस्टम का हिस्सा (SoC)
बोर्ड सपोर्ट पैकेज (बीएसपी)
सॉफ़्टवेयर की परत जिसमें हार्डवेयर-विशिष्ट बूट फ़र्मवेयर और डिवाइस ड्राइवर शामिल होते हैं जो एक एम्बेडेड ऑपरेटिंग सिस्टम को किसी दिए गए हार्डवेयर वातावरण (मदरबोर्ड) में कार्य करने की अनुमति देते हैं, जो एम्बेडेड ऑपरेटिंग सिस्टम के साथ एकीकृत होता है।
कारपावरमैनेजर (सीपीएम)
ऐप्स के लिए पावर स्थिति परिवर्तनों के लिए पंजीकरण हेतु एक एपीआई प्रदर्शित करता है।
कारपावरमैनेजमेंट सर्विस (सीपीएमएस)
कार पावर स्टेट मशीन को कार्यान्वित करता है, वीएचएएल के साथ इंटरफेस करता है, और suspend() और shutdown() पर अंतिम कॉल करता है।
कारपावरपॉलिसीडेमॉन (सीपीपीडी)
पावर पॉलिसी श्रोता को पंजीकृत करने के लिए मूल प्रक्रियाओं के लिए एआईडीएल इंटरफेस को उजागर करता है।
सामान्य प्रयोजन इनपुट या आउटपुट (GPIO)
सामान्य प्रयोजन के उपयोग के लिए एक डिजिटल सिग्नल पिन।
हार्डवेयर अमूर्त परत (एचएएल)
एक सॉफ़्टवेयर परत जिसके साथ अन्य सभी उच्च स्तरीय मॉड्यूल को हार्डवेयर कार्यक्षमता तक पहुँचने के लिए इंटरैक्ट करना होगा।
सीतनिद्रा में होना
इसे सस्पेंड-टू-डिस्क (S2D/S4) भी कहा जाता है। एसओसी को एस4 पावर मोड (हाइबरनेट) में रखा गया है और रैम सामग्री को गैर-वाष्पशील मीडिया (जैसे फ्लैश या डिस्क) पर लिखा जाता है और पूरा सिस्टम बंद हो जाता है।
मीडिया प्रोसेसर (एमपी)
सिस्टम ऑन ए चिप (एसओसी) देखें।
पावर मैनेजमेंट इंटीग्रेटेड सर्किट (पीएमआईसी)
होस्ट सिस्टम के लिए बिजली की आवश्यकताओं को प्रबंधित करने के लिए चिप का उपयोग किया जाता है।
चिप पर सिस्टम (SoC)
मुख्य प्रोसेसर जो AAOS चलाता है, आमतौर पर इंटेल, मीडियाटेक, एनवीडिया, क्वालकॉम, रेनेसा और टेक्सास इंस्ट्रूमेंट्स जैसे निर्माताओं द्वारा आपूर्ति की जाती है।
निलंबित
इसे सस्पेंड-टू-रैम (S2R या STR) भी कहा जाता है। SoC को S3 पावर मोड में रखा गया है और CPU को बंद कर दिया गया है जबकि RAM चालू रहती है।
वाहन एचएएल (वीएचएएल)
एंड्रॉइड एपीआई का उपयोग वाहन नेटवर्क के साथ इंटरफेस करने के लिए किया जाता है। इस मॉड्यूल को लिखने के लिए टियर 1 पार्टनर या ओईएम जिम्मेदार है। वाहन नेटवर्क किसी भी भौतिक परत (जैसे CAN, LIN, MOST और ईथरनेट) का उपयोग कर सकता है। एएओएस को वाहन के साथ बातचीत करने में सक्षम बनाने के लिए वीएचएएल इस वाहन नेटवर्क को अमूर्त करता है।
वाहन इंटरफ़ेस प्रोसेसर (वीआईपी)
वाहन एमसीयू देखें।
वाहन मास्टर कंट्रोल यूनिट (वीएमसीयू)
माइक्रोकंट्रोलर जो वाहन नेटवर्क और SoC के बीच इंटरफ़ेस प्रदान करता है। SoC USB, UART, SPI और GPIO सिग्नल के माध्यम से VMCU के साथ संचार करता है।

प्रणाली की रूपरेखा

यह अनुभाग बताता है कि एएओएस ऐप प्रोसेसर की पावर स्थिति का प्रतिनिधित्व कैसे करता है और कौन से मॉड्यूल पावर प्रबंधन प्रणाली को लागू करते हैं। यह सामग्री यह भी बताती है कि ये मॉड्यूल एक साथ कैसे काम करते हैं और आम तौर पर राज्य परिवर्तन कैसे होते हैं।

कार पावर स्टेट मशीन

एएओएस एपी की शक्ति स्थिति का प्रतिनिधित्व करने के लिए एक राज्य मशीन का उपयोग करता है। राज्य मशीन नीचे सचित्र राज्य प्रदान करती है:

कार पावर स्टेट मशीन

चित्र 1. कार पावर स्टेट मशीन।

सबसे आम बदलावों को नीले रंग में हाइलाइट किया गया है। ये स्थितियाँ और सामान्य परिवर्तन हैं:

  • सस्पेंड-टू-रैम। वाहन और एसओसी बंद हैं। कोई कोड निष्पादित नहीं किया जा रहा है. एसओसी रैम को पावर बनाए रखा जाता है।
  • वीएचएएल की प्रतीक्षा करें. जब ड्राइवर वाहन के साथ इंटरैक्ट करता है, उदाहरण के लिए, दरवाजा खोलकर, तो वीएमसीयू SoC पर पावर लागू करता है। एएओएस सस्पेंड-टू-रैम से शुरू होता है और वेट फॉर वीएचएएल में प्रवेश करता है, जहां यह वीएचएएल के साथ समन्वय की प्रतीक्षा करता है।
  • पर। वीएचएएल एएओएस को ऑन स्थिति में प्रवेश करने के लिए कहता है। इस स्थिति में, AAOS पूरी तरह से चल रहा है और ड्राइवर के साथ इंटरैक्ट कर रहा है।
  • शटडाउन की तैयारी. जब ड्राइवर ड्राइविंग समाप्त कर लेता है, तो वीएचएएल एएओएस को शटडाउन प्रिपेयर में प्रवेश करने के लिए कहता है। इस स्थिति में, डिस्प्ले और ऑडियो बंद हैं और AAOS ड्राइवर के साथ इंटरैक्ट नहीं कर रहा है। एंड्रॉइड सिस्टम अभी भी चल रहा है और ऐप्स और एंड्रॉइड सिस्टम को अपडेट करने के लिए निःशुल्क है। जब अपडेट, यदि कोई हो, पूरा हो जाता है, तो एंड्रॉइड सिस्टम वीएचएएल फिनिश के लिए प्रतीक्षा करें में प्रवेश करता है।
  • वीएचएएल समाप्त होने की प्रतीक्षा करें। इस बिंदु पर, AAOS VHAL को सूचित करता है कि वह बंद करने के लिए तैयार है। वीएमसीयू से एसओसी को डीप स्लीप में रखने और ऐप प्रोसेसर से पावर हटाने की उम्मीद है। एएओएस तब सस्पेंड-टू-रैम स्थिति में है, हालांकि कोई कोड निष्पादित नहीं किया जा रहा है।

बिजली प्रबंधन मॉड्यूल

बिजली प्रबंधन प्रणाली इन मॉड्यूलों से बनी है:

मोड्यूल का नाम विवरण
कारपावरमैनेजर जावा या सी++ एपीआई।
कारपावरप्रबंधनसेवा शक्ति स्थिति परिवर्तन का समन्वय करता है।
कारपावरपॉलिसीडेमन देशी विद्युत नीति ग्राहकों के साथ संचार करता है।
वाहन एचएएल वीएमसीयू के लिए इंटरफ़ेस।
गुठली रैम या डिस्क कार्यान्वयन को निलंबित करें।

गहरी नींद/हाइबरनेशन सुविधा (एंड्रॉइड को रैम/डिस्क पर निलंबित करना) कर्नेल में लागू किया गया है। यह सुविधा /sys/power/state पर स्थित एक विशेष फ़ाइल के रूप में उपयोगकर्ता स्थान पर प्रदर्शित होती है। इस फ़ाइल में mem या disk लिखकर AAOS को निलंबित कर दिया जाता है।

सीपीएमएस अन्य सेवाओं और एचएएल के साथ बिजली की स्थिति का समन्वय करता है। सीपीएमएस ऊपर वर्णित राज्य मशीन को कार्यान्वित करता है और पावर राज्य परिवर्तन होने पर प्रत्येक पर्यवेक्षक को सूचनाएं भेजता है। यह सेवा हार्डवेयर को संदेश भेजने के लिए VHAL का भी उपयोग करती है।

CPPD बिजली नीति का प्रबंधन तब तक करता है जब तक CPMS नियंत्रण नहीं ले लेता। यह मूल श्रोताओं को पावर नीति परिवर्तन सूचनाएं भी भेजता है।

कुछ संपत्तियों को वीएचएएल में परिभाषित किया गया है। वीएमसीयू के साथ संचार करने के लिए, सीपीएमएस इन गुणों को पढ़ता और लिखता है। ऐप्स पावर स्थिति परिवर्तनों की निगरानी के लिए सीपीएम में परिभाषित इंटरफ़ेस का उपयोग कर सकते हैं। यह इंटरफ़ेस ऐप्स को पावर पॉलिसी श्रोताओं को पंजीकृत करने में भी सक्षम बनाता है। इस एपीआई को जावा से कॉल किया जा सकता है और इसे @hide / @System API के साथ एनोटेट किया गया है, जिसका अर्थ है कि यह केवल विशेषाधिकार प्राप्त ऐप्स के लिए उपलब्ध है। इन मॉड्यूल, ऐप्स और सेवाओं के बीच संबंध नीचे दर्शाया गया है:

पावर घटक संदर्भ आरेख

चित्र 2. पावर घटक संदर्भ आरेख।

संदेश क्रम

पिछले अनुभाग में उन मॉड्यूल का वर्णन किया गया है जिनमें पावर प्रबंधन प्रणाली शामिल है। मॉड्यूल और ऐप्स कैसे संचार करते हैं यह समझाने के लिए यह अनुभाग गहरी नींद में प्रवेश और गहरी नींद से बाहर निकलने के उदाहरणों का उपयोग करता है:

गहरी नींद में प्रवेश करें

केवल वीएमसीयू ही गहरी नींद की शुरुआत कर सकता है। एक बार जब गहरी नींद शुरू हो जाती है, तो वीएमसीयू वीएचएएल के माध्यम से सीपीएमएस को एक अधिसूचना भेजता है। CPMS राज्य को SHUTDOWN PREPARE में बदल देता है और CPM द्वारा प्रदान की गई एक नई राज्य आईडी के साथ onStateChanged() विधि को कॉल करके इस राज्य परिवर्तन को सभी पर्यवेक्षकों (सीपीएमएस की निगरानी करने वाले ऐप्स और सेवाएं) में प्रसारित करता है।

सीपीएम ऐप्स/सेवाओं और सीपीएमएस के बीच मध्यस्थता करता है। ऐप्स/सेवाओं के लिए onStateChanged() विधि को CPM की onStateChanged() विधि में समकालिक रूप से लागू किया जाता है। अधिकांश ऐप्स और सेवाओं को इस कॉल से लौटने से पहले अपनी तैयारी पूरी करने की आवश्यकता होती है। विशेषाधिकार प्राप्त सेवाओं को PRE_SHUTDOWN_PREPARE , SUSPEND_ENTER , POST_SUSPEND_ENTER के लिए लौटने के बाद अपनी तैयारी अतुल्यकालिक रूप से जारी रखने की अनुमति है। इस मामले में, विशेषाधिकार प्राप्त सेवा को अपनी तैयारी पूरी होने पर प्रदान किए गए CompletablePowerStateChangeFuture ऑब्जेक्ट पर पूर्ण() को कॉल करना चाहिए। ध्यान दें कि SHUTDOWN_PREPARE के लिए अतुल्यकालिक तैयारी की अनुमति नहीं है। DEEP_SLEEP_ENTRY को VHAL को भेजे जाने से पहले, CPMS समय-समय पर VHAL को शटडाउन स्थगित अनुरोध भेजता है।

जब सभी सीपीएम ऑब्जेक्ट शटडाउन की तैयारी पूरी कर लेते हैं, तो सीपीएमएस वीएचएएल को AP_POWER_STATE_REPORT भेजता है, जो तब वीएमसीयू को सूचित करता है कि एपी निलंबित करने के लिए तैयार है। सीपीएमएस अपनी सस्पेंड विधि को भी कॉल करता है, जो कर्नेल को निलंबित करता है।

ऊपर वर्णित क्रम नीचे दर्शाया गया है:

गहरी नींद में प्रवेश करें

चित्र 3. गहरी नींद में प्रवेश करें।

सीपीएम द्वारा प्रदान किया गया प्रोग्रामिंग इंटरफ़ेस

यह अनुभाग सिस्टम ऐप्स और सेवाओं के लिए सीपीएम द्वारा प्रदान की गई जावा एपीआई का वर्णन करता है। यह API सिस्टम सॉफ़्टवेयर को निम्न में सक्षम बनाता है:

  • एपी में पावर स्थिति परिवर्तन की निगरानी करें।
  • बिजली नीतियां लागू करें.

सीपीएम द्वारा प्रदान की गई एपीआई को कॉल करने के लिए इन चरणों का उपयोग करें:

  1. सीपीएम इंस्टेंस प्राप्त करने के लिए, कार एपीआई को कॉल करें।
  2. चरण 1 में बनाए गए ऑब्जेक्ट पर उचित विधि को कॉल करें।

एक CarPowerManager ऑब्जेक्ट बनाएं

CPM ऑब्जेक्ट बनाने के लिए, कार ऑब्जेक्ट की getCarManager() विधि को कॉल करें। यह विधि सीपीएम ऑब्जेक्ट बनाने के लिए उपयोग किया जाने वाला एक मुखौटा है। CPM ऑब्जेक्ट बनाने के लिए android.car.Car.POWER_SERVICE तर्क के रूप में निर्दिष्ट करें।

Car car = Car.createCar(this);
CarPowerManager powerManager =
  (CarPowerManager) car.getCarManager(android.car.Car.POWER_SERVICE);

CarPowerStateListener और पंजीकरण

सिस्टम ऐप्स और सेवाएँ CarPowerManager.CarPowerStateListener को लागू करके पावर स्थिति परिवर्तन सूचनाएं प्राप्त कर सकते हैं। यह इंटरफ़ेस एक विधि onStateChanged() को परिभाषित करता है, जो CPMS की पावर स्थिति बदलने पर कॉलबैक फ़ंक्शन होता है। निम्नलिखित उदाहरण एक नए अनाम वर्ग को परिभाषित करता है जो इंटरफ़ेस लागू करता है:

private final CarPowerManager.CarPowerStateListener powerListener =
  new CarPowerManager.CarPowerStateListener () {
    @Override
     public void onStateChanged(int state) {
       Log.i(TAG, "onStateChanged() state = " + state);
     }
};

इस श्रोता ऑब्जेक्ट को पावर स्टेट ट्रांज़िशन की निगरानी करने का निर्देश देने के लिए, एक नया निष्पादन थ्रेड बनाएं और श्रोता और इस थ्रेड को सीपीएम ऑब्जेक्ट में पंजीकृत करें:

executor = new ThreadPerTaskExecutor();
powerManager.setListener(powerListener, executor);

जब पावर स्थिति बदली जाती है, तो नई पावर स्थिति का प्रतिनिधित्व करने के लिए श्रोता ऑब्जेक्ट की onStateChanged() विधि को एक मान के साथ लागू किया जाता है। वास्तविक मूल्य और पावर स्थिति के बीच संबंध को CarPowerManager में परिभाषित किया गया है और इसे निम्न तालिका में दिखाया गया है:

नाम विवरण
राज्य_चालू चालू स्थिति दर्ज करें. सिस्टम पूरी तरह चालू है.
राज्य_बंद_कर दिया गया शटडाउन रद्द कर दिया गया है और बिजली की स्थिति सामान्य स्थिति में वापस आ गई है।
STATE_SHUTDOWN_ENTER उम्मीद की जाती है कि ऐप्स साफ हो जाएंगे और बंद होने के लिए तैयार हो जाएंगे।
STATE_POST_SHUTDOWN_ENTER बंद करने की तैयारी पूरी हो चुकी है और वीएमसीयू बंद करने के लिए तैयार है। शटडाउन स्थिति दर्ज करें.
राज्य_पूर्व_बंद_करें_तैयार शटडाउन प्रक्रिया का अनुरोध किया गया है लेकिन सीपीएमएस ने अभी तक प्रक्रिया शुरू नहीं की है। डिस्प्ले और ऑडियो अभी भी चालू हैं
राज्य_बंद_करें_तैयार करें इस अवधि के दौरान गैराज मोड चल सकता है।
STATE_SUSPEND_ENTER उम्मीद की जाती है कि ऐप्स साफ हो जाएंगे और सस्पेंड-टू-रैम के लिए तैयार हो जाएंगे।
STATE_POST_SUSPEND_ENTER सस्पेंड-टू-रैम की तैयारी पूरी हो चुकी है और वीएमसीयू सस्पेंड-टू-रैम के लिए तैयार है। निलंबित स्थिति दर्ज करें.
STATE_SUSPEND_EXIT सस्पेंड से उठें या रद्द किए गए सस्पेंड से फिर से शुरू करें।
STATE_HIBERNATION_ENTER उम्मीद की जाती है कि ऐप्स साफ हो जाएंगे और हाइबरनेशन के लिए तैयार हो जाएंगे।
STATE_POST_HIBERNATION_ENTER हाइबरनेशन की तैयारी पूरी हो गई है और वीएमसीयू हाइबरनेशन के लिए तैयार है हाइबरनेशन स्थिति दर्ज करें।
राज्य_हाइबरनेशन_बाहर निकलें हाइबरनेशन से जागें या रद्द किए गए हाइबरनेशन से फिर से शुरू करें।
राज्य_प्रतीक्षा_के_लिए_वीएचएएल सिस्टम शुरू हो रहा है, लेकिन चालू स्थिति में जाने से पहले वीएचएएल के साथ संचार स्थापित करने की प्रतीक्षा कर रहा है।

CarPowerStateListener का पंजीकरण रद्द करना

सीपीएम में पंजीकृत सभी श्रोता ऑब्जेक्ट को अपंजीकृत करने के लिए, clearListener विधि को कॉल करें:

powerManager.clearListener();

आपके एंड्रॉइड कार्यान्वयन पर सिस्टम एकीकरण

इंटीग्रेटर्स निम्नलिखित मदों के लिए जिम्मेदार हैं:

  • एंड्रॉइड को निलंबित करने के लिए कर्नेल इंटरफ़ेस लागू करना।
  • वीएचएएल कार्यों को कार्यान्वित करना:
    • एंड्रॉइड पर कार से निलंबन या शटडाउन की शुरुआत का प्रचार करें।
    • एंड्रॉइड से कार को शटडाउन रेडी संदेश भेजें।
    • लिनक्स कर्नेल इंटरफ़ेस के माध्यम से एंड्रॉइड को शटडाउन या निलंबित करना शुरू करें।
  • सुनिश्चित करें कि डिवाइस सस्पेंड होने पर सभी वेकसोर्स अक्षम हो जाएं।
  • सुनिश्चित करें कि ऐप्स जल्दी से बंद हो जाएं ताकि शटडाउन प्रक्रिया अनिश्चित काल के लिए स्थगित न हो।
  • सुनिश्चित करें कि बीएसपी पावर नीति के अनुसार डिवाइस घटकों को चालू (या बंद) करता है ताकि निलंबन या हाइबरनेशन को अवरुद्ध न किया जा सके

कर्नेल इंटरफ़ेस: /sys/power/state

जब कोई ऐप या सेवा /sys/power/state पर स्थित फ़ाइल में सस्पेंड-टू-रैम के लिए mem या सस्पेंड-टू- disk के लिए डिस्क लिखती है, तो AAOS एक डिवाइस को सस्पेंड मोड में रखता है। इंटीग्रेटर को एक फ़ंक्शन प्रदान करना होगा जो इस फ़ाइल की निगरानी करता है और लिनक्स को निलंबित पावर स्थिति में डालता है। यह फ़ंक्शन VMCU को एक GPIO भेजकर VMCU को सूचित कर सकता है कि डिवाइस पूरी तरह से बंद हो गया है। इंटीग्रेटर वीएमसीयू को अंतिम संदेश भेजने वाले वीएचएएल और सिस्टम के सस्पेंड या शटडाउन मोड में जाने के बीच किसी भी दौड़ की स्थिति को दूर करने के लिए भी जिम्मेदार है।

वीएचएएल जिम्मेदारी

वीएचएएल वाहन नेटवर्क और एंड्रॉइड के बीच एक इंटरफ़ेस प्रदान करता है। वीएचएएल:

  • कार से एंड्रॉइड तक सस्पेंड या शटडाउन की शुरुआत का प्रचार करता है।
  • एंड्रॉइड से कार को शटडाउन रेडी संदेश भेजता है।
  • लिनक्स कर्नेल इंटरफ़ेस के माध्यम से एंड्रॉइड को शटडाउन या निलंबित करना शुरू करता है।

जब सीपीएमएस वीएचएएल को सूचित करता है कि यह बंद करने के लिए तैयार है, तो वीएचएएल वीएमसीयू को शटडाउन तैयार संदेश भेजता है। आमतौर पर, यूएआरटी, एसपीआई और यूएसबी जैसे ऑन-चिप परिधीय संदेश संचारित करते हैं। एक बार संदेश भेजे जाने के बाद, सीपीएमएस डिवाइस को निलंबित या बंद करने के लिए कर्नेल कमांड को कॉल करता है। ऐसा करने से पहले, वीएचएएल या बीएसपी वीएमसीयू को निर्देश देने के लिए एक जीपीआईओ को टॉगल कर सकता है कि डिवाइस से बिजली निकालना सुरक्षित है।

वीएचएएल को निम्नलिखित गुणों का समर्थन करना चाहिए, जो वीएचएएल के माध्यम से बिजली प्रबंधन को नियंत्रित करते हैं:

नाम विवरण
AP_POWER_STATE_रिपोर्ट एंड्रॉइड,VehicleAppPowerStateReport एनम मानों का उपयोग करते हुए, इस संपत्ति के साथ वीएमसीयू में स्थिति परिवर्तन की रिपोर्ट करता है।
AP_POWER_STATE_REQ वीएमसीयू इस संपत्ति का उपयोग व्हीकलएपपॉवरस्टेटरेक एनम मानों का उपयोग करके एंड्रॉइड को विभिन्न पावर राज्यों में संक्रमण के लिए निर्देश देने के लिए करता है।

AP_POWER_STATE_रिपोर्ट

एंड्रॉइड की वर्तमान पावर प्रबंधन स्थिति की रिपोर्ट करने के लिए इस प्रॉपर्टी का उपयोग करें। इस संपत्ति में दो पूर्णांक हैं:

  • int32Values[0] : वर्तमान स्थिति का व्हीकलएपपावरस्टेटरिपोर्ट एनम।
  • int32Values[1] : स्थगित करने या स्लीप करने या शटडाउन करने का समय मिलीसेकंड में। इस मान का अर्थ पहले मान पर निर्भर करता है।

पहला मान निम्नलिखित में से कोई एक मान ले सकता है। VehicleApPowerStateReport.aidl में अधिक विशिष्ट विवरण शामिल हैं, जो hardware/interfaces/automotive/vehicle/aidl/android/hardware/automotive/vehicle में संग्रहीत हैं।

मान नाम विवरण दूसरा मान
VHAL के लिए प्रतीक्षा करें एपी प्रारंभ हो रहा है और उसे वीएचएएल के साथ संचार स्थापित करने की आवश्यकता है।
गहरी_नींद_प्रवेश एपी गहरी नींद की अवस्था में प्रवेश कर रहा है। वीएमसीयू को दूसरे मान में निर्दिष्ट समय के बाद एपी को वापस चालू करना चाहिए। सेट होना चाहिए
गहरी_नींद_निकलें एपी गहरी नींद की अवस्था से बाहर निकल रहा है।
HIBERNATION_ENTRY एपी हाइबरनेशन अवस्था में प्रवेश कर रहा है। वीएमसीयू को दूसरे मान में निर्दिष्ट समय के बाद एपी को वापस चालू करना चाहिए। सेट होना चाहिए
हाइबरनेशन_बाहर निकलें एपी हाइबरनेशन अवस्था से बाहर निकल रहा है।
शटडाउन_पोस्टपोन Android बंद होने के लिए तैयार नहीं है. एपी को बंद करने से पहले वीएमसीयू को दूसरे मान में निर्दिष्ट समय का इंतजार करना चाहिए। एंड्रॉइड अतिरिक्त SHUTDOWN_POSTPONE रिपोर्ट जारी करके अतिरिक्त स्थगन का अनुरोध कर सकता है। सेट होना चाहिए
शटडाउन_तैयार करें एंड्रॉइड बंद करने की तैयारी कर रहा है. सेट होना चाहिए
शटडाउन_स्टार्ट एपी बंद करने के लिए तैयार है. वीएमसीयू को दूसरे मान में निर्दिष्ट समय के बाद एपी को वापस चालू करना चाहिए। (वीएमसीयू को समयबद्ध टर्न-ऑन सुविधा का समर्थन करने की आवश्यकता नहीं है।) सेट होना चाहिए
शटडाउन_रद्द किया गया एंड्रॉइड बंद होने की तैयारी बंद कर रहा है और WAIT_FOR_VHAL पर आगे बढ़ेगा।
पर एंड्रॉइड सामान्य रूप से चल रहा है।

राज्य को स्वायत्त रूप से या वीएमसीयू के माध्यम से अनुरोध के जवाब में सेट किया जा सकता है।

AP_POWER_STATE_REQ

यह संपत्ति वीएमसीयू द्वारा एंड्रॉइड को एक अलग पावर स्थिति में परिवर्तित करने के लिए भेजी जाती है और इसमें दो पूर्णांक होते हैं:

  • int32Values[0] : VehicleApPowerStateReq enum मान, जो उस नई स्थिति का प्रतिनिधित्व करता है जिसमें संक्रमण करना है।
  • int32Values[1] : VehicleApPowerStateShutdownParam एनम वैल्यू। यह मान केवल SHUTDOWN_PREPARE संदेश के लिए भेजा जाता है और इसमें मौजूद विकल्पों को Android पर प्रसारित करता है।

पहला पूर्णांक मान उस नई स्थिति का प्रतिनिधित्व करता है जिसमें एंड्रॉइड को पारगमन करना है। शब्दार्थ को VehicleApPowerStateReq.aidl में परिभाषित किया गया है और नीचे दिया गया है:

मान नाम विवरण
पर एपी को पूर्ण परिचालन शुरू करना चाहिए।
शटडाउन_तैयार करें एपी को बंद करने की तैयारी करनी चाहिए। दूसरा मान इंगित करता है कि क्या एपी को शटडाउन स्थगित करने की अनुमति है और क्या एपी को बिजली बंद करने या गहरी नींद में प्रवेश करने की उम्मीद करनी चाहिए।
रद्द करें_बंद करें एपी को बंद करने की तैयारी बंद कर देनी चाहिए और आगे बढ़ने की तैयारी करनी चाहिए।
खत्म एपी को अब बंद या निलंबित कर दिया जाएगा।

VehicleApPowerStateShutdownParam को VehicleApPowerStateShutdownParam.aidl में परिभाषित किया गया है। इस एनम में ये तत्व हैं:

मान नाम विवरण
सो सकते हैं एपी पूरी तरह से बंद होने के बजाय गहरी नींद में प्रवेश कर सकता है। स्थगित करने की अनुमति है.
CAN_हाइबरनेट एपी पूरी तरह से बंद होने के बजाय हाइबरनेशन में प्रवेश कर सकता है। स्थगित करने की अनुमति है.
केवल_बंद करें एपी को बंद कर देना चाहिए. स्थगित करने की अनुमति है. गहरी नींद की अनुमति नहीं है.
तुरंत सो जाओ एपी गहरी नींद में प्रवेश कर सकता है, लेकिन या तो सो जाना चाहिए या तुरंत बंद हो जाना चाहिए। स्थगित करने की अनुमति नहीं है.
हाइबरनेट_तत्काल एपी सस्पेंड-टू-डिस्क में प्रवेश कर सकता है, लेकिन उसे या तो हाइबरनेट होना चाहिए या तुरंत बंद होना चाहिए। स्थगित करने की अनुमति नहीं है.
तुरंत_बंद करें एपी को तुरंत बंद कर देना चाहिए। स्थगित करने की अनुमति नहीं है. गहरी नींद की अनुमति नहीं है.

जागो सूत्र

जब डिवाइस सस्पेंड मोड में हो तो इंटीग्रेटर को उचित वेक सोर्स को अक्षम करना होगा। सामान्य वेक स्रोतों में दिल की धड़कन, मॉडेम, वाई-फाई और ब्लूटूथ शामिल हैं। SoC को जगाने के लिए एकमात्र वैध वेक स्रोत VMCU से एक व्यवधान होना चाहिए। यह मानता है कि वीएमसीयू रिमोट वेकअप इवेंट (जैसे रिमोट इंजन स्टार्ट) के लिए मॉडेम को सुन सकता है। यदि इस कार्यक्षमता को एपी पर धकेल दिया जाता है, तो मॉडेम की सेवा के लिए एक और वेक स्रोत जोड़ा जाना चाहिए।

ऐप्स

ओईएम को ऐप्स लिखने में सावधानी बरतनी चाहिए ताकि उन्हें जल्दी से बंद किया जा सके और प्रक्रिया को अनिश्चित काल के लिए स्थगित न किया जाए।

अनुबंध

स्रोत कोड ट्री में निर्देशिकाएँ

सामग्री निर्देशिका
कारपावरमैनेजर-संबंधित कोड। packages/services/Car/car-lib/src/android/car/hardware/power
कारपावरमैनेजमेंटसर्विस वगैरह। packages/services/Car/service/src/com/android/car/power
वीएचएएल से संबंधित सेवाएं, जैसे VehicleHal और HAlClient packages/services/Car/service/src/com/android/car/hal
वीएचएएल इंटरफ़ेस और संपत्ति परिभाषाएँ। hardware/interfaces/automotive/vehicle/aidl/android/hardware/automotive/vehicle/
CarPowerManager के बारे में कुछ जानकारी प्रदान करने के लिए नमूना ऐप packages/services/Car/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink

कक्षा आरेख

यह वर्ग आरेख पावर प्रबंधन प्रणाली में जावा कक्षाओं और इंटरफेस को प्रदर्शित करता है:

पावर वर्ग आरेख

चित्र 4. पावर वर्ग आरेख।

वस्तु संबंध

चित्र 5 दर्शाता है कि किन वस्तुओं में अन्य वस्तुओं का संदर्भ है। किनारे का अर्थ है कि स्रोत वस्तु लक्ष्य वस्तु का संदर्भ रखती है। उदाहरण के लिए, व्हीकलएचएएल में प्रॉपर्टीहालसर्विस ऑब्जेक्ट का संदर्भ है।

वस्तु संदर्भ आरेख

चित्र 5. वस्तु संदर्भ आरेख।