نهج القوة

للتأكد من مكونات الأجهزة والبرمجيات (مثل العرض، والصوت، والتفاعل الصوتي) يتم تشغيل بشكل انتقائي على نحو متقطع حسب الحاجة، ويوفر AAOS سياسة الطاقة، والتي تتكون من مجموعة من قوة المتوقع داخل وخارج الدول لمكونات الأجهزة والبرمجيات . يمكن لـ VHAL ، أو خدمات البائع المتميزة للنظام ، تطبيق سياسة طاقة جديدة عند استيفاء انتقالات حالة طاقة Android أو عند استيفاء الشروط التي ينتظرونها.

يُسمح بتطبيق سياسة الطاقة في حالات Wait for VHAL و On. في Shutdown Prepare (إعداد إيقاف التشغيل) ، يكون وضع المرآب قيد التشغيل ويجب عدم إزعاجه بسبب تغيير حالة الطاقة. على الرغم من سياسة القوة العادية لا يمكن تطبيقها، يتم تطبيق سياسة القوة الخاصة، التي هي سياسة طاقة النظام المسمى "دون تفاعل المستخدم"، في إيقاف تحضير.

حالة طاقة AAOS

تتبع أجهزة AAOS مخطط حالة الطاقة هذا:

مخطط حالة طاقة AAOS

الشكل 1. AAOS مخطط حالة الطاقة

يتم وصف كل حالة طاقة أدناه:

قيمة وصف
اطفء لا يتم توفير طاقة ماديًا لمعالج التطبيق (AP) والذاكرة والأجهزة الطرفية.
انتظر VHAL
  • عندما يتفاعل السائق مع السيارة (على سبيل المثال ، من خلال فتح باب) ، فإن VMCU يطبق الطاقة على AP ، الذاكرة. والأجهزة الطرفية.
  • انتقالات AAOS من إحدى الحالات الثلاث (إيقاف ، تعليق إلى ذاكرة الوصول العشوائي (STR ، انتظر إنهاء VHAL) ثم يدخل انتظار VHAL ، حيث ينتظر التنسيق مع VHAL.
تشغيل
  • VHAL يوجه AAOS للدخول في حالة التشغيل. في هذه الحالة ، تعمل AAOS بشكل كامل وتتفاعل مع السائق.
  • يتم التحكم في العرض من خلال سياسة الطاقة وليس من خلال مكالمات تشغيل / إيقاف شاشة Android لعوامل الشكل الأخرى.
اغلاق التحضير
  • عندما يتوقف السائق عن القيادة ، يقوم VHAL بإرشاد AAOS للدخول في إعداد إيقاف التشغيل. في هذه الحالة ، يتم إيقاف تشغيل الشاشة والصوت ولا يتفاعل AAOS مع السائق. لا يزال نظام Android قيد التشغيل ويمكنه تحديث التطبيقات ونظام Android. عند اكتمال التحديثات (إن وجدت) ، يدخل نظام Android انتظار VHAL Finish.
انتظر حتى ينتهي VHAL
  • تبلغ AAOS جهاز VHAL بإمكانية إيقاف تشغيله. من المتوقع أن تقوم وحدة التحكم الدقيقة للمركبة (VMCU) بوضع System-on-Chip (SoC) في وضع السكون العميق وإزالة الطاقة من AP. وبذلك تكون AAOS في حالة STR ، على الرغم من عدم تنفيذ أي كود.
  • إذا لم ينتهي VHAL وعاد السائق ، يجب أن تنتقل وحدة الرأس (HU) مباشرة إلى Wait for VHAL.
تعليق إلى ذاكرة الوصول العشوائي (STR) تم إيقاف تشغيل السيارة و AP ، ولا يتم تنفيذ أي رمز ، ويتم الحفاظ على الطاقة في ذاكرة الوصول العشوائي AP.

هيكلة البرمجيات

يتم توضيح بنية سياسة الطاقة أدناه وتعريفها في القسم التالي:

العمارة السياسة الشكل 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

مجموعة سياسة الطاقة

يتم تطبيق سياسة الطاقة الافتراضية تلقائيًا عند تحديد انتقال حالة الطاقة في مجموعة سياسة الطاقة. يمكن للبائعين تحديد سياسة الطاقة الافتراضية لـ Wait For VHAL و On و Wait for VHAL Finish (Deep Sleep Entry أو Shutdown Start).

سياسة طاقة النظام

يدعم AAOS سياسة طاقة نظام واحدة فقط ، وهي "عدم تفاعل المستخدم". يتم تطبيق سياسة طاقة النظام عندما ينتقل الجهاز إلى الوضع الصامت أو وضع المرآب.

يتم سرد سلوك كل مكون في نهج طاقة النظام في الجدول أدناه. يمكن للمنفذين تجاوز اكتشاف Bluetooth و NFC والجهاز الموثوق به في سياسة طاقة النظام. وتطبق تجاوزات في /vendor/etc/power_policy.xml .

عناصر دولة السلطة شكلي
صوتي اطفء لا
وسائط اطفء لا
العرض الرئيسي اطفء لا
عرض المجموعة اطفء لا
عرض الراكب الأمامي اطفء لا
عرض الراكب الخلفي اطفء لا
بلوتوث اطفء نعم
واي فاي تشغيل لا
خلوي تشغيل لا
إيثرنت تشغيل لا
تنبؤ اطفء لا
NFC اطفء نعم
مدخل اطفء لا
التفاعل الصوتي اطفء لا
التفاعل البصري اطفء لا
اكتشاف جهاز موثوق به تشغيل نعم
موقع اطفء لا
ميكروفون اطفء لا
وحدة المعالجة المركزية تشغيل لا

التفاعل مع VHAL

يشترك البرنامج الخفي لسياسة طاقة السيارة الذي يعمل في طبقة النظام في خاصيتين للاستماع إلى الطلبات من VHAL:

  • POWER_POLICY_REQ ، وVHAL يكتب ID سياسة السلطة لهذه الخاصية.
  • POWER_POLICY_GROUP_REQ ، وVHAL يكتب ID مجموعة سياسة السلطة لهذه الخاصية.

يمكن تغيير سياسة الطاقة الحالية في النظام بواسطة وحدات نمطية أخرى غير VHAL. في هذه الحالة، والخفي سياسة الطاقة سيارة بتحديث CURRENT_POWER_POLICY الملكية لإعلام التغيير إلى VHAL.

التفاعل مع العمليات الأصلية

كما هو مذكور أعلاه ، يعمل البرنامج الخفي لسياسة قوة السيارة في طبقة النظام ، وفيما يتعلق بإدارة سياسة الطاقة ، يوفر تقريبًا نفس وظائف CPMS التي تعمل في طبقة إطار العمل. افترض أيضًا أن البرنامج الخفي لسياسة قوة السيارة و CPMS متزامنان بالكامل.

يقوم البرنامج الخفي لسياسة طاقة السيارة بتصدير واجهات AIDL للاستخدام بواسطة HALs والعمليات الأصلية الأخرى. يمكن إعلامهم عند تغيير سياسة القوة الجديدة. بمعنى آخر ، عندما يجب على كل منهما تغيير حالة قوتها.

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 .