1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.car;
18 
19 import android.annotation.RequiresPermission;
20 import android.car.hardware.CarPropertyValue;
21 import android.car.hardware.property.VehicleElectronicTollCollectionCardStatus;
22 import android.car.hardware.property.VehicleElectronicTollCollectionCardType;
23 
24 /**
25  * Copy from android.hardware.automotive.vehicle-V2.0-java_gen_java/gen/android/hardware/automotive
26  * /vehicle/V2_0. Need to update this file when vehicle propertyId is changed in VHAL.
27  * Use it as PropertyId in getProperty() and setProperty() in
28  * {@link android.car.hardware.property.CarPropertyManager}
29  */
30 public final class VehiclePropertyIds {
31     /**
32      * Undefined property.
33      */
34     public static final int INVALID = 0;
35     /**
36      * VIN of vehicle
37      * Requires permission: {@link Car#PERMISSION_IDENTIFICATION}.
38      */
39     @RequiresPermission(Car.PERMISSION_IDENTIFICATION)
40     public static final int INFO_VIN = 286261504;
41     /**
42      * Manufacturer of vehicle.
43      *
44      * <ul>
45      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
46      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
47      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
48      *  <li>{@code String} property type
49      * </ul>
50      *
51      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
52      */
53     @RequiresPermission(Car.PERMISSION_CAR_INFO)
54     public static final int INFO_MAKE = 286261505;
55     /**
56      * Model of vehicle.
57      *
58      * <ul>
59      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
60      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
61      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
62      *  <li>{@code String} property type
63      * </ul>
64      *
65      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
66      */
67     @RequiresPermission(Car.PERMISSION_CAR_INFO)
68     public static final int INFO_MODEL = 286261506;
69     /**
70      * Model year of vehicle.
71      *
72      * <ul>
73      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
74      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
75      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
76      *  <li>{@code Integer} property type
77      * </ul>
78      *
79      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
80      */
81     @RequiresPermission(Car.PERMISSION_CAR_INFO)
82     public static final int INFO_MODEL_YEAR = 289407235;
83     /**
84      * Fuel capacity of the vehicle in milliliters.
85      *
86      * <ul>
87      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
88      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
89      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
90      *  <li>{@code Float} property type
91      * </ul>
92      *
93      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
94      */
95     @RequiresPermission(Car.PERMISSION_CAR_INFO)
96     public static final int INFO_FUEL_CAPACITY = 291504388;
97     /**
98      * List the {@link FuelType}s the vehicle may use.
99      *
100      * <ul>
101      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
102      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
103      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
104      *  <li>{@code Integer[]} property type
105      * </ul>
106      *
107      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
108      */
109     @RequiresPermission(Car.PERMISSION_CAR_INFO)
110     public static final int INFO_FUEL_TYPE = 289472773;
111     /**
112      * Battery capacity of the vehicle in watt-hours (Wh), if EV or hybrid. This is the nominal
113      * battery capacity when the vehicle is new.
114      *
115      * <ul>
116      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
117      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
118      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
119      *  <li>{@code Float} property type
120      * </ul>
121      *
122      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
123      */
124     @RequiresPermission(Car.PERMISSION_CAR_INFO)
125     public static final int INFO_EV_BATTERY_CAPACITY = 291504390;
126     /**
127      * List of {@link EvConnectorType}s this vehicle may use.
128      *
129      * <ul>
130      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
131      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
132      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
133      *  <li>{@code Integer[]} property type
134      * </ul>
135      *
136      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
137      */
138     @RequiresPermission(Car.PERMISSION_CAR_INFO)
139     public static final int INFO_EV_CONNECTOR_TYPE = 289472775;
140     /**
141      * {@link PortLocationType} for the fuel door location.
142      *
143      * <ul>
144      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
145      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
146      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
147      *  <li>{@code Integer} property type
148      * </ul>
149      *
150      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
151      */
152     @RequiresPermission(Car.PERMISSION_CAR_INFO)
153     public static final int INFO_FUEL_DOOR_LOCATION = 289407240;
154     /**
155      * {@link PortLocationType} for the EV port location
156      *
157      * <ul>
158      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
159      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
160      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
161      *  <li>{@code Integer} property type
162      * </ul>
163      *
164      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
165      */
166     @RequiresPermission(Car.PERMISSION_CAR_INFO)
167     public static final int INFO_EV_PORT_LOCATION = 289407241;
168     /**
169      * List {@link PortLocationType}s for Multiple EV port locations.
170      *
171      * <ul>
172      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
173      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
174      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
175      *  <li>{@code Integer[]} property type
176      * </ul>
177      *
178      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
179      */
180     @RequiresPermission(Car.PERMISSION_CAR_INFO)
181     public static final int INFO_MULTI_EV_PORT_LOCATIONS = 289472780;
182     /**
183      * Driver's {@link VehicleAreaSeat} seat location.
184      *
185      * <ul>
186      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
187      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
188      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
189      *  <li>{@code Integer} property type
190      * </ul>
191      *
192      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
193      */
194     @RequiresPermission(Car.PERMISSION_CAR_INFO)
195     public static final int INFO_DRIVER_SEAT = 356516106;
196     /**
197      * Vehicle's exterior dimensions in millimeters.
198      *
199      * <ul>
200      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
201      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
202      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
203      *  <li>{@code Integer[]} property type
204      * </ul>
205      *
206      * <p>Exterior dimensions defined in the {@link CarPropertyValue#getValue()} {@code Integer[]}:
207      * <ul>
208      *  <li>Integer[0] = height
209      *  <li>Integer[1] = length
210      *  <li>Integer[2] = width
211      *  <li>Integer[3] = width including mirrors
212      *  <li>Integer[4] = wheel base
213      *  <li>Integer[5] = track width front
214      *  <li>Integer[6] = track width rear
215      *  <li>Integer[7] = curb to curb turning radius
216      * </ul>
217      *
218      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
219      */
220     @RequiresPermission(Car.PERMISSION_CAR_INFO)
221     public static final int INFO_EXTERIOR_DIMENSIONS = 289472779;
222     /**
223      * Current odometer value of the vehicle in kilometers.
224      * The property is protected by the signature permission: android.car.permission.CAR_MILEAGE.
225      */
226     @RequiresPermission(Car.PERMISSION_MILEAGE)
227     public static final int PERF_ODOMETER = 291504644;
228     /**
229      * Speed of the vehicle in meters per second.
230      *
231      * <ul>
232      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
233      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
234      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
235      *  <li>{@code Float} property type
236      * </ul>
237      *
238      * <p>When the vehicle is moving forward, PERF_VEHICLE_SPEED is positive and negative when the
239      * vehicle is moving backward. Also, this value is independent of gear value (CURRENT_GEAR or
240      * GEAR_SELECTION). For example, if GEAR_SELECTION is GEAR_NEUTRAL, PERF_VEHICLE_SPEED is
241      * positive when the vehicle is moving forward, negative when moving backward, and zero when
242      * not moving.
243      *
244      * <p>Requires permission: {@link Car#PERMISSION_SPEED}.
245      */
246     @RequiresPermission(Car.PERMISSION_SPEED)
247     public static final int PERF_VEHICLE_SPEED = 291504647;
248     /**
249      * Speed of the vehicle in meters per second for displays.
250      *
251      * <ul>
252      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
253      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
254      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
255      *  <li>{@code Float} property type
256      * </ul>
257      *
258      * <p>Some cars display a slightly slower speed than the actual speed. This is
259      * usually displayed on the speedometer.
260      *
261      * <p>Requires permission: {@link Car#PERMISSION_SPEED}.
262      */
263     @RequiresPermission(Car.PERMISSION_SPEED)
264     public static final int PERF_VEHICLE_SPEED_DISPLAY = 291504648;
265     /**
266      * Front bicycle model steering angle for vehicle in degrees.
267      *
268      * Left is negative.
269      * Requires permission: {@link Car#PERMISSION_READ_STEERING_STATE}.
270      */
271     @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE)
272     public static final int PERF_STEERING_ANGLE = 291504649;
273     /**
274      * Rear bicycle model steering angle for vehicle in degrees.
275      *
276      * Left is negative.
277      * Requires permission: {@link Car#PERMISSION_READ_STEERING_STATE}.
278      */
279     @RequiresPermission(Car.PERMISSION_READ_STEERING_STATE)
280     public static final int PERF_REAR_STEERING_ANGLE = 291504656;
281     /**
282      * Temperature of engine coolant in celsius.
283      * The property is protected by the signature permission:
284      * android.car.permission.CAR_ENGINE_DETAILED.
285      */
286     @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
287     public static final int ENGINE_COOLANT_TEMP = 291504897;
288     /**
289      * Engine oil level
290      * The property is protected by the signature permission:
291      * android.car.permission.CAR_ENGINE_DETAILED.
292      */
293     @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
294     public static final int ENGINE_OIL_LEVEL = 289407747;
295     /**
296      * Temperature of engine oil in celsius.
297      * The property is protected by the signature permission:
298      * android.car.permission.CAR_ENGINE_DETAILED.
299      */
300     @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
301     public static final int ENGINE_OIL_TEMP = 291504900;
302     /**
303      * Engine rpm
304      * The property is protected by the signature permission:
305      * android.car.permission.CAR_ENGINE_DETAILED.
306      */
307     @RequiresPermission(Car.PERMISSION_CAR_ENGINE_DETAILED)
308     public static final int ENGINE_RPM = 291504901;
309     /**
310      * Reports wheel ticks.
311      *
312      * <ul>
313      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
314      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
315      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
316      *  <li>{@code Long[]} property type
317      * </ul>
318      *
319      * <p>The first element in the array is a reset count.  A reset indicates
320      * previous tick counts are not comparable with this and future ones.  Some
321      * sort of discontinuity in tick counting has occurred.
322      *
323      * <p>The next four elements represent ticks for individual wheels in the
324      * following order: front left, front right, rear right, rear left.  All
325      * tick counts are cumulative.  Tick counts increment when the vehicle
326      * moves forward, and decrement when vehicles moves in reverse.  The ticks
327      * should be reset to 0 when the vehicle is started by the user.
328      *
329      * <ul>
330      *  <li>Long[0] = reset count
331      *  <li>Long[1] = front left ticks
332      *  <li>Long[2] = front right ticks
333      *  <li>Long[3] = rear right ticks
334      *  <li>Long[4] = rear left ticks
335      * </ul>
336      *
337      * <p>configArray is used to indicate the micrometers-per-wheel-tick values and
338      * which wheels are supported. Each micrometers-per-wheel-tick value is static (i.e. will not
339      * update based on wheel's status) and a best approximation. For example, if a vehicle has
340      * multiple rim/tire size options, the micrometers-per-wheel-tick values are set to those for
341      * the typically expected rim/tire size. configArray is set as follows:
342      *
343      * <ul>
344      *  <li>configArray[0], bits [0:3] = supported wheels.  Uses {@link VehicleAreaWheel}.
345      *  <li>configArray[1] = micrometers per front left wheel tick
346      *  <li>configArray[2] = micrometers per front right wheel tick
347      *  <li>configArray[3] = micrometers per rear right wheel tick
348      *  <li>configArray[4] = micrometers per rear left wheel tick
349      * </ul>
350      *
351      * <p>NOTE:  If a wheel is not supported, its value is always 0.
352      *
353      * <p>Requires permission: {@link Car#PERMISSION_SPEED}.
354      */
355     @RequiresPermission(Car.PERMISSION_SPEED)
356     public static final int WHEEL_TICK = 290521862;
357     /**
358      * Fuel remaining in the vehicle in milliliters.
359      *
360      * <p>Property Config:
361      * <ul>
362      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
363      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
364      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
365      *  <li>{@code Float} property type
366      * </ul>
367      *
368      * <p>Required Permissions:
369      * <ul>
370      *  <li>{@link Car#PERMISSION_ENERGY} to read property.
371      *  <li>Property is not writable.
372      * </ul>
373      */
374     @RequiresPermission(Car.PERMISSION_ENERGY)
375     public static final int FUEL_LEVEL = 291504903;
376     /**
377      * Fuel door open.
378      *
379      * <p>Property Config:
380      * <ul>
381      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
382      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
383      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
384      *  <li>{@code Boolean} property type
385      * </ul>
386      *
387      * <p>Required Permissions:
388      * <ul>
389      *  <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property.
390      *  <li>Signature permission, android.car.permission.CONTROL_CAR_ENERGY_PORTS, to write
391      *  property.
392      * </ul>
393      */
394     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY_PORTS))
395     @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS))
396     public static final int FUEL_DOOR_OPEN = 287310600;
397     /**
398      * EV battery level in watt-hours (Wh), if EV or hybrid.
399      *
400      * <p>Property Config:
401      * <ul>
402      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
403      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
404      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
405      *  <li>{@code Float} property type
406      * </ul>
407      *
408      * <p>Required Permissions:
409      * <ul>
410      *  <li>{@link Car#PERMISSION_ENERGY} to read property.
411      *  <li>Property is not writable.
412      * </ul>
413      */
414     @RequiresPermission(Car.PERMISSION_ENERGY)
415     public static final int EV_BATTERY_LEVEL = 291504905;
416     /**
417      * EV charge port open.
418      *
419      * <p>Property Config:
420      * <ul>
421      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
422      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
423      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
424      *  <li>{@code Boolean} property type
425      * </ul>
426      *
427      * <p>Required Permissions:
428      * <ul>
429      *  <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property.
430      *  <li>Signature permission, android.car.permission.CONTROL_CAR_ENERGY_PORTS, to write
431      *  property.
432      * </ul>
433      */
434     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY_PORTS))
435     @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_CONTROL_ENERGY_PORTS))
436     public static final int EV_CHARGE_PORT_OPEN = 287310602;
437     /**
438      * EV charge port connected.
439      *
440      * <p>Property Config:
441      * <ul>
442      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
443      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
444      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
445      *  <li>{@code Boolean} property type
446      * </ul>
447      *
448      * <p>Required Permissions:
449      * <ul>
450      *  <li>{@link Car#PERMISSION_ENERGY_PORTS} to read property.
451      *  <li>Property is not writable.
452      * </ul>
453      */
454     @RequiresPermission(Car.PERMISSION_ENERGY_PORTS)
455     public static final int EV_CHARGE_PORT_CONNECTED = 287310603;
456     /**
457      * EV instantaneous charge rate in milliwatts.
458      *
459      * <p>Positive rate indicates battery is being charged, and Negative rate indicates battery
460      * being discharged.
461      *
462      * <p>Property Config:
463      * <ul>
464      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
465      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
466      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
467      *  <li>{@code Float} property type
468      * </ul>
469      *
470      * <p>Required Permissions:
471      * <ul>
472      *  <li>{@link Car#PERMISSION_ENERGY} to read property.
473      *  <li>Property is not writable.
474      * </ul>
475      */
476     @RequiresPermission(Car.PERMISSION_ENERGY)
477     public static final int EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908;
478     /**
479      * Range remaining in meters.
480      *
481      * <p>Range remaining accounts for all energy sources in a vehicle.  For example, a hybrid car's
482      * range will be the sum of the ranges based on fuel and battery.
483      *
484      * <p>Property Config:
485      * <ul>
486      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
487      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
488      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
489      *  <li>{@code Float} property type
490      * </ul>
491      *
492      * <p>Required Permissions:
493      * <ul>
494      *  <li>{@link Car#PERMISSION_ENERGY} to read property.
495      *  <li>Signature permission, android.car.permission.ADJUST_RANGE_REMAINING, to write property.
496      * </ul>
497      */
498     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_ENERGY))
499     @RequiresPermission.Write(@RequiresPermission(Car.PERMISSION_ADJUST_RANGE_REMAINING))
500     public static final int RANGE_REMAINING = 291504904;
501     /**
502      * Tire pressure in kilopascals.
503      *
504      * min/max value indicates tire pressure sensor range.  Each tire will have a separate min/max
505      * value denoted by its areaConfig.areaId.
506      * The property is protected by the signature permission: android.car.permission.CAR_TIRES.
507      */
508     @RequiresPermission(Car.PERMISSION_TIRES)
509     public static final int TIRE_PRESSURE = 392168201;
510     /**
511      * Critically low tire pressure
512      *
513      * <p>This property indicates the critically low pressure threshold for each tire. It
514      * indicates when it is time for tires to be replaced or fixed. The value
515      * must be less than or equal to minFloatValue in {@link VehiclePropertyIds#TIRE_PRESSURE}.
516      * <p>Minimum and maximum property values
517      * (that is, {@code minFloatValue}, {@code maxFloatValue}) are not applicable to this property.
518      */
519     @RequiresPermission(Car.PERMISSION_TIRES)
520     public static final int CRITICALLY_LOW_TIRE_PRESSURE = 392168202;
521     /**
522      * Currently selected gear by user.
523      *
524      * <ul>
525      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
526      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
527      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
528      *  <li>{@code Integer} property type
529      * </ul>
530      *
531      * <p> See {@link VehicleGear} for gear value enum.
532      *
533      * <p>configArray represents the list of supported gears for the vehicle. For example,
534      * configArray for an EV vehicle is set as follows:
535      *
536      * <ul>
537      *  <li>configArray[0] = {@link VehicleGear#GEAR_REVERSE}
538      *  <li>configArray[1] = {@link VehicleGear#GEAR_PARK}
539      *  <li>configArray[2] = {@link VehicleGear#GEAR_DRIVE}
540      * </ul>
541      *
542      * <p>Example automatic transmission configArray:
543      *
544      * <ul>
545      *  <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL}
546      *  <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE}
547      *  <li>configArray[2] = {@link VehicleGear#GEAR_PARK}
548      *  <li>configArray[3] = {@link VehicleGear#GEAR_DRIVE}
549      *  <li>configArray[4] = {@link VehicleGear#GEAR_FIRST}
550      *  <li>configArray[5] = {@link VehicleGear#GEAR_SECOND}
551      *  <li>...
552      * </ul>
553      *
554      * <p>Example manual transmission configArray:
555      *
556      * <ul>
557      *  <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL}
558      *  <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE}
559      *  <li>configArray[4] = {@link VehicleGear#GEAR_FIRST}
560      *  <li>configArray[5] = {@link VehicleGear#GEAR_SECOND}
561      *  <li>...
562      * </ul>
563      *
564      * <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
565      */
566     @RequiresPermission(Car.PERMISSION_POWERTRAIN)
567     public static final int GEAR_SELECTION = 289408000;
568     /**
569      * Vehicle transmission's current {@link VehicleGear}.
570      *
571      * <ul>
572      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
573      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
574      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
575      *  <li>{@code Integer} property type
576      * </ul>
577      *
578      * <p>{@code CURRENT_GEAR}'s value may not match that of {@link
579      * VehiclePropertyIds#GEAR_SELECTION}. For example, if the {@link
580      * VehiclePropertyIds#GEAR_SELECTION} is {@link VehicleGear#GEAR_DRIVE} in a vehicle with an
581      * automatic transmission, the {@code CURRENT_GEAR} will be one of {@link
582      * VehicleGear#GEAR_FIRST}, {@link VehicleGear#GEAR_SECOND}, etc, which reflects the actual gear
583      * the transmission is currently running in.
584      *
585      * <p>configArray represents the list of supported {@link VehicleGear}s for {@code
586      * CURRENT_GEAR}. For example, the configArray for an EV vehicle is set as follows:
587      *
588      * <ul>
589      *  <li>configArray[0] = {@link VehicleGear#GEAR_REVERSE}
590      *  <li>configArray[1] = {@link VehicleGear#GEAR_PARK}
591      *  <li>configArray[2] = {@link VehicleGear#GEAR_DRIVE}
592      * </ul>
593      *
594      * <p>Example automatic transmission configArray:
595      *
596      * <ul>
597      *  <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL}
598      *  <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE}
599      *  <li>configArray[2] = {@link VehicleGear#GEAR_PARK}
600      *  <li>configArray[4] = {@link VehicleGear#GEAR_FIRST}
601      *  <li>configArray[5] = {@link VehicleGear#GEAR_SECOND}
602      *  <li>...
603      * </ul>
604      *
605      * <p>Example manual transmission configArray:
606      *
607      * <ul>
608      *  <li>configArray[0] = {@link VehicleGear#GEAR_NEUTRAL}
609      *  <li>configArray[1] = {@link VehicleGear#GEAR_REVERSE}
610      *  <li>configArray[4] = {@link VehicleGear#GEAR_FIRST}
611      *  <li>configArray[5] = {@link VehicleGear#GEAR_SECOND}
612      *  <li>...
613      * </ul>
614      *
615      * <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
616      */
617     @RequiresPermission(Car.PERMISSION_POWERTRAIN)
618     public static final int CURRENT_GEAR = 289408001;
619     /**
620      * Parking brake state.
621      *
622      * <ul>
623      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
624      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
625      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
626      *  <li>{@code Boolean} property type
627      * </ul>
628      *
629      * <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
630      */
631     @RequiresPermission(Car.PERMISSION_POWERTRAIN)
632     public static final int PARKING_BRAKE_ON = 287310850;
633     /**
634      * Auto-apply parking brake.
635      *
636      * <ul>
637      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
638      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
639      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
640      *  <li>{@code Boolean} property type
641      * </ul>
642      *
643      * <p>Requires permission: {@link Car#PERMISSION_POWERTRAIN}.
644      */
645     @RequiresPermission(Car.PERMISSION_POWERTRAIN)
646     public static final int PARKING_BRAKE_AUTO_APPLY = 287310851;
647     /**
648      * Warning for fuel low level.
649      *
650      * <p>{@code FUEL_LEVEL_LOW} corresponds to the low fuel warning on the dashboard. Once {@code
651      * FUEL_LEVEL_LOW} is set, it should not be cleared until more fuel is added to the vehicle.
652      * This property may take into account all fuel sources for a vehicle - for example:
653      * <ul>
654      *  <li>For a gas powered vehicle, this property is based solely on gas level.
655      *  <li>For a battery powered vehicle, this property is based solely on battery level.
656      *  <li>For a hybrid vehicle, this property may be based on the combination of gas and
657      *  battery levels, at the OEM's discretion.
658      * </ul>
659      *
660      * <p>Property Config:
661      * <ul>
662      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
663      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
664      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
665      *  <li>{@code Boolean} property type
666      * </ul>
667      *
668      * <p>Required Permissions:
669      * <ul>
670      *  <li>{@link Car#PERMISSION_ENERGY} to read property.
671      *  <li>Property is not writable.
672      * </ul>
673      */
674     @RequiresPermission(Car.PERMISSION_ENERGY)
675     public static final int FUEL_LEVEL_LOW = 287310853;
676     /**
677      * Night mode.
678      *
679      * <ul>
680      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
681      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
682      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
683      *  <li>{@code Boolean} property type
684      * </ul>
685      *
686      * <p>True indicates that the night mode sensor has detected that the car cabin environment has
687      * low light.
688      *
689      * <p>Requires permission: {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT}.
690      */
691     @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT)
692     public static final int NIGHT_MODE = 287310855;
693     /**
694      * State of the vehicles turn signals
695      * The property is protected by the signature permission:
696      * android.car.permission.CAR_EXTERIOR_LIGHTS .
697      */
698     @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
699     public static final int TURN_SIGNAL_STATE = 289408008;
700     /**
701      * Vehicle's ignition state.
702      *
703      * <p>The property value can be one of:
704      * <ul>
705      *     <li>{@code 0}: Steering wheel is locked.
706      *     <li>{@code 1}: Steering wheel is not locked, engine and all accessories are OFF.
707      *     <li>{@code 2}: Typically in this state accessories become available (e.g. radio).
708      *     Instrument cluster and engine are turned off
709      *     <li>{@code 3}: Ignition is in state ON. Accessories and instrument cluster available,
710      *     engine might be running or ready to be started.
711      *     <li>{@code 4}: Typically in this state engine is starting (cranking).
712      * </>
713      *
714      * <p>Property Config:
715      * <ul>
716      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
717      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
718      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
719      *  <li>{@code Integer} property type
720      * </ul>
721      *
722      * <p>Required Permissions:
723      * <ul>
724      *  <li>{@link Car#PERMISSION_POWERTRAIN} to read property.
725      *  <li>Property is not writable.
726      * </ul>
727      */
728     @RequiresPermission(Car.PERMISSION_POWERTRAIN)
729     public static final int IGNITION_STATE = 289408009;
730     /**
731      * ABS is active
732      * The property is protected by the signature permission:
733      * android.car.permission.CAR_DYNAMICS_STATE.
734      */
735     @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE)
736     public static final int ABS_ACTIVE = 287310858;
737     /**
738      * Traction Control is active
739      * The property is protected by the signature permission:
740      * android.car.permission.CAR_DYNAMICS_STATE.
741      */
742     @RequiresPermission(Car.PERMISSION_CAR_DYNAMICS_STATE)
743     public static final int TRACTION_CONTROL_ACTIVE = 287310859;
744     /**
745      * Fan speed setting
746      * The property is protected by the signature permission:
747      * android.car.permission.CONTROL_CAR_CLIMATE.
748      */
749     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
750     public static final int HVAC_FAN_SPEED = 356517120;
751     /**
752      * Fan direction setting
753      * The property is protected by the signature permission:
754      * android.car.permission.CONTROL_CAR_CLIMATE.
755      */
756     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
757     public static final int HVAC_FAN_DIRECTION = 356517121;
758     /**
759      * HVAC current temperature in celsius.
760      * The property is protected by the signature permission:
761      * android.car.permission.CONTROL_CAR_CLIMATE.
762      */
763     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
764     public static final int HVAC_TEMPERATURE_CURRENT = 358614274;
765     /**
766      * HVAC, target temperature set.
767      *
768      * <p>The {@code configArray} is used to indicate the valid values for HVAC in Fahrenheit and
769      * Celsius. Android might use it in the HVAC app UI.
770      * <p>The {@code configArray} is set as follows:
771      * <ul>
772      *      <li>{@code configArray[0]} is [the lower bound of the supported temperature in Celsius]
773      *      * 10.
774      *      <li>{@code configArray[1]} is [the upper bound of the supported temperature in Celsius]
775      *      * 10.
776      *      <li>{@code configArray[2]} is [the increment in Celsius] * 10.
777      *      <li>{@code configArray[3]} is
778      *      [the lower bound of the supported temperature in Fahrenheit] * 10.
779      *      <li>{@code configArray[4]} is
780      *      [the upper bound of the supported temperature in Fahrenheit] * 10.
781      *      <li>{@code configArray[5]} is [the increment in Fahrenheit] * 10.
782      * </ul>
783      * <p>For example, if the vehicle supports temperature values as:
784      * <pre>
785      * [16.0, 16.5, 17.0 ,..., 28.0] in Celsius
786      * [60.5, 61.5, 62.5 ,..., 85.5] in Fahrenheit
787      * </pre>
788      * <p>The {@code configArray} should be:
789      * <pre>
790      * configArray = {160, 280, 5, 605, 855, 10}.
791      * </pre>
792      * <p>If the vehicle supports {@link VehiclePropertyIds#HVAC_TEMPERATURE_VALUE_SUGGESTION},
793      * the application can use that property to get the suggested value before setting
794      * {@code HVAC_TEMPERATURE_SET}. Otherwise, the application may choose the
795      * value in {@code configArray} of {@code HVAC_TEMPERATURE_SET} by itself.
796      */
797     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
798     public static final int HVAC_TEMPERATURE_SET = 358614275;
799     /**
800      * Suggested values for setting HVAC temperature.
801      *
802      * <p>Implement the property to help applications understand the closest supported temperature
803      * value in Celsius or Fahrenheit.
804      * <ul>
805      *      <li>{@code floatValues[0]} is the requested value that an application wants to set a
806      *      temperature to.
807      *      <li>{@code floatValues[1]} is the unit for {@code floatValues[0]}. It should be one of
808      *      ({@code VehicleUnit:CELSIUS}, {@code VehicleUnit:FAHRENHEIT}).
809      *      <li>{@code floatValues[2]} is the value OEMs suggested in CELSIUS. This value is not
810      *      included in the request.
811      *      <li>{@code floatValues[3]} is the value OEMs suggested in FAHRENHEIT. This value is not
812      *      included in the request.
813      * </ul>
814      * <p>An application calls
815      * {@link android.car.hardware.property.CarPropertyManager#setProperty(Class, int, int, Object)}
816      * with the requested value and unit for the value. OEMs need to return the suggested values
817      * in {@code floatValues[2]} and {@code floatValues[3]} by
818      * {@link android.car.hardware.property.CarPropertyManager.CarPropertyEventCallback}.
819      *
820      * <p>For example, when a user uses the voice assistant to set HVAC temperature to 66.2 in
821      * Fahrenheit.
822      * <p>First, an application will set this property with the value
823      * [66.2, {@code (float)VehicleUnit:FAHRENHEIT}, 0, 0]. If OEMs suggest to set 19.0 in Celsius
824      * or 66.5 in Fahrenheit for user's request, then car must generate a callback with property
825      * value [66.2, {@code (float)VehicleUnit:FAHRENHEIT}, 19.0, 66.5]. After the voice assistant
826      * gets the callback, it will inform the user and set HVAC temperature to the suggested value.
827      *
828      * <p>Another example, an application receives 21 Celsius as the current temperature value by
829      * querying {@link VehiclePropertyIds#HVAC_TEMPERATURE_SET}. But the application wants to know
830      * what value is displayed on the car's UI in Fahrenheit.
831      * <p>For this, the application sets the property to
832      * [21, {@code (float)VehicleUnit:CELSIUS}, 0, 0]. If the suggested value by the OEM for 21
833      * Celsius is 70 Fahrenheit, then car must generate a callback with property value
834      * [21, {@code (float)VehicleUnit:CELSIUS}, 21.0, 70.0]. In this case, the application can know
835      * that the value is 70.0 Fahrenheit in the car’s UI.
836      */
837     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
838     public static final int HVAC_TEMPERATURE_VALUE_SUGGESTION = 291570965;
839     /**
840      * On/off defrost for designated window
841      * The property is protected by the signature permission:
842      * android.car.permission.CONTROL_CAR_CLIMATE.
843      */
844     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
845     public static final int HVAC_DEFROSTER = 320865540;
846     /**
847      * On/off AC for designated areaId
848      * The property is protected by the signature permission:
849      * android.car.permission.CONTROL_CAR_CLIMATE.
850      */
851     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
852     public static final int HVAC_AC_ON = 354419973;
853     /**
854      * On/off max AC
855      * The property is protected by the signature permission:
856      * android.car.permission.CONTROL_CAR_CLIMATE.
857      */
858     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
859     public static final int HVAC_MAX_AC_ON = 354419974;
860     /**
861      * On/off max defrost
862      * The property is protected by the signature permission:
863      * android.car.permission.CONTROL_CAR_CLIMATE.
864      */
865     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
866     public static final int HVAC_MAX_DEFROST_ON = 354419975;
867     /**
868      * Recirculation on/off
869      * The property is protected by the signature permission:
870      * android.car.permission.CONTROL_CAR_CLIMATE.
871      */
872     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
873     public static final int HVAC_RECIRC_ON = 354419976;
874     /**
875      * Enable temperature coupling between areas.
876      * The property is protected by the signature permission:
877      * android.car.permission.CONTROL_CAR_CLIMATE.
878      */
879     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
880     public static final int HVAC_DUAL_ON = 354419977;
881     /**
882      * On/off automatic mode
883      * The property is protected by the signature permission:
884      * android.car.permission.CONTROL_CAR_CLIMATE.
885      */
886     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
887     public static final int HVAC_AUTO_ON = 354419978;
888     /**
889      * Seat heating/cooling
890      * The property is protected by the signature permission:
891      * android.car.permission.CONTROL_CAR_CLIMATE.
892      */
893     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
894     public static final int HVAC_SEAT_TEMPERATURE = 356517131;
895     /**
896      * Side Mirror Heat
897      * The property is protected by the signature permission:
898      * android.car.permission.CONTROL_CAR_CLIMATE.
899      */
900     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
901     public static final int HVAC_SIDE_MIRROR_HEAT = 339739916;
902     /**
903      * Steering Wheel Heating/Cooling
904      * The property is protected by the signature permission:
905      * android.car.permission.CONTROL_CAR_CLIMATE.
906      */
907     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
908     public static final int HVAC_STEERING_WHEEL_HEAT = 289408269;
909     /**
910      * Temperature units for display
911      * The property is protected by the signature permission:
912      * android.car.permission.CONTROL_CAR_CLIMATE.
913      */
914     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
915     public static final int HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270;
916     /**
917      * Actual fan speed
918      * The property is protected by the signature permission:
919      * android.car.permission.CONTROL_CAR_CLIMATE.
920      */
921     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
922     public static final int HVAC_ACTUAL_FAN_SPEED_RPM = 356517135;
923     /**
924      * Represents global power state for HVAC. Setting this property to false
925      * MAY mark some properties that control individual HVAC features/subsystems
926      * to UNAVAILABLE state. Setting this property to true MAY mark some
927      * properties that control individual HVAC features/subsystems to AVAILABLE
928      * state (unless any/all of them are UNAVAILABLE on their own individual
929      * merits).
930      * The property is protected by the signature permission:
931      * android.car.permission.CONTROL_CAR_CLIMATE.
932      */
933     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
934     public static final int HVAC_POWER_ON = 354419984;
935     /**
936      * Fan Positions Available
937      * The property is protected by the signature permission:
938      * android.car.permission.CONTROL_CAR_CLIMATE.
939      */
940     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
941     public static final int HVAC_FAN_DIRECTION_AVAILABLE = 356582673;
942     /**
943      * Automatic recirculation on/off
944      * The property is protected by the signature permission:
945      * android.car.permission.CONTROL_CAR_CLIMATE.
946      */
947     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
948     public static final int HVAC_AUTO_RECIRC_ON = 354419986;
949     /**
950      * Seat ventilation
951      * The property is protected by the signature permission:
952      * android.car.permission.CONTROL_CAR_CLIMATE.
953      */
954     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
955     public static final int HVAC_SEAT_VENTILATION = 356517139;
956     /**
957      * ELECTRIC DEFROSTER
958      * The property is protected by the signature permission:
959      * android.car.permission.CONTROL_CAR_CLIMATE.
960      *
961      * @hide
962      */
963     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_CLIMATE)
964     public static final int HVAC_ELECTRIC_DEFROSTER_ON = 320865556;
965     /**
966      * Distance units for display.
967      *
968      * <p>Indicates which units the car is using to display distances to the user.
969      *
970      * <p>configArray represents the list of supported units for {@code
971      * DISTANCE_DISPLAY_UNITS}. Here is an example configArray:
972      * <ul>
973      *  <li>configArray[0] = {@code 33 //VehicleUnit#METER}
974      *  <li>configArray[1] = {@code 35 //VehicleUnit#KILOMETER}
975      *  <li>configArray[1] = {@code 36 //VehicleUnit#MILE}
976      * </ul>
977      *
978      * <p>Property Config:
979      * <ul>
980      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
981      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
982      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
983      *  <li>{@code Integer} property type
984      * </ul>
985      *
986      * <p>Required Permissions:
987      * <ul>
988      *  <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
989      *  <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
990      *  android.car.permission.CAR_VENDOR_EXTENSION, to write property.
991      * </ul>
992      */
993     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
994     @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
995             Car.PERMISSION_VENDOR_EXTENSION}))
996     public static final int DISTANCE_DISPLAY_UNITS = 289408512;
997     /**
998      * Fuel volume units for display.
999      *
1000      * <p>Indicates which units the car is using to display fuel volume to the user.
1001      *
1002      * <p>configArray represents the list of supported units for {@code
1003      * FUEL_VOLUME_DISPLAY_UNITS}. Here is an example configArray:
1004      * <ul>
1005      *  <li>configArray[0] = {@code 65 //VehicleUnit#LITER}
1006      *  <li>configArray[1] = {@code 66 //VehicleUnit#US_GALLON}
1007      * </ul>
1008      *
1009      * <p>Property Config:
1010      * <ul>
1011      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
1012      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
1013      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
1014      *  <li>{@code Integer} property type
1015      * </ul>
1016      *
1017      * <p>Required Permissions:
1018      * <ul>
1019      *  <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
1020      *  <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
1021      *  android.car.permission.CAR_VENDOR_EXTENSION, to write property.
1022      * </ul>
1023      */
1024     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
1025     @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
1026             Car.PERMISSION_VENDOR_EXTENSION}))
1027     public static final int FUEL_VOLUME_DISPLAY_UNITS = 289408513;
1028     /**
1029      * Tire pressure units for display.
1030      *
1031      * <p>Indicates which units the car is using to display tire pressure to the user.
1032      *
1033      * <p>configArray represents the list of supported units for {@code
1034      * TIRE_PRESSURE_DISPLAY_UNITS}. Here is an example configArray:
1035      * <ul>
1036      *  <li>configArray[0] = {@code 112 //VehicleUnit#KILOPASCAL}
1037      *  <li>configArray[1] = {@code 113 //VehicleUnit#PSI}
1038      *  <li>configArray[2] = {@code 114 //VehicleUnit#BAR}
1039      * </ul>
1040      *
1041      * <p>Property Config:
1042      * <ul>
1043      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
1044      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
1045      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
1046      *  <li>{@code Integer} property type
1047      * </ul>
1048      *
1049      * <p>Required Permissions:
1050      * <ul>
1051      *  <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
1052      *  <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
1053      *  android.car.permission.CAR_VENDOR_EXTENSION, to write property.
1054      * </ul>
1055      */
1056     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
1057     @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
1058             Car.PERMISSION_VENDOR_EXTENSION}))
1059     public static final int TIRE_PRESSURE_DISPLAY_UNITS = 289408514;
1060     /**
1061      * EV battery units for display.
1062      *
1063      * <p>Indicates which units the vehicle is using to display EV battery information to the user.
1064      *
1065      * <p>configArray represents the list of supported units for {@code
1066      * EV_BATTERY_DISPLAY_UNITS}. Here is an example configArray:
1067      * <ul>
1068      *  <li>configArray[0] = {@code 96 //VehicleUnit#WATT_HOUR}
1069      *  <li>configArray[1] = {@code 100 //VehicleUnit#AMPERE_HOURS}
1070      *  <li>configArray[2] = {@code 101 //VehicleUnit#KILOWATT_HOUR}
1071      * </ul>
1072      *
1073      * <p>Property Config:
1074      * <ul>
1075      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
1076      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
1077      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
1078      *  <li>{@code Integer} property type
1079      * </ul>
1080      *
1081      * <p>Required Permissions:
1082      * <ul>
1083      *  <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
1084      *  <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
1085      *  android.car.permission.CAR_VENDOR_EXTENSION, to write property.
1086      * </ul>
1087      */
1088     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
1089     @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
1090             Car.PERMISSION_VENDOR_EXTENSION}))
1091     public static final int EV_BATTERY_DISPLAY_UNITS = 289408515;
1092     /**
1093      * Speed units for display.
1094      *
1095      * <p>Indicates type of units the vehicle is using to display speed to user.
1096      *
1097      * <p>configArray represents the list of supported units for {@code
1098      * VEHICLE_SPEED_DISPLAY_UNITS}. Here is an example configArray:
1099      * <ul>
1100      *  <li>configArray[0] = {@code 1 //VehicleUnit#METER_PER_SEC}
1101      *  <li>configArray[1] = {@code 114 //VehicleUnit#MILES_PER_HOUR}
1102      *  <li>configArray[2] = {@code 115 //VehicleUnit#KILOMETERS_PER_HOUR}
1103      * </ul>
1104      *
1105      * <p>Property Config:
1106      * <ul>
1107      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
1108      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
1109      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
1110      *  <li>{@code Integer} property type
1111      * </ul>
1112      *
1113      * <p>Required Permissions:
1114      * <ul>
1115      *  <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
1116      *  <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
1117      *  android.car.permission.CAR_VENDOR_EXTENSION, to write property.
1118      * </ul>
1119      *
1120      * @hide
1121      */
1122     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
1123     @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
1124             Car.PERMISSION_VENDOR_EXTENSION}))
1125     public static final int VEHICLE_SPEED_DISPLAY_UNITS = 289408516;
1126     /**
1127      * Fuel consumption units for display.
1128      *
1129      * <p>Indicates type of units the car is using to display fuel consumption information to user.
1130      *
1131      * <p>{@code true} indicates units are distance over volume such as MPG.
1132      *
1133      * <p>{@code false} indicates units are volume over distance such as L/100KM.
1134      *
1135      * <p>Property Config:
1136      * <ul>
1137      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ_WRITE}
1138      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
1139      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
1140      *  <li>{@code Boolean} property type
1141      * </ul>
1142      *
1143      * <p>Required Permissions:
1144      * <ul>
1145      *  <li>{@link Car#PERMISSION_READ_DISPLAY_UNITS} to read property.
1146      *  <li>Signature permissions, android.car.permission.CONTROL_CAR_DISPLAY_UNITS and
1147      *  android.car.permission.CAR_VENDOR_EXTENSION, to write property.
1148      * </ul>
1149      */
1150     @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_DISPLAY_UNITS))
1151     @RequiresPermission.Write(@RequiresPermission(allOf = {Car.PERMISSION_CONTROL_DISPLAY_UNITS,
1152             Car.PERMISSION_VENDOR_EXTENSION}))
1153     public static final int FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364;
1154     /**
1155      * Outside temperature in celsius.
1156      *
1157      * <ul>
1158      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
1159      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
1160      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_CONTINUOUS}
1161      *  <li>{@code Float} property type
1162      * </ul>
1163      *
1164      * <p>Requires permission: {@link Car#PERMISSION_EXTERIOR_ENVIRONMENT}.
1165      */
1166     @RequiresPermission(Car.PERMISSION_EXTERIOR_ENVIRONMENT)
1167     public static final int ENV_OUTSIDE_TEMPERATURE = 291505923;
1168     /**
1169      * Property to control power state of application processor
1170      *
1171      * It is assumed that AP's power state is controller by separate power
1172      * controller.
1173      * The property is protected by the signature permission: android.car.permission.CAR_POWER.
1174      */
1175     @RequiresPermission(Car.PERMISSION_CAR_POWER)
1176     public static final int AP_POWER_STATE_REQ = 289475072;
1177     /**
1178      * Property to report power state of application processor
1179      *
1180      * It is assumed that AP's power state is controller by separate power
1181      * controller.
1182      * The property is protected by the signature permission: android.car.permission.CAR_POWER.
1183      */
1184     @RequiresPermission(Car.PERMISSION_CAR_POWER)
1185     public static final int AP_POWER_STATE_REPORT = 289475073;
1186     /**
1187      * Property to report bootup reason for the current power on. This is a
1188      * static property that will not change for the whole duration until power
1189      * off. For example, even if user presses power on button after automatic
1190      * power on with door unlock, bootup reason must stay with
1191      * VehicleApPowerBootupReason#USER_UNLOCK.
1192      * The property is protected by the signature permission: android.car.permission.CAR_POWER.
1193      */
1194     @RequiresPermission(Car.PERMISSION_CAR_POWER)
1195     public static final int AP_POWER_BOOTUP_REASON = 289409538;
1196     /**
1197      * Property to represent brightness of the display. Some cars have single
1198      * control for the brightness of all displays and this property is to share
1199      * change in that control.
1200      * The property is protected by the signature permission: android.car.permission.CAR_POWER.
1201      */
1202     @RequiresPermission(Car.PERMISSION_CAR_POWER)
1203     public static final int DISPLAY_BRIGHTNESS = 289409539;
1204     /**
1205      * Property to feed H/W input events to android
1206      */
1207     public static final int HW_KEY_INPUT = 289475088;
1208     /**
1209      * Door position
1210      *
1211      * This is an integer in case a door may be set to a particular position.
1212      * Max value indicates fully open, min value (0) indicates fully closed.
1213      * The property is protected by the signature permission:
1214      * android.car.permission.CONTROL_CAR_DOORS.
1215      */
1216     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
1217     public static final int DOOR_POS = 373295872;
1218     /**
1219      * Door move
1220      * The property is protected by the signature permission:
1221      * android.car.permission.CONTROL_CAR_DOORS.
1222      */
1223     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
1224     public static final int DOOR_MOVE = 373295873;
1225     /**
1226      * Door lock
1227      * The property is protected by the signature permission:
1228      * android.car.permission.CONTROL_CAR_DOORS.
1229      */
1230     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_DOORS)
1231     public static final int DOOR_LOCK = 371198722;
1232     /**
1233      * Mirror Z Position
1234      * The property is protected by the signature permission:
1235      * android.car.permission.CONTROL_CAR_MIRRORS.
1236      */
1237     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
1238     public static final int MIRROR_Z_POS = 339741504;
1239     /**
1240      * Mirror Z Move
1241      * The property is protected by the signature permission:
1242      * android.car.permission.CONTROL_CAR_MIRRORS.
1243      */
1244     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
1245     public static final int MIRROR_Z_MOVE = 339741505;
1246     /**
1247      * Mirror Y Position
1248      * The property is protected by the signature permission:
1249      * android.car.permission.CONTROL_CAR_MIRRORS.
1250      */
1251     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
1252     public static final int MIRROR_Y_POS = 339741506;
1253     /**
1254      * Mirror Y Move
1255      * The property is protected by the signature permission:
1256      * android.car.permission.CONTROL_CAR_MIRRORS.
1257      */
1258     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
1259     public static final int MIRROR_Y_MOVE = 339741507;
1260     /**
1261      * Mirror Lock
1262      * The property is protected by the signature permission:
1263      * android.car.permission.CONTROL_CAR_MIRRORS.
1264      */
1265     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
1266     public static final int MIRROR_LOCK = 287312708;
1267     /**
1268      * Mirror Fold
1269      * The property is protected by the signature permission:
1270      * android.car.permission.CONTROL_CAR_MIRRORS.
1271      */
1272     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_MIRRORS)
1273     public static final int MIRROR_FOLD = 287312709;
1274     /**
1275      * Seat memory select
1276      *
1277      * This parameter selects the memory preset to use to select the seat
1278      * position. The minValue is always 0, and the maxValue determines the
1279      * number of seat positions available.
1280      * The property is protected by the signature permission:
1281      * android.car.permission.CONTROL_CAR_SEATS.
1282      */
1283     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1284     public static final int SEAT_MEMORY_SELECT = 356518784;
1285     /**
1286      * Seat memory set
1287      *
1288      * This setting allows the user to save the current seat position settings
1289      * into the selected preset slot.  The maxValue for each seat position
1290      * must match the maxValue for SEAT_MEMORY_SELECT.
1291      * The property is protected by the signature permission:
1292      * android.car.permission.CONTROL_CAR_SEATS.
1293      */
1294     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1295     public static final int SEAT_MEMORY_SET = 356518785;
1296     /**
1297      * Seatbelt buckled
1298      *
1299      * True indicates belt is buckled.
1300      * The property is protected by the signature permission:
1301      * android.car.permission.CONTROL_CAR_SEATS.
1302      */
1303     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1304     public static final int SEAT_BELT_BUCKLED = 354421634;
1305     /**
1306      * Seatbelt height position
1307      * The property is protected by the signature permission:
1308      * android.car.permission.CONTROL_CAR_SEATS.
1309      */
1310     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1311     public static final int SEAT_BELT_HEIGHT_POS = 356518787;
1312     /**
1313      * Seatbelt height move
1314      * The property is protected by the signature permission:
1315      * android.car.permission.CONTROL_CAR_SEATS.
1316      */
1317     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1318     public static final int SEAT_BELT_HEIGHT_MOVE = 356518788;
1319     /**
1320      * Seat fore/aft position
1321      * The property is protected by the signature permission:
1322      * android.car.permission.CONTROL_CAR_SEATS.
1323      */
1324     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1325     public static final int SEAT_FORE_AFT_POS = 356518789;
1326     /**
1327      * Seat fore/aft move
1328      * The property is protected by the signature permission:
1329      * android.car.permission.CONTROL_CAR_SEATS.
1330      */
1331     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1332     public static final int SEAT_FORE_AFT_MOVE = 356518790;
1333     /**
1334      * Seat backrest angle 1 position
1335      * The property is protected by the signature permission:
1336      * android.car.permission.CONTROL_CAR_SEATS.
1337      */
1338     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1339     public static final int SEAT_BACKREST_ANGLE_1_POS = 356518791;
1340     /**
1341      * Seat backrest angle 1 move
1342      *
1343      * Moves the backrest forward or recline.
1344      * The property is protected by the signature permission:
1345      * android.car.permission.CONTROL_CAR_SEATS.
1346      */
1347     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1348     public static final int SEAT_BACKREST_ANGLE_1_MOVE = 356518792;
1349     /**
1350      * Seat backrest angle 2 position
1351      * The property is protected by the signature permission:
1352      * android.car.permission.CONTROL_CAR_SEATS.
1353      */
1354     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1355     public static final int SEAT_BACKREST_ANGLE_2_POS = 356518793;
1356     /**
1357      * Seat backrest angle 2 move
1358      * The property is protected by the signature permission:
1359      * android.car.permission.CONTROL_CAR_SEATS.
1360      */
1361     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1362     public static final int SEAT_BACKREST_ANGLE_2_MOVE = 356518794;
1363     /**
1364      * Seat height position
1365      * The property is protected by the signature permission:
1366      * android.car.permission.CONTROL_CAR_SEATS.
1367      */
1368     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1369     public static final int SEAT_HEIGHT_POS = 356518795;
1370     /**
1371      * Seat height move
1372      * The property is protected by the signature permission:
1373      * android.car.permission.CONTROL_CAR_SEATS.
1374      */
1375     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1376     public static final int SEAT_HEIGHT_MOVE = 356518796;
1377     /**
1378      * Seat depth position
1379      * The property is protected by the signature permission:
1380      * android.car.permission.CONTROL_CAR_SEATS.
1381      */
1382     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1383     public static final int SEAT_DEPTH_POS = 356518797;
1384     /**
1385      * Seat depth move
1386      * The property is protected by the signature permission:
1387      * android.car.permission.CONTROL_CAR_SEATS.
1388      */
1389     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1390     public static final int SEAT_DEPTH_MOVE = 356518798;
1391     /**
1392      * Seat tilt position
1393      * The property is protected by the signature permission:
1394      * android.car.permission.CONTROL_CAR_SEATS.
1395      */
1396     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1397     public static final int SEAT_TILT_POS = 356518799;
1398     /**
1399      * Seat tilt move
1400      * The property is protected by the signature permission:
1401      * android.car.permission.CONTROL_CAR_SEATS.
1402      */
1403     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1404     public static final int SEAT_TILT_MOVE = 356518800;
1405     /**
1406      * Lumber fore/aft position
1407      * The property is protected by the signature permission:
1408      * android.car.permission.CONTROL_CAR_SEATS.
1409      */
1410     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1411     public static final int SEAT_LUMBAR_FORE_AFT_POS = 356518801;
1412     /**
1413      * Lumbar fore/aft move
1414      * The property is protected by the signature permission:
1415      * android.car.permission.CONTROL_CAR_SEATS.
1416      */
1417     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1418     public static final int SEAT_LUMBAR_FORE_AFT_MOVE = 356518802;
1419     /**
1420      * Lumbar side support position
1421      * The property is protected by the signature permission:
1422      * android.car.permission.CONTROL_CAR_SEATS.
1423      */
1424     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1425     public static final int SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803;
1426     /**
1427      * Lumbar side support move
1428      * The property is protected by the signature permission:
1429      * android.car.permission.CONTROL_CAR_SEATS.
1430      */
1431     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1432     public static final int SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804;
1433     /**
1434      * Headrest height position
1435      * The property is protected by the signature permission:
1436      * android.car.permission.CONTROL_CAR_SEATS.
1437      */
1438     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1439     public static final int SEAT_HEADREST_HEIGHT_POS = 289409941;
1440     /**
1441      * Headrest height move
1442      * The property is protected by the signature permission:
1443      * android.car.permission.CONTROL_CAR_SEATS.
1444      */
1445     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1446     public static final int SEAT_HEADREST_HEIGHT_MOVE = 356518806;
1447     /**
1448      * Headrest angle position
1449      * The property is protected by the signature permission:
1450      * android.car.permission.CONTROL_CAR_SEATS.
1451      */
1452     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1453     public static final int SEAT_HEADREST_ANGLE_POS = 356518807;
1454     /**
1455      * Headrest angle move
1456      * The property is protected by the signature permission:
1457      * android.car.permission.CONTROL_CAR_SEATS.
1458      */
1459     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1460     public static final int SEAT_HEADREST_ANGLE_MOVE = 356518808;
1461     /**
1462      * Headrest fore/aft position
1463      * The property is protected by the signature permission:
1464      * android.car.permission.CONTROL_CAR_SEATS.
1465      */
1466     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1467     public static final int SEAT_HEADREST_FORE_AFT_POS = 356518809;
1468     /**
1469      * Headrest fore/aft move
1470      * The property is protected by the signature permission:
1471      * android.car.permission.CONTROL_CAR_SEATS.
1472      */
1473     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1474     public static final int SEAT_HEADREST_FORE_AFT_MOVE = 356518810;
1475     /**
1476      * Seat Occupancy
1477      * The property is protected by the signature permission:
1478      * android.car.permission.CONTROL_CAR_SEATS.
1479      */
1480     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_SEATS)
1481     public static final int SEAT_OCCUPANCY = 356518832;
1482     /**
1483      * Window Position
1484      * The property is protected by the signature permission:
1485      * android.car.permission.CONTROL_CAR_WINDOWS
1486      */
1487     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
1488     public static final int WINDOW_POS = 322964416;
1489     /**
1490      * Window Move
1491      * The property is protected by the signature permission:
1492      * android.car.permission.CONTROL_CAR_WINDOWS
1493      */
1494     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
1495     public static final int WINDOW_MOVE = 322964417;
1496     /**
1497      * Window Lock
1498      * The property is protected by the signature permission:
1499      * android.car.permission.CONTROL_CAR_WINDOWS
1500      */
1501     @RequiresPermission(Car.PERMISSION_CONTROL_CAR_WINDOWS)
1502     public static final int WINDOW_LOCK = 320867268;
1503     /**
1504      * Vehicle Maps Service (VMS) message
1505      * The property is protected by the signature permissions:
1506      * android.car.permission.VMS_PUBLISHER and android.car.permission.VMS_SUBSCRIBER.
1507      */
1508     @RequiresPermission(anyOf = {Car.PERMISSION_VMS_PUBLISHER, Car.PERMISSION_VMS_SUBSCRIBER})
1509     public static final int VEHICLE_MAP_SERVICE = 299895808;
1510     /**
1511      * OBD2 Live Sensor Data
1512      *
1513      * Reports a snapshot of the current (live) values of the OBD2 sensors available.
1514      * The property is protected by the signature permission:
1515      * android.car.permission.CAR_DIAGNOSTICS.
1516      */
1517     @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
1518     public static final int OBD2_LIVE_FRAME = 299896064;
1519     /**
1520      * OBD2 Freeze Frame Sensor Data
1521      *
1522      * Reports a snapshot of the value of the OBD2 sensors available at the time that a fault
1523      * occurred and was detected.
1524      * The property is protected by the signature permission:
1525      * android.car.permission.CAR_DIAGNOSTICS.
1526      */
1527     @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
1528     public static final int OBD2_FREEZE_FRAME = 299896065;
1529     /**
1530      * OBD2 Freeze Frame Information
1531      * The property is protected by the signature permission:
1532      * android.car.permission.CAR_DIAGNOSTICS.
1533      */
1534     @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_READ_ALL)
1535     public static final int OBD2_FREEZE_FRAME_INFO = 299896066;
1536     /**
1537      * OBD2 Freeze Frame Clear
1538      *
1539      * This property allows deletion of any of the freeze frames stored in
1540      * vehicle memory, as described by OBD2_FREEZE_FRAME_INFO.
1541      * The property is protected by the signature permission:
1542      * android.car.permission.CLEAR_CAR_DIAGNOSTICS.
1543      */
1544     @RequiresPermission(Car.PERMISSION_CAR_DIAGNOSTIC_CLEAR)
1545     public static final int OBD2_FREEZE_FRAME_CLEAR = 299896067;
1546     /**
1547      * Headlights State
1548      * The property is protected by the signature permission:
1549      * android.car.permission.CAR_EXTERIOR_LIGHTS.
1550      */
1551     @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
1552     public static final int HEADLIGHTS_STATE = 289410560;
1553     /**
1554      * High beam lights state
1555      * The property is protected by the signature permission:
1556      * android.car.permission.CAR_EXTERIOR_LIGHTS.
1557      */
1558     @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
1559     public static final int HIGH_BEAM_LIGHTS_STATE = 289410561;
1560     /**
1561      * Fog light state
1562      * The property is protected by the signature permission:
1563      * android.car.permission.CAR_EXTERIOR_LIGHTS.
1564      */
1565     @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
1566     public static final int FOG_LIGHTS_STATE = 289410562;
1567     /**
1568      * Hazard light status
1569      * The property is protected by the signature permission:
1570      * android.car.permission.CAR_EXTERIOR_LIGHTS.
1571      */
1572     @RequiresPermission(Car.PERMISSION_EXTERIOR_LIGHTS)
1573     public static final int HAZARD_LIGHTS_STATE = 289410563;
1574     /**
1575      * Headlight switch
1576      * The property is protected by the signature permission:
1577      * android.car.permission.CAR_EXTERIOR_LIGHTS.
1578      */
1579     @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
1580     public static final int HEADLIGHTS_SWITCH = 289410576;
1581     /**
1582      * High beam light switch
1583      * The property is protected by the signature permission:
1584      * android.car.permission.CAR_EXTERIOR_LIGHTS.
1585      */
1586     @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
1587     public static final int HIGH_BEAM_LIGHTS_SWITCH = 289410577;
1588     /**
1589      * Fog light switch
1590      * The property is protected by the signature permission:
1591      * android.car.permission.CAR_EXTERIOR_LIGHTS.
1592      */
1593     @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
1594     public static final int FOG_LIGHTS_SWITCH = 289410578;
1595     /**
1596      * Hazard light switch
1597      * The property is protected by the signature permission:
1598      * android.car.permission.CAR_EXTERIOR_LIGHTS.
1599      */
1600     @RequiresPermission(Car.PERMISSION_CONTROL_EXTERIOR_LIGHTS)
1601     public static final int HAZARD_LIGHTS_SWITCH = 289410579;
1602     /**
1603      * Cabin lights
1604      * Requires permission: {@link Car#PERMISSION_READ_INTERIOR_LIGHTS}.
1605      */
1606     @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS)
1607     public static final int CABIN_LIGHTS_STATE = 289410817;
1608     /**
1609      * Cabin lights switch
1610      * Requires permission: {@link Car#PERMISSION_CONTROL_INTERIOR_LIGHTS}.
1611      */
1612     @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS)
1613     public static final int CABIN_LIGHTS_SWITCH = 289410818;
1614     /**
1615      * Reading lights
1616      * Requires permission: {@link Car#PERMISSION_READ_INTERIOR_LIGHTS}.
1617      */
1618     @RequiresPermission(Car.PERMISSION_READ_INTERIOR_LIGHTS)
1619     public static final int READING_LIGHTS_STATE = 356519683;
1620     /**
1621      * Reading lights switch
1622      * Requires permission: {@link Car#PERMISSION_CONTROL_INTERIOR_LIGHTS}.
1623      */
1624     @RequiresPermission(Car.PERMISSION_CONTROL_INTERIOR_LIGHTS)
1625     public static final int READING_LIGHTS_SWITCH = 356519684;
1626 
1627     /**
1628      * Property to get the initial settings for multi-user management (such as initial user).
1629      *
1630      * <p>Doesn't require permission because it's not exposed through
1631      * {@link android.car.hardware.property.CarPropertyManager}.
1632      *
1633      * @hide
1634      */
1635     public static final int INITIAL_USER_INFO = 299896583;
1636 
1637     /**
1638      * Property to switch user for multi-user management.
1639      *
1640      * <p>Doesn't require permission because it's not exposed through
1641      * {@link android.car.hardware.property.CarPropertyManager}.
1642      *
1643      * @hide
1644      */
1645     public static final int SWITCH_USER = 299896584;
1646 
1647     /**
1648      * Property to create a new user for multi-user management.
1649      *
1650      * <p>Doesn't require permission because it's not exposed through
1651      * {@link android.car.hardware.property.CarPropertyManager}.
1652      *
1653      * @hide
1654      */
1655     public static final int CREATE_USER = 299896585;
1656 
1657     /**
1658      * Property to remove a new user for multi-user management.
1659      *
1660      * <p>Doesn't require permission because it's not exposed through
1661      * {@link android.car.hardware.property.CarPropertyManager}.
1662      *
1663      * @hide
1664      */
1665     public static final int REMOVE_USER = 299896586;
1666 
1667     /**
1668      * Property to get / set the user authentication types associated with an Android user.
1669      *
1670      * <p>Doesn't require permission because it's not exposed through
1671      * {@link android.car.hardware.property.CarPropertyManager}.
1672      *
1673      * @hide
1674      */
1675     public static final int USER_IDENTIFICATION_ASSOCIATION = 299896587;
1676 
1677     /**
1678      * Property for VHAL to apply power policy.
1679      *
1680      * <p>Doesn't require permission because it's not exposed through
1681      * {@link android.car.hardware.property.CarPropertyManager}.
1682      *
1683      * @hide
1684      */
1685     public static final int POWER_POLICY_REQ = 286265121;
1686 
1687     /**
1688      * Property for VHAL to set the default power policies per power status transition.
1689      *
1690      * <p>Doesn't require permission because it's not exposed through
1691      * {@link android.car.hardware.property.CarPropertyManager}.
1692      *
1693      * @hide
1694      */
1695     public static final int POWER_POLICY_GROUP_REQ = 286265122;
1696 
1697     /**
1698      * Property to report a new current power policy to VHAL.
1699      *
1700      * <p>Doesn't require permission because it's not exposed through
1701      * {@link android.car.hardware.property.CarPropertyManager}.
1702      *
1703      * @hide
1704      */
1705     public static final int CURRENT_POWER_POLICY = 286265123;
1706 
1707     /**
1708      * Property to report that car watchdog is alive.
1709      *
1710      * <p>Doesn't require permission because it's not exposed through
1711      * {@link android.car.hardware.property.CarPropertyManager}.
1712      *
1713      * @hide
1714      */
1715     public static final int WATCHDOG_ALIVE = 290459441;
1716 
1717     /**
1718      * Property to report a process terminated by car watchdog.
1719      *
1720      * <p>Doesn't require permission because it's not exposed through
1721      * {@link android.car.hardware.property.CarPropertyManager}.
1722      *
1723      * @hide
1724      */
1725     public static final int WATCHDOG_TERMINATED_PROCESS = 299896626;
1726 
1727     /**
1728      * Property to signal a heartbeat from VHAL.
1729      *
1730      * <p>Doesn't require permission because it's not exposed through
1731      * {@link android.car.hardware.property.CarPropertyManager}.
1732      *
1733      * @hide
1734      */
1735     public static final int VHAL_HEARTBEAT = 290459443;
1736 
1737     /**
1738      * Property to start the ClusterUI in cluster display.
1739      *
1740      * <p>Doesn't require permission because it's not exposed through
1741      * {@link android.car.hardware.property.CarPropertyManager}.
1742      *
1743      * @hide
1744      */
1745     public static final int CLUSTER_SWITCH_UI = 289410868;
1746 
1747     /**
1748      * Property to change the state of the cluster display.
1749      *
1750      * <p>Doesn't require permission because it's not exposed through
1751      * {@link android.car.hardware.property.CarPropertyManager}.
1752      *
1753      * @hide
1754      */
1755     public static final int CLUSTER_DISPLAY_STATE = 289476405;
1756 
1757     /**
1758      * Property to reports the current display and ClusterUI statue.
1759      *
1760      * <p>Doesn't require permission because it's not exposed through
1761      * {@link android.car.hardware.property.CarPropertyManager}.
1762      *
1763      * @hide
1764      */
1765     public static final int CLUSTER_REPORT_STATE = 299896630;
1766 
1767     /**
1768      * Property to request to change the cluster display state to show some ClusterUI.
1769      *
1770      * <p>Doesn't require permission because it's not exposed through
1771      * {@link android.car.hardware.property.CarPropertyManager}.
1772      *
1773      * @hide
1774      */
1775     public static final int CLUSTER_REQUEST_DISPLAY = 289410871;
1776 
1777     /**
1778      * Property to inform the current navigation state.
1779      *
1780      * <p>Doesn't require permission because it's not exposed through
1781      * {@link android.car.hardware.property.CarPropertyManager}.
1782      *
1783      * @hide
1784      */
1785     public static final int CLUSTER_NAVIGATION_STATE = 292556600;
1786 
1787     /**
1788      * Current date and time, encoded as Unix time.
1789      *
1790      * <p>This value denotes the number of milliseconds that have elapsed since 1/1/1970 UTC.
1791      */
1792     @RequiresPermission(Car.PERMISSION_CAR_EPOCH_TIME)
1793     public static final int EPOCH_TIME = 290457094;
1794 
1795     /**
1796      * External encryption binding seed.
1797      *
1798      * <p>This value is mixed with the local storage encryption seed. This property holds 16 bytes,
1799      * and is expected to be persisted on an ECU separate from the IVI. The property is initially
1800      * set by AAOS, who generates it using a CSRNG. AAOS will then read the property on subsequent
1801      * boots.
1802      */
1803     @RequiresPermission(Car.PERMISSION_STORAGE_ENCRYPTION_BINDING_SEED)
1804     public static final int STORAGE_ENCRYPTION_BINDING_SEED = 292554247;
1805 
1806     /**
1807      * Electronic Toll Collection card type.
1808      *
1809      * <p>This property indicates the type of ETC(Electronic Toll Collection) card in the vehicle.
1810      * If the head unit is aware of an ETC card attached to the vehicle, this property should
1811      * return the type of card attached; otherwise, this property should be UNAVAILABLE. The
1812      * property value should be one of {@link VehicleElectronicTollCollectionCardType}.
1813      *
1814      * <ul>
1815      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
1816      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
1817      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
1818      *  <li>{@code Integer} property type
1819      * </ul>
1820      *
1821      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
1822      */
1823     @RequiresPermission(Car.PERMISSION_CAR_INFO)
1824     public static final int ELECTRONIC_TOLL_COLLECTION_CARD_TYPE = 289410873;
1825 
1826     /**
1827      * Electronic Toll Collection card status.
1828      *
1829      * <p>This property indicates the status of ETC(Electronic Toll Collection) card in the
1830      * vehicle. If the head unit is aware of an ETC card attached to the vehicle, ETC_CARD_STATUS
1831      * gives that status of the card; otherwise, this property should be UNAVAILABLE. The property
1832      * value should be one of {@link VehicleElectronicTollCollectionCardStatus}.
1833      *
1834      * <ul>
1835      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
1836      *  <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_GLOBAL}
1837      *  <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_ONCHANGE}
1838      *  <li>{@code Integer} property type
1839      * </ul>
1840      *
1841      * <p>Requires permission: {@link Car#PERMISSION_CAR_INFO}.
1842      */
1843     @RequiresPermission(Car.PERMISSION_CAR_INFO)
1844     public static final int ELECTRONIC_TOLL_COLLECTION_CARD_STATUS = 289410874;
1845 
1846     /**
1847      * @deprecated to prevent others from instantiating this class
1848      */
1849     @Deprecated
VehiclePropertyIds()1850     public VehiclePropertyIds() {
1851     }
1852 
1853     /**
1854      * Gets a user-friendly representation of a property.
1855      */
toString(int property)1856     public static String toString(int property) {
1857         switch (property) {
1858             case INVALID:
1859                 return "INVALID";
1860             case INFO_VIN:
1861                 return "INFO_VIN";
1862             case INFO_MAKE:
1863                 return "INFO_MAKE";
1864             case INFO_MODEL:
1865                 return "INFO_MODEL";
1866             case INFO_MODEL_YEAR:
1867                 return "INFO_MODEL_YEAR";
1868             case INFO_FUEL_CAPACITY:
1869                 return "INFO_FUEL_CAPACITY";
1870             case INFO_FUEL_TYPE:
1871                 return "INFO_FUEL_TYPE";
1872             case INFO_EV_BATTERY_CAPACITY:
1873                 return "INFO_EV_BATTERY_CAPACITY";
1874             case INFO_MULTI_EV_PORT_LOCATIONS:
1875                 return "INFO_MULTI_EV_PORT_LOCATIONS";
1876             case INFO_EV_CONNECTOR_TYPE:
1877                 return "INFO_EV_CONNECTOR_TYPE";
1878             case INFO_FUEL_DOOR_LOCATION:
1879                 return "INFO_FUEL_DOOR_LOCATION";
1880             case INFO_EV_PORT_LOCATION:
1881                 return "INFO_EV_PORT_LOCATION";
1882             case INFO_DRIVER_SEAT:
1883                 return "INFO_DRIVER_SEAT";
1884             case INFO_EXTERIOR_DIMENSIONS:
1885                 return "INFO_EXTERIOR_DIMENSIONS";
1886             case PERF_ODOMETER:
1887                 return "PERF_ODOMETER";
1888             case PERF_VEHICLE_SPEED:
1889                 return "PERF_VEHICLE_SPEED";
1890             case PERF_VEHICLE_SPEED_DISPLAY:
1891                 return "PERF_VEHICLE_SPEED_DISPLAY";
1892             case PERF_STEERING_ANGLE:
1893                 return "PERF_STEERING_ANGLE";
1894             case PERF_REAR_STEERING_ANGLE:
1895                 return "PERF_REAR_STEERING_ANGLE";
1896             case ENGINE_COOLANT_TEMP:
1897                 return "ENGINE_COOLANT_TEMP";
1898             case ENGINE_OIL_LEVEL:
1899                 return "ENGINE_OIL_LEVEL";
1900             case ENGINE_OIL_TEMP:
1901                 return "ENGINE_OIL_TEMP";
1902             case ENGINE_RPM:
1903                 return "ENGINE_RPM";
1904             case WHEEL_TICK:
1905                 return "WHEEL_TICK";
1906             case FUEL_LEVEL:
1907                 return "FUEL_LEVEL";
1908             case FUEL_DOOR_OPEN:
1909                 return "FUEL_DOOR_OPEN";
1910             case EV_BATTERY_LEVEL:
1911                 return "EV_BATTERY_LEVEL";
1912             case EV_CHARGE_PORT_OPEN:
1913                 return "EV_CHARGE_PORT_OPEN";
1914             case EV_CHARGE_PORT_CONNECTED:
1915                 return "EV_CHARGE_PORT_CONNECTED";
1916             case EV_BATTERY_INSTANTANEOUS_CHARGE_RATE:
1917                 return "EV_BATTERY_INSTANTANEOUS_CHARGE_RATE";
1918             case RANGE_REMAINING:
1919                 return "RANGE_REMAINING";
1920             case TIRE_PRESSURE:
1921                 return "TIRE_PRESSURE";
1922             case CRITICALLY_LOW_TIRE_PRESSURE:
1923                 return "CRITICALLY_LOW_TIRE_PRESSURE";
1924             case GEAR_SELECTION:
1925                 return "GEAR_SELECTION";
1926             case CURRENT_GEAR:
1927                 return "CURRENT_GEAR";
1928             case PARKING_BRAKE_ON:
1929                 return "PARKING_BRAKE_ON";
1930             case PARKING_BRAKE_AUTO_APPLY:
1931                 return "PARKING_BRAKE_AUTO_APPLY";
1932             case FUEL_LEVEL_LOW:
1933                 return "FUEL_LEVEL_LOW";
1934             case NIGHT_MODE:
1935                 return "NIGHT_MODE";
1936             case TURN_SIGNAL_STATE:
1937                 return "TURN_SIGNAL_STATE";
1938             case IGNITION_STATE:
1939                 return "IGNITION_STATE";
1940             case ABS_ACTIVE:
1941                 return "ABS_ACTIVE";
1942             case TRACTION_CONTROL_ACTIVE:
1943                 return "TRACTION_CONTROL_ACTIVE";
1944             case HVAC_FAN_SPEED:
1945                 return "HVAC_FAN_SPEED";
1946             case HVAC_FAN_DIRECTION:
1947                 return "HVAC_FAN_DIRECTION";
1948             case HVAC_TEMPERATURE_CURRENT:
1949                 return "HVAC_TEMPERATURE_CURRENT";
1950             case HVAC_TEMPERATURE_SET:
1951                 return "HVAC_TEMPERATURE_SET";
1952             case HVAC_TEMPERATURE_VALUE_SUGGESTION:
1953                 return "HVAC_TEMPERATURE_VALUE_SUGGESTION";
1954             case HVAC_DEFROSTER:
1955                 return "HVAC_DEFROSTER";
1956             case HVAC_AC_ON:
1957                 return "HVAC_AC_ON";
1958             case HVAC_MAX_AC_ON:
1959                 return "HVAC_MAX_AC_ON";
1960             case HVAC_MAX_DEFROST_ON:
1961                 return "HVAC_MAX_DEFROST_ON";
1962             case HVAC_RECIRC_ON:
1963                 return "HVAC_RECIRC_ON";
1964             case HVAC_DUAL_ON:
1965                 return "HVAC_DUAL_ON";
1966             case HVAC_AUTO_ON:
1967                 return "HVAC_AUTO_ON";
1968             case HVAC_SEAT_TEMPERATURE:
1969                 return "HVAC_SEAT_TEMPERATURE";
1970             case HVAC_SIDE_MIRROR_HEAT:
1971                 return "HVAC_SIDE_MIRROR_HEAT";
1972             case HVAC_STEERING_WHEEL_HEAT:
1973                 return "HVAC_STEERING_WHEEL_HEAT";
1974             case HVAC_TEMPERATURE_DISPLAY_UNITS:
1975                 return "HVAC_TEMPERATURE_DISPLAY_UNITS";
1976             case HVAC_ACTUAL_FAN_SPEED_RPM:
1977                 return "HVAC_ACTUAL_FAN_SPEED_RPM";
1978             case HVAC_POWER_ON:
1979                 return "HVAC_POWER_ON";
1980             case HVAC_FAN_DIRECTION_AVAILABLE:
1981                 return "HVAC_FAN_DIRECTION_AVAILABLE";
1982             case HVAC_AUTO_RECIRC_ON:
1983                 return "HVAC_AUTO_RECIRC_ON";
1984             case HVAC_SEAT_VENTILATION:
1985                 return "HVAC_SEAT_VENTILATION";
1986             case HVAC_ELECTRIC_DEFROSTER_ON:
1987                 return "HVAC_ELECTRIC_DEFROSTER_ON";
1988             case DISTANCE_DISPLAY_UNITS:
1989                 return "DISTANCE_DISPLAY_UNITS";
1990             case FUEL_VOLUME_DISPLAY_UNITS:
1991                 return "FUEL_VOLUME_DISPLAY_UNITS";
1992             case TIRE_PRESSURE_DISPLAY_UNITS:
1993                 return "TIRE_PRESSURE_DISPLAY_UNITS";
1994             case EV_BATTERY_DISPLAY_UNITS:
1995                 return "EV_BATTERY_DISPLAY_UNITS";
1996             case FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME:
1997                 return "FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME";
1998             case ENV_OUTSIDE_TEMPERATURE:
1999                 return "ENV_OUTSIDE_TEMPERATURE";
2000             case AP_POWER_STATE_REQ:
2001                 return "AP_POWER_STATE_REQ";
2002             case AP_POWER_STATE_REPORT:
2003                 return "AP_POWER_STATE_REPORT";
2004             case AP_POWER_BOOTUP_REASON:
2005                 return "AP_POWER_BOOTUP_REASON";
2006             case DISPLAY_BRIGHTNESS:
2007                 return "DISPLAY_BRIGHTNESS";
2008             case HW_KEY_INPUT:
2009                 return "HW_KEY_INPUT";
2010             case DOOR_POS:
2011                 return "DOOR_POS";
2012             case DOOR_MOVE:
2013                 return "DOOR_MOVE";
2014             case DOOR_LOCK:
2015                 return "DOOR_LOCK";
2016             case MIRROR_Z_POS:
2017                 return "MIRROR_Z_POS";
2018             case MIRROR_Z_MOVE:
2019                 return "MIRROR_Z_MOVE";
2020             case MIRROR_Y_POS:
2021                 return "MIRROR_Y_POS";
2022             case MIRROR_Y_MOVE:
2023                 return "MIRROR_Y_MOVE";
2024             case MIRROR_LOCK:
2025                 return "MIRROR_LOCK";
2026             case MIRROR_FOLD:
2027                 return "MIRROR_FOLD";
2028             case SEAT_MEMORY_SELECT:
2029                 return "SEAT_MEMORY_SELECT";
2030             case SEAT_MEMORY_SET:
2031                 return "SEAT_MEMORY_SET";
2032             case SEAT_BELT_BUCKLED:
2033                 return "SEAT_BELT_BUCKLED";
2034             case SEAT_BELT_HEIGHT_POS:
2035                 return "SEAT_BELT_HEIGHT_POS";
2036             case SEAT_BELT_HEIGHT_MOVE:
2037                 return "SEAT_BELT_HEIGHT_MOVE";
2038             case SEAT_FORE_AFT_POS:
2039                 return "SEAT_FORE_AFT_POS";
2040             case SEAT_FORE_AFT_MOVE:
2041                 return "SEAT_FORE_AFT_MOVE";
2042             case SEAT_BACKREST_ANGLE_1_POS:
2043                 return "SEAT_BACKREST_ANGLE_1_POS";
2044             case SEAT_BACKREST_ANGLE_1_MOVE:
2045                 return "SEAT_BACKREST_ANGLE_1_MOVE";
2046             case SEAT_BACKREST_ANGLE_2_POS:
2047                 return "SEAT_BACKREST_ANGLE_2_POS";
2048             case SEAT_BACKREST_ANGLE_2_MOVE:
2049                 return "SEAT_BACKREST_ANGLE_2_MOVE";
2050             case SEAT_HEIGHT_POS:
2051                 return "SEAT_HEIGHT_POS";
2052             case SEAT_HEIGHT_MOVE:
2053                 return "SEAT_HEIGHT_MOVE";
2054             case SEAT_DEPTH_POS:
2055                 return "SEAT_DEPTH_POS";
2056             case SEAT_DEPTH_MOVE:
2057                 return "SEAT_DEPTH_MOVE";
2058             case SEAT_TILT_POS:
2059                 return "SEAT_TILT_POS";
2060             case SEAT_TILT_MOVE:
2061                 return "SEAT_TILT_MOVE";
2062             case SEAT_LUMBAR_FORE_AFT_POS:
2063                 return "SEAT_LUMBAR_FORE_AFT_POS";
2064             case SEAT_LUMBAR_FORE_AFT_MOVE:
2065                 return "SEAT_LUMBAR_FORE_AFT_MOVE";
2066             case SEAT_LUMBAR_SIDE_SUPPORT_POS:
2067                 return "SEAT_LUMBAR_SIDE_SUPPORT_POS";
2068             case SEAT_LUMBAR_SIDE_SUPPORT_MOVE:
2069                 return "SEAT_LUMBAR_SIDE_SUPPORT_MOVE";
2070             case SEAT_HEADREST_HEIGHT_POS:
2071                 return "SEAT_HEADREST_HEIGHT_POS";
2072             case SEAT_HEADREST_HEIGHT_MOVE:
2073                 return "SEAT_HEADREST_HEIGHT_MOVE";
2074             case SEAT_HEADREST_ANGLE_POS:
2075                 return "SEAT_HEADREST_ANGLE_POS";
2076             case SEAT_HEADREST_ANGLE_MOVE:
2077                 return "SEAT_HEADREST_ANGLE_MOVE";
2078             case SEAT_HEADREST_FORE_AFT_POS:
2079                 return "SEAT_HEADREST_FORE_AFT_POS";
2080             case SEAT_HEADREST_FORE_AFT_MOVE:
2081                 return "SEAT_HEADREST_FORE_AFT_MOVE";
2082             case SEAT_OCCUPANCY:
2083                 return "SEAT_OCCUPANCY";
2084             case WINDOW_POS:
2085                 return "WINDOW_POS";
2086             case WINDOW_MOVE:
2087                 return "WINDOW_MOVE";
2088             case WINDOW_LOCK:
2089                 return "WINDOW_LOCK";
2090             case VEHICLE_MAP_SERVICE:
2091                 return "VEHICLE_MAP_SERVICE";
2092             case OBD2_LIVE_FRAME:
2093                 return "OBD2_LIVE_FRAME";
2094             case OBD2_FREEZE_FRAME:
2095                 return "OBD2_FREEZE_FRAME";
2096             case OBD2_FREEZE_FRAME_INFO:
2097                 return "OBD2_FREEZE_FRAME_INFO";
2098             case OBD2_FREEZE_FRAME_CLEAR:
2099                 return "OBD2_FREEZE_FRAME_CLEAR";
2100             case HEADLIGHTS_STATE:
2101                 return "HEADLIGHTS_STATE";
2102             case HIGH_BEAM_LIGHTS_STATE:
2103                 return "HIGH_BEAM_LIGHTS_STATE";
2104             case FOG_LIGHTS_STATE:
2105                 return "FOG_LIGHTS_STATE";
2106             case HAZARD_LIGHTS_STATE:
2107                 return "HAZARD_LIGHTS_STATE";
2108             case HEADLIGHTS_SWITCH:
2109                 return "HEADLIGHTS_SWITCH";
2110             case HIGH_BEAM_LIGHTS_SWITCH:
2111                 return "HIGH_BEAM_LIGHTS_SWITCH";
2112             case FOG_LIGHTS_SWITCH:
2113                 return "FOG_LIGHTS_SWITCH";
2114             case HAZARD_LIGHTS_SWITCH:
2115                 return "HAZARD_LIGHTS_SWITCH";
2116             case CABIN_LIGHTS_STATE:
2117                 return "CABIN_LIGHTS_STATE";
2118             case CABIN_LIGHTS_SWITCH:
2119                 return "CABIN_LIGHTS_SWITCH";
2120             case READING_LIGHTS_STATE:
2121                 return "READING_LIGHTS_STATE";
2122             case READING_LIGHTS_SWITCH:
2123                 return "READING_LIGHTS_SWITCH";
2124             case VEHICLE_SPEED_DISPLAY_UNITS:
2125                 return "VEHICLE_SPEED_DISPLAY_UNITS";
2126             case INITIAL_USER_INFO:
2127                 return "INITIAL_USER_INFO";
2128             case SWITCH_USER:
2129                 return "SWITCH_USER";
2130             case CREATE_USER:
2131                 return "CREATE_USER";
2132             case REMOVE_USER:
2133                 return "REMOVE_USER";
2134             case USER_IDENTIFICATION_ASSOCIATION:
2135                 return "USER_IDENTIFICATION_ASSOCIATION";
2136             case POWER_POLICY_REQ:
2137                 return "POWER_POLICY_REQ";
2138             case POWER_POLICY_GROUP_REQ:
2139                 return "POWER_POLICY_GROUP_REQ";
2140             case CURRENT_POWER_POLICY:
2141                 return "CURRENT_POWER_POLICY";
2142             case WATCHDOG_ALIVE:
2143                 return "WATCHDOG_ALIVE";
2144             case WATCHDOG_TERMINATED_PROCESS:
2145                 return "WATCHDOG_TERMINATED_PROCESS";
2146             case VHAL_HEARTBEAT:
2147                 return "VHAL_HEARTBEAT";
2148             case CLUSTER_SWITCH_UI:
2149                 return "CLUSTER_SWITCH_UI";
2150             case CLUSTER_DISPLAY_STATE:
2151                 return "CLUSTER_DISPLAY_STATE";
2152             case CLUSTER_REPORT_STATE:
2153                 return "CLUSTER_REPORT_STATE";
2154             case CLUSTER_REQUEST_DISPLAY:
2155                 return "CLUSTER_REQUEST_DISPLAY";
2156             case CLUSTER_NAVIGATION_STATE:
2157                 return "CLUSTER_NAVIGATION_STATE";
2158             case EPOCH_TIME:
2159                 return "EPOCH_TIME";
2160             case STORAGE_ENCRYPTION_BINDING_SEED:
2161                 return "STORAGE_ENCRYPTION_BINDING_SEED";
2162             case ELECTRONIC_TOLL_COLLECTION_CARD_STATUS:
2163                 return "ELECTRONIC_TOLL_COLLECTION_CARD_STATUS";
2164             case ELECTRONIC_TOLL_COLLECTION_CARD_TYPE:
2165                 return "ELECTRONIC_TOLL_COLLECTION_CARD_TYPE";
2166             default:
2167                 return "0x" + Integer.toHexString(property);
2168         }
2169     }
2170 }
2171