O agente do modo de veículo e gerenciamento de energia (VPM, na sigla em inglês) ajuda o veículo a controlar o sistema de energia do ecossistema de veículos definidos por software (SDV).
O agente do VPM facilita a comunicação dos modos de veículo e energia para vários componentes de software, incluindo agentes de SDV e pacotes de serviços dentro do SDV.
O agente do VPM permite que os componentes do SDV acompanhem o estado atual do veículo, como o modo operacional (por exemplo, estacionado ou dirigindo) e o status de energia (por exemplo, ligado, suspenso ou desligado). O estado do veículo é o mesmo em todo o software do veículo. No entanto, o estado de energia é exclusivo de cada VM do SDV no veículo.
O agente do VPM sinaliza a plataforma do sistema SDV para iniciar modos de energia específicos. Essa capacidade otimiza o consumo de energia e diminui o tempo de inicialização em caso de retomada, além de garantir a operação eficiente dos diversos componentes de software do SDV.
Esta página descreve os principais requisitos, restrições e dependências associados ao agente do VPM. Ela explica a funcionalidade esperada e as diretrizes de integração para o agente do VPM para fabricantes de equipamentos originais (OEMs) e outros desenvolvedores de SDV.
Arquitetura
A Figura 1 ilustra a arquitetura de gerenciamento de energia:
Figura 1. Arquitetura de gerenciamento de energia.
O agente do VPM recebe comandos de modo de energia (como desligamento e suspensão) do serviço de gerenciamento de energia do OEM.
O agente do VPM encaminha esses comandos aos agentes de SDV apropriados e aguarda a execução deles. Essa abordagem coordenada ajuda a garantir uma transição suave e segura entre os modos de energia, minimizando o risco de perda de dados ou instabilidade do sistema.
Depois que todos os agentes de SDV concluem as transições de energia, o agente do VPM notifica o OEM, permitindo que os sistemas OEM prossigam com as ações necessárias (por exemplo, passar para o próximo estado ou desligar). As transições de energia são bloqueadoras. A transição ocorre somente quando todos os agentes de SDV executam a transição dentro de um tempo limite definido pelo OEM.
A máquina de estado para gerenciamento de energia é mostrada no diagrama a seguir:
Figura 2. Máquina de estado de gerenciamento de energia.
O agente do VPM funciona com o sistema de orquestração e gerenciamento de ciclo de vida para notificar os pacotes de serviços do SDV sobre atualizações do modo de energia. Isso permite que os pacotes de serviços processem transições de energia e evitem interrupções na operação. Consulte Processar suspensão e retomada para mais detalhes sobre como usar estados de gerenciamento de energia com pacotes de serviços e processar a comunicação do SDV.
Estados de energia
Os estados permitidos para gerenciamento de energia no SDV são os seguintes:
| Estado | Explicação |
|---|---|
REPORT_UNSPECIFIED |
O valor padrão se nenhum relatório for especificado. |
POWER_OFF_EXIT |
A VM está sendo inicializada a partir de uma inicialização a frio. Os agentes de SDV começam com init.rc. |
SUSPEND_TO_RAM_EXIT |
A VM está sendo retomada da suspensão para a RAM. Os agentes de SDV são retomados da RAM e recebem uma notificação sobre a atualização de energia se tiverem se inscrito nas notificações de estado de energia. |
ON |
A VM está sendo executada normalmente. |
POWER_OFF_ENTER |
A VM está se preparando para o desligamento. Os apps OEM que podem ser limpos mais cedo precisam ser limpos nesse estado. Os apps OEM ainda podem contar com agentes de SDV em execução nessa fase. Os agentes de SDV não devem suspender ou desligar nessa fase porque os apps OEM ainda podem precisar se comunicar com eles. |
SUSPEND_TO_RAM_ENTER |
A VM está se preparando para suspender a RAM. Os apps OEM que podem ser limpos mais cedo precisam ser limpos nesse estado. Os apps OEM ainda podem contar com agentes de SDV em execução nessa fase. Os agentes de SDV não devem suspender ou desligar nessa fase porque os apps OEM ainda podem precisar se comunicar com eles. |
WAIT_FOR_FINISH |
A VM concluiu a limpeza inicial e está aguardando o sinal do OEM para concluir ou cancelar um desligamento ou suspensão. |
SHUTDOWN_CANCELLED |
O OEM solicitou um cancelamento para a preparação do desligamento. Essa solicitação pode ocorrer no máximo em WAIT_FOR_FINISH. Os apps OEM são solicitados pelo gerenciador de ciclo de vida para desfazer a preparação de suspensão ou desligamento. |
POWER_OFF_POST_FINISH |
Após a solicitação FINISH_SHUTDOWN do OEM, a VM está concluindo a limpeza final e desligando a plataforma subjacente. Os agentes de SDV precisam limpar antes de desligar. |
SUSPEND_TO_RAM_POST_FINISH |
A VM está prestes a suspender a RAM e suspender a plataforma subjacente para a RAM. Os apps OEM não devem depender de agentes de SDV nesse momento porque eles também estão suspensos. Os agentes de SDV precisam realizar as limpezas antes da suspensão. |
Receber atualizações sobre o estado do veículo
O agente do VPM recebe atualizações sobre os modos atuais do veículo do pacote de serviços de controle de veículos do OEM.
Em seguida, o agente encaminha essas informações para os componentes relevantes do SDV pela pilha de comunicação padronizada do SDV. Isso informa todos os componentes do SDV sobre o estado operacional do veículo para que eles possam adaptar o comportamento de acordo.
Para receber atualizações sobre os estados do veículo, use a seguinte configuração do VSIDL no pacote de serviços:
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"
}
}
Os modos e transições do veículo não são bloqueadores e são assíncronos. Ao contrário das transições de energia, nenhuma máquina de estado é aplicada.
Os estados permitidos para um veículo no SDV são os seguintes:
| Estado | Explicação |
|---|---|
VEHICLE_STATE_UNSPECIFIED |
O valor padrão para estados de veículo se nenhum estado for especificado. |
LOW_POWER |
O carro está desligado do ponto de vista do usuário, mas a PCU ainda pode detectar que o carro está ligado. |
SOFTWARE_UPDATE |
As atualizações de software estão em andamento em algumas ou em todas as partes do veículo. Essas são atualizações de software não relacionadas ao SDV. |
PARK |
Poucas ECUs são fornecidas para essa atividade específica sem a presença do cliente. |
LIFE_ON_BOARD |
As ECUs de conforto, como aquecedores de assento, clusters e painéis centrais, são fornecidas e utilizáveis, ou a atividade do cliente é detectada, como abrir uma porta ou destrancar um carro. |
VEHICLE_ON |
As ECUs do motor são fornecidas, o motor está operacional e não é possível dirigir. |
TRACTION_ON |
As ECUs do motor são fornecidas, o motor está operacional e é possível dirigir. |
Controlar o veículo e o gerenciamento de energia com o agente do VPM
Use as seguintes definições do VSIDL para implementar um pacote de serviços que controla a máquina de estado de energia no SDV:
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"
}
}
Depois que o pacote é implementado e as ACLs são adicionadas ao agente do VPM, o pacote pode enviar solicitações de RPC ao agente do VPM e receber notificações de estado de energia no servidor definido.