Агент управления режимами работы и питанием транспортного средства (VPM) помогает транспортному средству управлять системой электропитания экосистемы программно-определяемого транспортного средства (SDV).
Агент VPM обеспечивает передачу информации о режиме работы транспортного средства и мощности различным программным компонентам, включая агенты SDV и пакеты услуг в рамках SDV.
Агент VPM позволяет компонентам SDV отслеживать текущее состояние автомобиля, например, режим работы (например, припаркован или движется) и состояние питания (например, включен, приостановлен или выключен). Состояние автомобиля одинаково для всего программного обеспечения автомобиля; однако состояние питания уникально для каждой виртуальной машины SDV в автомобиле.
Агент VPM подает сигнал системной платформе SDV о запуске определенных режимов энергосбережения. Эта возможность оптимизирует энергопотребление и сокращает время загрузки при возобновлении работы, а также помогает обеспечить эффективную работу различных программных компонентов SDV.
На этой странице описаны основные требования, ограничения и зависимости, связанные с агентом VPM. Здесь изложены ожидаемые функциональные возможности и рекомендации по интеграции агента VPM для производителей оригинального оборудования (OEM) и других разработчиков SDV.
Архитектура
На рисунке 1 показана архитектура управления питанием:

Рисунок 1. Архитектура управления питанием.
Агент VPM получает команды управления режимом питания (например, выключение и приостановка) от службы управления питанием производителя оборудования.
Агент VPM пересылает эти команды соответствующим агентам SDV и ожидает их выполнения. Такой скоординированный подход помогает обеспечить плавный и безопасный переход между режимами питания, минимизируя риск потери данных или нестабильности системы.
После того, как все агенты SDV завершат свои переключения питания, агент VPM уведомляет OEM-производителя, позволяя системам OEM-производителя продолжить необходимые действия (например, перейти в следующее состояние или выключиться). Переключения питания являются блокирующими; переключение происходит только тогда, когда все агенты SDV выполняют его в течение заданного OEM-производителем таймаута.
Конечный автомат для управления энергопотреблением показан на следующей диаграмме:

Рисунок 2. Конечный автомат управления питанием.
Агент VPM взаимодействует с системой оркестрации и управления жизненным циклом, чтобы уведомлять пакеты служб SDV о любых обновлениях режимов питания. Это позволяет пакетам служб обрабатывать переключения питания и избегать сбоев в их работе. См. раздел «Обработка приостановки и возобновления» для получения подробной информации об использовании состояний управления питанием с пакетами служб и обработке связи с SDV.
властные государства
В системе SDV допустимы следующие состояния управления питанием:
| Состояние | Объяснение |
|---|---|
REPORT_UNSPECIFIED | Значение по умолчанию, если отчет не указан. |
POWER_OFF_EXIT | Виртуальная машина загружается с нуля. Агенты SDV запускаются с помощью init.rc |
SUSPEND_TO_RAM_EXIT | Виртуальная машина возобновляет работу из режима приостановки в оперативную память. Агенты SDV возобновляют работу из оперативной памяти и получают уведомление об обновлении питания, если они подписаны на уведомления о состоянии питания. |
ON | Виртуальная машина работает в обычном режиме. |
POWER_OFF_ENTER | Виртуальная машина готовится к выключению. Приложения OEM-производителей, которые можно удалить на ранней стадии, следует удалить в этом состоянии. Приложения OEM-производителей могут по-прежнему полагаться на работающие агенты SDV на этом этапе. Агенты SDV не должны приостанавливаться или выключаться на этом этапе, поскольку приложениям OEM-производителей может потребоваться связь с ними. |
SUSPEND_TO_RAM_ENTER | Виртуальная машина готовится к приостановке работы в оперативной памяти. Приложения OEM-производителей, которые можно удалить на ранней стадии, следует удалить в этом состоянии. Приложения OEM-производителей могут по-прежнему полагаться на работающие на этом этапе агенты SDV. Агенты SDV не должны приостанавливаться или выключаться на этом этапе, поскольку приложениям OEM-производителей может потребоваться связь с ними. |
WAIT_FOR_FINISH | Виртуальная машина завершила первоначальную очистку и ожидает сигнала от производителя для завершения или отмены выключения или приостановки работы. |
SHUTDOWN_CANCELLED | Производитель оборудования запросил отмену подготовки к выключению. Этот запрос не может быть отправлен позднее, чем до WAIT_FOR_FINISH . Менеджер жизненного цикла запрашивает у приложений производителя оборудования отмену подготовки к приостановке или выключению питания. |
POWER_OFF_POST_FINISH | После запроса FINISH_SHUTDOWN от OEM-производителя виртуальная машина завершает окончательную очистку и выключает базовую платформу. Агенты SDV должны завершить очистку перед выключением. |
SUSPEND_TO_RAM_POST_FINISH | Виртуальная машина вот-вот перейдет в режим ожидания с сохранением данных в оперативную память, а также в режим ожидания базовой платформы. Приложениям OEM-производителей на данном этапе не следует полагаться на агенты SDV, поскольку они также находятся в режиме ожидания. Агенты SDV должны выполнить очистку перед переходом в режим ожидания. |
Получайте обновления о состоянии автомобиля.
Агент VPM получает обновления о текущих режимах работы автомобиля от пакета сервисов управления автомобилем, предоставленного производителем.
Затем агент передает эту информацию соответствующим компонентам SDV через стандартизированный стек связи SDV. Это информирует все компоненты SDV о рабочем состоянии транспортного средства, чтобы они могли соответствующим образом адаптировать свое поведение.
Для получения обновлений о состоянии транспортных средств используйте следующую конфигурацию VSIDL в вашем пакете услуг:
package: "com.sdv.google.vpm.vehicle.client.subscriber"
service_bundle {
name: "VehicleStateSubscriber"
//Subscriber to the vehicle state updates.
subscriber {
message: "com.sdv.google.vpm.vehicle.VehicleStateChange"
}
}
Режимы работы транспортного средства и переходы между ними являются неблокирующими и асинхронными. В отличие от переходов по мощности, здесь не используется конечный автомат.
В системе SDV разрешены следующие состояния для транспортного средства:
| Состояние | Объяснение |
|---|---|
VEHICLE_STATE_UNSPECIFIED | Значение по умолчанию для состояний транспортного средства, если состояние не указано. |
LOW_POWER | С точки зрения пользователя, автомобиль выключен, но блок управления двигателем (PCU) по-прежнему определяет, что автомобиль включен. |
SOFTWARE_UPDATE | В настоящее время ведутся обновления программного обеспечения для некоторых или всех частей автомобиля. Эти обновления не связаны с системой SDV. |
PARK | Для этой конкретной деятельности без присутствия заказчика поставляется лишь небольшое количество электронных блоков управления. |
LIFE_ON_BOARD | Блоки управления комфортом, такие как подогрев сидений, приборные панели и центральные панели, поставляются и могут быть использованы, либо фиксируется активность клиента, например, открытие двери или разблокировка автомобиля. |
VEHICLE_ON | Блоки управления двигателем поставлены, двигатель работает, но движение невозможно. |
TRACTION_ON | Электронные блоки управления двигателем поставлены, двигатель исправен, и движение возможно. |
Управляйте работой транспортного средства и энергоснабжением с помощью агента VPM.
Для реализации пакета служб, управляющего конечным автоматом состояний питания в SDV, используйте следующие определения VSIDL:
package: "com.sdv.google.vpm.client"
service_bundle {
name: "VpmSystemClient"
//Client for VPM system interface.
client {
service: "com.sdv.google.vpm.VpmSystemService"
}
//Server to VPM notification interface.
server {
service: "com.sdv.google.vpm.client.PowerNotificationService"
}
}
После внедрения пакета и добавления списков контроля доступа (ACL) к агенту VPM, пакет сможет отправлять RPC-запросы агенту VPM и получать уведомления о состоянии питания на указанном сервере.