إدارة الطاقة

لدعم إدارة الطاقة الخاصة بالمركبات، يقدّم Android خدمة CarPowerManagementService وواجهة CarPowerManager.

يتم بدء عمليات النقل من حالة إلى أخرى بواسطة وحدة التحكّم الرئيسية في المركبة (VMCU). للتواصل مع وحدة التحكّم في الفيديو، على جهات الدمج تنفيذ عدّة مكوّنات. يتحمّل مُدمِجو الأنظمة مسؤولية دمج مع طبقة تجريد أجهزة المركبات (VHAL) وتنفيذ النواة. يتحمّل خبراء الدمج أيضًا مسؤولية إيقاف مصادر الاستيقاظ وضمان عدم تأجيل عمليات الإيقاف نهائيًا.

المصطلحات

يتم استخدام هذه المصطلحات في جميع أقسام هذا المستند:

معالج التطبيقات (AP)
جزء من المنظومة على الرقاقة (SoC)
حزمة دعم لوحة الجهاز (BSP)
هي طبقة البرامج التي تحتوي على البرامج الثابتة لبدء التشغيل وبرامج تشغيل الأجهزة الخاصة بالأجهزة التي تسمح لنظام التشغيل المضمّن بالعمل في بيئة أجهزة معيّنة (لوحة أم)، وهي مدمجة مع نظام التشغيل المضمّن.
CarPowerManager (CPM)
يعرض واجهة برمجة تطبيقات للتطبيقات من أجل التسجيل في التغييرات في حالة الطاقة.
CarPowerManagementService (CPMS)
ينفِّذ آلة حالة تشغيل السيارة، ويتفاعل مع VHAL، ويُجري المكالمات النهائية إلى suspend() وshutdown().
CarPowerPolicyDaemon (CPPD)
عرض واجهات AIDL للعمليات الأصلية من أجل تسجيل مستمع سياسة الطاقة
الإدخال أو الإخراج العام الغرض (GPIO)
دبوس إشارة رقمية للاستخدام العام
طبقة تجريد الأجهزة (HAL)
طبقة برامج يجب أن تتفاعل معها جميع الوحدات الأخرى ذات المستوى الأعلى للوصول إلى وظائف الأجهزة
الإسبات
يُشار إليه أيضًا باسم تعليق التشغيل إلى القرص (S2D/S4). يتم وضع وحدة المعالجة المركزية (SoC) في وضع الطاقة S4 (السبات) ويتم كتابة محتوى ذاكرة الوصول العشوائي (RAM) على وسائط ثابتة (مثل ذاكرة فلاش أو قرص) ويتم إيقاف النظام بالكامل.
معالج الوسائط (MP)
اطّلِع على المنظومة على الرقاقة (SoC).
دائرة كهربائية متكاملة لإدارة الطاقة (PMIC)
شريحة تُستخدَم لإدارة متطلبات الطاقة للنظام المضيف
منظومة على رقاقة
المعالج الرئيسي الذي يعمل بنظام التشغيل AAOS، والذي يوفّره عادةً المصنّعون مثل Intel وMediaTek وNvidia وQualcomm وRenesas وTexas Instruments
تعليق
يُشار إليها أيضًا باسم تعليق التشغيل في ذاكرة الوصول العشوائي (S2R أو STR). يتم وضع شريحة المعالجة المُدمجة (SoC) في وضع الطاقة S3 ويتم إيقاف وحدة المعالجة المركزية (CPU) مع إبقاء ذاكرة الوصول العشوائي (RAM) مفعَّلة.
Vehicle HAL (VHAL)
واجهة برمجة تطبيقات Android المستخدَمة للتواصل مع شبكة المركبة يكون الشريك من المستوى 1 أو المصنّع الأصلي للجهاز هو المسؤول عن كتابة هذه الوحدة. يمكن أن تستخدم شبكة المركبة أي طبقة مادية (مثل CAN و LIN وMOST وEthernet). يُنشئ VHAL شبكة تجريدية للمركبة لتتمكّن AAOS من التفاعل مع المركبة.
معالج واجهة المركبة (VIP)
الاطّلاع على وحدة التحكم في السيارة (MCU)
وحدة التحكّم الرئيسية في المركبة (VMCU)
وحدة التحكّم الدقيقة التي توفّر واجهة بين شبكة المركبة ووحدة المعالجة المركزية (SoC). تتواصل وحدة المعالجة المركزية (SoC) مع وحدة التحكّم في الشبكة (VMCU) من خلال إشارات USB وUART وSPI وGPIO.

تصميم النظام

يوضّح هذا القسم كيفية تمثيل AAOS لحالة الطاقة في معالج التطبيقات والوحدات التي تنفِّذ نظام إدارة الطاقة. توضّح هذه المادة أيضًا كيفية عمل هذه الوحدات معًا وكيفية حدوث عمليات النقل المعتادة للحالات.

آلة حالة تشغيل السيارة

يستخدم نظام التشغيل AAOS آلة حالة لتمثيل حالة الطاقة في نقطة الوصول. يوفّر الاتّجاه الآلي الحالات الموضّحة أدناه:

آلة حالة تشغيل السيارة

الشكل 1: آلة حالة تشغيل السيارة

يتم تمييز الانتقالات الأكثر شيوعًا باللون الأزرق. في ما يلي الحالات والحالات الانتقالية الشائعة:

  • تعليق التطبيقات في ذاكرة الوصول العشوائي: السيارة ووحدة التحكّم في السيارة غير مفعّلَين. لا يتم تنفيذ أي رمز برمجي. يتم الحفاظ على الطاقة في ذاكرة الوصول العشوائي (RAM) لوحدة المعالجة المركزية (SoC).
  • الانتظار إلى أن يتصل بك فريق VHAL عندما يتفاعل السائق مع المركبة، على سبيل المثال، من خلال فتح باب، يُطبّق VMCU الطاقة على وحدة المعالجة المركزية (SoC). يستأنف نظام التشغيل AAOS من وضع "تعليق إلى ذاكرة الوصول العشوائي" ويدخل في وضع "الانتظار إلى أن يصل VHAL"، حيث ينتظر التنسيق مع VHAL.
  • تفعيل يطلب VHAL من AAOS الدخول إلى الحالة "مفعَّل". في هذه الحالة، يكون نظام التشغيل AAOS قيد التشغيل بالكامل ويتفاعل مع السائق.
  • إعدادات الإيقاف عندما ينتهي السائق من القيادة، يطلب VHAL من AAOS الانتقال إلى وضع "الاستعداد للإيقاف". في هذه الحالة، تكون الشاشة والصوت غير مفعَّلَين ولا يتفاعل نظام التشغيل AAOS مع السائق. لا يزال نظام Android قيد التشغيل ويمكنه تحديث التطبيقات ونظام Android. عند اكتمال التحديثات، إن توفّرت، ينتقل نظام Android إلى حالة "الانتظار إلى أن يكتمل VHAL ".
  • الانتظار إلى أن تكتمل عملية VHAL في هذه المرحلة، يُعلم نظام التشغيل AAOS وحدة التحكّم في حدود الجلسة بأنّه أصبح جاهزًا للإيقاف. من المتوقّع أن تضع وحدة التحكّم في الفيديو (VMCU) وحدة المعالجة المركزية (SoC) في وضع "النوم العميق" وأن تزيل الطاقة من معالج التطبيقات. يكون نظام التشغيل AAOS بعد ذلك في حالة "التعليق في ذاكرة الوصول العشوائي"، على الرغم من عدم تنفيذ أي رمز برمجي.

وحدات إدارة الطاقة

يتألف نظام إدارة الطاقة من الوحدات التالية:

اسم الوحدة الوصف
CarPowerManager واجهة برمجة تطبيقات Java أو C++
CarPowerManagementService تنظِّم عمليات النقل إلى حالات الطاقة.
CarPowerPolicyDaemon التواصل مع عملاء سياسة الطاقة الأصلية
Vehicle HAL واجهة وحدة التحكّم في الفيديو
فرقعة تعليق التنفيذ في ذاكرة الوصول العشوائي أو القرص

يتم تنفيذ ميزة السكون العميق/الاستراحة (تعليق Android في ذاكرة الوصول العشوائي/القرص) في النواة. يتم عرض هذه الميزة في مساحة المستخدم كملف خاص في ‎ /sys/power/state. يتم تعليق AAOS من خلال كتابة mem أو disk في هذا الملف.

تنسق وحدة CPMS حالة الطاقة مع الخدمات وHAL الأخرى. تنفِّذ وحدة التحكّم في إدارة الطاقة (CPMS) آلة الحالة описанة أعلاه وتُرسِل إشعارات إلى كل مراقب عند حدوث انتقال في حالة الطاقة. وتستخدم هذه الخدمة أيضًا VHAL لإرسال الرسائل إلى الجهاز.

تدير وحدة CPPD سياسة الطاقة إلى أن تتولى وحدة CPMS التحكّم. ويرسل أيضًا إشعارات بشأن التغييرات في سياسة توفير الطاقة إلى المستمعين الأصليين.

يتمّ تحديد بعض السمات في ملف VHAL. للتواصل مع وحدة التحكّم في الجهد الكهربي (VMCU)، يقرأ نظام إدارة الطاقة (CPMS) ويكتب هذه السمات. ويمكن للتطبيقات استخدام الواجهة المحدّدة في نظام إدارة الطاقة (CPM) لرصد التغيُّرات في حالة الطاقة. تتيح هذه الواجهة للتطبيقات أيضًا تسجيل مستمعي سياسة الطاقة. يمكن استدعاء واجهة برمجة التطبيقات هذه من Java وهي مُشارَك فيها باستخدام @hide / @System API، ما يعني أنّها متاحة للتطبيقات المميّزة فقط. في ما يلي توضيح للعلاقة بين هذه الوحدات والتطبيقات والخدمات:

مخطّط مرجعي لمكوّنات الطاقة

الشكل 2: مخطّط مرجعي لمكوّنات الطاقة

تسلسل الرسائل

لقد وصف القسم السابق الوحدات التي تتألف منها منظومة إدارة الطاقة. يستخدِم هذا القسم مثالَي الدخول إلى وضع السكون العميق والخروج من وضع السكون العميق لشرح كيفية تواصل الوحدات والتطبيقات:

الدخول في مرحلة النوم العميق

يمكن فقط لوحدة التحكّم في الفيديو (VMCU) بدء وضع "النوم العميق". بعد بدء وضع السكون العميق، تُرسِل وحدة التحكّم في الوسائط (VMCU) إشعارًا إلى وحدة التحكّم في إدارة الطاقة (CPMS) عبر واجهة HAL للوسائط (VHAL). يغيّر نظام إدارة الطلبات (CPMS) الحالة إلى SHUTDOWN PREPARE ويبثّ هذا الانتقال إلى الحالة لجميع المراقبين (التطبيقات والخدمات التي ترصد نظام إدارة الطلبات) من خلال استدعاء الأسلوب onStateChanged() باستخدام معرّف حالة جديد يقدّمه نظام إدارة الطلبات.

تتوسّط التكلفة لكل ألف ظهور بين التطبيقات/الخدمات ونظام إدارة التكلفة لكل ألف ظهور. يتم استدعاء onStateChanged() للتطبيقات/الخدمات بشكل متزامن في onStateChanged() لوحدة تكلفة الإجراء. على معظم التطبيقات والخدمات إكمال عملية الاستعداد قبل العودة من هذه المكالمة. يُسمح للخدمات المميّزة بمواصلة الاستعدادات بشكل غير متزامن بعد إعادة المحاولة من أجل PRE_SHUTDOWN_PREPARE، SUSPEND_ENTER، POST_SUSPEND_ENTER. في هذه الحالة، من المفترض أن تُطلِق الخدمة المميّزة CompletablePowerStateChangeFuture()complete على CompletablePowerStateChangeFuture object المُقدَّمة عند الانتهاء من الإعداد. يُرجى العلم أنّه لا يُسمح بالإعداد غير المتزامن لملف SHUTDOWN_PREPARE. قبل إرسال DEEP_SLEEP_ENTRY إلى VHAL، يرسل CPMS بشكل دوري طلبات تأجيل إيقاف التشغيل إلى VHAL.

عندما تُكمل جميع عناصر CPM عمليات الاستعداد للإيقاف، تُرسِل وحدة التحكّم في إدارة الطاقة (CPMS) AP_POWER_STATE_REPORT إلى وحدة التحكّم في حدود الجلسة (VHAL)، والتي تُرسِل بدورها إشعارًا إلى وحدة التحكّم في وحدة المعالجة المركزية (VMCU) بأنّ وحدة التحكّم في حدود الجلسة (AP) جاهزة للإيقاف. تستدعي وحدة إدارة الطاقة أيضًا طريقة تعليقها، ما يؤدي إلى تعليق النواة.

في ما يلي تسلسل الخطوات الموضّح أعلاه:

الدخول في مرحلة النوم العميق

الشكل 3: ادخل في مرحلة النوم العميق.

واجهات برمجة التطبيقات التي يوفّرها CPM

يصف هذا القسم واجهة برمجة التطبيقات Java API التي يوفّرها "المعالج المركزي للتطبيقات" لتطبيقات النظام وخدماته. تتيح واجهة برمجة التطبيقات هذه لبرنامج النظام تنفيذ ما يلي:

  • مراقبة التغيُّرات في حالة الطاقة في نقطة الوصول
  • تطبيق سياسات التشغيل

اتّبِع الخطوات التالية لاستدعاء واجهات برمجة التطبيقات التي يوفّرها "التكلفة لكل ألف ظهور":

  1. للحصول على مثيل تكلفة كل ألف ظهور، يمكنك الاتصال بواجهة برمجة التطبيقات Car API.
  2. استخدِم الطريقة المناسبة على الكائن الذي تم إنشاؤه في الخطوة 1.

إنشاء عنصر CarPowerManager

لإنشاء عنصر تكلفة لكل ألف ظهور، استخدِم طريقة getCarManager() الخاصة بكائن Car. هذه الطريقة هي واجهة تُستخدَم لإنشاء عناصر التكلفة لكل ألف ظهور. حدِّد 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);
     }
};

لتوجيه عنصر المستمع هذا إلى مراقبة عملية انتقال حالة الطاقة، أنشئ سلسلة تنفيذ جديدة وسجِّل المستمع وسلسلة التنفيذ هذه في عنصر CPM:

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

عند تغيير حالة الطاقة، يتم استدعاء الطريقة onStateChanged() لعنصر المستمع باستخدام قيمة تمثّل حالة الطاقة الجديدة. يتم تحديد الربط بين القيمة الفعلية وحالة الطاقة في CarPowerManager ويتم عرضه في الجدول التالي:

الاسم الوصف
STATE_ON أدخِل حالة التشغيل. النظام يعمل بكامل طاقته.
STATE_SHUTDOWN_CANCELLED يتم إلغاء عملية الإيقاف ويتم إرجاع حالة الطاقة إلى حالتها العادية.
STATE_SHUTDOWN_ENTER من المتوقّع أن تنهي التطبيقات عملياتها وتصبح جاهزة للإغلاق.
STATE_POST_SHUTDOWN_ENTER اكتملت الاستعدادات لإيقاف التشغيل وأصبح VMCU جاهزًا للإيقاف. أدخِل حالة الإيقاف.
STATE_PRE_SHUTDOWN_PREPARE تم طلب عملية الإيقاف ولكنّ نظام إدارة الموافقة لم يبدأ العملية بعد. الشاشة والصوت ما زالا مفعَّلَين
STATE_SHUTDOWN_PREPARE قد يتم تفعيل وضع "المرآب" خلال هذه الفترة.
STATE_SUSPEND_ENTER من المتوقّع أن تُجري التطبيقات عمليات تنظيف وأن تكون جاهزة للتعليق في ذاكرة الوصول العشوائي.
STATE_POST_SUSPEND_ENTER اكتملت الاستعدادات لوضع "تعليق مؤقت في ذاكرة الوصول العشوائي" وأصبح وحدة التحكّم في الفيديو جاهزة لاستخدام هذا الوضع. أدخِل حالة الصعوبة.
STATE_SUSPEND_EXIT تنشيط الجهاز من وضع التعليق أو استئناف العمل بعد إلغاء التعليق
STATE_HIBERNATION_ENTER من المتوقّع أن تُجري التطبيقات عملية تنظيف لتصبح جاهزة للدخول في وضع السكون.
STATE_POST_HIBERNATION_ENTER اكتملت الاستعدادات للدخول في وضع السكون وأصبح VMCU جاهزًا للدخول في وضع السكون. يُرجى الانتقال إلى حالة السكون.
STATE_HIBERNATION_EXIT الاستيقاظ من وضع السكون أو استئناف العمل بعد إلغاء وضع السكون
STATE_WAIT_FOR_VHAL يتم تشغيل النظام، ولكنّه في انتظار بدء الاتصال بوحدة التحكّم في مستوى الصوت (VHAL) قبل الانتقال إلى حالة "مشغّل".

إلغاء تسجيل CarPowerStateListener

لإلغاء تسجيل جميع عناصر المستمعين المسجّلة في وحدة التحكّم في الطاقة، يمكنك استدعاء clearListener الطريقة:

powerManager.clearListener();

دمج النظام في عملية تنفيذ Android

يتحمّل مورّدو الحلول المتكاملة المسؤولية عن العناصر التالية:

  • تنفيذ واجهة kernel لتعليق Android
  • تنفيذ دوال VHAL لإجراء ما يلي:
    • نقل بدء تعليق أو إيقاف السيارة إلى Android
    • أرسِل رسالة "الجهاز على وشك الإيقاف" من جهاز Android إلى السيارة.
    • يمكنك بدء إيقاف Android أو تعليقه من خلال واجهة Linux kernel.
  • تأكَّد من إيقاف جميع مصادر الاستيقاظ عندما يكون الجهاز في وضع التعليق.
  • تأكَّد من أنّ التطبيقات يتم إغلاقها بسرعة كافية حتى لا يتم تأجيل عملية الإغلاق إلى أجل غير مسمى.
  • تأكَّد من أنّ BSP يشغِّل (أو يوقف) مكونات الجهاز وفقًا لسياسة الطاقة لتجنُّب حظر وضع الإيقاف المؤقت أو وضع السكون.

واجهة النواة: ‎/sys/power/state

يضع نظام التشغيل AAOS الجهاز في وضع التعليق عندما يكتب تطبيق أو خدمة mem لتعليقه في ذاكرة الوصول العشوائي (RAM) أو disk لتعليقه في القرص في ملف يقع في /sys/power/state. على الجهة المدمجة توفير وظيفة تتتبّع هذا الملف و تضع نظام التشغيل Linux في حالة تعليق الطاقة. قد تُرسِل هذه الوظيفة إشارة GPIO إلى وحدة التحكّم في الفيديو لإعلامها بأنّه تم إيقاف الجهاز بالكامل. يتحمّل المُدمِج أيضًا مسؤولية إزالة أي شروط تنافس بين إرسال VHAL للرسالة النهائية إلى VMCU ودخول النظام في وضع الإيقاف المؤقت أو الإيقاف.

مسؤولية "المحتوى الذي يعرض مشاهد عنف خطير"

يقدّم VHAL واجهة بين شبكة المركبة ونظام Android. ‫VHAL:

  • ينقل بدء تعليق أو إيقاف السيارة إلى Android.
  • إرسال رسالة "الجهاز جاهز للإغلاق" من Android إلى السيارة
  • يبدأ إيقاف Android أو تعليقه من خلال واجهة Linux kernel.

عندما يُعلم نظام CPMS وحدة التحكّم في حدود الجلسة (VHAL) بأنّه جاهز للإيقاف، تُرسِل وحدة التحكّم في حدود الجلسة (VHAL) رسالة جاهز للإيقاف إلى وحدة التحكّم في حدود الجلسة (VMCU). عادةً ما تنقل المكونات الطرفية على الشريحة، مثل UART وSPI وUSB، الرسالة. بعد إرسال الرسالة، يطلب CPMS من نواة النظام تعليق الجهاز أو إيقافه. قبل إجراء ذلك، قد يبدِّل VHAL أو BSP واجهة GPIO لتوجيه VMCU إلى أنّه من الآمن إزالة الطاقة من الجهاز.

يجب أن يتيح VHAL السمات التالية التي تتحكّم في إدارة الطاقة من خلال VHAL:

الاسم الوصف
AP_POWER_STATE_REPORT يُبلغ Android عن انتقالات الحالة إلى وحدة التحكّم في الشبكة الفرعية للمركبة باستخدام هذه السمة، وذلك باستخدام قيم العنصر المدرَج VehicleApPowerStateReport.
AP_POWER_STATE_REQ يستخدم وحدة التحكّم في السيارة هذه السمة لتوجيه Android إلى الانتقال إلى حالات مختلفة للطاقة، باستخدام قيم التعداد VehicleApPowerStateReq.

AP_POWER_STATE_REPORT

استخدِم هذه السمة للإبلاغ عن حالة إدارة الطاقة الحالية في Android. تحتوي هذه السمة على عددين صحيحَين:

  • int32Values[0]: فهرس VehicleApPowerStateReport للحالة الحالية
  • int32Values[1]: الوقت بالكيلوميلّي ثانية لتأجيل أو إيقاف أو إغلاق الجهاز يعتمد معنى هذه القيمة على القيمة الأولى.

يمكن أن تتّخذ القيمة الأولى إحدى القيم التالية. VehicleApPowerStateReport.aidl تحتوي على أوصاف أكثر تحديدًا، ويتم تخزينها في hardware/interfaces/automotive/vehicle/aidl/android/hardware/automotive/vehicle.

اسم القيمة الوصف القيمة الثانية
WAIT_FOR_VHAL يتم بدء AP ويحتاج إلى إنشاء اتصال بوحدة التحكّم في حدود الجلسة.
DEEP_SLEEP_ENTRY يدخل AP في حالة النوم العميق. من المفترض أن يعيد وحدة التحكّم في حدود الجلسة تشغيل نقطة الوصول بعد الوقت المحدّد في القيمة الثانية. يجب ضبطها
DEEP_SLEEP_EXIT يخرج نقطة الوصول من حالة النوم العميق.
HIBERNATION_ENTRY يدخل نقطة الوصول في حالة الإسبات. من المفترض أن يعيد وحدة التحكّم في حدود الجلسة تشغيل نقطة الوصول بعد الوقت المحدّد في القيمة الثانية. يجب ضبطها
HIBERNATION_EXIT يخرج نقطة الوصول من حالة السبات.
SHUTDOWN_POSTPONE نظام Android غير جاهز لإيقاف التشغيل. يجب أن ينتظر وحدة التحكّم في حدود الجلسة الوقت المحدّد في القيمة الثانية قبل إيقاف نقطة الوصول. قد يطلب Android تأجيلًا إضافيًا من خلال إصدار تقارير إضافية بشأن SHUTDOWN_POSTPONE. يجب ضبطها
SHUTDOWN_PREPARE جارٍ الاستعداد لإيقاف تشغيل جهاز Android. يجب ضبطها
SHUTDOWN_START نقطة الوصول جاهزة للإيقاف. من المفترض أن يعيد وحدة التحكّم في حدود الجلسة تشغيل نقطة الوصول بعد الوقت المحدّد في القيمة الثانية. (لا يُشترط أن تكون وحدة التحكّم في الفيديو (VMCU) متوافقة مع ميزة التشغيل المبرمَج). يجب ضبطها
SHUTDOWN_CANCELLED سيتوقف Android عن الاستعداد لإيقاف التشغيل وسينتقل إلى WAIT_FOR_VHAL.
تفعيل يعمل نظام التشغيل Android بشكلٍ طبيعي.

يمكن ضبط الحالة بشكل مستقل أو استجابةً لطلب عبر وحدة التحكّم في الفيديو.

AP_POWER_STATE_REQ

يرسل وحدة التحكّم في الجهد الكهربي (VMCU) هذا السمة لنقل Android إلى حالة مختلفة من الطاقة، ويحتوي على عددين صحيحَين:

  • int32Values[0]: قيمة التعداد VehicleApPowerStateReq، التي تمثّل الحالة الجديدة التي سيتم الانتقال إليها.
  • int32Values[1]: قيمة التعداد VehicleApPowerStateShutdownParam لا يتم إرسال هذه القيمة إلا لرسالة SHUTDOWN_PREPARE، ويتم نقل الخيارات التي تحتوي عليها إلى Android.

تمثّل القيمة الصحيحة الأولى الحالة الجديدة التي سينتقل إليها Android. يتم تعريف الدلالة في VehicleApPowerStateReq.aidl وتقديمها أدناه:

اسم القيمة الوصف
تفعيل من المفترض أن يبدأ نقطة الوصول العمل بشكل كامل.
SHUTDOWN_PREPARE من المفترض أن تبدأ نقطة الوصول في الاستعداد لإيقاف التشغيل. تشير القيمة الثانية إلى ما إذا كان يُسمح لنقطة الوصول بتأجيل الإيقاف وما إذا كان من المفترض أن يتم إيقاف نقطة الوصول أو الدخول في وضع السكون العميق.
CANCEL_SHUTDOWN من المفترض أن يتوقف نقطة الوصول عن الاستعداد لإيقاف التشغيل والاستعداد للتشغيل.
انتهى الإعداد سيتم الآن إيقاف نقطة الوصول أو تعليقها.

تم تحديد VehicleApPowerStateShutdownParam في VehicleApPowerStateShutdownParam.aidl. يحتوي هذا التعداد على العناصر التالية:

اسم القيمة الوصف
CAN_SLEEP يمكن أن يدخل نقطة الوصول في وضع النوم العميق بدلاً من إيقافها تمامًا. يُسمح بتأجيل الدفع.
CAN_HIBERNATE يمكن أن يدخل نقطة الوصول في وضع السكون بدلاً من إيقافها تمامًا. يُسمح بتأجيل الدفع.
SHUTDOWN_ONLY من المفترض أن يتم إيقاف نقطة الوصول. يُسمح بتأجيل الدفع. لا يُسمح باستخدام وضع "النوم العميق".
SLEEP_IMMEDIATELY قد يدخل AP في وضع النوم العميق، ولكن يجب أن يدخل في وضع السكون أو يتم إيقافه على الفور. ولا يُسمح بتقديم الموعد.
HIBERNATE_IMMEDIATELY يمكن أن يدخل نقطة الوصول في وضع "تعليق التشغيل إلى القرص"، ولكن يجب أن تنتقل إلى وضع السكون أو يتم إيقافها على الفور. ولا يُسمح بتقديم الموعد.
SHUTDOWN_IMMEDIATELY يجب إيقاف نقطة الوصول على الفور. لا يُسمح بتأجيل الدفع. لا يُسمح باستخدام وضع "النوم العميق".

مصادر التنشيط

على جهة الدمج إيقاف مصادر التنشيط المناسبة عندما يكون الجهاز في وضع التعليق. تشمل مصادر الاستيقاظ الشائعة نبضات القلب ومودم Wi-Fi والبلوتوث. يجب أن يكون مصدر التفعيل الصالح الوحيد هو إشارة انقطاع من وحدة التحكّم في الوسائط (VMCU) لتفعيل شريحة المعالجة المركزية (SoC). ويفترض ذلك أنّ وحدة التحكّم في الوسائط (VMCU) يمكنها الاستماع إلى المودم لأحداث التفعيل عن بُعد (مثل بدء تشغيل المحرّك عن بُعد). في حال تمّ نقل هذه الوظيفة إلى نقطة الوصول، يجب إضافة مصدر آخر لإيقاظ المودم.

التطبيقات

على المصنّعين الأصليّين للأجهزة كتابة التطبيقات بحيث يمكن إغلاقها بسرعة وعدم تأجيل العملية إلى أجل غير مسمى.

الملحق

الأدلة في شجرة رمز المصدر

Content الدليل
الرمز البرمجي المرتبط بـ CarPowerManager packages/services/Car/car-lib/src/android/car/hardware/power
CarPowerManagementService وما إلى ذلك packages/services/Car/service/src/com/android/car/power
الخدمات التي تتعامل مع واجهة برمجة التطبيقات لعرض الإعلانات على الفيديو، مثل VehicleHal وHAlClient packages/services/Car/service/src/com/android/car/hal
واجهة VHAL وتعريفات السمات hardware/interfaces/automotive/vehicle/aidl/android/hardware/automotive/vehicle/
نموذج تطبيق لتوفير بعض الأفكار حول CarPowerManager packages/services/Car/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink

مخطّط الفئة

يعرض مخطّط الفئات هذا فئات Java وواجهاتها في نظام إدارة الطاقة:

الرسم البياني لفئة الطاقة

الشكل 4: مخطّط بياني لفئة الطاقة

علاقة العناصر

يوضّح الشكل 5 الكائنات التي تحتوي على إشارات إلى كائنات أخرى. تعني الحافة أنّ العنصر المصدر يحتوي على مرجع إلى العنصر المستهدَف. على سبيل المثال، يحتوي VehicleHAL على إشارة إلى عنصر PropertyHalService.

مخطّط مرجع الكائن

الشكل 5: مخطّط مرجعي للكائنات