Właściwości pojazdu ADAS

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

Te nowe funkcje są przedstawione na ilustracji poniżej.

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. Znajdują się one 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 projektowe

Do nowo dodanych właściwości stosowane są te motywy projektowe.

Właściwość Opis
WŁĄCZONO
  • Właściwości wskazujące, czy funkcja jest włączona czy wyłączona.
  • Właściwości logiczne, w których true oznacza włączenie, a false – wyłączenie.
  • Właściwości Read i Write, które można zaimplementować jako Read-only.
STAN
  • Właściwości służące do komunikowania stanu funkcji za pomocą listy predefiniowanych stanów.
  • Właściwości Int32 ze zdefiniowanymi wyliczeniami.
  • Pole OTHER zapewniające zgodność wsteczną.
  • Właściwości Read-only.
  • Typy obszarów Mirror lub Global.
  • Używa wartości zdefiniowanych w ErrorStates.aidl.
  • Użyj getSupportedEnumValues() interfejsu API w AreaIdConfig.java.
Pozostałe postanowienia
  • Właściwości COMMAND dla funkcji, w których wymagane są dane wejściowe użytkownika.
  • Właściwości WARNING w przypadku, gdy stan można przedstawić oddzielnie.
  • Inne właściwości obsługujące:
    • Warianty funkcji, jeśli to możliwe.
    • Dostosowywanie ustawień funkcji, jeśli to możliwe.

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ą razem dołączone właściwości. Podajemy przykłady tych funkcji:

  • Automatyczne hamowanie awaryjne (AEB)
  • Asystent utrzymania na pasie ruchu (LCA)
  • Wykrywanie rąk na kierownicy (HOD)

Automatyczne hamowanie awaryjne

Dla AEB zdefiniowano 2 właściwości opisane w tej tabeli.

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

AUTOMATIC_EMERGENCY_BRAKING_STATE

Zdefiniowana w AutomaticEmergencyBrakingState.aidl.

VehiclePropertyType:INT32

  • OTHER
  • ENABLED
  • ACTIVATED
  • USER_OVERRIDE
  • ErrorState
  • Ten 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 AutomaticEmergencyBrakingState.aidl.

    Ten rysunek przedstawia przykład AEB, gdy stan USER_OVERRIDE nie jest obsługiwany. Obsługiwane stany należy określić za pomocą getSupportedEnumValues() interfejsu API w 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.

    W przykładzie AEB przedstawionym na rysunku 4 wyróżniono błąd, który powoduje, że AEB staje się niedostępne. Pokazuje to, jak należy używać wartości zdefiniowanych w ErrorState.aidl should be used. Te błędy nie powodują zgłoszenia wyjątku przez CarPropertyManager ale są udostępniane aplikacjom w taki sam sposób jak inne zmiany w CarPropertyValue.

    Błąd powoduje niedostępność AEB

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

    Asystent utrzymania na pasie ruchu

    Asystent utrzymania na pasie ruchu (LCA) ma 3 powiązane i zdefiniowane właściwości.

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

    LANE_CENTERING_ASSIST_STATE

    Zdefiniowana w LaneCenteringAssistState.aidl

    VehiclePropertyType:INT32

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

    LANE_CENTERING_ASSIST_COMMAND

    Zdefiniowana w LaneCenteringAssistCommand.aidl

    VehiclePropertyType:INT32

    • ACTIVATE
    • DEACTIVATE

    Ten diagram stanów przedstawia LCA, gdy obsługiwane są wszystkie stany zdefiniowane w LaneCenteringAssistState.aidl są obsługiwane. Zielone linie mogą być poleceniem zainicjowanym przez LANE_CENTERING_ASSIST_COMMAND (jeśli jest zaimplementowane) lub zainicjowanym przez inny mechanizm 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 LaneCenteringAssistState.aidl.

    Ten przykład LCA wyróżnia błąd, który powoduje, że LCA staje się niedostępne. Pokazuje to, jak używać wartości zdefiniowanych w ErrorState.aidl. Te błędy nie powodują zgłoszenia błędu przez CarPropertyManager, ale są udostępniane aplikacjom w taki sam sposób jak inne zmiany w CarPropertyValue są udostępniane.

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

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

    Wykrywanie rąk na kierownicy

    Dla wykrywania rąk na kierownicy (HOD) zdefiniowano te 3 powiązane właściwości.

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

    HANDS_ON_DETECTION_STATE

    Zdefiniowana w HandsOnDetectionDriverState.aidl

    VehiclePropertyType:INT32

    • OTHER
    • HANDS_ON
    • HANDS_OFF
    • ErrorState

    HANDS_ON_DETECTION_WARNING

    Zdefiniowana w HandsOnDetectionWarning.aidl

    VehiclePropertyType:INT32

    • OTHER
    • NO_WARNING
    • WARNING
    • ErrorState

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

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

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

    Oprócz właściwości HANDS_ON_DETECTION_STATE funkcja HOD udostępnia też oddzielną właściwość ostrzeżenia HANDS_ON_DETECTION_WARNING. Diagram stanów dla wartości ostrzeżenia HOD jest przedstawiony na rysunku 8.

    Wartości ostrzegawcze HOD

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