blob: 340a669d2d03a9c5c089c432f0386a57782d8075 [file] [log] [blame]
/*
* Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.hardware.automotive.vehicle;
/**
* Used to enumerate the state of Lane Centering Assist (LCA).
*/
@VintfStability
@Backing(type="int")
enum LaneCenteringAssistState {
/**
* This state is used as an alternative for any LaneCenteringAssistState value that is not
* defined in the platform. Ideally, implementations of
* VehicleProperty#LANE_CENTERING_ASSIST_STATE should not use this state. The framework
* can use this field to remain backwards compatible if LaneCenteringAssistState is
* extended to include additional states.
*/
OTHER = 0,
/**
* LCA is enabled but the ADAS system has not received an activation signal from the driver.
* Therefore, LCA is not steering the car and waits for the driver to send a
* LaneCenteringAssistCommand#ACTIVATE command.
*/
ENABLED = 1,
/**
* LCA is enabled and the driver has sent an activation command to the LCA system, but the
* system has not started actively steering the vehicle. This may happen when LCA needs time to
* detect valid lane lines. The activation command can be sent through the
* VehicleProperty#LANE_CENTERING_ASSIST_COMMAND vehicle property or through a system external
* to Android. Once LCA is actively steering the vehicle, the state must be updated to
* ACTIVATED. If the feature is not able to activate, then the cause can be communicated through
* the ErrorState values and then return to the ENABLED state.
*/
ACTIVATION_REQUESTED = 2,
/**
* LCA is enabled and actively steering the car to keep it centered in its lane.
*/
ACTIVATED = 3,
/**
* Many LCA implementations allow the driver to override LCA. This means that the car has
* determined it should go a certain direction to keep the car centered in the lane, but a user
* decides to take over and do something else. This is often done for safety reasons and to
* ensure that the driver can always take control of the vehicle. This state should be set when
* the user is actively overriding the LCA system.
*/
USER_OVERRIDE = 4,
/**
* When LCA is in the ACTIVATED state but it will potentially need to deactivate because of
* external conditions (e.g. roads curvature is too extreme, the driver does not have their
* hands on the steering wheel for a long period of time, or the driver is not paying
* attention), then the ADAS system will notify the driver of a potential need to deactivate and
* give control back to the driver.
*/
FORCED_DEACTIVATION_WARNING = 5,
}