पावर पॉलिसी

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

वेट फॉर वीएचएएल और ऑन के राज्यों में बिजली नीति लागू करने की अनुमति है। शटडाउन तैयारी में, गैराज मोड चल रहा है और पावर स्थिति परिवर्तन से परेशान नहीं होना चाहिए। हालांकि एक नियमित बिजली नीति लागू नहीं की जा सकती है, एक विशेष बिजली नीति, जो "नो यूजर इंटरेक्शन" नाम की सिस्टम पावर पॉलिसी है, शटडाउन तैयारी में लागू होती है।

एएओएस पावर स्टेट

AAOS डिवाइस इस पावर स्टेट डायग्राम का अनुसरण करते हैं:

एएओएस पावर स्टेट आरेख

चित्रा 1. एएओएस पावर स्टेट आरेख

प्रत्येक शक्ति राज्य नीचे वर्णित है:

मूल्य विवरण
बंद एप्लिकेशन प्रोसेसर (एपी), मेमोरी और बाह्य उपकरणों को भौतिक रूप से कोई शक्ति प्रदान नहीं की जाती है।
VHAL . के लिए प्रतीक्षा करें
  • जब ड्राइवर वाहन के साथ इंटरैक्ट करता है (उदाहरण के लिए, एक दरवाजा खोलकर), वीएमसीयू एपी, मेमोरी को पावर लागू करता है। और परिधीय।
  • तीन राज्यों में से एक से एएओएस संक्रमण (ऑफ, सस्पेंड-टू-रैम (एसटीआर, वीएचएएल फिनिश के लिए प्रतीक्षा करें) और फिर वीएचएएल के लिए प्रतीक्षा करें, जहां यह वीएचएएल के साथ समन्वय की प्रतीक्षा करता है।
पर
  • VHAL AAOS को ऑन स्टेट में प्रवेश करने का निर्देश देता है। इस स्थिति में, AAOS पूरी तरह से चल रहा है और ड्राइवर के साथ बातचीत कर रहा है।
  • प्रदर्शन को पावर नीति द्वारा नियंत्रित किया जाता है, न कि अन्य प्रपत्र कारकों के लिए Android प्रदर्शन चालू/बंद कॉल द्वारा।
शटडाउन तैयारी
  • जब चालक ने गाड़ी चलाना बंद कर दिया है, तो वीएचएएल एएओएस को शटडाउन तैयारी में प्रवेश करने का निर्देश देता है। इस स्थिति में, डिस्प्ले और ऑडियो बंद हैं और AAOS ड्राइवर के साथ इंटरैक्ट नहीं कर रहा है। Android सिस्टम अभी भी चल रहा है और ऐप्स और Android सिस्टम को अपडेट कर सकता है। जब अपडेट (यदि कोई हो) पूर्ण हो जाते हैं, तो Android सिस्टम VHAL समाप्त होने की प्रतीक्षा करें में प्रवेश करता है।
VHAL के समाप्त होने की प्रतीक्षा करें
  • AAOS VHAL को सूचित करता है कि इसे बंद किया जा सकता है। वाहन माइक्रोकंट्रोलर यूनिट (VMCU) से सिस्टम-ऑन-चिप (SoC) को गहरी नींद में रखने और AP से बिजली निकालने की उम्मीद है। AAOS तब STR स्थिति में है, हालाँकि कोई कोड निष्पादित नहीं किया जा रहा है।
  • यदि वीएचएएल समाप्त नहीं होता है और चालक वापस आ जाता है, तो हेड यूनिट (एचयू) को सीधे वीएचएएल की प्रतीक्षा में संक्रमण करना चाहिए।
सस्पेंड-टू-रैम (एसटीआर) वाहन और एपी बंद हैं, कोई कोड निष्पादित नहीं किया जा रहा है, और एपी रैम को शक्ति बनाए रखी जाती है।

सॉफ़्टवेयर वास्तुशिल्प

पावर पॉलिसी आर्किटेक्चर को नीचे दिखाया गया है और निम्नलिखित अनुभाग में परिभाषित किया गया है:

चित्र 2. पावर पॉलिसी आर्किटेक्चर

बिजली नीति को कैसे परिभाषित किया जाता है?

कार्यान्वयनकर्ता बिजली नीतियों को /vendor/etc/automotive/power_policy.xml में परिभाषित करते हैं, जो:

  • बिजली नीति को परिभाषित करता है।
  • पावर पॉलिसी समूहों को परिभाषित करता है, जिसमें डिफ़ॉल्ट पावर पॉलिसी शामिल होती है और पावर स्टेट ट्रांज़िशन होने पर स्वचालित रूप से लागू होती है।
  • सिस्टम पावर नीति को ओवरराइड करें।

बिजली नीति

पावर पॉलिसी हार्डवेयर और सॉफ्टवेयर घटकों की अपेक्षित पावर स्टेट्स का एक सेट है। AAOS बिजली नीति में निम्नलिखित घटकों का समर्थन करता है:

  • AUDIO
  • MEDIA
  • DISPLAY_MAIN
  • DISPLAY_CLUSTER
  • DISPLAY_FRONT_PASSENGER
  • DISPLAY_REAR_PASSENGER
  • BLUETOOTH
  • WIFI
  • CELLULAR
  • ETHERNET
  • PROJECTION
  • NFC
  • INPUT
  • VOICE_INTERACTION
  • VISUAL_INTERACTION
  • TRUSTED_DEVICE_DETECTION
  • LOCATION
  • MICROPHONE
  • CPU

बिजली नीति समूह

पावर पॉलिसी समूह में निर्दिष्ट पावर स्टेट ट्रांज़िशन पर डिफ़ॉल्ट पावर पॉलिसी स्वचालित रूप से लागू होती है। विक्रेता VHAL के लिए प्रतीक्षा करें, चालू करें और VHAL समाप्त होने की प्रतीक्षा करें (डीप स्लीप एंट्री या शटडाउन स्टार्ट) के लिए डिफ़ॉल्ट पावर नीति को परिभाषित कर सकते हैं।

सिस्टम पावर पॉलिसी

AAOS केवल एक सिस्टम पावर पॉलिसी का समर्थन करता है, जो "नो यूजर इंटरेक्शन" है। सिस्टम पावर पॉलिसी तब लागू होती है जब डिवाइस साइलेंट मोड या गैराज मोड में चला जाता है।

सिस्टम पावर पॉलिसी में प्रत्येक घटक का व्यवहार नीचे दी गई तालिका में सूचीबद्ध है। कार्यान्वयनकर्ता सिस्टम पावर नीति में ब्लूटूथ, एनएफसी और विश्वसनीय डिवाइस पहचान को ओवरराइड कर सकते हैं। ओवरराइड को /vendor/etc/power_policy.xml में लागू किया जाता है।

अवयव पावर स्टेट विन्यास
ऑडियो बंद नहीं
मीडिया बंद नहीं
मुख्य प्रदर्शित करें बंद नहीं
प्रदर्शन क्लस्टर बंद नहीं
सामने वाले यात्री को प्रदर्शित करें बंद नहीं
पिछला यात्री प्रदर्शित करें बंद नहीं
ब्लूटूथ बंद हां
वाई - फाई पर नहीं
सेलुलर पर नहीं
ईथरनेट पर नहीं
प्रक्षेपण बंद नहीं
एनएफसी बंद हां
इनपुट बंद नहीं
आवाज बातचीत बंद नहीं
दृश्य बातचीत बंद नहीं
विश्वसनीय डिवाइस का पता लगाना पर हां
स्थान बंद नहीं
माइक्रोफ़ोन बंद नहीं
सी पी यू पर नहीं

VHAL . के साथ सहभागिता

सिस्टम लेयर में चलने वाली कार पावर पॉलिसी डेमॉन VHAL के अनुरोधों को सुनने के लिए दो गुणों की सदस्यता लेती है:

  • POWER_POLICY_REQ , VHAL इस प्रॉपर्टी को पावर पॉलिसी आईडी लिखता है।
  • POWER_POLICY_GROUP_REQ , VHAL इस प्रॉपर्टी के लिए पावर पॉलिसी ग्रुप आईडी लिखता है।

सिस्टम में वर्तमान बिजली नीति को VHAL के अलावा अन्य मॉड्यूल द्वारा बदला जा सकता है। उस स्थिति में, कार पावर पॉलिसी डेमॉन VHAL में परिवर्तन को सूचित करने के लिए CURRENT_POWER_POLICY प्रॉपर्टी को अपडेट करता है।

देशी प्रक्रियाओं के साथ सहभागिता

जैसा कि ऊपर उल्लेख किया गया है, कार पावर पॉलिसी डेमॉन सिस्टम लेयर में चलता है और पावर पॉलिसी मैनेजमेंट के संदर्भ में, फ्रेमवर्क लेयर में चलने वाले सीपीएमएस के समान ही कार्यक्षमता प्रदान करता है। साथ ही, मान लें कि कार पावर पॉलिसी डेमॉन और सीपीएमएस पूरी तरह से समन्वयित हैं।

कार पावर पॉलिसी डेमॉन एचएएल और अन्य मूल प्रक्रियाओं द्वारा उपयोग के लिए एआईडीएल इंटरफेस का निर्यात करता है। नई बिजली नीति में बदलाव होने पर उन्हें सूचित किया जा सकता है। दूसरे शब्दों में, जब प्रत्येक को अपनी शक्ति की स्थिति बदलनी होगी।

ICarPowerPolicyServer.aidl

package android.frameworks.automotive.powerpolicy;

import android.frameworks.automotive.powerpolicy.CarPowerPolicy;
import android.frameworks.automotive.powerpolicy.CarPowerPolicyFilter;
import android.frameworks.automotive.powerpolicy.ICarPowerPolicyChangeCallback;
import android.frameworks.automotive.powerpolicy.PowerComponent;

/**
 * ICarPowerPolicyServer is an interface implemented by the power policy daemon.
 * VHAL changes the power policy and the power policy daemon notifies the change to registered
 * subscribers. When subscribing to policy changes, a filter can be specified so that the registered
 * callbacks can listen only to a specific power component's change.
 */

@VintfStability
interface ICarPowerPolicyServer {
  /**
   * Gets the current power policy.
   */
  CarPowerPolicy getCurrentPowerPolicy();

  /**
   * Gets whether the power component is turned on or off.
   *
   * @param componentId Power component ID defined in PowerComponent.aidl to check power state.
   * @return True if the component's power state is on.
   */
  boolean getPowerComponentState(in PowerComponent componentId);

  /**
   * Subscribes to power policy change.
   * Notification is sent to the registered callback when the power policy changes and the power
   * state of the components which the callback is interested in changes.
   *
   * @param callback Callback that is invoked when the power policy changes.
   * @param filter The list of components which the callback is interested in.
   */
  void registerPowerPolicyChangeCallback(in ICarPowerPolicyChangeCallback callback,
      in CarPowerPolicyFilter filter);

  /**
   * Unsubscribes from power policy change.
   *
   * @param callback Callback that doesn't want to receive power policy change.
   */
  void unregisterPowerPolicyChangeCallback(in ICarPowerPolicyChangeCallback callback);
}

ICarPowerPolicyChangeCallback.aidl

package android.frameworks.automotive.powerpolicy;

import android.frameworks.automotive.powerpolicy.CarPowerPolicy;

/**
 * ICarPowerPolicyChangeCallback is notified when a power policy changes.
 */

@VintfStability
oneway interface ICarPowerPolicyChangeCallback {
  /**
   * Called when a power policy is fully changed.
   *
   * @param policy The current policy.
   */
  void onPolicyChanged(in CarPowerPolicy policy);
}

जावा मॉड्यूल के साथ सहभागिता

CarPowerManager बिजली नीति प्रबंधन को सक्षम करने के तरीके प्रदान करता है:

  • वर्तमान बिजली नीति प्राप्त करें।
  • वर्तमान बिजली नीति समूह प्राप्त करें
  • नई बिजली नीति लागू करें
  • एक नया पावर पॉलिसी समूह सेट करें

केवल सिस्टम-विशेषाधिकार प्राप्त मॉड्यूल विधियों का उपयोग कर सकते हैं। मॉड्यूल जो पावर नीति लागू होने पर सूचित करना चाहते हैं, CarPowerManager पर पावर पॉलिसी परिवर्तन श्रोता को पंजीकृत कर सकते हैं।