Właściwości pojazdu ADAS

W Androidzie 14 dodaliśmy te nowe właściwości ADAS:

Nowe funkcje przedstawia poniższy rysunek.

Obsługiwane funkcje ADAS

Rysunek 1. Obsługiwane funkcje ADAS.

Lista właściwości

Aby obsługiwać te nowe funkcje, do Androida 14 dodaliśmy listę właściwości. Znajdziesz je poniżej.

Właściwości
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

Motywy projektów

Do nowo dodanych usług stosowane są te motywy projektu:

Właściwość Opis
WŁĄCZONE
  • Właściwości wskazujące, czy funkcja jest włączona czy wyłączona.
  • Właściwości logiczne, w których true jest włączone, a false jest wyłączone.
  • Właściwości ReadWrite, które można wdrożyć jako Read-only.
STAN
  • Właściwości do przekazywania stanu funkcji za pomocą listy wstępnie zdefiniowanych stanów.
  • Właściwości Int32 z określonymi wyliczeniami.
  • OTHER, aby zapewnić zgodność wsteczną.
  • Read-only usług.
  • Typy obszarów Mirror lub Global.
  • Używa wartości zdefiniowanych w pliku ErrorStates.aidl.
  • Użyj interfejsu API w getSupportedEnumValues()AreaIdConfig.java.
Różne
  • właściwości COMMAND w przypadku funkcji, które wymagają danych wejściowych od użytkownika.
  • Właściwości WARNING, gdy stan można przedstawić osobno.
  • Inne obsługiwane właściwości:
    • W stosownych przypadkach warianty funkcji.
    • W razie potrzeby dostosuj ustawienia funkcji.

Przykłady diagramów stanów

W tej sekcji znajdziesz diagramy stanów dla podzbioru obsługiwanych funkcji ADAS, które pokazują, jak działają ze sobą uwzględnione właściwości. Poniżej znajdziesz przykłady tych funkcji.

  • Automatyczne hamowanie awaryjne (AEB)
  • Asystent utrzymania pasa ruchu (LCA)
  • Wykrywanie trzymania kierownicy (HOD)

Automatyczne hamowanie awaryjne

Dla AEB zdefiniowano 2 właściwości, które zostały opisane w tej tabeli.

Właściwość Wartości
AUTOMATIC_EMERGENCY_BRAKING_ENABLED VehiclePropertyType:BOOLEAN

AUTOMATIC_EMERGENCY_BRAKING_STATE

Zdefiniowano w pliku AutomaticEmergencyBrakingState.aidl.

VehiclePropertyType:INT32

  • OTHER
  • ENABLED
  • ACTIVATED
  • USER_OVERRIDE
  • ErrorState
  • Poniższy przykładowy diagram stanów dla AEB zawiera obsługiwane stany zdefiniowane w AutomaticEmergencyBrakingState.aidl.

    Stany AEB zdefiniowane w pliku AutomaticEmergencyBrakingState.aidl

    Rysunek 2. Stany AEB zdefiniowane w pliku AutomaticEmergencyBrakingState.aidl.

    Ilustracja przedstawia przykład AEB, gdy stanUSER_OVERRIDEnie jest obsługiwany. Obsługiwane stany należy określić za pomocą interfejsu API getSupportedEnumValues()AreaIdConfig.java.

    AEB, gdy stan zastąpienia przez użytkownika nie jest obsługiwany

    Rysunek 3. AEB, gdy stan USER_OVERRIDE nie jest obsługiwany.

    Na przykładzie AEB przedstawionym na rysunku 4 wyróżniono błąd, który powoduje niedostępność AEB. Pokazuje to, jak należy używać wartości zdefiniowanych w ErrorState.aidl. Te błędy nie powodują zgłoszenia wyjątku przez CarPropertyManager, ale są udostępniane aplikacjom w taki sam sposób jak każda inna zmiana CarPropertyValue.

    Błąd powoduje, że AEB staje się niedostępny

    Rysunek 4. Błąd powoduje, że AEB staje się niedostępny.

    Asystent utrzymania na środku pasa ruchu

    Asystent utrzymania pasa ruchu (LCA) udostępnia 3 powiązane i zdefiniowane właściwości.

    Właściwość Wartości
    LANE_CENTERING_ASSIST_ENABLED VehiclePropertyType:BOOLEAN

    LANE_CENTERING_ASSIST_STATE

    Zdefiniowano w LaneCenteringAssistState.aidl

    VehiclePropertyType:INT32

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

    LANE_CENTERING_ASSIST_COMMAND

    Zdefiniowano w LaneCenteringAssistCommand.aidl

    VehiclePropertyType:INT32

    • ACTIVATE
    • DEACTIVATE

    Poniższy diagram stanów ilustruje LCA, gdy obsługiwane są wszystkie zdefiniowane stany w  LaneCenteringAssistState.aidl. Zielone linie mogą być poleceniem zainicjowanym z poziomu LANE_CENTERING_ASSIST_COMMAND (jeśli jest zaimplementowane) lub za pomocą innego mechanizmu w pojeździe i odzwierciedlać zmianę stanu w systemie operacyjnym Android Automotive (AAOS).

    Stany LCA zdefiniowane w pliku LaneCenteringAssistState.aidl

    Rysunek 5. Stany LCA zdefiniowane w pliku LaneCenteringAssistState.aidl.

    Ten przykład LCA pokazuje błąd, który powoduje niedostępność LCA. Ten przykład pokazuje, jak używać wartości zdefiniowanych w ErrorState.aidl. Te błędy nie powodują zgłaszania błędu przez CarPropertyManager, ale są udostępniane aplikacjom w taki sam sposób jak inne zmiany w CarPropertyValue.

     Błąd powoduje, że LCA staje się niedostępny.

    Rysunek 6. Błąd powoduje, że LCA staje się niedostępny.

    Wykrywanie dotyku

    Te 3 powiązane właściwości są zdefiniowane na potrzeby wykrywania dotyku (HOD).

    Właściwość Opis
    HANDS_ON_DETECTION_ENABLED VehiclePropertyType:BOOLEAN

    HANDS_ON_DETECTION_STATE

    Zdefiniowano w HandsOnDetectionDriverState.aidl

    VehiclePropertyType:INT32

    • OTHER
    • HANDS_ON
    • HANDS_OFF
    • ErrorState

    HANDS_ON_DETECTION_WARNING

    Zdefiniowano w HandsOnDetectionWarning.aidl

    VehiclePropertyType:INT32

    • OTHER
    • NO_WARNING
    • WARNING
    • ErrorState

    Ilustracja poniżej przedstawia przykład HOD, w którym obsługiwane są wszystkie zdefiniowane stany w HandsOnDetectionDriverState.aidl.

    HOD, gdy obsługiwane są wszystkie zdefiniowane stany w pliku HandsOnDetectionDriverState.aidl.

    Rysunek 7. HOD, gdy obsługiwane są wszystkie zdefiniowane stany w pliku HandsOnDetectionDriverState.aidl.

    Oprócz właściwości HANDS_ON_DETECTION_STATE HOD udostępnia też oddzielną właściwość ostrzegawczą HANDS_ON_DETECTION_WARNING. Diagram stanów dla wartości ostrzegawczych HOD przedstawiono na rysunku 8.

    Wartości ostrzegawcze HOD

    Rysunek 8. HOD, gdy obsługiwane są wszystkie zdefiniowane wartości w pliku HandsOnDetectionWarning.aidl.