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