Generate Java/Cpp files for VehicleProperty annotations.
Extract annotations for each property and put them into a map.
We need to use these generated files in car service code and VTS
code.
Flag: EXEMPT internal change
Test: atest VehiclePropertyAnnotationCppTest \
VehiclePropertyAnnotationJavaTest
Bug: 388603905
Change-Id: Iadea6b4de182afaf006d9d9603d014e84e307fd9
diff --git a/automotive/vehicle/aidl/aidl_test/Android.bp b/automotive/vehicle/aidl/aidl_test/Android.bp
index a87af02..d3ce307 100644
--- a/automotive/vehicle/aidl/aidl_test/Android.bp
+++ b/automotive/vehicle/aidl/aidl_test/Android.bp
@@ -43,6 +43,10 @@
team: "trendy_team_aaos_carframework_triage",
srcs: ["VehiclePropertyAnnotationCppTest.cpp"],
header_libs: ["IVehicleGeneratedHeaders-V4"],
+ static_libs: [
+ "libgtest",
+ "libgmock",
+ ],
defaults: ["VehicleHalInterfaceDefaults"],
test_suites: ["general-tests"],
}
diff --git a/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationCppTest.cpp b/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationCppTest.cpp
index a4bbbe8..2aad2b6 100644
--- a/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationCppTest.cpp
+++ b/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationCppTest.cpp
@@ -15,16 +15,20 @@
*/
#include <AccessForVehicleProperty.h>
+#include <AnnotationsForVehicleProperty.h>
#include <ChangeModeForVehicleProperty.h>
#include <aidl/android/hardware/automotive/vehicle/VehicleProperty.h>
+#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include <unordered_set>
namespace aidl_vehicle = ::aidl::android::hardware::automotive::vehicle;
using aidl_vehicle::AccessForVehicleProperty;
+using aidl_vehicle::AnnotationsForVehicleProperty;
using aidl_vehicle::ChangeModeForVehicleProperty;
using aidl_vehicle::VehicleProperty;
+using testing::IsEmpty;
namespace {
template<class T>
@@ -54,3 +58,11 @@
<< "Outdated annotation-generated AIDL files. Please run "
<< "generate_annotation_enums.py to update.";
}
+
+TEST(VehiclePropertyAnnotationCppTest, testAnnotations) {
+ for (const auto& [propertyId, annotations] : AnnotationsForVehicleProperty) {
+ ASSERT_THAT(annotations, Not(IsEmpty()))
+ << "annotations set for property: " << aidl_vehicle::toString(propertyId)
+ << " must not be empty";
+ }
+}
diff --git a/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationJavaTest.java b/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationJavaTest.java
index ef49299..8aab7ad 100644
--- a/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationJavaTest.java
+++ b/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationJavaTest.java
@@ -57,4 +57,15 @@
.that(doesAnnotationMapContainsAllProps(AccessForVehicleProperty.values))
.isTrue();
}
+
+ @Test
+ @SmallTest
+ public void testAnnotations() {
+ for (int propertyId : AnnotationsForVehicleProperty.values.keySet()) {
+ assertWithMessage("annotations set for property: "
+ + VehicleProperty.$.toString(propertyId) + " must not be empty")
+ .that(AnnotationsForVehicleProperty.values.get(propertyId))
+ .isNotEmpty();
+ }
+ }
}
\ No newline at end of file
diff --git a/automotive/vehicle/aidl/generated_lib/4/cpp/AnnotationsForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/4/cpp/AnnotationsForVehicleProperty.h
new file mode 100644
index 0000000..8ff370a
--- /dev/null
+++ b/automotive/vehicle/aidl/generated_lib/4/cpp/AnnotationsForVehicleProperty.h
@@ -0,0 +1,327 @@
+/*
+ * 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
+
+#pragma once
+
+#include <aidl/android/hardware/automotive/vehicle/VehicleProperty.h>
+
+#include <string>
+#include <unordered_map>
+#include <unordered_set>
+
+namespace aidl {
+namespace android {
+namespace hardware {
+namespace automotive {
+namespace vehicle {
+
+std::unordered_map<VehicleProperty, std::unordered_set<std::string>>
+ AnnotationsForVehicleProperty = {
+ {VehicleProperty::INFO_VIN, {"change_mode", "access", "version"}},
+ {VehicleProperty::INFO_MAKE, {"change_mode", "access", "version"}},
+ {VehicleProperty::INFO_MODEL, {"change_mode", "access", "version"}},
+ {VehicleProperty::INFO_MODEL_YEAR, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::INFO_FUEL_CAPACITY, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::INFO_FUEL_TYPE, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::INFO_EV_BATTERY_CAPACITY, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::INFO_EV_CONNECTOR_TYPE, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::INFO_FUEL_DOOR_LOCATION, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::INFO_EV_PORT_LOCATION, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::INFO_DRIVER_SEAT, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::INFO_EXTERIOR_DIMENSIONS, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::INFO_MODEL_TRIM, {"change_mode", "access", "version"}},
+ {VehicleProperty::INFO_VEHICLE_SIZE_CLASS, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::PERF_ODOMETER, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::PERF_VEHICLE_SPEED, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::PERF_STEERING_ANGLE, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::PERF_REAR_STEERING_ANGLE, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::INSTANTANEOUS_FUEL_ECONOMY, {"change_mode", "access", "version"}},
+ {VehicleProperty::INSTANTANEOUS_EV_EFFICIENCY, {"change_mode", "access", "version"}},
+ {VehicleProperty::ENGINE_COOLANT_TEMP, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::ENGINE_OIL_LEVEL, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::ENGINE_OIL_TEMP, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::ENGINE_RPM, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::WHEEL_TICK, {"change_mode", "access", "version"}},
+ {VehicleProperty::FUEL_LEVEL, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::FUEL_DOOR_OPEN, {"change_mode", "access", "version"}},
+ {VehicleProperty::EV_BATTERY_LEVEL, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::EV_CURRENT_BATTERY_CAPACITY, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::EV_CHARGE_PORT_OPEN, {"change_mode", "access", "version"}},
+ {VehicleProperty::EV_CHARGE_PORT_CONNECTED, {"change_mode", "access", "version"}},
+ {VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::RANGE_REMAINING, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::EV_BATTERY_AVERAGE_TEMPERATURE, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::TIRE_PRESSURE, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::ACCELERATOR_PEDAL_COMPRESSION_PERCENTAGE, {"change_mode", "access", "version"}},
+ {VehicleProperty::BRAKE_PEDAL_COMPRESSION_PERCENTAGE, {"change_mode", "access", "version"}},
+ {VehicleProperty::BRAKE_PAD_WEAR_PERCENTAGE, {"change_mode", "access", "version"}},
+ {VehicleProperty::BRAKE_FLUID_LEVEL_LOW, {"change_mode", "access", "version"}},
+ {VehicleProperty::VEHICLE_PASSIVE_SUSPENSION_HEIGHT, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::ENGINE_IDLE_AUTO_STOP_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::IMPACT_DETECTED, {"change_mode", "access", "require_supported_values_list", "version", "data_enum", "data_enum_bit_flags"}},
+ {VehicleProperty::VEHICLE_HORN_ENGAGED, {"change_mode", "access", "version"}},
+ {VehicleProperty::GEAR_SELECTION, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CURRENT_GEAR, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::PARKING_BRAKE_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::PARKING_BRAKE_AUTO_APPLY, {"change_mode", "access", "version"}},
+ {VehicleProperty::EV_BRAKE_REGENERATION_LEVEL, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::FUEL_LEVEL_LOW, {"change_mode", "access", "version"}},
+ {VehicleProperty::NIGHT_MODE, {"change_mode", "access", "version"}},
+ {VehicleProperty::TURN_SIGNAL_STATE, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::IGNITION_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::ABS_ACTIVE, {"change_mode", "access", "version"}},
+ {VehicleProperty::TRACTION_CONTROL_ACTIVE, {"change_mode", "access", "version"}},
+ {VehicleProperty::EV_STOPPING_MODE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::TURN_SIGNAL_LIGHT_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum", "data_enum_bit_flags"}},
+ {VehicleProperty::TURN_SIGNAL_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::HVAC_FAN_SPEED, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::HVAC_FAN_DIRECTION, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::HVAC_TEMPERATURE_CURRENT, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::HVAC_TEMPERATURE_SET, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::HVAC_DEFROSTER, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_AC_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_MAX_AC_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_MAX_DEFROST_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_RECIRC_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_DUAL_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_AUTO_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_SEAT_TEMPERATURE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::HVAC_SIDE_MIRROR_HEAT, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::HVAC_STEERING_WHEEL_HEAT, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_POWER_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE, {"change_mode", "access", "version", "data_enum", "data_enum_bit_flags"}},
+ {VehicleProperty::HVAC_AUTO_RECIRC_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_SEAT_VENTILATION, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON, {"change_mode", "access", "version"}},
+ {VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION, {"change_mode", "access", "version"}},
+ {VehicleProperty::DISTANCE_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::EV_BATTERY_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, {"change_mode", "access", "version"}},
+ {VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::EXTERNAL_CAR_TIME, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::ANDROID_EPOCH_TIME, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::STORAGE_ENCRYPTION_BINDING_SEED, {"change_mode", "access", "version"}},
+ {VehicleProperty::ENV_OUTSIDE_TEMPERATURE, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::AP_POWER_STATE_REQ, {"change_mode", "access", "version"}},
+ {VehicleProperty::AP_POWER_STATE_REPORT, {"change_mode", "access", "version"}},
+ {VehicleProperty::AP_POWER_BOOTUP_REASON, {"change_mode", "access", "version"}},
+ {VehicleProperty::DISPLAY_BRIGHTNESS, {"change_mode", "access", "version"}},
+ {VehicleProperty::PER_DISPLAY_BRIGHTNESS, {"change_mode", "access", "version"}},
+ {VehicleProperty::VALET_MODE_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::HW_KEY_INPUT, {"change_mode", "access", "version"}},
+ {VehicleProperty::HW_KEY_INPUT_V2, {"change_mode", "access", "version"}},
+ {VehicleProperty::HW_MOTION_INPUT, {"change_mode", "access", "version"}},
+ {VehicleProperty::HW_ROTARY_INPUT, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::HW_CUSTOM_INPUT, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::DOOR_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::DOOR_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::DOOR_LOCK, {"change_mode", "access", "version"}},
+ {VehicleProperty::DOOR_CHILD_LOCK_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::MIRROR_Z_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::MIRROR_Z_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::MIRROR_Y_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::MIRROR_Y_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::MIRROR_LOCK, {"change_mode", "access", "version"}},
+ {VehicleProperty::MIRROR_FOLD, {"change_mode", "access", "version"}},
+ {VehicleProperty::MIRROR_AUTO_FOLD_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::MIRROR_AUTO_TILT_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::SEAT_MEMORY_SELECT, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_MEMORY_SET, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_BELT_BUCKLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::SEAT_BELT_HEIGHT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_BELT_HEIGHT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_FORE_AFT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_FORE_AFT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_BACKREST_ANGLE_1_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_BACKREST_ANGLE_2_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_HEIGHT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_HEIGHT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_DEPTH_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_DEPTH_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_TILT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_TILT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_HEADREST_HEIGHT_POS, {"change_mode", "access", "version"}},
+ {VehicleProperty::SEAT_HEADREST_HEIGHT_POS_V2, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_HEADREST_ANGLE_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_HEADREST_ANGLE_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_HEADREST_FORE_AFT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_FOOTWELL_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::SEAT_FOOTWELL_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::SEAT_EASY_ACCESS_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::SEAT_AIRBAG_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::SEAT_AIRBAGS_DEPLOYED, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_LUMBAR_VERTICAL_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_LUMBAR_VERTICAL_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_WALK_IN_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::SEAT_BELT_PRETENSIONER_DEPLOYED, {"change_mode", "access", "version"}},
+ {VehicleProperty::SEAT_OCCUPANCY, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::WINDOW_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::WINDOW_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::WINDOW_LOCK, {"change_mode", "access", "version"}},
+ {VehicleProperty::WINDSHIELD_WIPERS_PERIOD, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::WINDSHIELD_WIPERS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::WINDSHIELD_WIPERS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::STEERING_WHEEL_DEPTH_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::STEERING_WHEEL_DEPTH_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::STEERING_WHEEL_HEIGHT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::STEERING_WHEEL_HEIGHT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::STEERING_WHEEL_THEFT_LOCK_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::STEERING_WHEEL_LOCKED, {"change_mode", "access", "version"}},
+ {VehicleProperty::STEERING_WHEEL_EASY_ACCESS_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::GLOVE_BOX_DOOR_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::GLOVE_BOX_LOCKED, {"change_mode", "access", "version"}},
+ {VehicleProperty::VEHICLE_MAP_SERVICE, {"change_mode", "access", "version"}},
+ {VehicleProperty::LOCATION_CHARACTERIZATION, {"change_mode", "access", "version"}},
+ {VehicleProperty::ULTRASONICS_SENSOR_POSITION, {"change_mode", "access", "version"}},
+ {VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION, {"change_mode", "access", "version"}},
+ {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, {"change_mode", "access", "version"}},
+ {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, {"change_mode", "access", "version"}},
+ {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, {"change_mode", "access", "version"}},
+ {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, {"change_mode", "access", "version"}},
+ {VehicleProperty::OBD2_LIVE_FRAME, {"change_mode", "access", "version"}},
+ {VehicleProperty::OBD2_FREEZE_FRAME, {"change_mode", "access", "version"}},
+ {VehicleProperty::OBD2_FREEZE_FRAME_INFO, {"change_mode", "access", "version"}},
+ {VehicleProperty::OBD2_FREEZE_FRAME_CLEAR, {"change_mode", "access", "version"}},
+ {VehicleProperty::HEADLIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::HIGH_BEAM_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::FOG_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::HAZARD_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::HEADLIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::FOG_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::HAZARD_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CABIN_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CABIN_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::READING_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::READING_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::STEERING_WHEEL_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::STEERING_WHEEL_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, {"change_mode", "access", "version"}},
+ {VehicleProperty::DISABLED_OPTIONAL_FEATURES, {"change_mode", "access", "version"}},
+ {VehicleProperty::INITIAL_USER_INFO, {"change_mode", "access", "version"}},
+ {VehicleProperty::SWITCH_USER, {"change_mode", "access", "version"}},
+ {VehicleProperty::CREATE_USER, {"change_mode", "access", "version"}},
+ {VehicleProperty::REMOVE_USER, {"change_mode", "access", "version"}},
+ {VehicleProperty::USER_IDENTIFICATION_ASSOCIATION, {"change_mode", "access", "version"}},
+ {VehicleProperty::EVS_SERVICE_REQUEST, {"change_mode", "access", "version"}},
+ {VehicleProperty::POWER_POLICY_REQ, {"change_mode", "access", "version"}},
+ {VehicleProperty::POWER_POLICY_GROUP_REQ, {"change_mode", "access", "version"}},
+ {VehicleProperty::CURRENT_POWER_POLICY, {"change_mode", "access", "version"}},
+ {VehicleProperty::WATCHDOG_ALIVE, {"change_mode", "access", "version"}},
+ {VehicleProperty::WATCHDOG_TERMINATED_PROCESS, {"change_mode", "access", "version"}},
+ {VehicleProperty::VHAL_HEARTBEAT, {"change_mode", "access", "version"}},
+ {VehicleProperty::CLUSTER_SWITCH_UI, {"change_mode", "access", "version"}},
+ {VehicleProperty::CLUSTER_DISPLAY_STATE, {"change_mode", "access", "version"}},
+ {VehicleProperty::CLUSTER_REPORT_STATE, {"change_mode", "access", "version"}},
+ {VehicleProperty::CLUSTER_REQUEST_DISPLAY, {"change_mode", "access", "version"}},
+ {VehicleProperty::CLUSTER_NAVIGATION_STATE, {"change_mode", "access", "version"}},
+ {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::FRONT_FOG_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::FRONT_FOG_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::REAR_FOG_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::REAR_FOG_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::EV_CHARGE_CURRENT_DRAW_LIMIT, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::EV_CHARGE_PERCENT_LIMIT, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version"}},
+ {VehicleProperty::EV_CHARGE_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::EV_CHARGE_SWITCH, {"change_mode", "access", "version"}},
+ {VehicleProperty::EV_CHARGE_TIME_REMAINING, {"change_mode", "access", "version", "unit"}},
+ {VehicleProperty::EV_REGENERATIVE_BRAKING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::TRAILER_PRESENT, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::VEHICLE_CURB_WEIGHT, {"change_mode", "access", "version"}},
+ {VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::SUPPORTED_PROPERTY_IDS, {"change_mode", "access", "version"}},
+ {VehicleProperty::SHUTDOWN_REQUEST, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::VEHICLE_IN_USE, {"change_mode", "access", "version"}},
+ {VehicleProperty::CLUSTER_HEARTBEAT, {"change_mode", "access", "version"}},
+ {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_TARGET_LEVEL, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, {"change_mode", "access", "version", "data_enum"}},
+ {VehicleProperty::PER_DISPLAY_MAX_BRIGHTNESS, {"change_mode", "access", "version"}},
+ {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::FORWARD_COLLISION_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::BLIND_SPOT_WARNING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::BLIND_SPOT_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::LANE_DEPARTURE_WARNING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::LANE_DEPARTURE_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::LANE_KEEP_ASSIST_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::LANE_KEEP_ASSIST_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::LANE_CENTERING_ASSIST_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::LANE_CENTERING_ASSIST_COMMAND, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::LANE_CENTERING_ASSIST_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CRUISE_CONTROL_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::CRUISE_CONTROL_TYPE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CRUISE_CONTROL_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CRUISE_CONTROL_COMMAND, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CRUISE_CONTROL_TARGET_SPEED, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, {"change_mode", "unit", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version"}},
+ {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
+ {VehicleProperty::HANDS_ON_DETECTION_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::HANDS_ON_DETECTION_WARNING, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::DRIVER_DISTRACTION_SYSTEM_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::DRIVER_DISTRACTION_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::DRIVER_DISTRACTION_WARNING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::DRIVER_DISTRACTION_WARNING, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::LOW_SPEED_COLLISION_WARNING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+ {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, {"change_mode", "access", "version"}},
+ {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+};
+
+} // namespace vehicle
+} // namespace automotive
+} // namespace hardware
+} // namespace android
+} // aidl
diff --git a/automotive/vehicle/aidl/generated_lib/4/java/AnnotationsForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/4/java/AnnotationsForVehicleProperty.java
new file mode 100644
index 0000000..9ef5f04
--- /dev/null
+++ b/automotive/vehicle/aidl/generated_lib/4/java/AnnotationsForVehicleProperty.java
@@ -0,0 +1,315 @@
+/*
+ * 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.Set;
+import java.util.Map;
+
+public final class AnnotationsForVehicleProperty {
+
+ public static final Map<Integer, Set<String>> values = Map.ofEntries(
+ Map.entry(VehicleProperty.INFO_VIN, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.INFO_MAKE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.INFO_MODEL, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.INFO_MODEL_YEAR, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.INFO_FUEL_CAPACITY, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.INFO_FUEL_TYPE, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.INFO_EV_BATTERY_CAPACITY, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.INFO_EV_CONNECTOR_TYPE, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.INFO_FUEL_DOOR_LOCATION, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.INFO_EV_PORT_LOCATION, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.INFO_DRIVER_SEAT, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.INFO_EXTERIOR_DIMENSIONS, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.INFO_MULTI_EV_PORT_LOCATIONS, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.INFO_MODEL_TRIM, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.INFO_VEHICLE_SIZE_CLASS, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.PERF_ODOMETER, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.PERF_VEHICLE_SPEED, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.PERF_VEHICLE_SPEED_DISPLAY, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.PERF_STEERING_ANGLE, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.PERF_REAR_STEERING_ANGLE, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.INSTANTANEOUS_FUEL_ECONOMY, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.INSTANTANEOUS_EV_EFFICIENCY, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ENGINE_COOLANT_TEMP, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.ENGINE_OIL_LEVEL, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.ENGINE_OIL_TEMP, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.ENGINE_RPM, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.WHEEL_TICK, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.FUEL_LEVEL, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.FUEL_DOOR_OPEN, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.EV_BATTERY_LEVEL, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.EV_CURRENT_BATTERY_CAPACITY, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.EV_CHARGE_PORT_OPEN, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.EV_CHARGE_PORT_CONNECTED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.RANGE_REMAINING, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.EV_BATTERY_AVERAGE_TEMPERATURE, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.TIRE_PRESSURE, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.CRITICALLY_LOW_TIRE_PRESSURE, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.ACCELERATOR_PEDAL_COMPRESSION_PERCENTAGE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.BRAKE_PEDAL_COMPRESSION_PERCENTAGE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.BRAKE_PAD_WEAR_PERCENTAGE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.BRAKE_FLUID_LEVEL_LOW, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.VEHICLE_PASSIVE_SUSPENSION_HEIGHT, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.ENGINE_IDLE_AUTO_STOP_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.IMPACT_DETECTED, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum", "data_enum_bit_flags")),
+ Map.entry(VehicleProperty.VEHICLE_HORN_ENGAGED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.GEAR_SELECTION, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CURRENT_GEAR, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.PARKING_BRAKE_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.PARKING_BRAKE_AUTO_APPLY, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.EV_BRAKE_REGENERATION_LEVEL, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.FUEL_LEVEL_LOW, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.NIGHT_MODE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.TURN_SIGNAL_STATE, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.IGNITION_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.ABS_ACTIVE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.TRACTION_CONTROL_ACTIVE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.EV_STOPPING_MODE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.ELECTRONIC_STABILITY_CONTROL_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ELECTRONIC_STABILITY_CONTROL_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.TURN_SIGNAL_LIGHT_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum", "data_enum_bit_flags")),
+ Map.entry(VehicleProperty.TURN_SIGNAL_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.HVAC_FAN_SPEED, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_FAN_DIRECTION, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.HVAC_TEMPERATURE_CURRENT, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.HVAC_TEMPERATURE_SET, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_DEFROSTER, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_AC_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_MAX_AC_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_MAX_DEFROST_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_RECIRC_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_DUAL_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_AUTO_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_SEAT_TEMPERATURE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_SIDE_MIRROR_HEAT, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_STEERING_WHEEL_HEAT, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_TEMPERATURE_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.HVAC_ACTUAL_FAN_SPEED_RPM, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_POWER_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_FAN_DIRECTION_AVAILABLE, Set.of("change_mode", "access", "version", "data_enum", "data_enum_bit_flags")),
+ Map.entry(VehicleProperty.HVAC_AUTO_RECIRC_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_SEAT_VENTILATION, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_ELECTRIC_DEFROSTER_ON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HVAC_TEMPERATURE_VALUE_SUGGESTION, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.DISTANCE_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.FUEL_VOLUME_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.TIRE_PRESSURE_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.EV_BATTERY_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.VEHICLE_SPEED_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.EXTERNAL_CAR_TIME, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.ANDROID_EPOCH_TIME, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.STORAGE_ENCRYPTION_BINDING_SEED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ENV_OUTSIDE_TEMPERATURE, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.AP_POWER_STATE_REQ, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.AP_POWER_STATE_REPORT, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.AP_POWER_BOOTUP_REASON, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.PER_DISPLAY_BRIGHTNESS, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.VALET_MODE_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HEAD_UP_DISPLAY_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HW_KEY_INPUT, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HW_KEY_INPUT_V2, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HW_MOTION_INPUT, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HW_ROTARY_INPUT, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.HW_CUSTOM_INPUT, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.DOOR_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.DOOR_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.DOOR_LOCK, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.DOOR_CHILD_LOCK_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.MIRROR_Z_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.MIRROR_Z_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.MIRROR_Y_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.MIRROR_Y_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.MIRROR_LOCK, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.MIRROR_FOLD, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.MIRROR_AUTO_FOLD_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.MIRROR_AUTO_TILT_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_MEMORY_SELECT, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_MEMORY_SET, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_BELT_BUCKLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_BELT_HEIGHT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_BELT_HEIGHT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_FORE_AFT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_FORE_AFT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_1_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_1_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_2_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_2_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEIGHT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEIGHT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_DEPTH_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_DEPTH_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_TILT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_TILT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_LUMBAR_FORE_AFT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_LUMBAR_FORE_AFT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_LUMBAR_SIDE_SUPPORT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_LUMBAR_SIDE_SUPPORT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_POS, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_POS_V2, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEADREST_ANGLE_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEADREST_ANGLE_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEADREST_FORE_AFT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_HEADREST_FORE_AFT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_FOOTWELL_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.SEAT_FOOTWELL_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.SEAT_EASY_ACCESS_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_AIRBAG_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_AIRBAGS_DEPLOYED, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.SEAT_CUSHION_SIDE_SUPPORT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_CUSHION_SIDE_SUPPORT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_LUMBAR_VERTICAL_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_LUMBAR_VERTICAL_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_WALK_IN_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_BELT_PRETENSIONER_DEPLOYED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.SEAT_OCCUPANCY, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.WINDOW_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.WINDOW_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.WINDOW_LOCK, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.WINDSHIELD_WIPERS_PERIOD, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.WINDSHIELD_WIPERS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.WINDSHIELD_WIPERS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_DEPTH_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_DEPTH_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_HEIGHT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_HEIGHT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_THEFT_LOCK_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_LOCKED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_EASY_ACCESS_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.GLOVE_BOX_DOOR_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.GLOVE_BOX_LOCKED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.VEHICLE_MAP_SERVICE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.LOCATION_CHARACTERIZATION, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ULTRASONICS_SENSOR_POSITION, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ULTRASONICS_SENSOR_ORIENTATION, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ULTRASONICS_SENSOR_FIELD_OF_VIEW, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ULTRASONICS_SENSOR_DETECTION_RANGE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ULTRASONICS_SENSOR_SUPPORTED_RANGES, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ULTRASONICS_SENSOR_MEASURED_DISTANCE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.OBD2_LIVE_FRAME, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.OBD2_FREEZE_FRAME, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_INFO, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_CLEAR, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HEADLIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.HIGH_BEAM_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.FOG_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.HAZARD_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.HEADLIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.HIGH_BEAM_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.FOG_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.HAZARD_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CABIN_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CABIN_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.READING_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.READING_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.STEERING_WHEEL_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.DISABLED_OPTIONAL_FEATURES, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.INITIAL_USER_INFO, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.SWITCH_USER, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CREATE_USER, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.REMOVE_USER, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.USER_IDENTIFICATION_ASSOCIATION, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.EVS_SERVICE_REQUEST, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.POWER_POLICY_REQ, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.POWER_POLICY_GROUP_REQ, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CURRENT_POWER_POLICY, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.WATCHDOG_ALIVE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.WATCHDOG_TERMINATED_PROCESS, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.VHAL_HEARTBEAT, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CLUSTER_SWITCH_UI, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CLUSTER_DISPLAY_STATE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CLUSTER_REPORT_STATE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CLUSTER_REQUEST_DISPLAY, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CLUSTER_NAVIGATION_STATE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.FRONT_FOG_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.FRONT_FOG_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.REAR_FOG_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.REAR_FOG_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.EV_CHARGE_CURRENT_DRAW_LIMIT, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.EV_CHARGE_PERCENT_LIMIT, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version")),
+ Map.entry(VehicleProperty.EV_CHARGE_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.EV_CHARGE_SWITCH, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.EV_CHARGE_TIME_REMAINING, Set.of("change_mode", "access", "version", "unit")),
+ Map.entry(VehicleProperty.EV_REGENERATIVE_BRAKING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.TRAILER_PRESENT, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.VEHICLE_CURB_WEIGHT, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.SUPPORTED_PROPERTY_IDS, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.SHUTDOWN_REQUEST, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.VEHICLE_IN_USE, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CLUSTER_HEARTBEAT, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_TARGET_LEVEL, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, Set.of("change_mode", "access", "version", "data_enum")),
+ Map.entry(VehicleProperty.PER_DISPLAY_MAX_BRIGHTNESS, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.BLIND_SPOT_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.BLIND_SPOT_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.LANE_DEPARTURE_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.LANE_DEPARTURE_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.LANE_KEEP_ASSIST_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.LANE_KEEP_ASSIST_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_COMMAND, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.EMERGENCY_LANE_KEEP_ASSIST_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.EMERGENCY_LANE_KEEP_ASSIST_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CRUISE_CONTROL_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CRUISE_CONTROL_TYPE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CRUISE_CONTROL_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CRUISE_CONTROL_COMMAND, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CRUISE_CONTROL_TARGET_SPEED, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, Set.of("change_mode", "unit", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version")),
+ Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
+ Map.entry(VehicleProperty.HANDS_ON_DETECTION_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.HANDS_ON_DETECTION_DRIVER_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.HANDS_ON_DETECTION_WARNING, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_WARNING, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.DRIVER_DISTRACTION_SYSTEM_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.DRIVER_DISTRACTION_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.DRIVER_DISTRACTION_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.DRIVER_DISTRACTION_WARNING, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
+ Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, Set.of("change_mode", "access", "version")),
+ Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum"))
+ );
+
+}
diff --git a/automotive/vehicle/tools/generate_annotation_enums.py b/automotive/vehicle/tools/generate_annotation_enums.py
index f4ab00d..4ed19d3 100755
--- a/automotive/vehicle/tools/generate_annotation_enums.py
+++ b/automotive/vehicle/tools/generate_annotation_enums.py
@@ -45,6 +45,8 @@
ENUM_JAVA_FILE_PATH = GENERATED_LIB + '/java/EnumForVehicleProperty.java'
UNITS_JAVA_FILE_PATH = GENERATED_LIB + '/java/UnitsForVehicleProperty.java'
VERSION_CPP_FILE_PATH = GENERATED_LIB + '/cpp/VersionForVehicleProperty.h'
+ANNOTATIONS_CPP_FILE_PATH = GENERATED_LIB + '/cpp/AnnotationsForVehicleProperty.h'
+ANNOTATIONS_JAVA_FILE_PATH = GENERATED_LIB + '/java/AnnotationsForVehicleProperty.java'
SCRIPT_PATH = 'hardware/interfaces/automotive/vehicle/tools/generate_annotation_enums.py'
TAB = ' '
@@ -164,6 +166,24 @@
std::unordered_map<VehicleProperty, int32_t> VersionForVehicleProperty = {
"""
+ANNOTATIONS_CPP_HEADER = """#pragma once
+
+#include <aidl/android/hardware/automotive/vehicle/VehicleProperty.h>
+
+#include <string>
+#include <unordered_map>
+#include <unordered_set>
+
+namespace aidl {
+namespace android {
+namespace hardware {
+namespace automotive {
+namespace vehicle {
+
+std::unordered_map<VehicleProperty, std::unordered_set<std::string>>
+ AnnotationsForVehicleProperty = {
+"""
+
CHANGE_MODE_JAVA_HEADER = """package android.hardware.automotive.vehicle;
import java.util.Map;
@@ -207,6 +227,16 @@
public static final Map<Integer, Integer> values = Map.ofEntries(
"""
+ANNOTATIONS_JAVA_HEADER = """package android.hardware.automotive.vehicle;
+
+import java.util.Set;
+import java.util.Map;
+
+public final class AnnotationsForVehicleProperty {
+
+ public static final Map<Integer, Set<String>> values = Map.ofEntries(
+"""
+
class PropertyConfig:
"""Represents one VHAL property definition in VehicleProperty.aidl."""
@@ -220,7 +250,8 @@
self.enum_types = []
self.unit_type = None
self.version = None
- self.annotations = []
+ # Use a set to avoid duplicate annotation.
+ self.annotations = set()
def __repr__(self):
return self.__str__()
@@ -301,7 +332,7 @@
annotation = match_annotation.group(1)
if annotation not in SUPPORTED_ANNOTATIONS:
raise Exception('Annotation: @' + annotation + " is not supported, typo?")
- config.annotations.append(annotation)
+ config.annotations.add(annotation)
match = RE_CHANGE_MODE.match(line)
if match:
config.change_mode = match.group(1).replace('VehiclePropertyChangeMode.', '')
@@ -358,38 +389,45 @@
for config in self.configs:
if field == 'change_mode':
if cpp:
- annotation = "VehiclePropertyChangeMode::" + config.change_mode
+ value = "VehiclePropertyChangeMode::" + config.change_mode
else:
- annotation = "VehiclePropertyChangeMode." + config.change_mode
+ value = "VehiclePropertyChangeMode." + config.change_mode
elif field == 'access_mode':
if cpp:
- annotation = "VehiclePropertyAccess::" + config.access_modes[0]
+ value = "VehiclePropertyAccess::" + config.access_modes[0]
else:
- annotation = "VehiclePropertyAccess." + config.access_modes[0]
+ value = "VehiclePropertyAccess." + config.access_modes[0]
elif field == 'enum_types':
if len(config.enum_types) < 1:
- continue;
+ continue
if not cpp:
- annotation = "List.of(" + ', '.join([class_name + ".class" for class_name in config.enum_types]) + ")"
+ value = "List.of(" + ', '.join([class_name + ".class" for class_name in config.enum_types]) + ")"
elif field == 'unit_type':
if not config.unit_type:
continue
if not cpp:
- annotation = config.unit_type
-
+ value = config.unit_type
elif field == 'version':
if cpp:
- annotation = config.version
+ value = config.version
+ elif field == 'annotations':
+ if len(config.annotations) < 1:
+ continue
+ joined_annotation_strings = ', '.join(['"' + annotation + '"' for annotation in config.annotations])
+ if cpp:
+ value = "{" + joined_annotation_strings + "}"
+ else:
+ value = "Set.of(" + joined_annotation_strings + ")"
else:
raise Exception('Unknown field: ' + field)
if counter != 0:
content += '\n'
if cpp:
content += (TAB + TAB + '{VehicleProperty::' + config.name + ', ' +
- annotation + '},')
+ value + '},')
else:
content += (TAB + TAB + 'Map.entry(VehicleProperty.' + config.name + ', ' +
- annotation + '),')
+ value + '),')
counter += 1
# Remove the additional ',' at the end for the Java file.
@@ -572,6 +610,15 @@
version.setCppFooter(CPP_FOOTER)
generated_files.append(version)
+ annotations = GeneratedFile('annotations')
+ annotations.setCppFilePath(os.path.join(android_top, ANNOTATIONS_CPP_FILE_PATH))
+ annotations.setJavaFilePath(os.path.join(android_top, ANNOTATIONS_JAVA_FILE_PATH))
+ annotations.setCppHeader(ANNOTATIONS_CPP_HEADER)
+ annotations.setCppFooter(CPP_FOOTER)
+ annotations.setJavaHeader(ANNOTATIONS_JAVA_HEADER)
+ annotations.setJavaFooter(JAVA_FOOTER)
+ generated_files.append(annotations)
+
temp_files = []
try: