diff --git a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h index 92c27077be..c4e2c64659 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/AccessForVehicleProperty.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 The Android Open Source Project + * 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. diff --git a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h index e1bdf7d597..bd6c70579a 100644 --- a/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h +++ b/automotive/vehicle/aidl/generated_lib/cpp/ChangeModeForVehicleProperty.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 The Android Open Source Project + * 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. diff --git a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java index b5c3de98be..6e6663267c 100644 --- a/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/AccessForVehicleProperty.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 The Android Open Source Project + * 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. diff --git a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java index 0f126e7c08..522c82fc4b 100644 --- a/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java +++ b/automotive/vehicle/aidl/generated_lib/java/ChangeModeForVehicleProperty.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 The Android Open Source Project + * 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. diff --git a/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java new file mode 100644 index 0000000000..144d0e1d4a --- /dev/null +++ b/automotive/vehicle/aidl/generated_lib/java/EnumForVehicleProperty.java @@ -0,0 +1,99 @@ +/* + * 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. + */ + +/** + * DO NOT EDIT MANUALLY!!! + * + * Generated by tools/generate_annotation_enums.py. + */ + +// clang-format off + +package android.hardware.automotive.vehicle; + +import java.util.List; +import java.util.Map; + +public final class EnumForVehicleProperty { + + public static final Map>> values = Map.ofEntries( + Map.entry(VehicleProperty.INFO_FUEL_TYPE, List.of(FuelType.class)), + Map.entry(VehicleProperty.INFO_EV_CONNECTOR_TYPE, List.of(EvConnectorType.class)), + Map.entry(VehicleProperty.INFO_FUEL_DOOR_LOCATION, List.of(PortLocationType.class)), + Map.entry(VehicleProperty.INFO_EV_PORT_LOCATION, List.of(PortLocationType.class)), + Map.entry(VehicleProperty.INFO_DRIVER_SEAT, List.of(VehicleAreaSeat.class)), + Map.entry(VehicleProperty.INFO_MULTI_EV_PORT_LOCATIONS, List.of(PortLocationType.class)), + Map.entry(VehicleProperty.ENGINE_OIL_LEVEL, List.of(VehicleOilLevel.class)), + Map.entry(VehicleProperty.GEAR_SELECTION, List.of(VehicleGear.class)), + Map.entry(VehicleProperty.CURRENT_GEAR, List.of(VehicleGear.class)), + Map.entry(VehicleProperty.TURN_SIGNAL_STATE, List.of(VehicleTurnSignal.class)), + Map.entry(VehicleProperty.IGNITION_STATE, List.of(VehicleIgnitionState.class)), + Map.entry(VehicleProperty.EV_STOPPING_MODE, List.of(EvStoppingMode.class)), + Map.entry(VehicleProperty.HVAC_FAN_DIRECTION, List.of(VehicleHvacFanDirection.class)), + Map.entry(VehicleProperty.HVAC_TEMPERATURE_DISPLAY_UNITS, List.of(VehicleUnit.class)), + Map.entry(VehicleProperty.HVAC_FAN_DIRECTION_AVAILABLE, List.of(VehicleHvacFanDirection.class)), + Map.entry(VehicleProperty.DISTANCE_DISPLAY_UNITS, List.of(VehicleUnit.class)), + Map.entry(VehicleProperty.FUEL_VOLUME_DISPLAY_UNITS, List.of(VehicleUnit.class)), + Map.entry(VehicleProperty.TIRE_PRESSURE_DISPLAY_UNITS, List.of(VehicleUnit.class)), + Map.entry(VehicleProperty.EV_BATTERY_DISPLAY_UNITS, List.of(VehicleUnit.class)), + Map.entry(VehicleProperty.HW_ROTARY_INPUT, List.of(RotaryInputType.class)), + Map.entry(VehicleProperty.HW_CUSTOM_INPUT, List.of(CustomInputType.class)), + Map.entry(VehicleProperty.SEAT_FOOTWELL_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.SEAT_FOOTWELL_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.SEAT_OCCUPANCY, List.of(VehicleSeatOccupancyState.class)), + Map.entry(VehicleProperty.WINDSHIELD_WIPERS_STATE, List.of(WindshieldWipersState.class)), + Map.entry(VehicleProperty.WINDSHIELD_WIPERS_SWITCH, List.of(WindshieldWipersSwitch.class)), + Map.entry(VehicleProperty.HEADLIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.HIGH_BEAM_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.FOG_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.HAZARD_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.HEADLIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.HIGH_BEAM_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.FOG_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.HAZARD_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.CABIN_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.CABIN_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.READING_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.READING_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.STEERING_WHEEL_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.STEERING_WHEEL_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, List.of(ElectronicTollCollectionCardType.class)), + Map.entry(VehicleProperty.ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, List.of(ElectronicTollCollectionCardStatus.class)), + Map.entry(VehicleProperty.FRONT_FOG_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.FRONT_FOG_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.REAR_FOG_LIGHTS_STATE, List.of(VehicleLightState.class)), + Map.entry(VehicleProperty.REAR_FOG_LIGHTS_SWITCH, List.of(VehicleLightSwitch.class)), + Map.entry(VehicleProperty.EV_CHARGE_STATE, List.of(EvChargeState.class)), + Map.entry(VehicleProperty.EV_REGENERATIVE_BRAKING_STATE, List.of(EvRegenerativeBrakingState.class)), + Map.entry(VehicleProperty.TRAILER_PRESENT, List.of(TrailerState.class)), + Map.entry(VehicleProperty.GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, List.of(GsrComplianceRequirementType.class)), + Map.entry(VehicleProperty.SHUTDOWN_REQUEST, List.of(VehicleApPowerStateShutdownParam.class)), + Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, List.of(AutomaticEmergencyBrakingState.class, ErrorState.class)), + Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_STATE, List.of(ForwardCollisionWarningState.class, ErrorState.class)), + Map.entry(VehicleProperty.BLIND_SPOT_WARNING_STATE, List.of(BlindSpotWarningState.class, ErrorState.class)), + Map.entry(VehicleProperty.LANE_DEPARTURE_WARNING_STATE, List.of(LaneDepartureWarningState.class, ErrorState.class)), + Map.entry(VehicleProperty.LANE_KEEP_ASSIST_STATE, List.of(LaneKeepAssistState.class, ErrorState.class)), + Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_COMMAND, List.of(LaneCenteringAssistCommand.class)), + Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_STATE, List.of(LaneCenteringAssistState.class, ErrorState.class)), + Map.entry(VehicleProperty.EMERGENCY_LANE_KEEP_ASSIST_STATE, List.of(EmergencyLaneKeepAssistState.class, ErrorState.class)), + Map.entry(VehicleProperty.CRUISE_CONTROL_TYPE, List.of(CruiseControlType.class, ErrorState.class)), + Map.entry(VehicleProperty.CRUISE_CONTROL_STATE, List.of(CruiseControlState.class, ErrorState.class)), + Map.entry(VehicleProperty.CRUISE_CONTROL_COMMAND, List.of(CruiseControlCommand.class)), + Map.entry(VehicleProperty.HANDS_ON_DETECTION_DRIVER_STATE, List.of(HandsOnDetectionDriverState.class, ErrorState.class)), + Map.entry(VehicleProperty.HANDS_ON_DETECTION_WARNING, List.of(HandsOnDetectionWarning.class, ErrorState.class)) + ); + +} diff --git a/automotive/vehicle/tools/generate_annotation_enums.py b/automotive/vehicle/tools/generate_annotation_enums.py index fddc55b5f4..05fc99a231 100755 --- a/automotive/vehicle/tools/generate_annotation_enums.py +++ b/automotive/vehicle/tools/generate_annotation_enums.py @@ -18,7 +18,7 @@ Need ANDROID_BUILD_TOP environmental variable to be set. This script will update ChangeModeForVehicleProperty.h and AccessForVehicleProperty.h under generated_lib/cpp and - ChangeModeForVehicleProperty.java and AccessForVehicleProperty.java under generated_lib/java. + ChangeModeForVehicleProperty.java, AccessForVehicleProperty.java, EnumForVehicleProperty.java under generated_lib/java. Usage: $ python generate_annotation_enums.py @@ -40,6 +40,8 @@ CHANGE_MODE_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/gener 'ChangeModeForVehicleProperty.java') ACCESS_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/java/' + 'AccessForVehicleProperty.java') +ENUM_JAVA_FILE_PATH = ('hardware/interfaces/automotive/vehicle/aidl/generated_lib/java/' + + 'EnumForVehicleProperty.java') SCRIPT_PATH = 'hardware/interfaces/automotive/vehicle/tools/generate_annotation_enums.py' TAB = ' ' @@ -54,7 +56,7 @@ RE_UNIT = re.compile('\s*\* @unit (\S+)\s+') RE_VALUE = re.compile('\s*(\w+)\s*=(.*)') LICENSE = """/* - * Copyright (C) 2022 The Android Open Source Project + * 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. @@ -167,6 +169,22 @@ ACCESS_JAVA_FOOTER = """ } """ +ENUM_JAVA_HEADER = """package android.hardware.automotive.vehicle; + +import java.util.List; +import java.util.Map; + +public final class EnumForVehicleProperty { + + public static final Map>> values = Map.ofEntries( +""" + +ENUM_JAVA_FOOTER = """ + ); + +} +""" + class PropertyConfig: """Represents one VHAL property definition in VehicleProperty.aidl.""" @@ -272,6 +290,11 @@ class FileParser: annotation = "VehiclePropertyAccess::" + config.access_modes[0] else: annotation = "VehiclePropertyAccess." + config.access_modes[0] + elif field == 'enum_types': + if len(config.enum_types) < 1: + continue; + if not cpp: + annotation = "List.of(" + ', '.join([class_name + ".class" for class_name in config.enum_types]) + ")" else: raise Exception('Unknown field: ' + field) if counter != 0: @@ -348,7 +371,7 @@ def main(): else: android_top = os.environ['ANDROID_BUILD_TOP'] if not android_top: - print('ANDROID_BUILD_TOP is not in envorinmental variable, please run source and lunch ' + + print('ANDROID_BUILD_TOP is not in environmental variable, please run source and lunch ' + 'at the android root') aidl_file = os.path.join(android_top, PROP_AIDL_FILE_PATH) @@ -363,6 +386,7 @@ def main(): access_cpp_file = os.path.join(android_top, ACCESS_CPP_FILE_PATH); change_mode_java_file = os.path.join(android_top, CHANGE_MODE_JAVA_FILE_PATH); access_java_file = os.path.join(android_top, ACCESS_JAVA_FILE_PATH); + enum_java_file = os.path.join(android_top, ENUM_JAVA_FILE_PATH); temp_files = [] if not args.check_only: @@ -370,6 +394,7 @@ def main(): access_cpp_output = access_cpp_file change_mode_java_output = change_mode_java_file access_java_output = access_java_file + enum_java_output = enum_java_file else: change_mode_cpp_output = createTempFile() temp_files.append(change_mode_cpp_output) @@ -379,6 +404,8 @@ def main(): temp_files.append(change_mode_java_output) access_java_output = createTempFile() temp_files.append(access_java_output) + enum_java_output = createTempFile() + temp_files.append(enum_java_output) try: f.convert(change_mode_cpp_output, CHANGE_MODE_CPP_HEADER, CHANGE_MODE_CPP_FOOTER, @@ -387,6 +414,7 @@ def main(): CHANGE_MODE_JAVA_FOOTER, False, 'change_mode') f.convert(access_cpp_output, ACCESS_CPP_HEADER, ACCESS_CPP_FOOTER, True, 'access_mode') f.convert(access_java_output, ACCESS_JAVA_HEADER, ACCESS_JAVA_FOOTER, False, 'access_mode') + f.convert(enum_java_output, ENUM_JAVA_HEADER, ENUM_JAVA_FOOTER, False, 'enum_types') if not args.check_only: return @@ -394,7 +422,8 @@ def main(): if ((not filecmp.cmp(change_mode_cpp_output, change_mode_cpp_file)) or (not filecmp.cmp(change_mode_java_output, change_mode_java_file)) or (not filecmp.cmp(access_cpp_output, access_cpp_file)) or - (not filecmp.cmp(access_java_output, access_java_file))): + (not filecmp.cmp(access_java_output, access_java_file)) or + (not filecmp.cmp(enum_java_output, enum_java_file))): print('The generated enum files for VehicleProperty.aidl requires update, ') print('Run \npython ' + android_top + '/' + SCRIPT_PATH) sys.exit(1)