mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Added HANDS_ON_DETECTION_DRIVER_STATE to HAL layer
Bug: 264946425 Test: atest VtsHalAutomotiveVehicle_TargetTest Change-Id: I89ed7c254917eb48b69682b18950c15f60afd2f0
This commit is contained in:
@@ -264,6 +264,7 @@ std::unordered_map<VehicleProperty, VehiclePropertyAccess> AccessForVehiclePrope
|
||||
{VehicleProperty::CRUISE_CONTROL_STATE, VehiclePropertyAccess::READ},
|
||||
{VehicleProperty::CRUISE_CONTROL_COMMAND, VehiclePropertyAccess::WRITE},
|
||||
{VehicleProperty::HANDS_ON_DETECTION_ENABLED, VehiclePropertyAccess::READ_WRITE},
|
||||
{VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyAccess::READ},
|
||||
{VehicleProperty::DRIVER_ATTENTION_MONITORING_ENABLED, VehiclePropertyAccess::READ_WRITE},
|
||||
};
|
||||
|
||||
|
||||
@@ -264,6 +264,7 @@ std::unordered_map<VehicleProperty, VehiclePropertyChangeMode> ChangeModeForVehi
|
||||
{VehicleProperty::CRUISE_CONTROL_STATE, VehiclePropertyChangeMode::ON_CHANGE},
|
||||
{VehicleProperty::CRUISE_CONTROL_COMMAND, VehiclePropertyChangeMode::ON_CHANGE},
|
||||
{VehicleProperty::HANDS_ON_DETECTION_ENABLED, VehiclePropertyChangeMode::ON_CHANGE},
|
||||
{VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyChangeMode::ON_CHANGE},
|
||||
{VehicleProperty::DRIVER_ATTENTION_MONITORING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE},
|
||||
};
|
||||
|
||||
|
||||
@@ -256,6 +256,7 @@ public final class AccessForVehicleProperty {
|
||||
Map.entry(VehicleProperty.CRUISE_CONTROL_STATE, VehiclePropertyAccess.READ),
|
||||
Map.entry(VehicleProperty.CRUISE_CONTROL_COMMAND, VehiclePropertyAccess.WRITE),
|
||||
Map.entry(VehicleProperty.HANDS_ON_DETECTION_ENABLED, VehiclePropertyAccess.READ_WRITE),
|
||||
Map.entry(VehicleProperty.HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyAccess.READ),
|
||||
Map.entry(VehicleProperty.DRIVER_ATTENTION_MONITORING_ENABLED, VehiclePropertyAccess.READ_WRITE)
|
||||
);
|
||||
|
||||
|
||||
@@ -256,6 +256,7 @@ public final class ChangeModeForVehicleProperty {
|
||||
Map.entry(VehicleProperty.CRUISE_CONTROL_STATE, VehiclePropertyChangeMode.ON_CHANGE),
|
||||
Map.entry(VehicleProperty.CRUISE_CONTROL_COMMAND, VehiclePropertyChangeMode.ON_CHANGE),
|
||||
Map.entry(VehicleProperty.HANDS_ON_DETECTION_ENABLED, VehiclePropertyChangeMode.ON_CHANGE),
|
||||
Map.entry(VehicleProperty.HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyChangeMode.ON_CHANGE),
|
||||
Map.entry(VehicleProperty.DRIVER_ATTENTION_MONITORING_ENABLED, VehiclePropertyChangeMode.ON_CHANGE)
|
||||
);
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ using ::aidl::android::hardware::automotive::vehicle::EvsServiceType;
|
||||
using ::aidl::android::hardware::automotive::vehicle::ForwardCollisionWarningState;
|
||||
using ::aidl::android::hardware::automotive::vehicle::FuelType;
|
||||
using ::aidl::android::hardware::automotive::vehicle::GsrComplianceRequirementType;
|
||||
using ::aidl::android::hardware::automotive::vehicle::HandsOnDetectionDriverState;
|
||||
using ::aidl::android::hardware::automotive::vehicle::LaneCenteringAssistCommand;
|
||||
using ::aidl::android::hardware::automotive::vehicle::LaneCenteringAssistState;
|
||||
using ::aidl::android::hardware::automotive::vehicle::LaneDepartureWarningState;
|
||||
@@ -230,6 +231,8 @@ JsonValueParser::JsonValueParser() {
|
||||
std::make_unique<ConstantParser<CruiseControlState>>();
|
||||
mConstantParsersByType["CruiseControlCommand"] =
|
||||
std::make_unique<ConstantParser<CruiseControlCommand>>();
|
||||
mConstantParsersByType["HandsOnDetectionDriverState"] =
|
||||
std::make_unique<ConstantParser<HandsOnDetectionDriverState>>();
|
||||
mConstantParsersByType["ErrorState"] = std::make_unique<ConstantParser<ErrorState>>();
|
||||
mConstantParsersByType["AutomaticEmergencyBrakingState"] =
|
||||
std::make_unique<ConstantParser<AutomaticEmergencyBrakingState>>();
|
||||
|
||||
@@ -3215,6 +3215,24 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"property": "VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE",
|
||||
"defaultValue": {
|
||||
"int32Values": [
|
||||
"HandsOnDetectionDriverState::HANDS_ON"
|
||||
]
|
||||
},
|
||||
"areas": [
|
||||
{
|
||||
"areaId": 0,
|
||||
"supportedEnumValues": [
|
||||
"ErrorState::NOT_AVAILABLE_DISABLED",
|
||||
"HandsOnDetectionDriverState::HANDS_ON",
|
||||
"HandsOnDetectionDriverState::HANDS_OFF"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"property": "VehicleProperty::DRIVER_ATTENTION_MONITORING_ENABLED",
|
||||
"defaultValue": {
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <aidl/android/hardware/automotive/vehicle/GetValueResult.h>
|
||||
#include <aidl/android/hardware/automotive/vehicle/GetValueResults.h>
|
||||
#include <aidl/android/hardware/automotive/vehicle/GsrComplianceRequirementType.h>
|
||||
#include <aidl/android/hardware/automotive/vehicle/HandsOnDetectionDriverState.h>
|
||||
#include <aidl/android/hardware/automotive/vehicle/LaneCenteringAssistCommand.h>
|
||||
#include <aidl/android/hardware/automotive/vehicle/LaneCenteringAssistState.h>
|
||||
#include <aidl/android/hardware/automotive/vehicle/LaneDepartureWarningState.h>
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
|
||||
// two cases:
|
||||
// 1). this is a frozen version file - do not edit this in any case.
|
||||
// 2). this is a 'current' file. If you make a backwards compatible change to
|
||||
// the interface (from the latest frozen version), the build system will
|
||||
// prompt you to update this file with `m <name>-update-api`.
|
||||
//
|
||||
// You must not make a backward incompatible change to any AIDL file built
|
||||
// with the aidl_interface module type with versions property set. The module
|
||||
// type is used to build AIDL files in a way that they can be used across
|
||||
// independently updatable components of the system. If a device is shipped
|
||||
// with such a backward incompatible change, it has a high risk of breaking
|
||||
// later when a module using the interface is updated, e.g., Mainline modules.
|
||||
|
||||
package android.hardware.automotive.vehicle;
|
||||
@Backing(type="int") @VintfStability
|
||||
enum HandsOnDetectionDriverState {
|
||||
OTHER = 0,
|
||||
HANDS_ON = 1,
|
||||
HANDS_OFF = 2,
|
||||
}
|
||||
@@ -262,5 +262,6 @@ enum VehicleProperty {
|
||||
CRUISE_CONTROL_STATE = (((0x1011 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411089 */,
|
||||
CRUISE_CONTROL_COMMAND = (((0x1012 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411090 */,
|
||||
HANDS_ON_DETECTION_ENABLED = (((0x1016 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313942 */,
|
||||
HANDS_ON_DETECTION_DRIVER_STATE = (((0x1017 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.INT32) /* 289411095 */,
|
||||
DRIVER_ATTENTION_MONITORING_ENABLED = (((0x1019 + android.hardware.automotive.vehicle.VehiclePropertyGroup.SYSTEM) + android.hardware.automotive.vehicle.VehicleArea.GLOBAL) + android.hardware.automotive.vehicle.VehiclePropertyType.BOOLEAN) /* 287313945 */,
|
||||
}
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* 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 current driver state of Hands On Detection (HOD).
|
||||
*/
|
||||
@VintfStability
|
||||
@Backing(type="int")
|
||||
enum HandsOnDetectionDriverState {
|
||||
/**
|
||||
* This state is used as an alternative for any HandsOnDetectionDriverState value that is not
|
||||
* defined in the platform. Ideally, implementations of
|
||||
* VehicleProperty#HANDS_ON_DETECTION_DRIVER_STATE should not use this state. The framework
|
||||
* can use this field to remain backwards compatible if HandsOnDetectionDriverState is
|
||||
* extended to include additional states.
|
||||
*/
|
||||
OTHER = 0,
|
||||
/**
|
||||
* The system detects that the driver has their hands on the steering wheel.
|
||||
*/
|
||||
HANDS_ON = 1,
|
||||
/**
|
||||
* The system detects that the driver has their hands off the steering wheel.
|
||||
*/
|
||||
HANDS_OFF = 2,
|
||||
}
|
||||
@@ -3946,6 +3946,30 @@ enum VehicleProperty {
|
||||
HANDS_ON_DETECTION_ENABLED =
|
||||
0x1016 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.BOOLEAN,
|
||||
|
||||
/**
|
||||
* Hands on detection (HOD) driver state.
|
||||
*
|
||||
* Returns whether the driver's hands are on the steering wheel. Generally, this property should
|
||||
* return a valid state defined in the HandsOnDetectionDriverState or ErrorState. For example,
|
||||
* if the feature is not available due to some temporary state, that information should be
|
||||
* conveyed through ErrorState.
|
||||
*
|
||||
* If the vehicle wants to send a warning to the user because the driver's hands have been off
|
||||
* the steering wheel for too long, the warning should be surfaced through
|
||||
* HANDS_ON_DETECTION_WARNING.
|
||||
*
|
||||
* For the global area ID (0), the VehicleAreaConfig#supportedEnumValues array must be defined
|
||||
* unless all states of both HandsOnDetectionDriverState (including OTHER, which is not
|
||||
* recommended) and ErrorState are supported.
|
||||
*
|
||||
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
|
||||
* @access VehiclePropertyAccess.READ
|
||||
* @data_enum HandsOnDetectionDriverState
|
||||
* @data_enum ErrorState
|
||||
*/
|
||||
HANDS_ON_DETECTION_DRIVER_STATE =
|
||||
0x1017 + VehiclePropertyGroup.SYSTEM + VehicleArea.GLOBAL + VehiclePropertyType.INT32,
|
||||
|
||||
/**
|
||||
* Enable or disable driver attention monitoring.
|
||||
*
|
||||
|
||||
@@ -540,6 +540,12 @@ TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyHandsOnDetectionEnabledConfig) {
|
||||
VehicleArea::GLOBAL, VehiclePropertyType::BOOLEAN);
|
||||
}
|
||||
|
||||
TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyHandsOnDetectionDriverStateConfig) {
|
||||
verifyProperty(VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, VehiclePropertyAccess::READ,
|
||||
VehiclePropertyChangeMode::ON_CHANGE, VehiclePropertyGroup::SYSTEM,
|
||||
VehicleArea::GLOBAL, VehiclePropertyType::INT32);
|
||||
}
|
||||
|
||||
TEST_P(VtsHalAutomotiveVehicleTargetTest, verifyDriverAttentionMonitoringEnabledConfig) {
|
||||
verifyProperty(VehicleProperty::DRIVER_ATTENTION_MONITORING_ENABLED,
|
||||
VehiclePropertyAccess::READ_WRITE, VehiclePropertyChangeMode::ON_CHANGE,
|
||||
|
||||
Reference in New Issue
Block a user