Propriedades do veículo ADAS

Adicionamos as seguintes propriedades de ADAS ao Android 14:

Esses novos recursos são ilustrados na figura a seguir.

Recursos de ADAS compatíveis

Figura 1. Recursos de ADAS compatíveis.

Lista de propriedades

Para oferecer suporte a esses novos recursos, uma lista de propriedades foi adicionada ao Android 14. Elas estão listadas abaixo.

Propriedades
ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP
ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_DISTANCE

AUTOMATIC_EMERGENCY_BRAKING_ENABLED
AUTOMATIC_EMERGENCY_BRAKING_STATE

BLIND_SPOT_WARNING_ENABLED
BLIND_SPOT_WARNING_STATE

CRUISE_CONTROL_ENABLED
CRUISE_CONTROL_TYPE
CRUISE_CONTROL_STATE
CRUISE_CONTROL_COMMAND
CRUISE_CONTROL_TARGET_SPEED

EMERGENCY_LANE_KEEP_ASSIST_ENABLED
EMERGENCY_LANE_KEEP_ASSIST_STATE
FORWARD_COLLISION_WARNING_ENABLED
FORWARD_COLLISION_WARNING_STATE

HANDS_ON_DETECTION_ENABLED
HANDS_ON_DETECTION_DRIVER_STATE
HANDS_ON_DETECTION_WARNING

LANE_DEPARTURE_WARNING_ENABLED
LANE_DEPARTURE_WARNING_STATE

LANE_KEEP_ASSIST_ENABLED
LANE_KEEP_ASSIST_STATE

LANE_CENTERING_ASSIST_ENABLED
LANE_CENTERING_ASSIST_COMMAND
LANE_CENTERING_ASSIST_STATE

Temas de design

Os temas de design a seguir são aplicados às propriedades recém-adicionadas.

Propriedade Descrição
ATIVADO
  • Propriedades para indicar se um recurso está ativado ou desativado.
  • Propriedades booleanas em que true está ativado e false está desativado.
  • Propriedades Read e Write que podem ser implementadas como Read-only.
ESTADO
  • Propriedades para comunicar o estado do recurso usando uma lista de estados predefinidos.
  • Propriedades Int32 com tipos enumerados definidos.
  • Campo OTHER para oferecer suporte à compatibilidade com versões anteriores.
  • Propriedades Read-only.
  • Tipos de área espelhado ou global.
  • Usa valores definidos em ErrorStates.aidl.
  • Use a API getSupportedEnumValues() em AreaIdConfig.java.
Diversos
  • Propriedades COMMAND para recursos quando a entrada do usuário é obrigatória.
  • Propriedades WARNING para quando o estado puder ser representado separadamente.
  • Outras propriedades a serem compatíveis:
    • Variações de recursos, quando aplicável.
    • Ajuste as configurações do recurso quando aplicável.

Exemplos de diagrama de estado

Esta seção fornece diagramas de estado para um subconjunto dos recursos de ADAS com suporte para demonstrar como as propriedades incluídas funcionam juntas. Confira abaixo exemplos dos seguintes recursos.

  • Freio de emergência automático (AEB, na sigla em inglês)
  • Assistente de centralização de faixa (LCA)
  • Detecção prática (HOD)

Frenagem automática de emergência

Duas propriedades são definidas para AEB, conforme descrito nesta tabela.

Propriedade Valores
AUTOMATIC_EMERGENCY_BRAKING_ENABLED VehiclePropertyType:BOOLEAN

AUTOMATIC_EMERGENCY_BRAKING_STATE

Definido em AutomaticEmergencyBrakingState.aidl.

VehiclePropertyType:INT32

  • OTHER
  • ENABLED
  • ACTIVATED
  • USER_OVERRIDE
  • ErrorState
  • O diagrama de estado de exemplo para AEB a seguir inclui os estados com suporte definidos em AutomaticEmergencyBrakingState.aidl.

    Estados de AEB definidos em AutomaticEmergencyBrakingState.aidl

    Figura 2. Estados de AEB definidos em AutomaticEmergencyBrakingState.aidl.

    Esta figura mostra um exemplo de AEB quando o estado USER_OVERRIDE não é compatível. Os estados com suporte precisam ser especificados pela API getSupportedEnumValues() em AreaIdConfig.java.

    AEB quando o estado de substituição do usuário não é aceito

    Figura 3. AEB quando o estado USER_OVERRIDE não é aceito.

    No exemplo de AEB ilustrado na Figura 4, o erro que faz com que o AEB fique indisponível é destacado. Isso demonstra como os valores definidos em ErrorState.aidl devem ser usados. Esses erros não resultam em uma exceção gerada por CarPropertyManager e são compartilhados com apps da mesma forma que qualquer outra mudança para CarPropertyValue.

    O erro faz com que o AEB fique indisponível

    Figura 4. O erro faz com que o AEB fique indisponível.

    Assistência de centralização de faixa

    O assistente de centralização de faixa (LCA, na sigla em inglês) fornece três propriedades associadas e definidas.

    Propriedade Valores
    LANE_CENTERING_ASSIST_ENABLED VehiclePropertyType:BOOLEAN

    LANE_CENTERING_ASSIST_STATE

    Definido em LaneCenteringAssistState.aidl

    VehiclePropertyType:INT32

    • OTHER
    • ENABLED
    • ACTIVATION_REQUESTED
    • ACTIVATED
    • USER_OVERRIDE
    • FORCED_DEACTIVATION_WARNING
    • ErrorState

    LANE_CENTERING_ASSIST_COMMAND

    Definido em LaneCenteringAssistCommand.aidl

    VehiclePropertyType:INT32

    • ACTIVATE
    • DEACTIVATE

    O diagrama de estado a seguir ilustra a LCA quando todos os estados definidos em LaneCenteringAssistState.aidl têm suporte. As linhas verdes podem ser um comando iniciado pelo LANE_CENTERING_ASSIST_COMMAND (quando implementado) ou por outro mecanismo no veículo e refletir uma mudança de estado no Android Automotive OS (AAOS).

    Estados de LCA definidos em LaneCenteringAssistState.aidl

    Figura 5. Estados de LCA definidos em LaneCenteringAssistState.aidl.

    Este exemplo de LCA destaca um erro que faz com que o LCA fique indisponível. Isso demonstra como usar os valores definidos em ErrorState.aidl. Esses erros não resultam em um erro de CarPropertyManager e são compartilhados com os apps da mesma forma que outras mudanças em CarPropertyValue são compartilhadas.

     O erro faz com que o LCA fique indisponível.

    Figura 6. O erro faz com que o LCA fique indisponível.

    Detecção prática

    Essas três propriedades associadas são definidas para a detecção prática (HOD, na sigla em inglês).

    Propriedade Descrição
    HANDS_ON_DETECTION_ENABLED VehiclePropertyType:BOOLEAN

    HANDS_ON_DETECTION_STATE

    Definido em HandsOnDetectionDriverState.aidl

    VehiclePropertyType:INT32

    • OTHER
    • HANDS_ON
    • HANDS_OFF
    • ErrorState

    HANDS_ON_DETECTION_WARNING

    Definido em HandsOnDetectionWarning.aidl

    VehiclePropertyType:INT32

    • OTHER
    • NO_WARNING
    • WARNING
    • ErrorState

    Confira abaixo um exemplo de HOD, em que todos os estados definidos em HandsOnDetectionDriverState.aidl são aceitos.

    HOD quando todos os estados definidos em HandsOnDetectionDriverState.aidl são aceitos.

    Figura 7. HOD quando todos os estados definidos em HandsOnDetectionDriverState.aidl são aceitos.

    Além da propriedade HANDS_ON_DETECTION_STATE, o HOD também fornece uma propriedade de aviso separada, HANDS_ON_DETECTION_WARNING. O diagrama de estado para os valores de aviso de HOD é ilustrado na Figura 8.

    Valores de alerta de HOD

    Figura 8. HOD quando todos os valores definidos em HandsOnDetectionWarning.aidl tiverem suporte.