Güç Politikası

Donanım ve yazılım bileşenlerinin (görüntü, ses ve ses etkileşimi gibi) gerektiğinde seçici olarak açılıp kapatıldığından emin olmak için AAOS, donanım ve yazılım bileşenleri için bir dizi beklenen güç açık ve kapalı durumundan oluşan bir güç politikası sağlar. . VHAL veya sistem ayrıcalıklı satıcı hizmetleri, Android güç durumu geçişlerinde veya bekledikleri koşullar karşılandığında yeni bir güç ilkesi uygulayabilir.

VHAL için Bekle ve Açık durumlarında bir güç ilkesinin uygulanmasına izin verilir. Kapatma Hazırlığı'nda Garaj Modu çalışıyor ve bir güç durumu değişikliğinden etkilenmemelidir. Normal bir güç politikası uygulanamasa da, Kapatma Hazırlığı'nda “kullanıcı etkileşimi yok” adlı sistem gücü politikası olan özel bir güç politikası uygulanır.

AAOS güç durumu

AAOS cihazları şu güç durumu şemasını takip eder:

AAOS güç durumu diyagramı

Şekil 1. AAOS güç durumu diyagramı

Her bir güç durumu aşağıda açıklanmıştır:

Değer Tanım
Kapalı Uygulama işlemcisine (AP), belleğe ve çevre birimlerine fiziksel olarak güç sağlanmaz.
VHAL'ı bekleyin
  • Sürücü araçla etkileşime girdiğinde (örneğin, bir kapı açarak), VMCU, AP'ye, belleğe güç uygular. ve çevre birimleri.
  • AAOS, üç durumdan (Kapalı, RAM'e Askıya Alma (STR, VHAL Bitişini Bekle) birinden geçiş yapar ve ardından VHAL ile koordinasyonu beklediği VHAL için Bekle'ye girer.
Açık
  • VHAL, AAOS'a Açık durumuna girmesi talimatını verir. Bu durumda, AAOS tam olarak çalışır ve sürücü ile etkileşim halindedir.
  • Ekran, diğer form faktörleri için Android Ekran Açma/Kapatma çağrıları tarafından değil, güç ilkesi tarafından kontrol edilir.
Kapatma Hazırlığı
  • Sürücü sürüşü durdurduğunda, VHAL, AAOS'a Kapatma Hazırlığı'na girmesi talimatını verir. Bu durumda, ekran ve ses kapalıdır ve AAOS, sürücü ile etkileşime girmez. Android sistemi hala çalışıyor ve uygulamaları ve Android sistemini güncelleyebilir. Güncellemeler (varsa) tamamlandığında, Android sistemi VHAL Bitişini Bekle'ye girer.
VHAL'ın Bitmesini Bekleyin
  • AAOS, VHAL'a kapatılabileceğini bildirir. Araç Mikrodenetleyici Biriminin (VMCU), Çip Üzerinde Sistem'i (SoC) Derin Uykuya alması ve AP'den gücü kesmesi bekleniyor. AAOS, hiçbir kod yürütülmemesine rağmen STR durumundadır.
  • VHAL bitmezse ve sürücü geri dönerse, ana ünite (HU) doğrudan VHAL için Bekle'ye geçmelidir.
RAM'e Askıya Alma (STR) Araç ve AP kapalı, hiçbir kod yürütülmüyor ve AP RAM'e güç sağlanıyor.

Yazılım mimarisi

Güç ilkesi mimarisi aşağıda gösterilmiştir ve aşağıdaki bölümde tanımlanmıştır:

Şekil 2. Güç politikası mimarisi

Güç politikası nasıl tanımlanır?

Uygulayıcılar, /vendor/etc/automotive/power_policy.xml içinde güç politikalarını tanımlar;

  • Güç politikasını tanımlar.
  • Varsayılan güç ilkesini içeren ve güç durumu geçişleri meydana geldiğinde otomatik olarak uygulanan güç ilkesi gruplarını tanımlar.
  • Sistem güç ilkesini geçersiz kılın.

Güç politikası

Güç ilkesi, donanım ve yazılım bileşenlerinin bir dizi beklenen güç durumudur. AAOS, güç ilkesinde aşağıdaki bileşenleri destekler:

  • 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

Güç ilkesi grubu

Varsayılan güç politikası, güç politikası grubunda belirtilen güç durumu geçişinde otomatik olarak uygulanır. Satıcılar, VHAL İçin Bekle, Açık ve VHAL Bitişini Bekle (Derin Uyku Girişi veya Kapatma Başlatma) için varsayılan güç ilkesini tanımlayabilir.

Sistem güç politikası

AAOS, "kullanıcı etkileşimi yok" olan yalnızca bir sistem güç politikasını destekler. Cihaz Sessiz Mod veya Garaj Moduna geçtiğinde sistem güç politikası uygulanır.

Sistem güç ilkesindeki her bileşenin davranışı aşağıdaki tabloda listelenmiştir. Uygulayıcılar, sistem güç ilkesinde Bluetooth, NFC ve Güvenilir cihaz algılamayı geçersiz kılabilir. Geçersiz /vendor/etc/power_policy.xml içinde uygulanır.

Bileşenler Güç durumu yapılandırılabilir
Ses Kapalı Numara
medya Kapalı Numara
Ana ekran Kapalı Numara
Görüntü kümesi Kapalı Numara
Ön yolcuyu göster Kapalı Numara
Arka yolcuyu göster Kapalı Numara
Bluetooth Kapalı EVET
Kablosuz internet ÜZERİNDE Numara
Hücresel ÜZERİNDE Numara
Ethernet ÜZERİNDE Numara
Projeksiyon Kapalı Numara
NFC Kapalı EVET
Giriş Kapalı Numara
Ses etkileşimi Kapalı Numara
görsel etkileşim Kapalı Numara
Güvenilir cihaz algılama ÜZERİNDE EVET
Konum Kapalı Numara
Mikrofon Kapalı Numara
İşlemci Açık Numara

VHAL ile etkileşim

Sistem katmanında çalışan araba güç politikası arka plan programı, VHAL'dan gelen istekleri dinlemek için iki özelliği abone eder:

  • POWER_POLICY_REQ , VHAL bu özelliğe güç ilkesi kimliğini yazar.
  • POWER_POLICY_GROUP_REQ , VHAL güç ilkesi grup kimliğini bu özelliğe yazar.

Sistemdeki mevcut güç politikası VHAL dışındaki modüller tarafından değiştirilebilir. Bu durumda, araç güç politikası arka plan programı, değişikliği VHAL'a bildirmek için CURRENT_POWER_POLICY özelliğini günceller.

Yerel süreçlerle etkileşim

Yukarıda bahsedildiği gibi, araba güç politikası arka plan programı sistem katmanında çalışır ve güç politikası yönetimi açısından, çerçeve katmanında çalışan CPMS ile neredeyse aynı işlevselliği sağlar. Ayrıca, araç güç politikası arka plan programının ve CPMS'nin tamamen senkronize olduğunu varsayın.

Araba güç politikası arka plan programı, HAL'ler ve diğer yerel işlemler tarafından kullanılmak üzere AIDL arabirimlerini dışa aktarır. Yeni bir güç politikası değiştirildiğinde haberdar edilebilirler. Başka bir deyişle, her birinin güç durumunu değiştirmesi gerektiğinde.

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);
}

Java modülleri ile etkileşim

CarPowerManager , güç politikası yönetimini etkinleştirmek için yöntemler sağlar:

  • Geçerli güç politikasını alın.
  • Geçerli güç ilkesi grubunu alın
  • Yeni bir güç politikası uygula
  • Yeni bir güç ilkesi grubu belirleyin

Yöntemleri yalnızca sistem ayrıcalıklı modüller kullanabilir. Bir güç politikası uygulandığında bilgilendirilmek isteyen modüller, CarPowerManager bir güç politikası değişikliği dinleyicisi kaydedebilir.