1 #ifndef HIDL_GENERATED_ANDROID_HARDWARE_AUTOMOTIVE_VEHICLE_V2_0_TYPES_H
2 #define HIDL_GENERATED_ANDROID_HARDWARE_AUTOMOTIVE_VEHICLE_V2_0_TYPES_H
3
4 #include <utils/NativeHandle.h>
5 #include <utils/misc.h>
6
7 #include <vector>
8 #include <string>
9 #include <sstream>
10
11 namespace android {
12 namespace hardware {
13
14 template<typename T>
15 using hidl_vec = std::vector<T>;
16
17 using hidl_string = std::string;
18
19 template <typename Enum>
20 using hidl_bitfield = typename std::underlying_type<Enum>::type;
21
22 std::string toString(const void *t);
23
24 // toString alias for numeric types
25 template<typename T, typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
toString(T t)26 inline std::string toString(T t) {
27 return std::to_string(t);
28 }
29
30 namespace details {
31
32 template<typename T, typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
33 inline std::string toHexString(T t, bool prefix = true) {
34 std::ostringstream os;
35 if (prefix) { os << std::showbase; }
36 os << std::hex << t;
37 return os.str();
38 }
39
40 template<>
toHexString(uint8_t t,bool prefix)41 inline std::string toHexString(uint8_t t, bool prefix) {
42 return toHexString(static_cast<int32_t>(t), prefix);
43 }
44
45 template<>
toHexString(int8_t t,bool prefix)46 inline std::string toHexString(int8_t t, bool prefix) {
47 return toHexString(static_cast<int32_t>(t), prefix);
48 }
49
50 template<typename Array>
51 std::string arrayToString(const Array &a, size_t size);
52
53 template<size_t SIZE1>
arraySizeToString()54 std::string arraySizeToString() {
55 return std::string{"["} + toString(SIZE1) + "]";
56 }
57
58 template<size_t SIZE1, size_t SIZE2, size_t... SIZES>
arraySizeToString()59 std::string arraySizeToString() {
60 return std::string{"["} + toString(SIZE1) + "]" + arraySizeToString<SIZE2, SIZES...>();
61 }
62
63 template<typename Array>
arrayToString(const Array & a,size_t size)64 std::string arrayToString(const Array &a, size_t size) {
65 using android::hardware::toString;
66 std::string os;
67 os += "{";
68 for (size_t i = 0; i < size; ++i) {
69 if (i > 0) {
70 os += ", ";
71 }
72 os += toString(a[i]);
73 }
74 os += "}";
75 return os;
76 }
77
78 } //namespace details
79
toString(const void * t)80 inline std::string toString(const void *t) {
81 return details::toHexString(reinterpret_cast<uintptr_t>(t));
82 }
83
84 // debug string dump. There will be quotes around the string!
toString(const hidl_string & hs)85 inline std::string toString(const hidl_string &hs) {
86 return std::string{"\""} + hs.c_str() + "\"";
87 }
88
89 // debug string dump, assuming that toString(T) is defined.
90 template<typename T>
toString(const hidl_vec<T> & a)91 std::string toString(const hidl_vec<T> &a) {
92 std::string os;
93 os += "[" + toString(a.size()) + "]";
94 os += details::arrayToString(a, a.size());
95 return os;
96 }
97
98 namespace automotive {
99 namespace vehicle {
100 namespace V2_0 {
101
102 // Forward declaration for forward reference support:
103 enum class VehiclePropertyType : int32_t;
104 enum class VehicleArea : int32_t;
105 enum class VehiclePropertyGroup : int32_t;
106 enum class VehicleProperty : int32_t;
107 enum class VehicleVendorPermission : int32_t;
108 enum class VehicleSeatOccupancyState : int32_t;
109 enum class VehicleLightState : int32_t;
110 enum class VehicleLightSwitch : int32_t;
111 enum class EvConnectorType : int32_t;
112 enum class PortLocationType : int32_t;
113 enum class FuelType : int32_t;
114 enum class VehicleHvacFanDirection : int32_t;
115 enum class VehicleOilLevel : int32_t;
116 enum class VehicleApPowerStateConfigFlag : int32_t;
117 enum class VehicleApPowerStateReq : int32_t;
118 enum class VehicleApPowerStateReqIndex : int32_t;
119 enum class VehicleApPowerStateShutdownParam : int32_t;
120 enum class VehicleApPowerStateReport : int32_t;
121 enum class VehicleHwKeyInputAction : int32_t;
122 enum class VehicleDisplay : int32_t;
123 enum class VehicleUnit : int32_t;
124 enum class VehiclePropertyChangeMode : int32_t;
125 enum class VehiclePropertyAccess : int32_t;
126 enum class VehiclePropertyStatus : int32_t;
127 enum class VehicleGear : int32_t;
128 enum class VehicleAreaSeat : int32_t;
129 enum class VehicleAreaWindow : int32_t;
130 enum class VehicleAreaDoor : int32_t;
131 enum class VehicleAreaMirror : int32_t;
132 enum class VehicleTurnSignal : int32_t;
133 struct VehicleAreaConfig;
134 struct VehiclePropConfig;
135 struct VehiclePropValue;
136 enum class VehicleIgnitionState : int32_t;
137 enum class SubscribeFlags : int32_t;
138 struct SubscribeOptions;
139 enum class StatusCode : int32_t;
140 enum class VehicleAreaWheel : int32_t;
141 enum class Obd2FuelSystemStatus : int32_t;
142 enum class Obd2IgnitionMonitorKind : int32_t;
143 enum class Obd2CommonIgnitionMonitors : int32_t;
144 enum class Obd2SparkIgnitionMonitors : int32_t;
145 enum class Obd2CompressionIgnitionMonitors : int32_t;
146 enum class Obd2SecondaryAirStatus : int32_t;
147 enum class Obd2FuelType : int32_t;
148 enum class DiagnosticIntegerSensorIndex : int32_t;
149 enum class DiagnosticFloatSensorIndex : int32_t;
150 enum class VmsMessageType : int32_t;
151 enum class VmsBaseMessageIntegerValuesIndex : int32_t;
152 enum class VmsStartSessionMessageIntegerValuesIndex : int32_t;
153 enum class VmsMessageWithLayerIntegerValuesIndex : int32_t;
154 enum class VmsMessageWithLayerAndPublisherIdIntegerValuesIndex : int32_t;
155 enum class VmsOfferingMessageIntegerValuesIndex : int32_t;
156 enum class VmsSubscriptionsStateIntegerValuesIndex : int32_t;
157 enum class VmsAvailabilityStateIntegerValuesIndex : int32_t;
158 enum class VmsPublisherInformationIntegerValuesIndex : int32_t;
159 enum class UserFlags : int32_t;
160 struct UserInfo;
161 struct UsersInfo;
162 enum class InitialUserInfoRequestType : int32_t;
163 struct InitialUserInfoRequest;
164 enum class InitialUserInfoResponseAction : int32_t;
165 struct InitialUserInfoResponse;
166 enum class SwitchUserMessageType : int32_t;
167 struct SwitchUserRequest;
168 enum class SwitchUserStatus : int32_t;
169 struct SwitchUserResponse;
170 struct CreateUserRequest;
171 enum class CreateUserStatus : int32_t;
172 struct CreateUserResponse;
173 struct RemoveUserRequest;
174 enum class UserIdentificationAssociationType : int32_t;
175 enum class UserIdentificationAssociationValue : int32_t;
176 enum class UserIdentificationAssociationSetValue : int32_t;
177 struct UserIdentificationGetRequest;
178 struct UserIdentificationSetRequest;
179 struct UserIdentificationResponse;
180 struct UserIdentificationAssociation;
181 struct UserIdentificationSetAssociation;
182 enum class RotaryInputType : int32_t;
183
184 // Order of inner types was changed for forward reference support.
185
186 /**
187 * Enumerates supported data type for VehicleProperty.
188 *
189 * Used to create property ID in VehicleProperty enum.
190 */
191 enum class VehiclePropertyType : int32_t {
192 STRING = 1048576 /* 0x00100000 */,
193 BOOLEAN = 2097152 /* 0x00200000 */,
194 INT32 = 4194304 /* 0x00400000 */,
195 INT32_VEC = 4259840 /* 0x00410000 */,
196 INT64 = 5242880 /* 0x00500000 */,
197 INT64_VEC = 5308416 /* 0x00510000 */,
198 FLOAT = 6291456 /* 0x00600000 */,
199 FLOAT_VEC = 6356992 /* 0x00610000 */,
200 BYTES = 7340032 /* 0x00700000 */,
201 /**
202 * Any combination of scalar or vector types. The exact format must be
203 * provided in the description of the property.
204 *
205 * For vendor MIXED type properties, configArray needs to be formatted in this
206 * structure.
207 * configArray[0], 1 indicates the property has a String value
208 * configArray[1], 1 indicates the property has a Boolean value .
209 * configArray[2], 1 indicates the property has an Integer value.
210 * configArray[3], the number indicates the size of Integer[] in the property.
211 * configArray[4], 1 indicates the property has a Long value.
212 * configArray[5], the number indicates the size of Long[] in the property.
213 * configArray[6], 1 indicates the property has a Float value.
214 * configArray[7], the number indicates the size of Float[] in the property.
215 * configArray[8], the number indicates the size of byte[] in the property.
216 * For example:
217 * {@code configArray = {1, 1, 1, 3, 0, 0, 0, 0, 0}} indicates the property has
218 * a String value, a Boolean value, an Integer value and an array with 3 integers.
219 */
220 MIXED = 14680064 /* 0x00e00000 */,
221 MASK = 16711680 /* 0x00ff0000 */,
222 };
223
224 /**
225 * Vehicle Areas
226 * Used to construct property IDs in the VehicleProperty enum.
227 *
228 * Some properties may be associated with particular vehicle areas. For
229 * example, VehicleProperty:DOOR_LOCK property must be associated with
230 * particular door, thus this property must be marked with
231 * VehicleArea:DOOR flag.
232 *
233 * Other properties may not be associated with particular vehicle area.
234 * These kinds of properties must have VehicleArea:GLOBAL flag.
235 *
236 * [Definition] Area: An area represents a unique element of an AreaType.
237 * For instance, if AreaType is WINDOW, then an area may be FRONT_WINDSHIELD.
238 *
239 * [Definition] AreaID: An AreaID is a combination of one or more areas,
240 * and is represented using a bitmask of Area enums. Different AreaTypes may
241 * not be mixed in a single AreaID. For instance, a window area cannot be
242 * combined with a seat area in an AreaID.
243 *
244 * Rules for mapping a zoned property to AreaIDs:
245 * - A property must be mapped to an array of AreaIDs that are impacted when
246 * the property value changes.
247 * - Each element in the array must represent an AreaID, in which the
248 * property value can only be changed together in all the areas within
249 * the AreaID and never independently. That is, when the property value
250 * changes in one of the areas in an AreaID in the array, then it must
251 * automatically change in all other areas in the AreaID.
252 * - The property value must be independently controllable in any two
253 * different AreaIDs in the array.
254 * - An area must only appear once in the array of AreaIDs. That is, an
255 * area must only be part of a single AreaID in the array.
256 *
257 * [Definition] Global Property: A property that applies to the entire car
258 * and is not associated with a specific area. For example, FUEL_LEVEL,
259 * HVAC_STEERING_WHEEL_HEAT.
260 *
261 * Rules for mapping a global property to AreaIDs:
262 * - A global property must not be mapped to AreaIDs.
263 */
264 enum class VehicleArea : int32_t {
265 GLOBAL = 16777216 /* 0x01000000 */,
266 /**
267 * WINDOW maps to enum VehicleAreaWindow
268 */
269 WINDOW = 50331648 /* 0x03000000 */,
270 /**
271 * MIRROR maps to enum VehicleAreaMirror
272 */
273 MIRROR = 67108864 /* 0x04000000 */,
274 /**
275 * SEAT maps to enum VehicleAreaSeat
276 */
277 SEAT = 83886080 /* 0x05000000 */,
278 /**
279 * DOOR maps to enum VehicleAreaDoor
280 */
281 DOOR = 100663296 /* 0x06000000 */,
282 /**
283 * WHEEL maps to enum VehicleAreaWheel
284 */
285 WHEEL = 117440512 /* 0x07000000 */,
286 MASK = 251658240 /* 0x0f000000 */,
287 };
288
289 /**
290 * Enumerates property groups.
291 *
292 * Used to create property ID in VehicleProperty enum.
293 */
294 enum class VehiclePropertyGroup : int32_t {
295 /**
296 * Properties declared in AOSP must use this flag.
297 */
298 SYSTEM = 268435456 /* 0x10000000 */,
299 /**
300 * Properties declared by vendors must use this flag.
301 */
302 VENDOR = 536870912 /* 0x20000000 */,
303 MASK = -268435456 /* 0xf0000000 */,
304 };
305
306 /**
307 * Declares all vehicle properties. VehicleProperty has a bitwise structure.
308 * Each property must have:
309 * - a unique id from range 0x0100 - 0xffff
310 * - associated data type using VehiclePropertyType
311 * - property group (VehiclePropertyGroup)
312 * - vehicle area (VehicleArea)
313 *
314 * Vendors are allowed to extend this enum with their own properties. In this
315 * case they must use VehiclePropertyGroup:VENDOR flag when the property is
316 * declared.
317 *
318 * When a property's status field is not set to AVAILABLE:
319 * - IVehicle#set may return StatusCode::NOT_AVAILABLE.
320 * - IVehicle#get is not guaranteed to work.
321 *
322 * Properties set to values out of range must be ignored and no action taken
323 * in response to such ill formed requests.
324 */
325 enum class VehicleProperty : int32_t {
326 /**
327 * Undefined property.
328 */
329 INVALID = 0 /* 0x00000000 */,
330 /**
331 * VIN of vehicle
332 *
333 * @change_mode VehiclePropertyChangeMode:STATIC
334 * @access VehiclePropertyAccess:READ
335 */
336 INFO_VIN = 286261504 /* (0x0100 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:STRING | VehicleArea:GLOBAL) */,
337 /**
338 * Manufacturer of vehicle
339 *
340 * @change_mode VehiclePropertyChangeMode:STATIC
341 * @access VehiclePropertyAccess:READ
342 */
343 INFO_MAKE = 286261505 /* (0x0101 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:STRING | VehicleArea:GLOBAL) */,
344 /**
345 * Model of vehicle
346 *
347 * @change_mode VehiclePropertyChangeMode:STATIC
348 * @access VehiclePropertyAccess:READ
349 */
350 INFO_MODEL = 286261506 /* (0x0102 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:STRING | VehicleArea:GLOBAL) */,
351 /**
352 * Model year of vehicle.
353 *
354 * @change_mode VehiclePropertyChangeMode:STATIC
355 * @access VehiclePropertyAccess:READ
356 * @unit VehicleUnit:YEAR
357 */
358 INFO_MODEL_YEAR = 289407235 /* (0x0103 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
359 /**
360 * Fuel capacity of the vehicle in milliliters
361 *
362 * @change_mode VehiclePropertyChangeMode:STATIC
363 * @access VehiclePropertyAccess:READ
364 * @unit VehicleUnit:MILLILITER
365 */
366 INFO_FUEL_CAPACITY = 291504388 /* (0x0104 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
367 /**
368 * List of fuels the vehicle may use
369 *
370 * @change_mode VehiclePropertyChangeMode:STATIC
371 * @access VehiclePropertyAccess:READ
372 * @data_enum FuelType
373 */
374 INFO_FUEL_TYPE = 289472773 /* (0x0105 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL) */,
375 /**
376 * Battery capacity of the vehicle, if EV or hybrid. This is the nominal
377 * battery capacity when the vehicle is new.
378 *
379 * @change_mode VehiclePropertyChangeMode:STATIC
380 * @access VehiclePropertyAccess:READ
381 * @unit VehicleUnit:WH
382 */
383 INFO_EV_BATTERY_CAPACITY = 291504390 /* (0x0106 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
384 /**
385 * List of connectors this EV may use
386 *
387 * @change_mode VehiclePropertyChangeMode:STATIC
388 * @data_enum EvConnectorType
389 * @access VehiclePropertyAccess:READ
390 */
391 INFO_EV_CONNECTOR_TYPE = 289472775 /* (0x0107 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL) */,
392 /**
393 * Fuel door location
394 *
395 * @change_mode VehiclePropertyChangeMode:STATIC
396 * @data_enum PortLocationType
397 * @access VehiclePropertyAccess:READ
398 */
399 INFO_FUEL_DOOR_LOCATION = 289407240 /* (0x0108 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
400 /**
401 * EV port location
402 *
403 * @change_mode VehiclePropertyChangeMode:STATIC
404 * @access VehiclePropertyAccess:READ
405 * @data_enum PortLocationType
406 */
407 INFO_EV_PORT_LOCATION = 289407241 /* (0x0109 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
408 /**
409 * Driver's seat location
410 * VHAL implementations must ignore the areaId. Use VehicleArea:GLOBAL.
411 *
412 * @change_mode VehiclePropertyChangeMode:STATIC
413 * @data_enum VehicleAreaSeat
414 * @access VehiclePropertyAccess:READ
415 */
416 INFO_DRIVER_SEAT = 356516106 /* (0x010A | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
417 /**
418 * Exterior dimensions of vehicle.
419 *
420 * int32Values[0] = height
421 * int32Values[1] = length
422 * int32Values[2] = width
423 * int32Values[3] = width including mirrors
424 * int32Values[4] = wheel base
425 * int32Values[5] = track width front
426 * int32Values[6] = track width rear
427 * int32Values[7] = curb to curb turning radius
428 *
429 * @change_mode VehiclePropertyChangeMode:STATIC
430 * @access VehiclePropertyAccess:READ
431 * @unit VehicleUnit:MILLIMETER
432 */
433 INFO_EXTERIOR_DIMENSIONS = 289472779 /* (0x010B | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL) */,
434 /**
435 * Multiple EV port locations
436 *
437 * Implement this property if the vehicle has multiple EV ports.
438 * Port locations are defined in PortLocationType.
439 * For example, a car has one port in front left and one port in rear left:
440 * int32Values[0] = PortLocationType::FRONT_LEFT
441 * int32Values[0] = PortLocationType::REAR_LEFT
442 *
443 * @change_mode VehiclePropertyChangeMode:STATIC
444 * @access VehiclePropertyAccess:READ
445 * @data_enum PortLocationType
446 */
447 INFO_MULTI_EV_PORT_LOCATIONS = 289472780 /* (0x010C | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL) */,
448 /**
449 * Current odometer value of the vehicle
450 *
451 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
452 * @access VehiclePropertyAccess:READ
453 * @unit VehicleUnit:KILOMETER
454 */
455 PERF_ODOMETER = 291504644 /* (0x0204 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
456 /**
457 * Speed of the vehicle
458 *
459 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
460 * @access VehiclePropertyAccess:READ
461 * @unit VehicleUnit:METER_PER_SEC
462 */
463 PERF_VEHICLE_SPEED = 291504647 /* (0x0207 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
464 /**
465 * Speed of the vehicle for displays
466 *
467 * Some cars display a slightly slower speed than the actual speed. This is
468 * usually displayed on the speedometer.
469 *
470 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
471 * @access VehiclePropertyAccess:READ
472 * @unit VehicleUnit:METER_PER_SEC
473 */
474 PERF_VEHICLE_SPEED_DISPLAY = 291504648 /* (0x0208 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
475 /**
476 * Front bicycle model steering angle for vehicle
477 *
478 * Angle is in degrees. Left is negative.
479 *
480 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
481 * @access VehiclePropertyAccess:READ
482 * @unit VehicleUnit:DEGREES
483 */
484 PERF_STEERING_ANGLE = 291504649 /* (0x0209 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
485 /**
486 * Rear bicycle model steering angle for vehicle
487 *
488 * Angle is in degrees. Left is negative.
489 *
490 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
491 * @access VehiclePropertyAccess:READ
492 * @unit VehicleUnit:DEGREES
493 */
494 PERF_REAR_STEERING_ANGLE = 291504656 /* (0x0210 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
495 /**
496 * Temperature of engine coolant
497 *
498 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
499 * @access VehiclePropertyAccess:READ
500 * @unit VehicleUnit:CELSIUS
501 */
502 ENGINE_COOLANT_TEMP = 291504897 /* (0x0301 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
503 /**
504 * Engine oil level
505 *
506 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
507 * @access VehiclePropertyAccess:READ
508 * @data_enum VehicleOilLevel
509 */
510 ENGINE_OIL_LEVEL = 289407747 /* (0x0303 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
511 /**
512 * Temperature of engine oil
513 *
514 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
515 * @access VehiclePropertyAccess:READ
516 * @unit VehicleUnit:CELSIUS
517 */
518 ENGINE_OIL_TEMP = 291504900 /* (0x0304 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
519 /**
520 * Engine rpm
521 *
522 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
523 * @access VehiclePropertyAccess:READ
524 * @unit VehicleUnit:RPM
525 */
526 ENGINE_RPM = 291504901 /* (0x0305 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
527 /**
528 * Reports wheel ticks
529 *
530 * The first element in the vector is a reset count. A reset indicates
531 * previous tick counts are not comparable with this and future ones. Some
532 * sort of discontinuity in tick counting has occurred.
533 *
534 * The next four elements represent ticks for individual wheels in the
535 * following order: front left, front right, rear right, rear left. All
536 * tick counts are cumulative. Tick counts increment when the vehicle
537 * moves forward, and decrement when vehicles moves in reverse. The ticks
538 * should be reset to 0 when the vehicle is started by the user.
539 *
540 * int64Values[0] = reset count
541 * int64Values[1] = front left ticks
542 * int64Values[2] = front right ticks
543 * int64Values[3] = rear right ticks
544 * int64Values[4] = rear left ticks
545 *
546 * configArray is used to indicate the micrometers-per-wheel-tick value and
547 * which wheels are supported. configArray is set as follows:
548 *
549 * configArray[0], bits [0:3] = supported wheels. Uses enum Wheel.
550 * configArray[1] = micrometers per front left wheel tick
551 * configArray[2] = micrometers per front right wheel tick
552 * configArray[3] = micrometers per rear right wheel tick
553 * configArray[4] = micrometers per rear left wheel tick
554 *
555 * NOTE: If a wheel is not supported, its value shall always be set to 0.
556 *
557 * VehiclePropValue.timestamp must be correctly filled in.
558 *
559 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
560 * @access VehiclePropertyAccess:READ
561 */
562 WHEEL_TICK = 290521862 /* (0x0306 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT64_VEC | VehicleArea:GLOBAL) */,
563 /**
564 * Fuel remaining in the the vehicle, in milliliters
565 *
566 * Value may not exceed INFO_FUEL_CAPACITY
567 *
568 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
569 * @access VehiclePropertyAccess:READ
570 * @unit VehicleUnit:MILLILITER
571 */
572 FUEL_LEVEL = 291504903 /* (0x0307 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
573 /**
574 * Fuel door open
575 *
576 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
577 * @access VehiclePropertyAccess:READ_WRITE
578 */
579 FUEL_DOOR_OPEN = 287310600 /* (0x0308 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
580 /**
581 * EV battery level in WH, if EV or hybrid
582 *
583 * Value may not exceed INFO_EV_BATTERY_CAPACITY
584 *
585 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
586 * @access VehiclePropertyAccess:READ
587 * @unit VehicleUnit:WH
588 */
589 EV_BATTERY_LEVEL = 291504905 /* (0x0309 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
590 /**
591 * EV charge port open
592 *
593 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
594 * @access VehiclePropertyAccess:READ_WRITE
595 */
596 EV_CHARGE_PORT_OPEN = 287310602 /* (0x030A | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
597 /**
598 * EV charge port connected
599 *
600 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
601 * @access VehiclePropertyAccess:READ
602 */
603 EV_CHARGE_PORT_CONNECTED = 287310603 /* (0x030B | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
604 /**
605 * EV instantaneous charge rate in milliwatts
606 *
607 * Positive value indicates battery is being charged.
608 * Negative value indicates battery being discharged.
609 *
610 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
611 * @access VehiclePropertyAccess:READ
612 * @unit VehicleUnit:MW
613 */
614 EV_BATTERY_INSTANTANEOUS_CHARGE_RATE = 291504908 /* (0x030C | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
615 /**
616 * Range remaining
617 *
618 * Meters remaining of fuel and charge. Range remaining shall account for
619 * all energy sources in a vehicle. For example, a hybrid car's range will
620 * be the sum of the ranges based on fuel and battery.
621 *
622 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
623 * @access VehiclePropertyAccess:READ_WRITE
624 * @unit VehicleUnit:METER
625 */
626 RANGE_REMAINING = 291504904 /* (0x0308 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
627 /**
628 * Tire pressure
629 *
630 * min/max value indicates tire pressure sensor range. Each tire will have a separate min/max
631 * value denoted by its areaConfig.areaId.
632 *
633 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
634 * @access VehiclePropertyAccess:READ
635 * @unit VehicleUnit:KILOPASCAL
636 */
637 TIRE_PRESSURE = 392168201 /* (0x0309 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:WHEEL) */,
638 /**
639 * Currently selected gear
640 *
641 * This is the gear selected by the user.
642 *
643 * Values in the config data must represent the list of supported gears
644 * for this vehicle. For example, config data for an automatic transmission
645 * must contain {GEAR_NEUTRAL, GEAR_REVERSE, GEAR_PARK, GEAR_DRIVE,
646 * GEAR_1, GEAR_2,...} and for manual transmission the list must be
647 * {GEAR_NEUTRAL, GEAR_REVERSE, GEAR_1, GEAR_2,...}
648 *
649 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
650 * @access VehiclePropertyAccess:READ
651 * @data_enum VehicleGear
652 */
653 GEAR_SELECTION = 289408000 /* (0x0400 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
654 /**
655 * Current gear. In non-manual case, selected gear may not
656 * match the current gear. For example, if the selected gear is GEAR_DRIVE,
657 * the current gear will be one of GEAR_1, GEAR_2 etc, which reflects
658 * the actual gear the transmission is currently running in.
659 *
660 * Values in the config data must represent the list of supported gears
661 * for this vehicle. For example, config data for an automatic transmission
662 * must contain {GEAR_NEUTRAL, GEAR_REVERSE, GEAR_PARK, GEAR_1, GEAR_2,...}
663 * and for manual transmission the list must be
664 * {GEAR_NEUTRAL, GEAR_REVERSE, GEAR_1, GEAR_2,...}. This list need not be the
665 * same as that of the supported gears reported in GEAR_SELECTION.
666 *
667 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
668 * @access VehiclePropertyAccess:READ
669 * @data_enum VehicleGear
670 */
671 CURRENT_GEAR = 289408001 /* (0x0401 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
672 /**
673 * Parking brake state.
674 *
675 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
676 * @access VehiclePropertyAccess:READ_WRITE
677 */
678 PARKING_BRAKE_ON = 287310850 /* (0x0402 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
679 /**
680 * Auto-apply parking brake.
681 *
682 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
683 * @access VehiclePropertyAccess:READ_WRITE
684 */
685 PARKING_BRAKE_AUTO_APPLY = 287310851 /* (0x0403 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
686 /**
687 * Warning for fuel low level.
688 *
689 * This property corresponds to the low fuel warning on the dashboard.
690 * Once FUEL_LEVEL_LOW is set, it should not be cleared until more fuel is
691 * added to the vehicle. This property may take into account all fuel
692 * sources for a vehicle - for example:
693 *
694 * For a gas powered vehicle, this property is based soley on gas level.
695 * For a battery powered vehicle, this property is based solely on battery level.
696 * For a hybrid vehicle, this property may be based on the combination of gas and battery
697 * levels, at the OEM's discretion.
698 *
699 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
700 * @access VehiclePropertyAccess:READ
701 */
702 FUEL_LEVEL_LOW = 287310853 /* (0x0405 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
703 /**
704 * Night mode
705 *
706 * True indicates that the night mode sensor has detected that the car cabin environment has
707 * low light. The platform could use this, for example, to enable appropriate UI for
708 * better viewing in dark or low light environments.
709 *
710 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
711 * @access VehiclePropertyAccess:READ
712 */
713 NIGHT_MODE = 287310855 /* (0x0407 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
714 /**
715 * State of the vehicles turn signals
716 *
717 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
718 * @access VehiclePropertyAccess:READ
719 * @data_enum VehicleTurnSignal
720 */
721 TURN_SIGNAL_STATE = 289408008 /* (0x0408 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
722 /**
723 * Represents ignition state
724 *
725 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
726 * @access VehiclePropertyAccess:READ
727 * @data_enum VehicleIgnitionState
728 */
729 IGNITION_STATE = 289408009 /* (0x0409 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
730 /**
731 * ABS is active
732 *
733 * Set to true when ABS is active. Reset to false when ABS is off. This
734 * property may be intermittently set (pulsing) based on the real-time
735 * state of the ABS system.
736 *
737 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
738 * @access VehiclePropertyAccess:READ
739 */
740 ABS_ACTIVE = 287310858 /* (0x040A | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
741 /**
742 * Traction Control is active
743 *
744 * Set to true when traction control (TC) is active. Reset to false when
745 * TC is off. This property may be intermittently set (pulsing) based on
746 * the real-time state of the TC system.
747 *
748 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
749 * @access VehiclePropertyAccess:READ
750 */
751 TRACTION_CONTROL_ACTIVE = 287310859 /* (0x040B | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
752 /*
753 * HVAC Properties
754 *
755 * Additional rules for mapping a zoned HVAC property to AreaIDs:
756 * - Every seat in VehicleAreaSeat that is available in the car, must be
757 * part of an AreaID in the AreaID array.
758 *
759 * Example 1: A car has two front seats (ROW_1_LEFT, ROW_1_RIGHT) and three
760 * back seats (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT). There are two
761 * temperature control units -- driver side and passenger side.
762 * - A valid mapping set of AreaIDs for HVAC_TEMPERATURE_SET would be a
763 * two element array:
764 * - ROW_1_LEFT | ROW_2_LEFT
765 * - ROW_1_RIGHT | ROW_2_CENTER | ROW_2_RIGHT
766 * - An alternative mapping for the same hardware configuration would be:
767 * - ROW_1_LEFT | ROW_2_CENTER | ROW_2_LEFT
768 * - ROW_1_RIGHT | ROW_2_RIGHT
769 * The temperature controllers are assigned to the seats which they
770 * "most influence", but every seat must be included exactly once. The
771 * assignment of the center rear seat to the left or right AreaID may seem
772 * arbitrary, but the inclusion of every seat in exactly one AreaID ensures
773 * that the seats in the car are all expressed and that a "reasonable" way
774 * to affect each seat is available.
775 *
776 * Example 2: A car has three seat rows with two seats in the front row (ROW_1_LEFT,
777 * ROW_1_RIGHT) and three seats in the second (ROW_2_LEFT, ROW_2_CENTER,
778 * ROW_2_RIGHT) and third rows (ROW_3_LEFT, ROW_3_CENTER, ROW_3_RIGHT). There
779 * are three temperature control units -- driver side, passenger side, and rear.
780 * - A reasonable way to map HVAC_TEMPERATURE_SET to AreaIDs is a three
781 * element array:
782 * - ROW_1_LEFT
783 * - ROW_1_RIGHT
784 * - ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT | ROW_3_LEFT | ROW_3_CENTER | ROW_3_RIGHT
785 *
786 *
787 * Fan speed setting
788 *
789 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
790 * @access VehiclePropertyAccess:READ_WRITE
791 */
792 HVAC_FAN_SPEED = 356517120 /* (0x0500 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
793 /**
794 * Fan direction setting
795 *
796 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
797 * @access VehiclePropertyAccess:READ_WRITE
798 * @data_enum VehicleHvacFanDirection
799 */
800 HVAC_FAN_DIRECTION = 356517121 /* (0x0501 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
801 /**
802 * HVAC current temperature.
803 *
804 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
805 * @access VehiclePropertyAccess:READ
806 * @unit VehicleUnit:CELSIUS
807 */
808 HVAC_TEMPERATURE_CURRENT = 358614274 /* (0x0502 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:SEAT) */,
809 /**
810 * HVAC, target temperature set.
811 *
812 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
813 * @access VehiclePropertyAccess:READ_WRITE
814 * @unit VehicleUnit:CELSIUS
815 */
816 HVAC_TEMPERATURE_SET = 358614275 /* (0x0503 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:SEAT) */,
817 /**
818 * Fan-based defrost for designated window.
819 *
820 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
821 * @access VehiclePropertyAccess:READ_WRITE
822 */
823 HVAC_DEFROSTER = 320865540 /* (0x0504 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:WINDOW) */,
824 /**
825 * On/off AC for designated areaId
826 *
827 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
828 * @access VehiclePropertyAccess:READ_WRITE
829 * @config_flags Supported areaIds
830 */
831 HVAC_AC_ON = 354419973 /* (0x0505 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
832 /**
833 * On/off max AC
834 *
835 * When MAX AC is on, the ECU may adjust the vent position, fan speed,
836 * temperature, etc as necessary to cool the vehicle as quickly as possible.
837 * Any parameters modified as a side effect of turning on/off the MAX AC
838 * parameter shall generate onPropertyEvent() callbacks to the VHAL.
839 *
840 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
841 * @access VehiclePropertyAccess:READ_WRITE
842 */
843 HVAC_MAX_AC_ON = 354419974 /* (0x0506 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
844 /**
845 * On/off max defrost
846 *
847 * When MAX DEFROST is on, the ECU may adjust the vent position, fan speed,
848 * temperature, etc as necessary to defrost the windows as quickly as
849 * possible. Any parameters modified as a side effect of turning on/off
850 * the MAX DEFROST parameter shall generate onPropertyEvent() callbacks to
851 * the VHAL.
852 *
853 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
854 * @access VehiclePropertyAccess:READ_WRITE
855 */
856 HVAC_MAX_DEFROST_ON = 354419975 /* (0x0507 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
857 /**
858 * Recirculation on/off
859 *
860 * Controls the supply of exterior air to the cabin. Recirc “on” means the
861 * majority of the airflow into the cabin is originating in the cabin.
862 * Recirc “off” means the majority of the airflow into the cabin is coming
863 * from outside the car.
864 *
865 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
866 * @access VehiclePropertyAccess:READ_WRITE
867 */
868 HVAC_RECIRC_ON = 354419976 /* (0x0508 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
869 /**
870 * Enable temperature coupling between areas.
871 *
872 * The AreaIDs for HVAC_DUAL_ON property shall contain a combination of
873 * HVAC_TEMPERATURE_SET AreaIDs that can be coupled together. If
874 * HVAC_TEMPERATURE_SET is mapped to AreaIDs [a_1, a_2, ..., a_n], and if
875 * HVAC_DUAL_ON can be enabled to couple a_i and a_j, then HVAC_DUAL_ON
876 * property must be mapped to [a_i | a_j]. Further, if a_k and a_l can also
877 * be coupled together separately then HVAC_DUAL_ON must be mapped to
878 * [a_i | a_j, a_k | a_l].
879 *
880 * Example: A car has two front seats (ROW_1_LEFT, ROW_1_RIGHT) and three
881 * back seats (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT). There are two
882 * temperature control units -- driver side and passenger side -- which can
883 * be optionally synchronized. This may be expressed in the AreaIDs this way:
884 * - HVAC_TEMPERATURE_SET->[ROW_1_LEFT | ROW_2_LEFT, ROW_1_RIGHT | ROW_2_CENTER | ROW_2_RIGHT]
885 * - HVAC_DUAL_ON->[ROW_1_LEFT | ROW_2_LEFT | ROW_1_RIGHT | ROW_2_CENTER | ROW_2_RIGHT]
886 *
887 * When the property is enabled, the ECU must synchronize the temperature
888 * for the affected areas. Any parameters modified as a side effect
889 * of turning on/off the DUAL_ON parameter shall generate
890 * onPropertyEvent() callbacks to the VHAL. In addition, if setting
891 * a temperature (i.e. driver's temperature) changes another temperature
892 * (i.e. front passenger's temperature), then the appropriate
893 * onPropertyEvent() callbacks must be generated. If a user changes a
894 * temperature that breaks the coupling (e.g. setting the passenger
895 * temperature independently) then the VHAL must send the appropriate
896 * onPropertyEvent() callbacks (i.e. HVAC_DUAL_ON = false,
897 * HVAC_TEMPERATURE_SET[AreaID] = xxx, etc).
898 *
899 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
900 * @access VehiclePropertyAccess:READ_WRITE
901 */
902 HVAC_DUAL_ON = 354419977 /* (0x0509 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
903 /**
904 * On/off automatic mode
905 *
906 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
907 * @access VehiclePropertyAccess:READ_WRITE
908 */
909 HVAC_AUTO_ON = 354419978 /* (0x050A | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
910 /**
911 * Seat heating/cooling
912 *
913 * Negative values indicate cooling.
914 * 0 indicates off.
915 * Positive values indicate heating.
916 *
917 * Some vehicles may have multiple levels of heating and cooling. The
918 * min/max range defines the allowable range and number of steps in each
919 * direction.
920 *
921 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
922 * @access VehiclePropertyAccess:READ_WRITE
923 */
924 HVAC_SEAT_TEMPERATURE = 356517131 /* (0x050B | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
925 /**
926 * Side Mirror Heat
927 *
928 * Increasing values denote higher heating levels for side mirrors.
929 * The Max value in the config data represents the highest heating level.
930 * The Min value in the config data MUST be zero and indicates no heating.
931 *
932 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
933 * @access VehiclePropertyAccess:READ_WRITE
934 */
935 HVAC_SIDE_MIRROR_HEAT = 339739916 /* (0x050C | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:MIRROR) */,
936 /**
937 * Steering Wheel Heating/Cooling
938 *
939 * Sets the amount of heating/cooling for the steering wheel
940 * config data Min and Max MUST be set appropriately.
941 * Positive value indicates heating.
942 * Negative value indicates cooling.
943 * 0 indicates temperature control is off.
944 *
945 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
946 * @access VehiclePropertyAccess:READ_WRITE
947 */
948 HVAC_STEERING_WHEEL_HEAT = 289408269 /* (0x050D | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
949 /**
950 * Temperature units for display
951 *
952 * Indicates whether the vehicle is displaying temperature to the user as
953 * Celsius or Fahrenheit.
954 * VehiclePropConfig.configArray is used to indicate the supported temperature display units.
955 * For example: configArray[0] = CELSIUS
956 * configArray[1] = FAHRENHEIT
957 *
958 * This parameter MAY be used for displaying any HVAC temperature in the system.
959 * Values must be one of VehicleUnit::CELSIUS or VehicleUnit::FAHRENHEIT
960 * Note that internally, all temperatures are represented in floating point Celsius.
961 *
962 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
963 * @access VehiclePropertyAccess:READ_WRITE
964 * @data_enum VehicleUnit
965 */
966 HVAC_TEMPERATURE_DISPLAY_UNITS = 289408270 /* (0x050E | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
967 /**
968 * Actual fan speed
969 *
970 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
971 * @access VehiclePropertyAccess:READ
972 */
973 HVAC_ACTUAL_FAN_SPEED_RPM = 356517135 /* (0x050F | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
974 /**
975 * Represents global power state for HVAC. Setting this property to false
976 * MAY mark some properties that control individual HVAC features/subsystems
977 * to UNAVAILABLE state. Setting this property to true MAY mark some
978 * properties that control individual HVAC features/subsystems to AVAILABLE
979 * state (unless any/all of them are UNAVAILABLE on their own individual
980 * merits).
981 *
982 * [Definition] HvacPower_DependentProperties: Properties that need HVAC to be
983 * powered on in order to enable their functionality. For example, in some cars,
984 * in order to turn on the AC, HVAC must be powered on first.
985 *
986 * HvacPower_DependentProperties list must be set in the
987 * VehiclePropConfig.configArray. HvacPower_DependentProperties must only contain
988 * properties that are associated with VehicleArea:SEAT. Properties that are not
989 * associated with VehicleArea:SEAT, for example, HVAC_DEFROSTER, must never
990 * depend on HVAC_POWER_ON property and must never be part of
991 * HvacPower_DependentProperties list.
992 *
993 * AreaID mapping for HVAC_POWER_ON property must contain all AreaIDs that
994 * HvacPower_DependentProperties are mapped to.
995 *
996 * Example 1: A car has two front seats (ROW_1_LEFT, ROW_1_RIGHT) and three back
997 * seats (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT). If the HVAC features (AC,
998 * Temperature etc.) throughout the car are dependent on a single HVAC power
999 * controller then HVAC_POWER_ON must be mapped to
1000 * [ROW_1_LEFT | ROW_1_RIGHT | ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT].
1001 *
1002 * Example 2: A car has two seats in the front row (ROW_1_LEFT, ROW_1_RIGHT) and
1003 * three seats in the second (ROW_2_LEFT, ROW_2_CENTER, ROW_2_RIGHT) and third
1004 * rows (ROW_3_LEFT, ROW_3_CENTER, ROW_3_RIGHT). If the car has temperature
1005 * controllers in the front row which can operate entirely independently of
1006 * temperature controllers in the back of the vehicle, then HVAC_POWER_ON
1007 * must be mapped to a two element array:
1008 * - ROW_1_LEFT | ROW_1_RIGHT
1009 * - ROW_2_LEFT | ROW_2_CENTER | ROW_2_RIGHT | ROW_3_LEFT | ROW_3_CENTER | ROW_3_RIGHT
1010 *
1011 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1012 * @access VehiclePropertyAccess:READ_WRITE
1013 */
1014 HVAC_POWER_ON = 354419984 /* (0x0510 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
1015 /**
1016 * Fan Positions Available
1017 *
1018 * This is a bit mask of fan positions available for the zone. Each
1019 * available fan direction is denoted by a separate entry in the vector. A
1020 * fan direction may have multiple bits from vehicle_hvac_fan_direction set.
1021 * For instance, a typical car may have the following fan positions:
1022 * - FAN_DIRECTION_FACE (0x1)
1023 * - FAN_DIRECTION_FLOOR (0x2)
1024 * - FAN_DIRECTION_FACE | FAN_DIRECTION_FLOOR (0x3)
1025 * - FAN_DIRECTION_DEFROST (0x4)
1026 * - FAN_DIRECTION_FLOOR | FAN_DIRECTION_DEFROST (0x6)
1027 *
1028 * @change_mode VehiclePropertyChangeMode:STATIC
1029 * @access VehiclePropertyAccess:READ
1030 * @data_enum VehicleHvacFanDirection
1031 */
1032 HVAC_FAN_DIRECTION_AVAILABLE = 356582673 /* (0x0511 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:SEAT) */,
1033 /**
1034 * Automatic recirculation on/off
1035 *
1036 * When automatic recirculation is ON, the HVAC system may automatically
1037 * switch to recirculation mode if the vehicle detects poor incoming air
1038 * quality.
1039 *
1040 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1041 * @access VehiclePropertyAccess:READ_WRITE
1042 */
1043 HVAC_AUTO_RECIRC_ON = 354419986 /* (0x0512 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
1044 /**
1045 * Seat ventilation
1046 *
1047 * 0 indicates off.
1048 * Positive values indicates ventilation level.
1049 *
1050 * Used by HVAC apps and Assistant to enable, change, or read state of seat
1051 * ventilation. This is different than seating cooling. It can be on at the
1052 * same time as cooling, or not.
1053 *
1054 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1055 * @access VehiclePropertyAccess:READ_WRITE
1056 */
1057 HVAC_SEAT_VENTILATION = 356517139 /* (0x0513 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1058 /**
1059 * Electric defrosters' status
1060 *
1061 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1062 * @access VehiclePropertyAccess:READ_WRITE
1063 */
1064 HVAC_ELECTRIC_DEFROSTER_ON = 320865556 /* (0x0514 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:WINDOW) */,
1065 /**
1066 * Distance units for display
1067 *
1068 * Indicates which units the car is using to display distances to the user. Eg. Mile, Meter
1069 * Kilometer.
1070 *
1071 * Distance units are defined in VehicleUnit.
1072 * VehiclePropConfig.configArray is used to indicate the supported distance display units.
1073 * For example: configArray[0] = METER
1074 * configArray[1] = KILOMETER
1075 * configArray[2] = MILE
1076 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1077 * @access VehiclePropertyAccess:READ_WRITE
1078 * @data_enum VehicleUnit
1079 */
1080 DISTANCE_DISPLAY_UNITS = 289408512 /* (0x0600 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1081 /**
1082 * Fuel volume units for display
1083 *
1084 * Indicates which units the car is using to display fuel volume to the user. Eg. Liter or
1085 * Gallon.
1086 *
1087 * VehiclePropConfig.configArray is used to indicate the supported fuel volume display units.
1088 * Volume units are defined in VehicleUnit.
1089 * For example: configArray[0] = LITER
1090 * configArray[1] = GALLON
1091 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1092 * @access VehiclePropertyAccess:READ_WRITE
1093 * @data_enum VehicleUnit
1094 */
1095 FUEL_VOLUME_DISPLAY_UNITS = 289408513 /* (0x0601 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1096 /**
1097 * Tire pressure units for display
1098 *
1099 * Indicates which units the car is using to display tire pressure to the user. Eg. PSI, Bar or
1100 * Kilopascal.
1101 *
1102 * VehiclePropConfig.configArray is used to indicate the supported pressure display units.
1103 * Pressure units are defined in VehicleUnit.
1104 * For example: configArray[0] = KILOPASCAL
1105 * configArray[1] = PSI
1106 * configArray[2] = BAR
1107 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1108 * @access VehiclePropertyAccess:READ_WRITE
1109 * @data_enum VehicleUnit
1110 */
1111 TIRE_PRESSURE_DISPLAY_UNITS = 289408514 /* (0x0602 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1112 /**
1113 * EV battery units for display
1114 *
1115 * Indicates which units the car is using to display EV battery information to the user. Eg.
1116 * watt-hours(Wh), kilowatt-hours(kWh) or ampere-hours(Ah).
1117 *
1118 * VehiclePropConfig.configArray is used to indicate the supported electrical energy units.
1119 * Electrical energy units are defined in VehicleUnit.
1120 * For example: configArray[0] = WATT_HOUR
1121 * configArray[1] = AMPERE_HOURS
1122 * configArray[2] = KILOWATT_HOUR
1123 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1124 * @access VehiclePropertyAccess:READ_WRITE
1125 * @data_enum VehicleUnit
1126 */
1127 EV_BATTERY_DISPLAY_UNITS = 289408515 /* (0x0603 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1128 /**
1129 * Fuel consumption units for display
1130 *
1131 * Indicates type of units the car is using to display fuel consumption information to user
1132 * True indicates units are distance over volume such as MPG.
1133 * False indicates units are volume over distance such as L/100KM.
1134 *
1135 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1136 * @access VehiclePropertyAccess:READ_WRITE
1137 */
1138 FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME = 287311364 /* (0x0604 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
1139 /**
1140 * Speed units for display
1141 *
1142 * Indicates type of units the car is using to display speed to user. Eg. m/s, km/h, or mph.
1143 *
1144 * VehiclePropConfig.configArray is used to indicate the supported speed display units.
1145 * Pressure units are defined in VehicleUnit.
1146 * For example: configArray[0] = METER_PER_SEC
1147 * configArray[1] = MILES_PER_HOUR
1148 * configArray[2] = KILOMETERS_PER_HOUR
1149 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1150 * @access VehiclePropertyAccess:READ_WRITE
1151 */
1152 VEHICLE_SPEED_DISPLAY_UNITS = 289408517 /* (0x0605 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1153 /**
1154 * Outside temperature
1155 *
1156 * @change_mode VehiclePropertyChangeMode:CONTINUOUS
1157 * @access VehiclePropertyAccess:READ
1158 * @unit VehicleUnit:CELSIUS
1159 */
1160 ENV_OUTSIDE_TEMPERATURE = 291505923 /* (0x0703 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:FLOAT | VehicleArea:GLOBAL) */,
1161 /**
1162 * Property to control power state of application processor
1163 *
1164 * It is assumed that AP's power state is controlled by a separate power
1165 * controller.
1166 *
1167 * For configuration information, VehiclePropConfig.configArray can have bit flag combining
1168 * values in VehicleApPowerStateConfigFlag.
1169 *
1170 * int32Values[0] : VehicleApPowerStateReq enum value
1171 * int32Values[1] : additional parameter relevant for each state,
1172 * 0 if not used.
1173 *
1174 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1175 * @access VehiclePropertyAccess:READ
1176 */
1177 AP_POWER_STATE_REQ = 289475072 /* (0x0A00 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL) */,
1178 /**
1179 * Property to report power state of application processor
1180 *
1181 * It is assumed that AP's power state is controller by separate power
1182 * controller.
1183 *
1184 * int32Values[0] : VehicleApPowerStateReport enum value
1185 * int32Values[1] : Time in ms to wake up, if necessary. Otherwise 0.
1186 *
1187 *
1188 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1189 * @access VehiclePropertyAccess:READ_WRITE
1190 */
1191 AP_POWER_STATE_REPORT = 289475073 /* (0x0A01 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL) */,
1192 /**
1193 * Property to report bootup reason for the current power on. This is a
1194 * static property that will not change for the whole duration until power
1195 * off. For example, even if user presses power on button after automatic
1196 * power on with door unlock, bootup reason must stay with
1197 * VehicleApPowerBootupReason#USER_UNLOCK.
1198 *
1199 * int32Values[0] must be VehicleApPowerBootupReason.
1200 *
1201 * @change_mode VehiclePropertyChangeMode:STATIC
1202 * @access VehiclePropertyAccess:READ
1203 */
1204 AP_POWER_BOOTUP_REASON = 289409538 /* (0x0A02 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1205 /**
1206 * Property to represent brightness of the display. Some cars have single
1207 * control for the brightness of all displays and this property is to share
1208 * change in that control.
1209 *
1210 * If this is writable, android side can set this value when user changes
1211 * display brightness from Settings. If this is read only, user may still
1212 * change display brightness from Settings, but that must not be reflected
1213 * to other displays.
1214 *
1215 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1216 * @access VehiclePropertyAccess:READ_WRITE
1217 */
1218 DISPLAY_BRIGHTNESS = 289409539 /* (0x0A03 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1219 /**
1220 * Property to feed H/W input events to android
1221 *
1222 * int32Values[0] : action defined by VehicleHwKeyInputAction
1223 * int32Values[1] : key code, must use standard android key code
1224 * int32Values[2] : target display defined in VehicleDisplay. Events not
1225 * tied to specific display must be sent to
1226 * VehicleDisplay#MAIN.
1227 * int32Values[3] : [optional] Number of ticks. The value must be equal or
1228 * greater than 1. When omitted, Android will default to 1.
1229 *
1230 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1231 * @access VehiclePropertyAccess:READ
1232 * @config_flags
1233 */
1234 HW_KEY_INPUT = 289475088 /* (0x0A10 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL) */,
1235 /**
1236 * Property to feed H/W rotary events to android
1237 *
1238 * int32Values[0] : RotaryInputType identifying which rotary knob rotated
1239 * int32Values[1] : number of detents (clicks), positive for clockwise,
1240 * negative for counterclockwise
1241 * int32Values[2] : target display defined in VehicleDisplay. Events not
1242 * tied to specific display must be sent to
1243 * VehicleDisplay#MAIN.
1244 * int32values[3 .. 3 + abs(number of detents) - 2]:
1245 * nanosecond deltas between pairs of consecutive detents,
1246 * if the number of detents is > 1 or < -1
1247 *
1248 * VehiclePropValue.timestamp: when the rotation occurred. If the number of
1249 * detents is > 1 or < -1, this is when the
1250 * first detent of rotation occurred.
1251 *
1252 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1253 * @data_enum RotaryInputType
1254 * @access VehiclePropertyAccess:READ
1255 */
1256 HW_ROTARY_INPUT = 289475104 /* (0x0A20 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL) */,
1257 /**
1258 * Most Car Cabin properties have both a POSition and MOVE parameter. These
1259 * are used to control the various movements for seats, doors, and windows
1260 * in a vehicle.
1261 *
1262 * A POS parameter allows the user to set the absolution position. For
1263 * instance, for a door, 0 indicates fully closed and max value indicates
1264 * fully open. Thus, a value halfway between min and max must indicate
1265 * the door is halfway open.
1266 *
1267 * A MOVE parameter moves the device in a particular direction. The sign
1268 * indicates direction, and the magnitude indicates speed (if multiple
1269 * speeds are available). For a door, a move of -1 will close the door, and
1270 * a move of +1 will open it. Once a door reaches the limit of open/close,
1271 * the door should automatically stop moving. The user must NOT need to
1272 * send a MOVE(0) command to stop the door at the end of its range.
1273 *
1274 *
1275 * Door position
1276 *
1277 * This is an integer in case a door may be set to a particular position.
1278 * Max value indicates fully open, min value (0) indicates fully closed.
1279 *
1280 * Some vehicles (minivans) can open the door electronically. Hence, the
1281 * ability to write this property.
1282 *
1283 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1284 * @access VehiclePropertyAccess:READ_WRITE
1285 */
1286 DOOR_POS = 373295872 /* (0x0B00 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:DOOR) */,
1287 /**
1288 * Door move
1289 *
1290 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1291 * @access VehiclePropertyAccess:READ_WRITE
1292 */
1293 DOOR_MOVE = 373295873 /* (0x0B01 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:DOOR) */,
1294 /**
1295 * Door lock
1296 *
1297 * 'true' indicates door is locked
1298 *
1299 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1300 * @access VehiclePropertyAccess:READ_WRITE
1301 */
1302 DOOR_LOCK = 371198722 /* (0x0B02 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:DOOR) */,
1303 /**
1304 * Mirror Z Position
1305 *
1306 * Positive value indicates tilt upwards, negative value is downwards
1307 *
1308 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1309 * @access VehiclePropertyAccess:READ_WRITE
1310 */
1311 MIRROR_Z_POS = 339741504 /* (0x0B40 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:MIRROR) */,
1312 /**
1313 * Mirror Z Move
1314 *
1315 * Positive value indicates tilt upwards, negative value is downwards
1316 *
1317 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1318 * @access VehiclePropertyAccess:READ_WRITE
1319 */
1320 MIRROR_Z_MOVE = 339741505 /* (0x0B41 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:MIRROR) */,
1321 /**
1322 * Mirror Y Position
1323 *
1324 * Positive value indicate tilt right, negative value is left
1325 *
1326 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1327 * @access VehiclePropertyAccess:READ_WRITE
1328 */
1329 MIRROR_Y_POS = 339741506 /* (0x0B42 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:MIRROR) */,
1330 /**
1331 * Mirror Y Move
1332 *
1333 * Positive value indicate tilt right, negative value is left
1334 *
1335 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1336 * @access VehiclePropertyAccess:READ_WRITE
1337 */
1338 MIRROR_Y_MOVE = 339741507 /* (0x0B43 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:MIRROR) */,
1339 /**
1340 * Mirror Lock
1341 *
1342 * True indicates mirror positions are locked and not changeable
1343 *
1344 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1345 * @access VehiclePropertyAccess:READ_WRITE
1346 */
1347 MIRROR_LOCK = 287312708 /* (0x0B44 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
1348 /**
1349 * Mirror Fold
1350 *
1351 * True indicates mirrors are folded
1352 *
1353 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1354 * @access VehiclePropertyAccess:READ_WRITE
1355 */
1356 MIRROR_FOLD = 287312709 /* (0x0B45 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
1357 /**
1358 * Seat memory select
1359 *
1360 * This parameter selects the memory preset to use to select the seat
1361 * position. The minValue is always 0, and the maxValue determines the
1362 * number of seat positions available.
1363 *
1364 * For instance, if the driver's seat has 3 memory presets, the maxValue
1365 * will be 3. When the user wants to select a preset, the desired preset
1366 * number (1, 2, or 3) is set.
1367 *
1368 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1369 * @access VehiclePropertyAccess:WRITE
1370 */
1371 SEAT_MEMORY_SELECT = 356518784 /* (0x0B80 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1372 /**
1373 * Seat memory set
1374 *
1375 * This setting allows the user to save the current seat position settings
1376 * into the selected preset slot. The maxValue for each seat position
1377 * must match the maxValue for SEAT_MEMORY_SELECT.
1378 *
1379 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1380 * @access VehiclePropertyAccess:WRITE
1381 */
1382 SEAT_MEMORY_SET = 356518785 /* (0x0B81 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1383 /**
1384 * Seatbelt buckled
1385 *
1386 * True indicates belt is buckled.
1387 *
1388 * Write access indicates automatic seat buckling capabilities. There are
1389 * no known cars at this time, but you never know...
1390 *
1391 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1392 * @access VehiclePropertyAccess:READ_WRITE
1393 */
1394 SEAT_BELT_BUCKLED = 354421634 /* (0x0B82 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:SEAT) */,
1395 /**
1396 * Seatbelt height position
1397 *
1398 * Adjusts the shoulder belt anchor point.
1399 * Max value indicates highest position
1400 * Min value indicates lowest position
1401 *
1402 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1403 * @access VehiclePropertyAccess:READ_WRITE
1404 */
1405 SEAT_BELT_HEIGHT_POS = 356518787 /* (0x0B83 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1406 /**
1407 * Seatbelt height move
1408 *
1409 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1410 * @access VehiclePropertyAccess:READ_WRITE
1411 */
1412 SEAT_BELT_HEIGHT_MOVE = 356518788 /* (0x0B84 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1413 /**
1414 * Seat fore/aft position
1415 *
1416 * Sets the seat position forward (closer to steering wheel) and backwards.
1417 * Max value indicates closest to wheel, min value indicates most rearward
1418 * position.
1419 *
1420 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1421 * @access VehiclePropertyAccess:READ_WRITE
1422 */
1423 SEAT_FORE_AFT_POS = 356518789 /* (0x0B85 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1424 /**
1425 * Seat fore/aft move
1426 *
1427 * Moves the seat position forward and aft.
1428 *
1429 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1430 * @access VehiclePropertyAccess:READ_WRITE
1431 */
1432 SEAT_FORE_AFT_MOVE = 356518790 /* (0x0B86 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1433 /**
1434 * Seat backrest angle 1 position
1435 *
1436 * Backrest angle 1 is the actuator closest to the bottom of the seat.
1437 * Max value indicates angling forward towards the steering wheel.
1438 * Min value indicates full recline.
1439 *
1440 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1441 * @access VehiclePropertyAccess:READ_WRITE
1442 */
1443 SEAT_BACKREST_ANGLE_1_POS = 356518791 /* (0x0B87 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1444 /**
1445 * Seat backrest angle 1 move
1446 *
1447 * Moves the backrest forward or recline.
1448 *
1449 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1450 * @access VehiclePropertyAccess:READ_WRITE
1451 */
1452 SEAT_BACKREST_ANGLE_1_MOVE = 356518792 /* (0x0B88 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1453 /**
1454 * Seat backrest angle 2 position
1455 *
1456 * Backrest angle 2 is the next actuator up from the bottom of the seat.
1457 * Max value indicates angling forward towards the steering wheel.
1458 * Min value indicates full recline.
1459 *
1460 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1461 * @access VehiclePropertyAccess:READ_WRITE
1462 */
1463 SEAT_BACKREST_ANGLE_2_POS = 356518793 /* (0x0B89 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1464 /**
1465 * Seat backrest angle 2 move
1466 *
1467 * Moves the backrest forward or recline.
1468 *
1469 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1470 * @access VehiclePropertyAccess:READ_WRITE
1471 */
1472 SEAT_BACKREST_ANGLE_2_MOVE = 356518794 /* (0x0B8A | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1473 /**
1474 * Seat height position
1475 *
1476 * Sets the seat height.
1477 * Max value indicates highest position.
1478 * Min value indicates lowest position.
1479 *
1480 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1481 * @access VehiclePropertyAccess:READ_WRITE
1482 */
1483 SEAT_HEIGHT_POS = 356518795 /* (0x0B8B | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1484 /**
1485 * Seat height move
1486 *
1487 * Moves the seat height.
1488 *
1489 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1490 * @access VehiclePropertyAccess:READ_WRITE
1491 */
1492 SEAT_HEIGHT_MOVE = 356518796 /* (0x0B8C | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1493 /**
1494 * Seat depth position
1495 *
1496 * Sets the seat depth, distance from back rest to front edge of seat.
1497 * Max value indicates longest depth position.
1498 * Min value indicates shortest position.
1499 *
1500 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1501 * @access VehiclePropertyAccess:READ_WRITE
1502 */
1503 SEAT_DEPTH_POS = 356518797 /* (0x0B8D | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1504 /**
1505 * Seat depth move
1506 *
1507 * Adjusts the seat depth.
1508 *
1509 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1510 * @access VehiclePropertyAccess:READ_WRITE
1511 */
1512 SEAT_DEPTH_MOVE = 356518798 /* (0x0B8E | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1513 /**
1514 * Seat tilt position
1515 *
1516 * Sets the seat tilt.
1517 * Max value indicates front edge of seat higher than back edge.
1518 * Min value indicates front edge of seat lower than back edge.
1519 *
1520 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1521 * @access VehiclePropertyAccess:READ_WRITE
1522 */
1523 SEAT_TILT_POS = 356518799 /* (0x0B8F | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1524 /**
1525 * Seat tilt move
1526 *
1527 * Tilts the seat.
1528 *
1529 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1530 * @access VehiclePropertyAccess:READ_WRITE
1531 */
1532 SEAT_TILT_MOVE = 356518800 /* (0x0B90 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1533 /**
1534 * Lumber fore/aft position
1535 *
1536 * Pushes the lumbar support forward and backwards
1537 * Max value indicates most forward position.
1538 * Min value indicates most rearward position.
1539 *
1540 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1541 * @access VehiclePropertyAccess:READ_WRITE
1542 */
1543 SEAT_LUMBAR_FORE_AFT_POS = 356518801 /* (0x0B91 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1544 /**
1545 * Lumbar fore/aft move
1546 *
1547 * Adjusts the lumbar support.
1548 *
1549 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1550 * @access VehiclePropertyAccess:READ_WRITE
1551 */
1552 SEAT_LUMBAR_FORE_AFT_MOVE = 356518802 /* (0x0B92 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1553 /**
1554 * Lumbar side support position
1555 *
1556 * Sets the amount of lateral lumbar support.
1557 * Max value indicates widest lumbar setting (i.e. least support)
1558 * Min value indicates thinnest lumbar setting.
1559 *
1560 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1561 * @access VehiclePropertyAccess:READ_WRITE
1562 */
1563 SEAT_LUMBAR_SIDE_SUPPORT_POS = 356518803 /* (0x0B93 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1564 /**
1565 * Lumbar side support move
1566 *
1567 * Adjusts the amount of lateral lumbar support.
1568 *
1569 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1570 * @access VehiclePropertyAccess:READ_WRITE
1571 */
1572 SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 356518804 /* (0x0B94 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1573 /**
1574 * Headrest height position
1575 *
1576 * Sets the headrest height.
1577 * Max value indicates tallest setting.
1578 * Min value indicates shortest setting.
1579 *
1580 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1581 * @access VehiclePropertyAccess:READ_WRITE
1582 */
1583 SEAT_HEADREST_HEIGHT_POS = 289409941 /* (0x0B95 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1584 /**
1585 * Headrest height move
1586 *
1587 * Moves the headrest up and down.
1588 *
1589 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1590 * @access VehiclePropertyAccess:READ_WRITE
1591 */
1592 SEAT_HEADREST_HEIGHT_MOVE = 356518806 /* (0x0B96 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1593 /**
1594 * Headrest angle position
1595 *
1596 * Sets the angle of the headrest.
1597 * Max value indicates most upright angle.
1598 * Min value indicates shallowest headrest angle.
1599 *
1600 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1601 * @access VehiclePropertyAccess:READ_WRITE
1602 */
1603 SEAT_HEADREST_ANGLE_POS = 356518807 /* (0x0B97 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1604 /**
1605 * Headrest angle move
1606 *
1607 * Adjusts the angle of the headrest
1608 *
1609 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1610 * @access VehiclePropertyAccess:READ_WRITE
1611 */
1612 SEAT_HEADREST_ANGLE_MOVE = 356518808 /* (0x0B98 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1613 /**
1614 * Headrest fore/aft position
1615 *
1616 * Adjusts the headrest forwards and backwards.
1617 * Max value indicates position closest to front of car.
1618 * Min value indicates position closest to rear of car.
1619 *
1620 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1621 * @access VehiclePropertyAccess:READ_WRITE
1622 */
1623 SEAT_HEADREST_FORE_AFT_POS = 356518809 /* (0x0B99 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1624 /**
1625 * Headrest fore/aft move
1626 *
1627 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1628 * @access VehiclePropertyAccess:READ_WRITE
1629 */
1630 SEAT_HEADREST_FORE_AFT_MOVE = 356518810 /* (0x0B9A | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1631 /**
1632 * Seat Occupancy
1633 *
1634 * Indicates whether a particular seat is occupied or not, to the best of the car's ability
1635 * to determine. Valid values are from the VehicleSeatOccupancyState enum.
1636 *
1637 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1638 * @access VehiclePropertyAccess:READ
1639 * @data_enum VehicleSeatOccupancyState
1640 */
1641 SEAT_OCCUPANCY = 356518832 /* (0x0BB0 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1642 /**
1643 * Window Position
1644 *
1645 * Min = window up / closed
1646 * Max = window down / open
1647 *
1648 * For a window that may open out of plane (i.e. vent mode of sunroof) this
1649 * parameter will work with negative values as follows:
1650 * Max = sunroof completely open
1651 * 0 = sunroof closed.
1652 * Min = sunroof vent completely open
1653 *
1654 * Note that in this mode, 0 indicates the window is closed.
1655 *
1656 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1657 * @access VehiclePropertyAccess:READ_WRITE
1658 */
1659 WINDOW_POS = 322964416 /* (0x0BC0 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:WINDOW) */,
1660 /**
1661 * Window Move
1662 *
1663 * Max = Open the window as fast as possible
1664 * Min = Close the window as fast as possible
1665 * Magnitude denotes relative speed. I.e. +2 is faster than +1 in closing
1666 * the window.
1667 *
1668 * For a window that may open out of plane (i.e. vent mode of sunroof) this
1669 * parameter will work as follows:
1670 *
1671 * If sunroof is open:
1672 * Max = open the sunroof further, automatically stop when fully open.
1673 * Min = close the sunroof, automatically stop when sunroof is closed.
1674 *
1675 * If vent is open:
1676 * Max = close the vent, automatically stop when vent is closed.
1677 * Min = open the vent further, automatically stop when vent is fully open.
1678 *
1679 * If sunroof is in the closed position:
1680 * Max = open the sunroof, automatically stop when sunroof is fully open.
1681 * Min = open the vent, automatically stop when vent is fully open.
1682 *
1683 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1684 * @access VehiclePropertyAccess:READ_WRITE
1685 */
1686 WINDOW_MOVE = 322964417 /* (0x0BC1 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:WINDOW) */,
1687 /**
1688 * Window Lock
1689 *
1690 * True indicates windows are locked and can't be moved.
1691 *
1692 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1693 * @access VehiclePropertyAccess:READ_WRITE
1694 */
1695 WINDOW_LOCK = 320867268 /* (0x0BC4 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:WINDOW) */,
1696 /**
1697 * Vehicle Maps Service (VMS) message
1698 *
1699 * This property uses MIXED data to communicate vms messages.
1700 *
1701 * Its contents are to be interpreted as follows:
1702 * the indices defined in VmsMessageIntegerValuesIndex are to be used to
1703 * read from int32Values;
1704 * bytes is a serialized VMS message as defined in the vms protocol
1705 * which is opaque to the framework;
1706 *
1707 * IVehicle#get must always return StatusCode::NOT_AVAILABLE.
1708 *
1709 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1710 * @access VehiclePropertyAccess:READ_WRITE
1711 */
1712 VEHICLE_MAP_SERVICE = 299895808 /* (0x0C00 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
1713 /**
1714 * OBD2 Live Sensor Data
1715 *
1716 * Reports a snapshot of the current (live) values of the OBD2 sensors available.
1717 *
1718 * The configArray is set as follows:
1719 * configArray[0] = number of vendor-specific integer-valued sensors
1720 * configArray[1] = number of vendor-specific float-valued sensors
1721 *
1722 * The values of this property are to be interpreted as in the following example.
1723 * Considering a configArray = {2,3}
1724 * int32Values must be a vector containing Obd2IntegerSensorIndex.LAST_SYSTEM_INDEX + 2
1725 * elements (that is, 33 elements);
1726 * floatValues must be a vector containing Obd2FloatSensorIndex.LAST_SYSTEM_INDEX + 3
1727 * elements (that is, 73 elements);
1728 *
1729 * It is possible for each frame to contain a different subset of sensor values, both system
1730 * provided sensors, and vendor-specific ones. In order to support that, the bytes element
1731 * of the property value is used as a bitmask,.
1732 *
1733 * bytes must have a sufficient number of bytes to represent the total number of possible
1734 * sensors (in this case, 14 bytes to represent 106 possible values); it is to be read as
1735 * a contiguous bitmask such that each bit indicates the presence or absence of a sensor
1736 * from the frame, starting with as many bits as the size of int32Values, immediately
1737 * followed by as many bits as the size of floatValues.
1738 *
1739 * For example, should bytes[0] = 0x4C (0b01001100) it would mean that:
1740 * int32Values[0 and 1] are not valid sensor values
1741 * int32Values[2 and 3] are valid sensor values
1742 * int32Values[4 and 5] are not valid sensor values
1743 * int32Values[6] is a valid sensor value
1744 * int32Values[7] is not a valid sensor value
1745 * Should bytes[5] = 0x61 (0b01100001) it would mean that:
1746 * int32Values[32] is a valid sensor value
1747 * floatValues[0 thru 3] are not valid sensor values
1748 * floatValues[4 and 5] are valid sensor values
1749 * floatValues[6] is not a valid sensor value
1750 *
1751 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1752 * @access VehiclePropertyAccess:READ
1753 */
1754 OBD2_LIVE_FRAME = 299896064 /* (0x0D00 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
1755 /**
1756 * OBD2 Freeze Frame Sensor Data
1757 *
1758 * Reports a snapshot of the value of the OBD2 sensors available at the time that a fault
1759 * occurred and was detected.
1760 *
1761 * A configArray must be provided with the same meaning as defined for OBD2_LIVE_FRAME.
1762 *
1763 * The values of this property are to be interpreted in a similar fashion as those for
1764 * OBD2_LIVE_FRAME, with the exception that the stringValue field may contain a non-empty
1765 * diagnostic troubleshooting code (DTC).
1766 *
1767 * A IVehicle#get request of this property must provide a value for int64Values[0].
1768 * This will be interpreted as the timestamp of the freeze frame to retrieve. A list of
1769 * timestamps can be obtained by a IVehicle#get of OBD2_FREEZE_FRAME_INFO.
1770 *
1771 * Should no freeze frame be available at the given timestamp, a response of NOT_AVAILABLE
1772 * must be returned by the implementation. Because vehicles may have limited storage for
1773 * freeze frames, it is possible for a frame request to respond with NOT_AVAILABLE even if
1774 * the associated timestamp has been recently obtained via OBD2_FREEZE_FRAME_INFO.
1775 *
1776 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1777 * @access VehiclePropertyAccess:READ
1778 */
1779 OBD2_FREEZE_FRAME = 299896065 /* (0x0D01 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
1780 /**
1781 * OBD2 Freeze Frame Information
1782 *
1783 * This property describes the current freeze frames stored in vehicle
1784 * memory and available for retrieval via OBD2_FREEZE_FRAME.
1785 *
1786 * The values are to be interpreted as follows:
1787 * each element of int64Values must be the timestamp at which a a fault code
1788 * has been detected and the corresponding freeze frame stored, and each
1789 * such element can be used as the key to OBD2_FREEZE_FRAME to retrieve
1790 * the corresponding freeze frame.
1791 *
1792 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1793 * @access VehiclePropertyAccess:READ
1794 */
1795 OBD2_FREEZE_FRAME_INFO = 299896066 /* (0x0D02 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
1796 /**
1797 * OBD2 Freeze Frame Clear
1798 *
1799 * This property allows deletion of any of the freeze frames stored in
1800 * vehicle memory, as described by OBD2_FREEZE_FRAME_INFO.
1801 *
1802 * The configArray is set as follows:
1803 * configArray[0] = 1 if the implementation is able to clear individual freeze frames
1804 * by timestamp, 0 otherwise
1805 *
1806 * IVehicle#set of this property is to be interpreted as follows:
1807 * if int64Values contains no elements, then all frames stored must be cleared;
1808 * if int64Values contains one or more elements, then frames at the timestamps
1809 * stored in int64Values must be cleared, and the others not cleared. Should the
1810 * vehicle not support selective clearing of freeze frames, this latter mode must
1811 * return NOT_AVAILABLE.
1812 *
1813 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1814 * @access VehiclePropertyAccess:WRITE
1815 */
1816 OBD2_FREEZE_FRAME_CLEAR = 299896067 /* (0x0D03 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
1817 /**
1818 * Headlights State
1819 *
1820 * Return the current state of headlights.
1821 *
1822 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1823 * @access VehiclePropertyAccess:READ
1824 * @data_enum VehicleLightState
1825 */
1826 HEADLIGHTS_STATE = 289410560 /* (0x0E00 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1827 /**
1828 * High beam lights state
1829 *
1830 * Return the current state of high beam lights.
1831 *
1832 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1833 * @access VehiclePropertyAccess:READ
1834 * @data_enum VehicleLightState
1835 */
1836 HIGH_BEAM_LIGHTS_STATE = 289410561 /* (0x0E01 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1837 /**
1838 * Fog light state
1839 *
1840 * Return the current state of fog lights.
1841 *
1842 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1843 * @access VehiclePropertyAccess:READ
1844 * @data_enum VehicleLightState
1845 */
1846 FOG_LIGHTS_STATE = 289410562 /* (0x0E02 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1847 /**
1848 * Hazard light status
1849 *
1850 * Return the current status of hazard lights.
1851 *
1852 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1853 * @access VehiclePropertyAccess:READ
1854 * @data_enum VehicleLightState
1855 */
1856 HAZARD_LIGHTS_STATE = 289410563 /* (0x0E03 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1857 /**
1858 * Headlight switch
1859 *
1860 * The setting that the user wants.
1861 *
1862 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1863 * @access VehiclePropertyAccess:READ_WRITE
1864 * @data_enum VehicleLightSwitch
1865 */
1866 HEADLIGHTS_SWITCH = 289410576 /* (0x0E10 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1867 /**
1868 * High beam light switch
1869 *
1870 * The setting that the user wants.
1871 *
1872 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1873 * @access VehiclePropertyAccess:READ_WRITE
1874 * @data_enum VehicleLightSwitch
1875 */
1876 HIGH_BEAM_LIGHTS_SWITCH = 289410577 /* (0x0E11 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1877 /**
1878 * Fog light switch
1879 *
1880 * The setting that the user wants.
1881 *
1882 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1883 * @access VehiclePropertyAccess:READ_WRITE
1884 * @data_enum VehicleLightSwitch
1885 */
1886 FOG_LIGHTS_SWITCH = 289410578 /* (0x0E12 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1887 /**
1888 * Hazard light switch
1889 *
1890 * The setting that the user wants.
1891 *
1892 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1893 * @access VehiclePropertyAccess:READ_WRITE
1894 * @data_enum VehicleLightSwitch
1895 */
1896 HAZARD_LIGHTS_SWITCH = 289410579 /* (0x0E13 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1897 /**
1898 * Cabin lights
1899 *
1900 * Return current status of cabin lights.
1901 *
1902 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1903 * @access VehiclePropertyAccess:READ
1904 * @data_enum VehicleLightState
1905 */
1906 CABIN_LIGHTS_STATE = 289410817 /* (0x0F01 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1907 /**
1908 * Cabin lights switch
1909 *
1910 * The position of the physical switch which controls the cabin lights.
1911 * This might be different than the CABIN_LIGHTS_STATE if the lights are on because a door
1912 * is open or because of a voice command.
1913 * For example, while the switch is in the "off" or "automatic" position.
1914 *
1915 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1916 * @access VehiclePropertyAccess:READ_WRITE
1917 * @data_enum VehicleLightSwitch
1918 */
1919 CABIN_LIGHTS_SWITCH = 289410818 /* (0x0F02 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:GLOBAL) */,
1920 /**
1921 * Reading lights
1922 *
1923 * Return current status of reading lights.
1924 *
1925 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1926 * @access VehiclePropertyAccess:READ
1927 * @data_enum VehicleLightState
1928 */
1929 READING_LIGHTS_STATE = 356519683 /* (0x0F03 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1930 /**
1931 * Reading lights switch
1932 *
1933 * The position of the physical switch which controls the reading lights.
1934 * This might be different than the READING_LIGHTS_STATE if the lights are on because a door
1935 * is open or because of a voice command.
1936 * For example, while the switch is in the "off" or "automatic" position.
1937 *
1938 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
1939 * @access VehiclePropertyAccess:READ_WRITE
1940 * @data_enum VehicleLightSwitch
1941 */
1942 READING_LIGHTS_SWITCH = 356519684 /* (0x0F04 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32 | VehicleArea:SEAT) */,
1943 /**
1944 * Support customize permissions for vendor properties
1945 *
1946 * Implement this property if vehicle hal support customize vendor permissions feature.
1947 * VehiclePropConfig.configArray is used to indicate vendor properties and permissions
1948 * which selected for this vendor property. The permission must be one of enum in
1949 * VehicleVendorPermission.
1950 * The configArray is set as follows:
1951 * configArray[n] = propId : property ID for the vendor property
1952 * configArray[n+1] = one of enums in VehicleVendorPermission. It indicates the permission
1953 * for reading value of the property.
1954 * configArray[n+2] = one of enums in VehicleVendorPermission. It indicates the permission
1955 * for writing value of the property.
1956 *
1957 * For example:
1958 * configArray = {
1959 * vendor_prop_1, PERMISSION_VENDOR_SEAT_READ, PERMISSION_VENDOR_SEAT_WRITE,
1960 * vendor_prop_2, PERMISSION_VENDOR_INFO, PERMISSION_NOT_ACCESSIBLE,
1961 * }
1962 * If vendor properties are not in this array, they will have the default vendor permission.
1963 * If vendor chose PERMISSION_NOT_ACCESSIBLE, android will not have access to the property. In
1964 * the example, Android can not write value for vendor_prop_2.
1965 *
1966 * @change_mode VehiclePropertyChangeMode:STATIC
1967 * @access VehiclePropertyAccess:READ
1968 */
1969 SUPPORT_CUSTOMIZE_VENDOR_PERMISSION = 287313669 /* (0x0F05 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:BOOLEAN | VehicleArea:GLOBAL) */,
1970 /**
1971 * Allow disabling optional featurs from vhal.
1972 *
1973 * This property reports optional features that should be disabled.
1974 * All allowed optional features for the system is declared in Car service overlay,
1975 * config_allowed_optional_car_features.
1976 * This property allows disabling features defined in the overlay. Without this property,
1977 * all the features declared in the overlay will be enabled.
1978 *
1979 * Value read should include all features disabled with ',' separation.
1980 * ex) "com.android.car.user.CarUserNoticeService,storage_monitoring"
1981 * @change_mode VehiclePropertyChangeMode:STATIC
1982 * @access VehiclePropertyAccess:READ
1983 */
1984 DISABLED_OPTIONAL_FEATURES = 286265094 /* (0x0F06 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:STRING | VehicleArea:GLOBAL) */,
1985 /**
1986 * Defines the initial Android user to be used during initialization.
1987 *
1988 * This property is called by the Android system when it initializes and it lets the HAL
1989 * define which Android user should be started.
1990 *
1991 * This request is made by setting a VehiclePropValue (defined by InitialUserInfoRequest),
1992 * and the HAL must respond with a property change event (defined by InitialUserInfoResponse).
1993 * If the HAL doesn't respond after some time (defined by the Android system), the Android
1994 * system will proceed as if HAL returned a response of action
1995 * InitialUserInfoResponseAction:DEFAULT.
1996 *
1997 * For example, on first boot, the request could be:
1998 *
1999 * int32[0]: 42 // request id (arbitrary number set by Android system)
2000 * int32[1]: 1 // InitialUserInfoRequestType::FIRST_BOOT
2001 * int32[2]: 0 // id of current user (usersInfo.currentUser.userId)
2002 * int32[3]: 1 // flag of current user (usersInfo.currentUser.flags = SYSTEM)
2003 * int32[4]: 1 // number of existing users (usersInfo.numberUsers);
2004 * int32[5]: 0 // user #0 (usersInfo.existingUsers[0].userId)
2005 * int32[6]: 1 // flags of user #0 (usersInfo.existingUsers[0].flags)
2006 *
2007 * And if the HAL want to respond with the creation of an admin user called "Admin", the
2008 * response would be:
2009 *
2010 * int32[0]: 42 // must match the request id from the request
2011 * int32[1]: 2 // action = InitialUserInfoResponseAction::CREATE
2012 * int32[2]: -1 // userToSwitchOrCreate.userId (not used as user will be created)
2013 * int32[3]: 8 // userToSwitchOrCreate.flags = ADMIN
2014 * string: "Admin" // userNameToCreate
2015 *
2016 * NOTE: if the HAL doesn't support user management, then it should not define this property,
2017 * which in turn would disable the other user-related properties (for example, the Android
2018 * system would never issue them and user-related requests from the HAL layer would be ignored
2019 * by the Android System). But if it supports user management, then it must support all
2020 * user-related properties (INITIAL_USER_INFO, SWITCH_USER, CREATE_USER, REMOVE_USER,
2021 * and USER_IDENTIFICATION_ASSOCIATION).
2022 *
2023 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
2024 * @access VehiclePropertyAccess:READ_WRITE
2025 */
2026 INITIAL_USER_INFO = 299896583 /* (0x0F07 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
2027 /**
2028 * Defines a request to switch the foreground Android user.
2029 *
2030 * This property is used primarily by the Android System to inform the HAL that the
2031 * current foreground Android user is switching, but it could also be used by the HAL to request
2032 * the Android system to switch users - the
2033 *
2034 * When the request is made by Android, it sets a VehiclePropValue and the HAL must responde
2035 * with a property change event; when the HAL is making the request, it must also do it through
2036 * a property change event (the main difference is that the request id will be positive in the
2037 * former case, and negative in the latter; the SwitchUserMessageType will also be different).
2038 *
2039 * The format of both request is defined by SwitchUserRequest and the format of the response
2040 * (when needed) is defined by SwitchUserResponse. How the HAL (or Android System) should
2041 * proceed depends on the message type (which is defined by the SwitchUserMessageType
2042 * parameter), as defined below.
2043 *
2044 * 1.LEGACY_ANDROID_SWITCH
2045 * -----------------------
2046 *
2047 * Called by the Android System to indicate the Android user is about to change, when the change
2048 * request was made in a way that is not integrated with the HAL (for example, through
2049 * adb shell am switch-user).
2050 *
2051 * The HAL can switch its internal user once it receives this request, but it doesn't need to
2052 * reply back to the Android System. If its internal user cannot be changed for some reason,
2053 * then it must wait for the SWITCH_USER(type=ANDROID_POST_SWITCH) call to recover
2054 * (for example, it could issue a SWITCH_USER(type=VEHICLE_REQUEST) to switch back to
2055 * the previous user), but ideally it should never fail (as switching back could result in a
2056 * confusing experience for the end user).
2057 *
2058 * For example, if the system have users (0, 10, 11) and it's switching from 0 to 11 (where none
2059 * of them have any special flag), the request would be:
2060 *
2061 * int32[0]: 42 // request id
2062 * int32[1]: 1 // SwitchUserMessageType::LEGACY_ANDROID_SWITCH
2063 * int32[2]: 11 // target user id
2064 * int32[3]: 0 // target user flags (none)
2065 * int32[4]: 10 // current user
2066 * int32[5]: 0 // current user flags (none)
2067 * int32[6]: 3 // number of users
2068 * int32[7]: 0 // user #0 (Android user id 0)
2069 * int32[8]: 0 // flags of user #0 (none)
2070 * int32[9]: 10 // user #1 (Android user id 10)
2071 * int32[10]: 0 // flags of user #1 (none)
2072 * int32[11]: 11 // user #2 (Android user id 11)
2073 * int32[12]: 0 // flags of user #2 (none)
2074 *
2075 * 2.ANDROID_SWITCH
2076 * ----------------
2077 * Called by the Android System to indicate the Android user is about to change, but Android
2078 * will wait for the HAL's response (up to some time) before proceeding.
2079 *
2080 * The HAL must switch its internal user once it receives this request, then respond back to
2081 * Android with a SWITCH_USER(type=VEHICLE_RESPONSE) indicating whether its internal
2082 * user was switched or not (through the SwitchUserStatus enum).
2083 *
2084 * For example, if Android has users (0, 10, 11) and it's switching from 10 to 11 (where
2085 * none of them have any special flag), the request would be:
2086 *
2087 * int32[0]: 42 // request id
2088 * int32[1]: 2 // SwitchUserMessageType::ANDROID_SWITCH
2089 * int32[2]: 11 // target user id
2090 * int32[3]: 0 // target user flags (none)
2091 * int32[4]: 10 // current user
2092 * int32[5]: 0 // current user flags (none)
2093 * int32[6]: 3 // number of users
2094 * int32[7]: 0 // 1st user (user 0)
2095 * int32[8]: 0 // 1st user flags (none)
2096 * int32[9]: 10 // 2nd user (user 10)
2097 * int32[10]: 0 // 2nd user flags (none)
2098 * int32[11]: 11 // 3rd user (user 11)
2099 * int32[12]: 0 // 3rd user flags (none)
2100 *
2101 * If the request succeeded, the HAL must update the propery with:
2102 *
2103 * int32[0]: 42 // request id
2104 * int32[1]: 3 // messageType = SwitchUserMessageType::VEHICLE_RESPONSE
2105 * int32[2]: 1 // status = SwitchUserStatus::SUCCESS
2106 *
2107 * But if it failed, the response would be something like:
2108 *
2109 * int32[0]: 42 // request id
2110 * int32[1]: 3 // messageType = SwitchUserMessageType::VEHICLE_RESPONSE
2111 * int32[2]: 2 // status = SwitchUserStatus::FAILURE
2112 * string: "108-D'OH!" // OEM-spefic error message
2113 *
2114 * 3.VEHICLE_RESPONSE
2115 * ------------------
2116 * Called by the HAL to indicate whether a request of type ANDROID_SWITCH should proceed or
2117 * abort - see the ANDROID_SWITCH section above for more info.
2118 *
2119 * 4.VEHICLE_REQUEST
2120 * ------------------
2121 * Called by the HAL to request that the current foreground Android user is switched.
2122 *
2123 * This is useful in situations where Android started as one user, but the vehicle identified
2124 * the driver as another user. For example, user A unlocked the car using the key fob of user B;
2125 * the INITIAL_USER_INFO request returned user B, but then a face recognition subsubsystem
2126 * identified the user as A.
2127 *
2128 * The HAL makes this request by a property change event (passing a negative request id), and
2129 * the Android system will response by issuye an ANDROID_POST_SWITCH call which the same
2130 * request id.
2131 *
2132 * For example, if the current foreground Android user is 10 and the HAL asked it to switch to
2133 * 11, the request would be:
2134 *
2135 * int32[0]: -108 // request id
2136 * int32[1]: 4 // messageType = SwitchUserMessageType::VEHICLE_REQUEST
2137 * int32[2]: 11 // Android user id
2138 *
2139 * If the request succeeded and Android has 3 users (0, 10, 11), the response would be:
2140 *
2141 * int32[0]: -108 // request id
2142 * int32[1]: 5 // messageType = SwitchUserMessageType::ANDROID_SWITCH
2143 * int32[2]: 11 // target user id
2144 * int32[3]: 11 // target user id flags (none)
2145 * int32[4]: 11 // current user
2146 * int32[5]: 0 // current user flags (none)
2147 * int32[6]: 3 // number of users
2148 * int32[7]: 0 // 1st user (user 0)
2149 * int32[8]: 0 // 1st user flags (none)
2150 * int32[9]: 10 // 2nd user (user 10)
2151 * int32[10]: 4 // 2nd user flags (none)
2152 * int32[11]: 11 // 3rd user (user 11)
2153 * int32[12]: 3 // 3rd user flags (none)
2154 *
2155 * Notice that both the current and target user ids are the same - if the request failed, then
2156 * they would be different (i.e, target user would be 11, but current user would still be 10).
2157 *
2158 * 5.ANDROID_POST_SWITCH
2159 * ---------------------
2160 * Called by the Android System after a request to switch a user was made
2161 *
2162 * This property is called after switch requests of any type (i.e., LEGACY_ANDROID_SWITCH,
2163 * ANDROID_SWITCH, or VEHICLE_REQUEST) and can be used to determine if the request succeeded or
2164 * failed:
2165 *
2166 * 1. When it succeeded, it's called when the Android user is in the boot locked state and the
2167 * value of the current and target users ids in the response are different. This would be
2168 * equivalent to receiving an Intent.ACTION_LOCKED_BOOT_COMPLETED in an Android app.
2169 * 2. When it failed it's called right away and the value of the current and target users ids
2170 * in the response are the same.
2171 *
2172 * The HAL can update its internal state once it receives this request, but it doesn't need to
2173 * reply back to the Android System.
2174 *
2175 * Request: the first N values as defined by INITIAL_USER_INFO (where the request-specific
2176 * value at index 1 is SwitchUserMessageType::ANDROID_POST_SWITCH), then 2 more values for the
2177 * target user id (i.e., the Android user id that was requested to be switched to) and its flags
2178 * (as defined by UserFlags).
2179 *
2180 * Response: none.
2181 *
2182 * Example: see VEHICLE_REQUEST section above.
2183 *
2184 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
2185 * @access VehiclePropertyAccess:READ_WRITE
2186 */
2187 SWITCH_USER = 299896584 /* (0x0F08 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
2188 /**
2189 * Called by the Android System after an Android user was created.
2190 *
2191 * The HAL can use this property to create its equivalent user.
2192 *
2193 * This is an async request: Android makes the request by setting a VehiclePropValue, and HAL
2194 * must respond with a property change indicating whether the request succeeded or failed. If
2195 * it failed, the Android system will remove the user.
2196 *
2197 * The format of the request is defined by CreateUserRequest and the format of the response by
2198 * CreateUserResponse.
2199 *
2200 * For example, if system had 2 users (0 and 10) and a 3rd one (which is an ephemeral guest) was
2201 * created, the request would be:
2202 *
2203 * int32[0]: 42 // request id
2204 * int32[1]: 11 // Android id of the created user
2205 * int32[2]: 3 // Android flags (ephemeral guest) of the created user
2206 * int32[3]: 10 // current user
2207 * int32[4]: 0 // current user flags (none)
2208 * int32[5]: 3 // number of users
2209 * int32[6]: 0 // 1st user (user 0)
2210 * int32[7]: 0 // 1st user flags (none)
2211 * int32[8]: 10 // 2nd user (user 10)
2212 * int32[9]: 0 // 2nd user flags (none)
2213 * int32[19]: 11 // 3rd user (user 11)
2214 * int32[11]: 3 // 3rd user flags (ephemeral guest)
2215 * string: "ElGuesto" // name of the new user
2216 *
2217 * Then if the request succeeded, the HAL would return:
2218 *
2219 * int32[0]: 42 // request id
2220 * int32[1]: 1 // CreateUserStatus::SUCCESS
2221 *
2222 * But if it failed:
2223 *
2224 * int32[0]: 42 // request id
2225 * int32[1]: 2 // CreateUserStatus::FAILURE
2226 * string: "D'OH!" // The meaning is opaque - it's passed to the caller (like Settings UI),
2227 * // which in turn can take the proper action.
2228 *
2229 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
2230 * @access VehiclePropertyAccess:READ_WRITE
2231 */
2232 CREATE_USER = 299896585 /* (0x0F09 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
2233 /**
2234 * Called by the Android System after an Android user was removed.
2235 *
2236 * The HAL can use this property to remove its equivalent user.
2237 *
2238 * This is write-only call - the Android System is not expecting a reply from the HAL. Hence,
2239 * this request should not fail - if the equivalent HAL user cannot be removed, then HAL should
2240 * mark it as inactive or recover in some other way.
2241 *
2242 * The request is made by setting the VehiclePropValue with the contents defined by
2243 * RemoveUserRequest.
2244 *
2245 * For example, if system had 3 users (0, 10, and 11) and user 11 was removed, the request
2246 * would be:
2247 *
2248 * int32[0]: 42 // request id
2249 * int32[1]: 11 // (Android user id of the removed user)
2250 * int32[2]: 0 // (Android user flags of the removed user)
2251 * int32[3]: 10 // current user
2252 * int32[4]: 0 // current user flags (none)
2253 * int32[5]: 2 // number of users
2254 * int32[6]: 0 // 1st user (user 0)
2255 * int32[7]: 0 // 1st user flags (none)
2256 * int32[8]: 10 // 2nd user (user 10)
2257 * int32[9]: 0 // 2nd user flags (none)
2258 *
2259 * @change_mode VehiclePropertyChangeMode:STATIC
2260 * @access VehiclePropertyAccess:WRITE
2261 */
2262 REMOVE_USER = 299896586 /* (0x0F0A | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
2263 /**
2264 * Property used to associate (or query the association) the current user with vehicle-specific
2265 * identification mechanisms (such as key FOB).
2266 *
2267 * To query the association, the Android system gets the property, passing a VehiclePropValue
2268 * containing the types of associations are being queried, as defined by
2269 * UserIdentificationGetRequest. The HAL must return right away, updating the VehiclePropValue
2270 * with a UserIdentificationResponse. Notice that user identification should have already
2271 * happened while system is booting up and the VHAL implementation should only return the
2272 * already identified association (like the key FOB used to unlock the car), instead of starting
2273 * a new association from the get call.
2274 *
2275 * To associate types, the Android system sets the property, passing a VehiclePropValue
2276 * containing the types and values of associations being set, as defined by the
2277 * UserIdentificationSetRequest. The HAL will then use a property change event (whose
2278 * VehiclePropValue is defined by UserIdentificationResponse) indicating the current status of
2279 * the types after the request.
2280 *
2281 * For example, to query if the current user (10) is associated with the FOB that unlocked the
2282 * car and a custom mechanism provided by the OEM, the request would be:
2283 *
2284 * int32[0]: 10 (Android user id)
2285 * int32[1]: 0 (Android user flags)
2286 * int32[2]: 2 (number of types queried)
2287 * int32[3]: 1 (1st type queried, UserIdentificationAssociationType::KEY_FOB)
2288 * int32[4]: 101 (2nd type queried, UserIdentificationAssociationType::CUSTOM_1)
2289 *
2290 * If the user is associated with the FOB but not with the custom mechanism, the response would
2291 * be:
2292 *
2293 * int32[9]: 2 (number of associations in the response)
2294 * int32[1]: 1 (1st type: UserIdentificationAssociationType::KEY_FOB)
2295 * int32[2]: 2 (1st value: UserIdentificationAssociationValue::ASSOCIATED_CURRENT_USER)
2296 * int32[3]: 101 (2st type: UserIdentificationAssociationType::CUSTOM_1)
2297 * int32[4]: 4 (2nd value: UserIdentificationAssociationValue::NOT_ASSOCIATED_ANY_USER)
2298 *
2299 * Then to associate the user with the custom mechanism, a set request would be made:
2300 *
2301 * int32[0]: 10 (Android user id)
2302 * int32[0]: 0 (Android user flags)
2303 * int32[1]: 1 (number of associations being set)
2304 * int32[2]: 101 (1st type: UserIdentificationAssociationType::CUSTOM_1)
2305 * int32[3]: 1 (1st value: UserIdentificationAssociationSETValue::ASSOCIATE_CURRENT_USER)
2306 *
2307 * If the request succeeded, the response would be simply:
2308 *
2309 * int32[0]: 2 (number of associations in the response)
2310 * int32[1]: 101 (1st type: UserIdentificationAssociationType::CUSTOM_1)
2311 * int32[2]: 1 (1st value: UserIdentificationAssociationValue::ASSOCIATED_CURRENT_USER)
2312 *
2313 * Notice that the set request adds associations, but doesn't remove the existing ones. In the
2314 * example above, the end state would be 2 associations (FOB and CUSTOM_1). If we wanted to
2315 * associate the user with just CUSTOM_1 but not FOB, then the request should have been:
2316 *
2317 * int32[0]: 10 (Android user id)
2318 * int32[1]: 2 (number of types set)
2319 * int32[2]: 1 (1st type: UserIdentificationAssociationType::KEY_FOB)
2320 * int32[3]: 2 (1st value: UserIdentificationAssociationValue::DISASSOCIATE_CURRENT_USER)
2321 * int32[3]: 101 (2nd type: UserIdentificationAssociationType::CUSTOM_1)
2322 * int32[5]: 1 (2nd value: UserIdentificationAssociationValue::ASSOCIATE_CURRENT_USER)
2323 *
2324 * @change_mode VehiclePropertyChangeMode:ON_CHANGE
2325 * @access VehiclePropertyAccess:READ_WRITE
2326 */
2327 USER_IDENTIFICATION_ASSOCIATION = 299896587 /* (0x0F0B | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:MIXED | VehicleArea:GLOBAL) */,
2328 };
2329
2330 /**
2331 * Used by SUPPORT_CUSTOMIZE_VENDOR_PERMISSION to indicate the permission of vendor properties.
2332 */
2333 enum class VehicleVendorPermission : int32_t {
2334 PERMISSION_DEFAULT = 0 /* 0x00000000 */,
2335 PERMISSION_SET_VENDOR_CATEGORY_WINDOW = 1 /* 0X00000001 */,
2336 PERMISSION_GET_VENDOR_CATEGORY_WINDOW = 2 /* 0x00000002 */,
2337 PERMISSION_SET_VENDOR_CATEGORY_DOOR = 3 /* 0x00000003 */,
2338 PERMISSION_GET_VENDOR_CATEGORY_DOOR = 4 /* 0x00000004 */,
2339 PERMISSION_SET_VENDOR_CATEGORY_SEAT = 5 /* 0x00000005 */,
2340 PERMISSION_GET_VENDOR_CATEGORY_SEAT = 6 /* 0x00000006 */,
2341 PERMISSION_SET_VENDOR_CATEGORY_MIRROR = 7 /* 0x00000007 */,
2342 PERMISSION_GET_VENDOR_CATEGORY_MIRROR = 8 /* 0x00000008 */,
2343 PERMISSION_SET_VENDOR_CATEGORY_INFO = 9 /* 0x00000009 */,
2344 PERMISSION_GET_VENDOR_CATEGORY_INFO = 10 /* 0x0000000A */,
2345 PERMISSION_SET_VENDOR_CATEGORY_ENGINE = 11 /* 0x0000000B */,
2346 PERMISSION_GET_VENDOR_CATEGORY_ENGINE = 12 /* 0x0000000C */,
2347 PERMISSION_SET_VENDOR_CATEGORY_HVAC = 13 /* 0x0000000D */,
2348 PERMISSION_GET_VENDOR_CATEGORY_HVAC = 14 /* 0x0000000E */,
2349 PERMISSION_SET_VENDOR_CATEGORY_LIGHT = 15 /* 0x0000000F */,
2350 PERMISSION_GET_VENDOR_CATEGORY_LIGHT = 16 /* 0x00000010 */,
2351 PERMISSION_SET_VENDOR_CATEGORY_1 = 65536 /* 0x00010000 */,
2352 PERMISSION_GET_VENDOR_CATEGORY_1 = 69632 /* 0x00011000 */,
2353 PERMISSION_SET_VENDOR_CATEGORY_2 = 131072 /* 0x00020000 */,
2354 PERMISSION_GET_VENDOR_CATEGORY_2 = 135168 /* 0x00021000 */,
2355 PERMISSION_SET_VENDOR_CATEGORY_3 = 196608 /* 0x00030000 */,
2356 PERMISSION_GET_VENDOR_CATEGORY_3 = 200704 /* 0x00031000 */,
2357 PERMISSION_SET_VENDOR_CATEGORY_4 = 262144 /* 0x00040000 */,
2358 PERMISSION_GET_VENDOR_CATEGORY_4 = 266240 /* 0x00041000 */,
2359 PERMISSION_SET_VENDOR_CATEGORY_5 = 327680 /* 0x00050000 */,
2360 PERMISSION_GET_VENDOR_CATEGORY_5 = 331776 /* 0x00051000 */,
2361 PERMISSION_SET_VENDOR_CATEGORY_6 = 393216 /* 0x00060000 */,
2362 PERMISSION_GET_VENDOR_CATEGORY_6 = 397312 /* 0x00061000 */,
2363 PERMISSION_SET_VENDOR_CATEGORY_7 = 458752 /* 0x00070000 */,
2364 PERMISSION_GET_VENDOR_CATEGORY_7 = 462848 /* 0x00071000 */,
2365 PERMISSION_SET_VENDOR_CATEGORY_8 = 524288 /* 0x00080000 */,
2366 PERMISSION_GET_VENDOR_CATEGORY_8 = 528384 /* 0x00081000 */,
2367 PERMISSION_SET_VENDOR_CATEGORY_9 = 589824 /* 0x00090000 */,
2368 PERMISSION_GET_VENDOR_CATEGORY_9 = 593920 /* 0x00091000 */,
2369 PERMISSION_SET_VENDOR_CATEGORY_10 = 655360 /* 0x000A0000 */,
2370 PERMISSION_GET_VENDOR_CATEGORY_10 = 659456 /* 0x000A1000 */,
2371 PERMISSION_NOT_ACCESSIBLE = -268435456 /* 0xF0000000 */,
2372 };
2373
2374 /**
2375 * Used by seat occupancy to enumerate the current occupancy state of the seat.
2376 */
2377 enum class VehicleSeatOccupancyState : int32_t {
2378 UNKNOWN = 0,
2379 VACANT = 1,
2380 OCCUPIED = 2,
2381 };
2382
2383 /**
2384 * Used by lights state properties to enumerate the current state of the lights.
2385 *
2386 * Most XXX_LIGHTS_STATE properties will only report ON and OFF states. Only
2387 * the HEADLIGHTS_STATE property will report DAYTIME_RUNNING.
2388 */
2389 enum class VehicleLightState : int32_t {
2390 OFF = 0,
2391 ON = 1,
2392 DAYTIME_RUNNING = 2,
2393 };
2394
2395 /**
2396 * Used by lights switch properties to enumerate user selected switch setting.
2397 *
2398 * XXX_LIGHTS_SWITCH properties report the switch settings that the user
2399 * selects. The switch setting may be decoupled from the state reported if the
2400 * user selects AUTOMATIC.
2401 */
2402 enum class VehicleLightSwitch : int32_t {
2403 OFF = 0,
2404 ON = 1,
2405 /**
2406 * Daytime running lights mode. Most cars automatically use DRL but some
2407 * cars allow the user to activate them manually.
2408 */
2409 DAYTIME_RUNNING = 2,
2410 /**
2411 * Allows the vehicle ECU to set the lights automatically
2412 */
2413 AUTOMATIC = 256 /* 0x100 */,
2414 };
2415
2416 /**
2417 * Used by INFO_EV_CONNECTOR_TYPE to enumerate the type of connectors
2418 * available to charge the vehicle.
2419 */
2420 enum class EvConnectorType : int32_t {
2421 /**
2422 * Default type if the vehicle does not know or report the EV connector
2423 * type.
2424 */
2425 UNKNOWN = 0,
2426 IEC_TYPE_1_AC = 1,
2427 IEC_TYPE_2_AC = 2,
2428 IEC_TYPE_3_AC = 3,
2429 IEC_TYPE_4_DC = 4,
2430 IEC_TYPE_1_CCS_DC = 5,
2431 IEC_TYPE_2_CCS_DC = 6,
2432 TESLA_ROADSTER = 7,
2433 TESLA_HPWC = 8,
2434 TESLA_SUPERCHARGER = 9,
2435 GBT_AC = 10,
2436 GBT_DC = 11,
2437 /**
2438 * Connector type to use when no other types apply. Before using this
2439 * value, work with Google to see if the EvConnectorType enum can be
2440 * extended with an appropriate value.
2441 */
2442 OTHER = 101,
2443 };
2444
2445 /**
2446 * Used by INFO_FUEL_DOOR_LOCATION/INFO_CHARGE_PORT_LOCATION to enumerate fuel door or
2447 * ev port location.
2448 */
2449 enum class PortLocationType : int32_t {
2450 /**
2451 * Default type if the vehicle does not know or report the Fuel door
2452 * and ev port location.
2453 */
2454 UNKNOWN = 0,
2455 FRONT_LEFT = 1,
2456 FRONT_RIGHT = 2,
2457 REAR_RIGHT = 3,
2458 REAR_LEFT = 4,
2459 FRONT = 5,
2460 REAR = 6,
2461 };
2462
2463 /**
2464 * Used by INFO_FUEL_TYPE to enumerate the type of fuels this vehicle uses.
2465 * Consistent with projection protocol.
2466 */
2467 enum class FuelType : int32_t {
2468 /**
2469 * Fuel type to use if the HU does not know on which types of fuel the vehicle
2470 * runs. The use of this value is generally discouraged outside of aftermarket units.
2471 */
2472 FUEL_TYPE_UNKNOWN = 0,
2473 /**
2474 * Unleaded gasoline
2475 */
2476 FUEL_TYPE_UNLEADED = 1,
2477 /**
2478 * Leaded gasoline
2479 */
2480 FUEL_TYPE_LEADED = 2,
2481 /**
2482 * Diesel #1
2483 */
2484 FUEL_TYPE_DIESEL_1 = 3,
2485 /**
2486 * Diesel #2
2487 */
2488 FUEL_TYPE_DIESEL_2 = 4,
2489 /**
2490 * Biodiesel
2491 */
2492 FUEL_TYPE_BIODIESEL = 5,
2493 /**
2494 * 85% ethanol/gasoline blend
2495 */
2496 FUEL_TYPE_E85 = 6,
2497 /**
2498 * Liquified petroleum gas
2499 */
2500 FUEL_TYPE_LPG = 7,
2501 /**
2502 * Compressed natural gas
2503 */
2504 FUEL_TYPE_CNG = 8,
2505 /**
2506 * Liquified natural gas
2507 */
2508 FUEL_TYPE_LNG = 9,
2509 /**
2510 * Electric
2511 */
2512 FUEL_TYPE_ELECTRIC = 10,
2513 /**
2514 * Hydrogen fuel cell
2515 */
2516 FUEL_TYPE_HYDROGEN = 11,
2517 /**
2518 * Fuel type to use when no other types apply. Before using this value, work with
2519 * Google to see if the FuelType enum can be extended with an appropriate value.
2520 */
2521 FUEL_TYPE_OTHER = 12,
2522 };
2523
2524 /**
2525 * Bit flags for fan direction
2526 */
2527 enum class VehicleHvacFanDirection : int32_t {
2528 UNKNOWN = 0 /* 0x0 */,
2529 FACE = 1 /* 0x1 */,
2530 FLOOR = 2 /* 0x2 */,
2531 /**
2532 * FACE_AND_FLOOR = FACE | FLOOR
2533 */
2534 FACE_AND_FLOOR = 3 /* 0x3 */,
2535 DEFROST = 4 /* 0x4 */,
2536 /**
2537 * DEFROST_AND_FLOOR = DEFROST | FLOOR
2538 */
2539 DEFROST_AND_FLOOR = 6 /* 0x06 */,
2540 };
2541
2542 enum class VehicleOilLevel : int32_t {
2543 /**
2544 * Oil level values
2545 */
2546 CRITICALLY_LOW = 0,
2547 LOW = 1,
2548 NORMAL = 2,
2549 HIGH = 3,
2550 ERROR = 4,
2551 };
2552
2553 enum class VehicleApPowerStateConfigFlag : int32_t {
2554 /**
2555 * AP can enter deep sleep state. If not set, AP will always shutdown from
2556 * VehicleApPowerState#SHUTDOWN_PREPARE power state.
2557 */
2558 ENABLE_DEEP_SLEEP_FLAG = 1 /* 0x1 */,
2559 /**
2560 * The power controller can power on AP from off state after timeout
2561 * specified in VehicleApPowerSet VEHICLE_AP_POWER_SET_SHUTDOWN_READY message.
2562 */
2563 CONFIG_SUPPORT_TIMER_POWER_ON_FLAG = 2 /* 0x2 */,
2564 };
2565
2566 enum class VehicleApPowerStateReq : int32_t {
2567 /**
2568 * This requests Android to enter its normal operating state.
2569 * This may be sent after the AP has reported
2570 * VehicleApPowerStateReport#DEEP_SLEEP_EXIT,
2571 * VehicleApPowerStateReport#SHUTDOWN_CANCELLED, or
2572 * VehicleApPowerStateReport#WAIT_FOR_VHAL.
2573 */
2574 ON = 0,
2575 /**
2576 * The power controller issues this request to shutdown the system.
2577 * This may be sent after the AP has reported
2578 * VehicleApPowerStateReport#DEEP_SLEEP_EXIT,
2579 * VehicleApPowerStateReport#ON,
2580 * VehicleApPowerStateReport#SHUTDOWN_CANCELLED,
2581 * VehicleApPowerStateReport#SHUTDOWN_POSTPONE,
2582 * VehicleApPowerStateReport#SHUTDOWN_PREPARE, or
2583 * VehicleApPowerStateReport#WAIT_FOR_VHAL.
2584 *
2585 * int32Values[1] : One of VehicleApPowerStateShutdownParam.
2586 * This parameter indicates if the AP should shut
2587 * down fully or sleep. This parameter also
2588 * indicates if the shutdown should be immediate
2589 * or if it can be postponed. If the shutdown can
2590 * be postponed, AP requests postponing by sending
2591 * VehicleApPowerStateReport#SHUTDOWN_POSTPONE.
2592 */
2593 SHUTDOWN_PREPARE = 1,
2594 /**
2595 * Cancel the shutdown.
2596 * This may be sent after the AP has reported
2597 * VehicleApPowerStateReport#SHUTDOWN_POSTPONE or
2598 * VehicleApPowerStateReport#SHUTDOWN_PREPARE.
2599 * After receiving this request, the AP will report
2600 * VehicleApPowerStateReport#WAIT_FOR_VHAL in preparation to going ON.
2601 */
2602 CANCEL_SHUTDOWN = 2,
2603 /**
2604 * Completes the shutdown process.
2605 * This may be sent after the AP has reported
2606 * VehicleApPowerStateReport#DEEP_SLEEP_ENTRY or
2607 * VehicleApPowerStateReport#SHUTDOWN_START. The AP will not report new
2608 * state information after receiving this request.
2609 */
2610 FINISHED = 3,
2611 };
2612
2613 /**
2614 * Index in int32Values for VehicleProperty#AP_POWER_STATE_REQ property.
2615 */
2616 enum class VehicleApPowerStateReqIndex : int32_t {
2617 STATE = 0,
2618 ADDITIONAL = 1,
2619 };
2620
2621 enum class VehicleApPowerStateShutdownParam : int32_t {
2622 /**
2623 * AP must shutdown immediately. Postponing is not allowed.
2624 */
2625 SHUTDOWN_IMMEDIATELY = 1,
2626 /**
2627 * AP can enter deep sleep instead of shutting down completely.
2628 */
2629 CAN_SLEEP = 2,
2630 /**
2631 * AP can only shutdown with postponing allowed.
2632 */
2633 SHUTDOWN_ONLY = 3,
2634 /**
2635 * AP may enter deep sleep, but must either sleep or shut down immediately.
2636 * Postponing is not allowed.
2637 */
2638 SLEEP_IMMEDIATELY = 4,
2639 };
2640
2641 enum class VehicleApPowerStateReport : int32_t {
2642 /**
2643 * The device has booted. CarService has initialized and is ready to accept commands
2644 * from VHAL. The user is not logged in, and vendor apps and services are expected to
2645 * control the display and audio.
2646 * After reporting this state, AP will accept VehicleApPowerStateReq#ON or
2647 * VehicleApPowerStateReq#SHUTDOWN_PREPARE. Other power state requests are ignored.
2648 */
2649 WAIT_FOR_VHAL = 1 /* 0x1 */,
2650 /**
2651 * AP is ready to suspend.
2652 * The AP will not send any more state reports after this.
2653 * After reporting this state, AP will accept VehicleApPowerStateReq#FINISHED.
2654 * Other power state requests are ignored.
2655 *
2656 * int32Values[1]: Time to turn AP back on, in seconds. Power controller should turn on
2657 * AP after the specified time has elapsed, so AP can run tasks like
2658 * update. If this value is 0, no wake up is requested. The power
2659 * controller may not necessarily support timed wake-up.
2660 */
2661 DEEP_SLEEP_ENTRY = 2 /* 0x2 */,
2662 /**
2663 * AP is exiting from deep sleep state.
2664 * After reporting this state, AP will accept VehicleApPowerStateReq#ON or
2665 * VehicleApPowerStateReq#SHUTDOWN_PREPARE. Other power state requests are ignored.
2666 */
2667 DEEP_SLEEP_EXIT = 3 /* 0x3 */,
2668 /**
2669 * AP sends this message repeatedly while cleanup and idle tasks execute.
2670 * After reporting this state, AP will accept VehicleApPowerStateReq#SHUTDOWN_PREPARE
2671 * requesting immediate shutdown or VehicleApPowerStateReq#CANCEL_SHUTDOWN. Other
2672 * power state requests are ignored.
2673 *
2674 * int32Values[1]: Time to postpone shutdown in ms. Maximum value is
2675 * 5000 ms.
2676 * If AP needs more time, it will send another SHUTDOWN_POSTPONE
2677 * message before the previous one expires.
2678 */
2679 SHUTDOWN_POSTPONE = 4 /* 0x4 */,
2680 /**
2681 * AP is ready to shutdown.
2682 * The AP will not send any more state reports after this.
2683 * After reporting this state, AP will accept VehicleApPowerStateReq#FINISHED.
2684 * Other power state requests are ignored.
2685 *
2686 * int32Values[1]: Time to turn AP back on, in seconds. Power controller should turn on
2687 * AP after the specified time has elapsed so AP can run tasks like
2688 * update. If this value is 0, no wake up is specified. The power
2689 * controller may not necessarily support timed wake-up.
2690 */
2691 SHUTDOWN_START = 5 /* 0x5 */,
2692 /**
2693 * AP is entering its normal operating state.
2694 * After reporting this state, AP will accept VehicleApPowerStateReq#SHUTDOWN_PREPARE.
2695 * Other power state requests are ignored.
2696 */
2697 ON = 6 /* 0x6 */,
2698 /**
2699 * AP is preparing to shut down. In this state, Garage Mode is active and idle
2700 * tasks are allowed to run.
2701 * After reporting this state, AP will accept VehicleApPowerStateReq#SHUTDOWN_PREPARE
2702 * requesting immediate shutdown or VehicleApPowerStateReq#CANCEL_SHUTDOWN. Other
2703 * power state requests are ignored.
2704 */
2705 SHUTDOWN_PREPARE = 7 /* 0x7 */,
2706 /**
2707 * AP has stopped preparing to shut down.
2708 * After reporting this state, AP will accept VehicleApPowerStateReq#ON or
2709 * VehicleApPowerStateReq#SHUTDOWN_PREPARE. Other power state requests are ignored.
2710 */
2711 SHUTDOWN_CANCELLED = 8 /* 0x8 */,
2712 };
2713
2714 enum class VehicleHwKeyInputAction : int32_t {
2715 /**
2716 * Key down
2717 */
2718 ACTION_DOWN = 0,
2719 /**
2720 * Key up
2721 */
2722 ACTION_UP = 1,
2723 };
2724
2725 enum class VehicleDisplay : int32_t {
2726 /**
2727 * The primary Android display (for example, center console)
2728 */
2729 MAIN = 0,
2730 INSTRUMENT_CLUSTER = 1,
2731 };
2732
2733 /**
2734 * Units used for int or float type with no attached enum types.
2735 */
2736 enum class VehicleUnit : int32_t {
2737 SHOULD_NOT_USE = 0 /* 0x000 */,
2738 METER_PER_SEC = 1 /* 0x01 */,
2739 RPM = 2 /* 0x02 */,
2740 HERTZ = 3 /* 0x03 */,
2741 PERCENTILE = 16 /* 0x10 */,
2742 MILLIMETER = 32 /* 0x20 */,
2743 METER = 33 /* 0x21 */,
2744 KILOMETER = 35 /* 0x23 */,
2745 MILE = 36 /* 0x24 */,
2746 CELSIUS = 48 /* 0x30 */,
2747 FAHRENHEIT = 49 /* 0x31 */,
2748 KELVIN = 50 /* 0x32 */,
2749 MILLILITER = 64 /* 0x40 */,
2750 LITER = 65 /* 0x41 */,
2751 /**
2752 * deprecated. Use US_GALLON instead.
2753 */
2754 GALLON = 66 /* 0x42 */,
2755 US_GALLON = 66 /* 0x42 */,
2756 IMPERIAL_GALLON = 67 /* 0x43 */,
2757 NANO_SECS = 80 /* 0x50 */,
2758 SECS = 83 /* 0x53 */,
2759 YEAR = 89 /* 0x59 */,
2760 WATT_HOUR = 96 /* 0x60 */,
2761 MILLIAMPERE = 97 /* 0x61 */,
2762 MILLIVOLT = 98 /* 0x62 */,
2763 MILLIWATTS = 99 /* 0x63 */,
2764 AMPERE_HOURS = 100 /* 0x64 */,
2765 KILOWATT_HOUR = 101 /* 0x65 */,
2766 KILOPASCAL = 112 /* 0x70 */,
2767 PSI = 113 /* 0x71 */,
2768 BAR = 114 /* 0x72 */,
2769 DEGREES = 128 /* 0x80 */,
2770 MILES_PER_HOUR = 144 /* 0x90 */,
2771 KILOMETERS_PER_HOUR = 145 /* 0x91 */,
2772 };
2773
2774 /**
2775 * This describes how value of property can change.
2776 */
2777 enum class VehiclePropertyChangeMode : int32_t {
2778 /**
2779 * Property of this type must never be changed. Subscription is not supported
2780 * for these properties.
2781 */
2782 STATIC = 0 /* 0x00 */,
2783 /**
2784 * Properties of this type must report when there is a change.
2785 * IVehicle#get call must return the current value.
2786 * Set operation for this property is assumed to be asynchronous. When the
2787 * property is read (using IVehicle#get) after IVehicle#set, it may still
2788 * return old value until underlying H/W backing this property has actually
2789 * changed the state. Once state is changed, the property must dispatch
2790 * changed value as event.
2791 */
2792 ON_CHANGE = 1 /* 0x01 */,
2793 /**
2794 * Properties of this type change continuously and require a fixed rate of
2795 * sampling to retrieve the data. Implementers may choose to send extra
2796 * notifications on significant value changes.
2797 */
2798 CONTINUOUS = 2 /* 0x02 */,
2799 };
2800
2801 /**
2802 * Property config defines the capabilities of it. User of the API
2803 * must first get the property config to understand the output from get()
2804 * commands and also to ensure that set() or events commands are in sync with
2805 * the expected output.
2806 */
2807 enum class VehiclePropertyAccess : int32_t {
2808 NONE = 0 /* 0x00 */,
2809 READ = 1 /* 0x01 */,
2810 WRITE = 2 /* 0x02 */,
2811 READ_WRITE = 3 /* 0x03 */,
2812 };
2813
2814 /**
2815 * Property status is a dynamic value that may change based on the vehicle state.
2816 */
2817 enum class VehiclePropertyStatus : int32_t {
2818 /**
2819 * Property is available and behaving normally
2820 */
2821 AVAILABLE = 0 /* 0x00 */,
2822 /**
2823 * A property in this state is not available for reading and writing. This
2824 * is a transient state that depends on the availability of the underlying
2825 * implementation (e.g. hardware or driver). It MUST NOT be used to
2826 * represent features that this vehicle is always incapable of. A get() of
2827 * a property in this state MAY return an undefined value, but MUST
2828 * correctly describe its status as UNAVAILABLE A set() of a property in
2829 * this state MAY return NOT_AVAILABLE. The HAL implementation MUST ignore
2830 * the value of the status field when writing a property value coming from
2831 * Android.
2832 */
2833 UNAVAILABLE = 1 /* 0x01 */,
2834 /**
2835 * There is an error with this property.
2836 */
2837 ERROR = 2 /* 0x02 */,
2838 };
2839
2840 /**
2841 * Various gears which can be selected by user and chosen in system.
2842 */
2843 enum class VehicleGear : int32_t {
2844 GEAR_UNKNOWN = 0 /* 0x0000 */,
2845 GEAR_NEUTRAL = 1 /* 0x0001 */,
2846 GEAR_REVERSE = 2 /* 0x0002 */,
2847 GEAR_PARK = 4 /* 0x0004 */,
2848 GEAR_DRIVE = 8 /* 0x0008 */,
2849 GEAR_1 = 16 /* 0x0010 */,
2850 GEAR_2 = 32 /* 0x0020 */,
2851 GEAR_3 = 64 /* 0x0040 */,
2852 GEAR_4 = 128 /* 0x0080 */,
2853 GEAR_5 = 256 /* 0x0100 */,
2854 GEAR_6 = 512 /* 0x0200 */,
2855 GEAR_7 = 1024 /* 0x0400 */,
2856 GEAR_8 = 2048 /* 0x0800 */,
2857 GEAR_9 = 4096 /* 0x1000 */,
2858 };
2859
2860 /**
2861 * Various Seats in the car.
2862 */
2863 enum class VehicleAreaSeat : int32_t {
2864 ROW_1_LEFT = 1 /* 0x0001 */,
2865 ROW_1_CENTER = 2 /* 0x0002 */,
2866 ROW_1_RIGHT = 4 /* 0x0004 */,
2867 ROW_2_LEFT = 16 /* 0x0010 */,
2868 ROW_2_CENTER = 32 /* 0x0020 */,
2869 ROW_2_RIGHT = 64 /* 0x0040 */,
2870 ROW_3_LEFT = 256 /* 0x0100 */,
2871 ROW_3_CENTER = 512 /* 0x0200 */,
2872 ROW_3_RIGHT = 1024 /* 0x0400 */,
2873 };
2874
2875 /**
2876 * Various windshields/windows in the car.
2877 */
2878 enum class VehicleAreaWindow : int32_t {
2879 FRONT_WINDSHIELD = 1 /* 0x00000001 */,
2880 REAR_WINDSHIELD = 2 /* 0x00000002 */,
2881 ROW_1_LEFT = 16 /* 0x00000010 */,
2882 ROW_1_RIGHT = 64 /* 0x00000040 */,
2883 ROW_2_LEFT = 256 /* 0x00000100 */,
2884 ROW_2_RIGHT = 1024 /* 0x00000400 */,
2885 ROW_3_LEFT = 4096 /* 0x00001000 */,
2886 ROW_3_RIGHT = 16384 /* 0x00004000 */,
2887 ROOF_TOP_1 = 65536 /* 0x00010000 */,
2888 ROOF_TOP_2 = 131072 /* 0x00020000 */,
2889 };
2890
2891 enum class VehicleAreaDoor : int32_t {
2892 ROW_1_LEFT = 1 /* 0x00000001 */,
2893 ROW_1_RIGHT = 4 /* 0x00000004 */,
2894 ROW_2_LEFT = 16 /* 0x00000010 */,
2895 ROW_2_RIGHT = 64 /* 0x00000040 */,
2896 ROW_3_LEFT = 256 /* 0x00000100 */,
2897 ROW_3_RIGHT = 1024 /* 0x00000400 */,
2898 HOOD = 268435456 /* 0x10000000 */,
2899 REAR = 536870912 /* 0x20000000 */,
2900 };
2901
2902 enum class VehicleAreaMirror : int32_t {
2903 DRIVER_LEFT = 1 /* 0x00000001 */,
2904 DRIVER_RIGHT = 2 /* 0x00000002 */,
2905 DRIVER_CENTER = 4 /* 0x00000004 */,
2906 };
2907
2908 enum class VehicleTurnSignal : int32_t {
2909 NONE = 0 /* 0x00 */,
2910 RIGHT = 1 /* 0x01 */,
2911 LEFT = 2 /* 0x02 */,
2912 };
2913
2914 struct VehicleAreaConfig final {
2915 /**
2916 * Area id is ignored for VehiclePropertyGroup:GLOBAL properties.
2917 */
2918 int32_t areaId __attribute__ ((aligned(4)));
2919 /**
2920 * If the property has @data_enum, leave the range to zero.
2921 *
2922 * Range will be ignored in the following cases:
2923 * - The VehiclePropertyType is not INT32, INT64 or FLOAT.
2924 * - Both of min value and max value are zero.
2925 */
2926 int32_t minInt32Value __attribute__ ((aligned(4)));
2927 int32_t maxInt32Value __attribute__ ((aligned(4)));
2928 int64_t minInt64Value __attribute__ ((aligned(8)));
2929 int64_t maxInt64Value __attribute__ ((aligned(8)));
2930 float minFloatValue __attribute__ ((aligned(4)));
2931 float maxFloatValue __attribute__ ((aligned(4)));
2932 };
2933
2934 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig, areaId) == 0, "wrong offset");
2935 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig, minInt32Value) == 4, "wrong offset");
2936 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig, maxInt32Value) == 8, "wrong offset");
2937 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig, minInt64Value) == 16, "wrong offset");
2938 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig, maxInt64Value) == 24, "wrong offset");
2939 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig, minFloatValue) == 32, "wrong offset");
2940 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig, maxFloatValue) == 36, "wrong offset");
2941 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig) == 40, "wrong size");
2942 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig) == 8, "wrong alignment");
2943
2944 struct VehiclePropConfig final {
2945 /**
2946 * Property identifier
2947 */
2948 int32_t prop __attribute__ ((aligned(4)));
2949 /**
2950 * Defines if the property is read or write or both.
2951 */
2952 ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess access __attribute__ ((aligned(4)));
2953 /**
2954 * Defines the change mode of the property.
2955 */
2956 ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode changeMode __attribute__ ((aligned(4)));
2957 /**
2958 * Contains per-area configuration.
2959 */
2960 ::android::hardware::hidl_vec<::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig> areaConfigs __attribute__ ((aligned(8)));
2961 /**
2962 * Contains additional configuration parameters
2963 */
2964 ::android::hardware::hidl_vec<int32_t> configArray __attribute__ ((aligned(8)));
2965 /**
2966 * Some properties may require additional information passed over this
2967 * string. Most properties do not need to set this.
2968 */
2969 ::android::hardware::hidl_string configString __attribute__ ((aligned(8)));
2970 /**
2971 * Min sample rate in Hz.
2972 * Must be defined for VehiclePropertyChangeMode::CONTINUOUS
2973 */
2974 float minSampleRate __attribute__ ((aligned(4)));
2975 /**
2976 * Must be defined for VehiclePropertyChangeMode::CONTINUOUS
2977 * Max sample rate in Hz.
2978 */
2979 float maxSampleRate __attribute__ ((aligned(4)));
2980 };
2981
2982 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig, prop) == 0, "wrong offset");
2983 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig, access) == 4, "wrong offset");
2984 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig, changeMode) == 8, "wrong offset");
2985 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig, areaConfigs) == 16, "wrong offset");
2986 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig, configArray) == 32, "wrong offset");
2987 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig, configString) == 48, "wrong offset");
2988 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig, minSampleRate) == 64, "wrong offset");
2989 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig, maxSampleRate) == 68, "wrong offset");
2990 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig) == 72, "wrong size");
2991 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig) == 8, "wrong alignment");
2992
2993 /**
2994 * Encapsulates the property name and the associated value. It
2995 * is used across various API calls to set values, get values or to register for
2996 * events.
2997 */
2998 struct VehiclePropValue final {
2999 // Forward declaration for forward reference support:
3000 struct RawValue;
3001
3002 /**
3003 * Contains value for a single property. Depending on property data type of
3004 * this property (VehiclePropetyType) one field of this structure must be filled in.
3005 */
3006 struct RawValue final {
3007 /**
3008 * This is used for properties of types VehiclePropertyType#INT
3009 * and VehiclePropertyType#INT_VEC
3010 */
3011 ::android::hardware::hidl_vec<int32_t> int32Values __attribute__ ((aligned(8)));
3012 /**
3013 * This is used for properties of types VehiclePropertyType#FLOAT
3014 * and VehiclePropertyType#FLOAT_VEC
3015 */
3016 ::android::hardware::hidl_vec<float> floatValues __attribute__ ((aligned(8)));
3017 /**
3018 * This is used for properties of type VehiclePropertyType#INT64
3019 */
3020 ::android::hardware::hidl_vec<int64_t> int64Values __attribute__ ((aligned(8)));
3021 /**
3022 * This is used for properties of type VehiclePropertyType#BYTES
3023 */
3024 ::android::hardware::hidl_vec<uint8_t> bytes __attribute__ ((aligned(8)));
3025 /**
3026 * This is used for properties of type VehiclePropertyType#STRING
3027 */
3028 ::android::hardware::hidl_string stringValue __attribute__ ((aligned(8)));
3029 };
3030
3031 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue, int32Values) == 0, "wrong offset");
3032 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue, floatValues) == 16, "wrong offset");
3033 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue, int64Values) == 32, "wrong offset");
3034 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue, bytes) == 48, "wrong offset");
3035 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue, stringValue) == 64, "wrong offset");
3036 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue) == 80, "wrong size");
3037 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue) == 8, "wrong alignment");
3038
3039 /**
3040 * Time is elapsed nanoseconds since boot
3041 */
3042 int64_t timestamp __attribute__ ((aligned(8)));
3043 /**
3044 * Area type(s) for non-global property it must be one of the value from
3045 * VehicleArea* enums or 0 for global properties.
3046 */
3047 int32_t areaId __attribute__ ((aligned(4)));
3048 /**
3049 * Property identifier
3050 */
3051 int32_t prop __attribute__ ((aligned(4)));
3052 /**
3053 * Status of the property
3054 */
3055 ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus status __attribute__ ((aligned(4)));
3056 ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue value __attribute__ ((aligned(8)));
3057 };
3058
3059 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue, timestamp) == 0, "wrong offset");
3060 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue, areaId) == 8, "wrong offset");
3061 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue, prop) == 12, "wrong offset");
3062 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue, status) == 16, "wrong offset");
3063 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue, value) == 24, "wrong offset");
3064 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue) == 104, "wrong size");
3065 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::VehiclePropValue) == 8, "wrong alignment");
3066
3067 enum class VehicleIgnitionState : int32_t {
3068 UNDEFINED = 0,
3069 /**
3070 * Steering wheel is locked
3071 */
3072 LOCK = 1,
3073 /**
3074 * Steering wheel is not locked, engine and all accessories are OFF. If
3075 * car can be in LOCK and OFF state at the same time than HAL must report
3076 * LOCK state.
3077 */
3078 OFF = 2 /* ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState.LOCK implicitly + 1 */,
3079 /**
3080 * Typically in this state accessories become available (e.g. radio).
3081 * Instrument cluster and engine are turned off
3082 */
3083 ACC = 3 /* ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState.OFF implicitly + 1 */,
3084 /**
3085 * Ignition is in state ON. Accessories and instrument cluster available,
3086 * engine might be running or ready to be started.
3087 */
3088 ON = 4 /* ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState.ACC implicitly + 1 */,
3089 /**
3090 * Typically in this state engine is starting (cranking).
3091 */
3092 START = 5 /* ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState.ON implicitly + 1 */,
3093 };
3094
3095 enum class SubscribeFlags : int32_t {
3096 UNDEFINED = 0 /* 0x0 */,
3097 /**
3098 * Subscribe to event that was originated in vehicle HAL
3099 * (most likely this event came from the vehicle itself).
3100 */
3101 EVENTS_FROM_CAR = 1 /* 0x1 */,
3102 /**
3103 * Use this flag to subscribe on events when IVehicle#set(...) was called by
3104 * vehicle HAL's client (e.g. Car Service).
3105 */
3106 EVENTS_FROM_ANDROID = 2 /* 0x2 */,
3107 };
3108
3109 /**
3110 * Encapsulates information about subscription to vehicle property events.
3111 */
3112 struct SubscribeOptions final {
3113 /**
3114 * Property to subscribe
3115 */
3116 int32_t propId __attribute__ ((aligned(4)));
3117 /**
3118 * Sample rate in Hz.
3119 *
3120 * Must be provided for properties with
3121 * VehiclePropertyChangeMode::CONTINUOUS. The value must be within
3122 * VehiclePropConfig#minSamplingRate .. VehiclePropConfig#maxSamplingRate
3123 * for a given property.
3124 * This value indicates how many updates per second client wants to receive.
3125 */
3126 float sampleRate __attribute__ ((aligned(4)));
3127 /**
3128 * Flags that indicate to which event sources to listen.
3129 */
3130 ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags flags __attribute__ ((aligned(4)));
3131 };
3132
3133 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SubscribeOptions, propId) == 0, "wrong offset");
3134 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SubscribeOptions, sampleRate) == 4, "wrong offset");
3135 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SubscribeOptions, flags) == 8, "wrong offset");
3136 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::SubscribeOptions) == 12, "wrong size");
3137 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::SubscribeOptions) == 4, "wrong alignment");
3138
3139 /**
3140 * Error codes used in vehicle HAL interface.
3141 */
3142 enum class StatusCode : int32_t {
3143 OK = 0,
3144 /**
3145 * Try again.
3146 */
3147 TRY_AGAIN = 1,
3148 /**
3149 * Invalid argument provided.
3150 */
3151 INVALID_ARG = 2,
3152 /**
3153 * This code must be returned when device that associated with the vehicle
3154 * property is not available. For example, when client tries to set HVAC
3155 * temperature when the whole HVAC unit is turned OFF.
3156 */
3157 NOT_AVAILABLE = 3,
3158 /**
3159 * Access denied
3160 */
3161 ACCESS_DENIED = 4,
3162 /**
3163 * Something unexpected has happened in Vehicle HAL
3164 */
3165 INTERNAL_ERROR = 5,
3166 };
3167
3168 enum class VehicleAreaWheel : int32_t {
3169 UNKNOWN = 0 /* 0x0 */,
3170 LEFT_FRONT = 1 /* 0x1 */,
3171 RIGHT_FRONT = 2 /* 0x2 */,
3172 LEFT_REAR = 4 /* 0x4 */,
3173 RIGHT_REAR = 8 /* 0x8 */,
3174 };
3175
3176 /**
3177 * The status of the vehicle's fuel system.
3178 * These values come from the SAE J1979 standard.
3179 */
3180 enum class Obd2FuelSystemStatus : int32_t {
3181 OPEN_INSUFFICIENT_ENGINE_TEMPERATURE = 1,
3182 CLOSED_LOOP = 2,
3183 OPEN_ENGINE_LOAD_OR_DECELERATION = 4,
3184 OPEN_SYSTEM_FAILURE = 8,
3185 CLOSED_LOOP_BUT_FEEDBACK_FAULT = 16,
3186 };
3187
3188 /**
3189 * Defines which ignition monitors are available to be read.
3190 */
3191 enum class Obd2IgnitionMonitorKind : int32_t {
3192 SPARK = 0,
3193 COMPRESSION = 1,
3194 };
3195
3196 /**
3197 * Ignition monitors common to both SPARK and COMPRESSION.
3198 * These values come from the SAE J1979 standard.
3199 */
3200 enum class Obd2CommonIgnitionMonitors : int32_t {
3201 COMPONENTS_AVAILABLE = 1 /* 0x1 << 0 */,
3202 COMPONENTS_INCOMPLETE = 2 /* 0x1 << 1 */,
3203 FUEL_SYSTEM_AVAILABLE = 4 /* 0x1 << 2 */,
3204 FUEL_SYSTEM_INCOMPLETE = 8 /* 0x1 << 3 */,
3205 MISFIRE_AVAILABLE = 16 /* 0x1 << 4 */,
3206 MISFIRE_INCOMPLETE = 32 /* 0x1 << 5 */,
3207 };
3208
3209 /**
3210 * Ignition monitors available for SPARK vehicles.
3211 * These values come from the SAE J1979 standard.
3212 */
3213 enum class Obd2SparkIgnitionMonitors : int32_t {
3214 COMPONENTS_AVAILABLE = 1 /* 0x1 << 0 */,
3215 COMPONENTS_INCOMPLETE = 2 /* 0x1 << 1 */,
3216 FUEL_SYSTEM_AVAILABLE = 4 /* 0x1 << 2 */,
3217 FUEL_SYSTEM_INCOMPLETE = 8 /* 0x1 << 3 */,
3218 MISFIRE_AVAILABLE = 16 /* 0x1 << 4 */,
3219 MISFIRE_INCOMPLETE = 32 /* 0x1 << 5 */,
3220 EGR_AVAILABLE = 64 /* 0x1 << 6 */,
3221 EGR_INCOMPLETE = 128 /* 0x1 << 7 */,
3222 OXYGEN_SENSOR_HEATER_AVAILABLE = 256 /* 0x1 << 8 */,
3223 OXYGEN_SENSOR_HEATER_INCOMPLETE = 512 /* 0x1 << 9 */,
3224 OXYGEN_SENSOR_AVAILABLE = 1024 /* 0x1 << 10 */,
3225 OXYGEN_SENSOR_INCOMPLETE = 2048 /* 0x1 << 11 */,
3226 AC_REFRIGERANT_AVAILABLE = 4096 /* 0x1 << 12 */,
3227 AC_REFRIGERANT_INCOMPLETE = 8192 /* 0x1 << 13 */,
3228 SECONDARY_AIR_SYSTEM_AVAILABLE = 16384 /* 0x1 << 14 */,
3229 SECONDARY_AIR_SYSTEM_INCOMPLETE = 32768 /* 0x1 << 15 */,
3230 EVAPORATIVE_SYSTEM_AVAILABLE = 65536 /* 0x1 << 16 */,
3231 EVAPORATIVE_SYSTEM_INCOMPLETE = 131072 /* 0x1 << 17 */,
3232 HEATED_CATALYST_AVAILABLE = 262144 /* 0x1 << 18 */,
3233 HEATED_CATALYST_INCOMPLETE = 524288 /* 0x1 << 19 */,
3234 CATALYST_AVAILABLE = 1048576 /* 0x1 << 20 */,
3235 CATALYST_INCOMPLETE = 2097152 /* 0x1 << 21 */,
3236 };
3237
3238 /**
3239 * Ignition monitors only available for COMPRESSION vehicles.
3240 * These values come from the SAE J1979 standard.
3241 */
3242 enum class Obd2CompressionIgnitionMonitors : int32_t {
3243 COMPONENTS_AVAILABLE = 1 /* 0x1 << 0 */,
3244 COMPONENTS_INCOMPLETE = 2 /* 0x1 << 1 */,
3245 FUEL_SYSTEM_AVAILABLE = 4 /* 0x1 << 2 */,
3246 FUEL_SYSTEM_INCOMPLETE = 8 /* 0x1 << 3 */,
3247 MISFIRE_AVAILABLE = 16 /* 0x1 << 4 */,
3248 MISFIRE_INCOMPLETE = 32 /* 0x1 << 5 */,
3249 EGR_OR_VVT_AVAILABLE = 64 /* 0x1 << 6 */,
3250 EGR_OR_VVT_INCOMPLETE = 128 /* 0x1 << 7 */,
3251 PM_FILTER_AVAILABLE = 256 /* 0x1 << 8 */,
3252 PM_FILTER_INCOMPLETE = 512 /* 0x1 << 9 */,
3253 EXHAUST_GAS_SENSOR_AVAILABLE = 1024 /* 0x1 << 10 */,
3254 EXHAUST_GAS_SENSOR_INCOMPLETE = 2048 /* 0x1 << 11 */,
3255 BOOST_PRESSURE_AVAILABLE = 4096 /* 0x1 << 12 */,
3256 BOOST_PRESSURE_INCOMPLETE = 8192 /* 0x1 << 13 */,
3257 NOx_SCR_AVAILABLE = 16384 /* 0x1 << 14 */,
3258 NOx_SCR_INCOMPLETE = 32768 /* 0x1 << 15 */,
3259 NMHC_CATALYST_AVAILABLE = 65536 /* 0x1 << 16 */,
3260 NMHC_CATALYST_INCOMPLETE = 131072 /* 0x1 << 17 */,
3261 };
3262
3263 /**
3264 * The status of the vehicle's secondary air system.
3265 * These values come from the SAE J1979 standard.
3266 */
3267 enum class Obd2SecondaryAirStatus : int32_t {
3268 UPSTREAM = 1,
3269 DOWNSTREAM_OF_CATALYCIC_CONVERTER = 2,
3270 FROM_OUTSIDE_OR_OFF = 4,
3271 PUMP_ON_FOR_DIAGNOSTICS = 8,
3272 };
3273
3274 /**
3275 * The fuel type(s) supported by a vehicle.
3276 * These values come from the SAE J1979 standard.
3277 */
3278 enum class Obd2FuelType : int32_t {
3279 NOT_AVAILABLE = 0,
3280 GASOLINE = 1,
3281 METHANOL = 2,
3282 ETHANOL = 3,
3283 DIESEL = 4,
3284 LPG = 5,
3285 CNG = 6,
3286 PROPANE = 7,
3287 ELECTRIC = 8,
3288 BIFUEL_RUNNING_GASOLINE = 9,
3289 BIFUEL_RUNNING_METHANOL = 10,
3290 BIFUEL_RUNNING_ETHANOL = 11,
3291 BIFUEL_RUNNING_LPG = 12,
3292 BIFUEL_RUNNING_CNG = 13,
3293 BIFUEL_RUNNING_PROPANE = 14,
3294 BIFUEL_RUNNING_ELECTRIC = 15,
3295 BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION = 16,
3296 HYBRID_GASOLINE = 17,
3297 HYBRID_ETHANOL = 18,
3298 HYBRID_DIESEL = 19,
3299 HYBRID_ELECTRIC = 20,
3300 HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION = 21,
3301 HYBRID_REGENERATIVE = 22,
3302 BIFUEL_RUNNING_DIESEL = 23,
3303 };
3304
3305 /**
3306 * This enum provides the canonical mapping for sensor properties that have an integer value.
3307 * The ordering of the values is taken from the OBD2 specification.
3308 * Some of the properties are represented as an integer mapping to another enum. In those cases
3309 * expect a comment by the property definition describing the enum to look at for the mapping.
3310 * Any value greater than the last reserved index is available to vendors to map their extensions.
3311 * While these values do not directly map to SAE J1979 PIDs, an equivalence is listed next
3312 * to each one to aid implementors.
3313 */
3314 enum class DiagnosticIntegerSensorIndex : int32_t {
3315 /**
3316 * refer to FuelSystemStatus for a description of this value.
3317 */
3318 FUEL_SYSTEM_STATUS = 0,
3319 /*
3320 * PID 0x03
3321 */
3322 MALFUNCTION_INDICATOR_LIGHT_ON = 1,
3323 /*
3324 * PID 0x01
3325 *
3326 *
3327 * refer to IgnitionMonitorKind for a description of this value.
3328 */
3329 IGNITION_MONITORS_SUPPORTED = 2,
3330 /*
3331 * PID 0x01
3332 *
3333 *
3334 * The value of this sensor is a bitmask that specifies whether ignition-specific
3335 * tests are available and whether they are complete. The semantics of the individual
3336 * bits in this value are given by, respectively, SparkIgnitionMonitors and
3337 * CompressionIgnitionMonitors depending on the value of IGNITION_MONITORS_SUPPORTED.
3338 */
3339 IGNITION_SPECIFIC_MONITORS = 3,
3340 /*
3341 * PID 0x01
3342 */
3343 INTAKE_AIR_TEMPERATURE = 4,
3344 /*
3345 * PID 0x0F
3346 *
3347 *
3348 * refer to SecondaryAirStatus for a description of this value.
3349 */
3350 COMMANDED_SECONDARY_AIR_STATUS = 5,
3351 /*
3352 * PID 0x12
3353 */
3354 NUM_OXYGEN_SENSORS_PRESENT = 6,
3355 /*
3356 * PID 0x13
3357 */
3358 RUNTIME_SINCE_ENGINE_START = 7,
3359 /*
3360 * PID 0x1F
3361 */
3362 DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON = 8,
3363 /*
3364 * PID 0x21
3365 */
3366 WARMUPS_SINCE_CODES_CLEARED = 9,
3367 /*
3368 * PID 0x30
3369 */
3370 DISTANCE_TRAVELED_SINCE_CODES_CLEARED = 10,
3371 /*
3372 * PID 0x31
3373 */
3374 ABSOLUTE_BAROMETRIC_PRESSURE = 11,
3375 /*
3376 * PID 0x33
3377 */
3378 CONTROL_MODULE_VOLTAGE = 12,
3379 /*
3380 * PID 0x42
3381 */
3382 AMBIENT_AIR_TEMPERATURE = 13,
3383 /*
3384 * PID 0x46
3385 */
3386 TIME_WITH_MALFUNCTION_LIGHT_ON = 14,
3387 /*
3388 * PID 0x4D
3389 */
3390 TIME_SINCE_TROUBLE_CODES_CLEARED = 15,
3391 /*
3392 * PID 0x4E
3393 */
3394 MAX_FUEL_AIR_EQUIVALENCE_RATIO = 16,
3395 /*
3396 * PID 0x4F
3397 */
3398 MAX_OXYGEN_SENSOR_VOLTAGE = 17,
3399 /*
3400 * PID 0x4F
3401 */
3402 MAX_OXYGEN_SENSOR_CURRENT = 18,
3403 /*
3404 * PID 0x4F
3405 */
3406 MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE = 19,
3407 /*
3408 * PID 0x4F
3409 */
3410 MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR = 20,
3411 /*
3412 * PID 0x50
3413 *
3414 *
3415 * refer to FuelType for a description of this value.
3416 */
3417 FUEL_TYPE = 21,
3418 /*
3419 * PID 0x51
3420 */
3421 FUEL_RAIL_ABSOLUTE_PRESSURE = 22,
3422 /*
3423 * PID 0x59
3424 */
3425 ENGINE_OIL_TEMPERATURE = 23,
3426 /*
3427 * PID 0x5C
3428 */
3429 DRIVER_DEMAND_PERCENT_TORQUE = 24,
3430 /*
3431 * PID 0x61
3432 */
3433 ENGINE_ACTUAL_PERCENT_TORQUE = 25,
3434 /*
3435 * PID 0x62
3436 */
3437 ENGINE_REFERENCE_PERCENT_TORQUE = 26,
3438 /*
3439 * PID 0x63
3440 */
3441 ENGINE_PERCENT_TORQUE_DATA_IDLE = 27,
3442 /*
3443 * PID 0x64
3444 */
3445 ENGINE_PERCENT_TORQUE_DATA_POINT1 = 28,
3446 /*
3447 * PID 0x64
3448 */
3449 ENGINE_PERCENT_TORQUE_DATA_POINT2 = 29,
3450 /*
3451 * PID 0x64
3452 */
3453 ENGINE_PERCENT_TORQUE_DATA_POINT3 = 30,
3454 /*
3455 * PID 0x64
3456 */
3457 ENGINE_PERCENT_TORQUE_DATA_POINT4 = 31,
3458 /*
3459 * PID 0x64
3460 */
3461 LAST_SYSTEM_INDEX = 31 /* ENGINE_PERCENT_TORQUE_DATA_POINT4 */,
3462 };
3463
3464 /**
3465 * This enum provides the canonical mapping for sensor properties that have a floating-point value.
3466 * The ordering of the values is taken from the OBD2 specification.
3467 * Any value greater than the last reserved index is available to vendors to map their extensions.
3468 * While these values do not directly map to SAE J1979 PIDs, an equivalence is listed next
3469 * to each one to aid implementors.
3470 */
3471 enum class DiagnosticFloatSensorIndex : int32_t {
3472 CALCULATED_ENGINE_LOAD = 0,
3473 /*
3474 * PID 0x04
3475 */
3476 ENGINE_COOLANT_TEMPERATURE = 1,
3477 /*
3478 * PID 0x05
3479 */
3480 SHORT_TERM_FUEL_TRIM_BANK1 = 2,
3481 /*
3482 * PID 0x06
3483 */
3484 LONG_TERM_FUEL_TRIM_BANK1 = 3,
3485 /*
3486 * PID 0x07
3487 */
3488 SHORT_TERM_FUEL_TRIM_BANK2 = 4,
3489 /*
3490 * PID 0x08
3491 */
3492 LONG_TERM_FUEL_TRIM_BANK2 = 5,
3493 /*
3494 * PID 0x09
3495 */
3496 FUEL_PRESSURE = 6,
3497 /*
3498 * PID 0x0A
3499 */
3500 INTAKE_MANIFOLD_ABSOLUTE_PRESSURE = 7,
3501 /*
3502 * PID 0x0B
3503 */
3504 ENGINE_RPM = 8,
3505 /*
3506 * PID 0x0C
3507 */
3508 VEHICLE_SPEED = 9,
3509 /*
3510 * PID 0x0D
3511 */
3512 TIMING_ADVANCE = 10,
3513 /*
3514 * PID 0x0E
3515 */
3516 MAF_AIR_FLOW_RATE = 11,
3517 /*
3518 * PID 0x10
3519 */
3520 THROTTLE_POSITION = 12,
3521 /*
3522 * PID 0x11
3523 */
3524 OXYGEN_SENSOR1_VOLTAGE = 13,
3525 /*
3526 * PID 0x14
3527 */
3528 OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM = 14,
3529 /*
3530 * PID 0x14
3531 */
3532 OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO = 15,
3533 /*
3534 * PID 0x24
3535 */
3536 OXYGEN_SENSOR2_VOLTAGE = 16,
3537 /*
3538 * PID 0x15
3539 */
3540 OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM = 17,
3541 /*
3542 * PID 0x15
3543 */
3544 OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO = 18,
3545 /*
3546 * PID 0x25
3547 */
3548 OXYGEN_SENSOR3_VOLTAGE = 19,
3549 /*
3550 * PID 0x16
3551 */
3552 OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM = 20,
3553 /*
3554 * PID 0x16
3555 */
3556 OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO = 21,
3557 /*
3558 * PID 0x26
3559 */
3560 OXYGEN_SENSOR4_VOLTAGE = 22,
3561 /*
3562 * PID 0x17
3563 */
3564 OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM = 23,
3565 /*
3566 * PID 0x17
3567 */
3568 OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO = 24,
3569 /*
3570 * PID 0x27
3571 */
3572 OXYGEN_SENSOR5_VOLTAGE = 25,
3573 /*
3574 * PID 0x18
3575 */
3576 OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM = 26,
3577 /*
3578 * PID 0x18
3579 */
3580 OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO = 27,
3581 /*
3582 * PID 0x28
3583 */
3584 OXYGEN_SENSOR6_VOLTAGE = 28,
3585 /*
3586 * PID 0x19
3587 */
3588 OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM = 29,
3589 /*
3590 * PID 0x19
3591 */
3592 OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO = 30,
3593 /*
3594 * PID 0x29
3595 */
3596 OXYGEN_SENSOR7_VOLTAGE = 31,
3597 /*
3598 * PID 0x1A
3599 */
3600 OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM = 32,
3601 /*
3602 * PID 0x1A
3603 */
3604 OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO = 33,
3605 /*
3606 * PID 0x2A
3607 */
3608 OXYGEN_SENSOR8_VOLTAGE = 34,
3609 /*
3610 * PID 0x1B
3611 */
3612 OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM = 35,
3613 /*
3614 * PID 0x1B
3615 */
3616 OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO = 36,
3617 /*
3618 * PID 0x2B
3619 */
3620 FUEL_RAIL_PRESSURE = 37,
3621 /*
3622 * PID 0x22
3623 */
3624 FUEL_RAIL_GAUGE_PRESSURE = 38,
3625 /*
3626 * PID 0x23
3627 */
3628 COMMANDED_EXHAUST_GAS_RECIRCULATION = 39,
3629 /*
3630 * PID 0x2C
3631 */
3632 EXHAUST_GAS_RECIRCULATION_ERROR = 40,
3633 /*
3634 * PID 0x2D
3635 */
3636 COMMANDED_EVAPORATIVE_PURGE = 41,
3637 /*
3638 * PID 0x2E
3639 */
3640 FUEL_TANK_LEVEL_INPUT = 42,
3641 /*
3642 * PID 0x2F
3643 */
3644 EVAPORATION_SYSTEM_VAPOR_PRESSURE = 43,
3645 /*
3646 * PID 0x32
3647 */
3648 CATALYST_TEMPERATURE_BANK1_SENSOR1 = 44,
3649 /*
3650 * PID 0x3C
3651 */
3652 CATALYST_TEMPERATURE_BANK2_SENSOR1 = 45,
3653 /*
3654 * PID 0x3D
3655 */
3656 CATALYST_TEMPERATURE_BANK1_SENSOR2 = 46,
3657 /*
3658 * PID 0x3E
3659 */
3660 CATALYST_TEMPERATURE_BANK2_SENSOR2 = 47,
3661 /*
3662 * PID 0x3F
3663 */
3664 ABSOLUTE_LOAD_VALUE = 48,
3665 /*
3666 * PID 0x43
3667 */
3668 FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO = 49,
3669 /*
3670 * PID 0x44
3671 */
3672 RELATIVE_THROTTLE_POSITION = 50,
3673 /*
3674 * PID 0x45
3675 */
3676 ABSOLUTE_THROTTLE_POSITION_B = 51,
3677 /*
3678 * PID 0x47
3679 */
3680 ABSOLUTE_THROTTLE_POSITION_C = 52,
3681 /*
3682 * PID 0x48
3683 */
3684 ACCELERATOR_PEDAL_POSITION_D = 53,
3685 /*
3686 * PID 0x49
3687 */
3688 ACCELERATOR_PEDAL_POSITION_E = 54,
3689 /*
3690 * PID 0x4A
3691 */
3692 ACCELERATOR_PEDAL_POSITION_F = 55,
3693 /*
3694 * PID 0x4B
3695 */
3696 COMMANDED_THROTTLE_ACTUATOR = 56,
3697 /*
3698 * PID 0x4C
3699 */
3700 ETHANOL_FUEL_PERCENTAGE = 57,
3701 /*
3702 * PID 0x52
3703 */
3704 ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE = 58,
3705 /*
3706 * PID 0x53
3707 */
3708 SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1 = 59,
3709 /*
3710 * PID 0x55
3711 */
3712 SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2 = 60,
3713 /*
3714 * PID 0x57
3715 */
3716 SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3 = 61,
3717 /*
3718 * PID 0x55
3719 */
3720 SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4 = 62,
3721 /*
3722 * PID 0x57
3723 */
3724 LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1 = 63,
3725 /*
3726 * PID 0x56
3727 */
3728 LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2 = 64,
3729 /*
3730 * PID 0x58
3731 */
3732 LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3 = 65,
3733 /*
3734 * PID 0x56
3735 */
3736 LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4 = 66,
3737 /*
3738 * PID 0x58
3739 */
3740 RELATIVE_ACCELERATOR_PEDAL_POSITION = 67,
3741 /*
3742 * PID 0x5A
3743 */
3744 HYBRID_BATTERY_PACK_REMAINING_LIFE = 68,
3745 /*
3746 * PID 0x5B
3747 */
3748 FUEL_INJECTION_TIMING = 69,
3749 /*
3750 * PID 0x5D
3751 */
3752 ENGINE_FUEL_RATE = 70,
3753 /*
3754 * PID 0x5E
3755 */
3756 LAST_SYSTEM_INDEX = 70 /* ENGINE_FUEL_RATE */,
3757 };
3758
3759 /**
3760 * This enum lists the types of supported VMS messages. It is used as the first
3761 * integer in the vehicle property integers array and determines how the rest of
3762 * the message is decoded.
3763 */
3764 enum class VmsMessageType : int32_t {
3765 /**
3766 * A request from the subscribers to the VMS service to subscribe to a layer.
3767 *
3768 * This message type uses enum VmsMessageWithLayerIntegerValuesIndex.
3769 */
3770 SUBSCRIBE = 1,
3771 /**
3772 * A request from the subscribers to the VMS service to subscribe to a layer from a specific publisher.
3773 *
3774 * This message type uses enum VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.
3775 */
3776 SUBSCRIBE_TO_PUBLISHER = 2,
3777 /**
3778 * A request from the subscribers to the VMS service to unsubscribes from a layer.
3779 *
3780 * This message type uses enum VmsMessageWithLayerIntegerValuesIndex.
3781 */
3782 UNSUBSCRIBE = 3,
3783 /**
3784 * A request from the subscribers to the VMS service to unsubscribes from a layer from a specific publisher.
3785 *
3786 * This message type uses enum VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.
3787 */
3788 UNSUBSCRIBE_TO_PUBLISHER = 4,
3789 /**
3790 * Information from the publishers to the VMS service about the layers which the client can publish.
3791 *
3792 * This message type uses enum VmsOfferingMessageIntegerValuesIndex.
3793 */
3794 OFFERING = 5,
3795 /**
3796 * A request from the subscribers to the VMS service to get the available layers.
3797 *
3798 * This message type uses enum VmsBaseMessageIntegerValuesIndex.
3799 */
3800 AVAILABILITY_REQUEST = 6,
3801 /**
3802 * A request from the publishers to the VMS service to get the layers with subscribers.
3803 *
3804 * This message type uses enum VmsBaseMessageIntegerValuesIndex.
3805 */
3806 SUBSCRIPTIONS_REQUEST = 7,
3807 /**
3808 * A response from the VMS service to the subscribers to a VmsMessageType.AVAILABILITY_REQUEST
3809 *
3810 * This message type uses enum VmsAvailabilityStateIntegerValuesIndex.
3811 */
3812 AVAILABILITY_RESPONSE = 8,
3813 /**
3814 * A notification from the VMS service to the subscribers on a change in the available layers.
3815 *
3816 * This message type uses enum VmsAvailabilityStateIntegerValuesIndex.
3817 */
3818 AVAILABILITY_CHANGE = 9,
3819 /**
3820 * A response from the VMS service to the publishers to a VmsMessageType.SUBSCRIPTIONS_REQUEST
3821 *
3822 * This message type uses enum VmsSubscriptionsStateIntegerValuesIndex.
3823 */
3824 SUBSCRIPTIONS_RESPONSE = 10,
3825 /**
3826 * A notification from the VMS service to the publishers on a change in the layers with subscribers.
3827 *
3828 * This message type uses enum VmsSubscriptionsStateIntegerValuesIndex.
3829 */
3830 SUBSCRIPTIONS_CHANGE = 11,
3831 /**
3832 * A message from the VMS service to the subscribers or from the publishers to the VMS service
3833 * with a serialized VMS data packet as defined in the VMS protocol.
3834 *
3835 * This message type uses enum VmsMessageWithLayerAndPublisherIdIntegerValuesIndex.
3836 */
3837 DATA = 12,
3838 /**
3839 * A request from the publishers to the VMS service to get a Publisher ID for a serialized VMS
3840 * provider description packet as defined in the VMS protocol.
3841 *
3842 * This message type uses enum VmsBaseMessageIntegerValuesIndex.
3843 */
3844 PUBLISHER_ID_REQUEST = 13,
3845 /**
3846 * A response from the VMS service to the publisher that contains a provider description packet
3847 * and the publisher ID assigned to it.
3848 *
3849 * This message type uses enum VmsPublisherInformationIntegerValuesIndex.
3850 */
3851 PUBLISHER_ID_RESPONSE = 14,
3852 /**
3853 * A request from the subscribers to the VMS service to get information for a Publisher ID.
3854 *
3855 * This message type uses enum VmsPublisherInformationIntegerValuesIndex.
3856 */
3857 PUBLISHER_INFORMATION_REQUEST = 15,
3858 /**
3859 * A response from the VMS service to the subscribers that contains a provider description packet
3860 * and the publisher ID assigned to it.
3861 *
3862 * This message type uses enum VmsPublisherInformationIntegerValuesIndex.
3863 */
3864 PUBLISHER_INFORMATION_RESPONSE = 16,
3865 /**
3866 * A notification indicating that the sender has been reset.
3867 *
3868 * The receiving party must reset its internal state and respond to the
3869 * sender with a START_SESSION message as acknowledgement.
3870 *
3871 * This message type uses enum VmsStartSessionMessageIntegerValuesIndex.
3872 */
3873 START_SESSION = 17,
3874 LAST_VMS_MESSAGE_TYPE = 17 /* START_SESSION */,
3875 };
3876
3877 /**
3878 * Every VMS message starts with the type of the message from the VmsMessageType enum.
3879 * Messages with no parameters such as VmsMessageType.AVAILABILITY_REQUEST,
3880 * VmsMessageType.SUBSCRIPTIONS_REQUEST and VmsMessageType.DATA are also based on this enum.
3881 */
3882 enum class VmsBaseMessageIntegerValuesIndex : int32_t {
3883 /*
3884 * The message type as enumerated by VmsMessageType enum.
3885 */
3886 MESSAGE_TYPE = 0,
3887 };
3888
3889 /*
3890 * Handshake data sent as part of a VmsMessageType.START_SESSION message.
3891 *
3892 * A new session is initiated by sending a START_SESSION message with the
3893 * sender's identifier populated and the receiver's identifier set to -1.
3894 *
3895 * Identifier values are independently generated, but must be non-negative, and
3896 * increase monotonically between reboots.
3897 *
3898 * Upon receiving a START_SESSION with a mis-matching identifier, the receiver
3899 * must clear any cached VMS offering or subscription state and acknowledge the
3900 * new session by responding with a START_SESSION message that populates both
3901 * identifier fields.
3902 *
3903 * Any VMS messages received between initiation and completion of the handshake
3904 * must be discarded.
3905 */
3906 enum class VmsStartSessionMessageIntegerValuesIndex : int32_t {
3907 /*
3908 * The message type as enumerated by VmsMessageType enum.
3909 */
3910 MESSAGE_TYPE = 0,
3911 /*
3912 * Identifier field for the Android system service.
3913 */
3914 SERVICE_ID = 1,
3915 /*
3916 * Identifier field for the HAL client process.
3917 */
3918 CLIENT_ID = 2,
3919 };
3920
3921 /*
3922 * A VMS message with a layer is sent as part of a VmsMessageType.SUBSCRIBE or
3923 * VmsMessageType.UNSUBSCRIBE messages.
3924 *
3925 * The layer type is defined in the VMS protocol, and the subtype and version are
3926 * controlled by the implementer of the publisher.
3927 */
3928 enum class VmsMessageWithLayerIntegerValuesIndex : int32_t {
3929 /*
3930 * The message type as enumerated by VmsMessageType enum.
3931 */
3932 MESSAGE_TYPE = 0,
3933 LAYER_TYPE = 1,
3934 LAYER_SUBTYPE = 2,
3935 LAYER_VERSION = 3,
3936 };
3937
3938 /*
3939 * A VMS message with a layer and publisher ID is sent as part of a
3940 * VmsMessageType.SUBSCRIBE_TO_PUBLISHER, VmsMessageType.UNSUBSCRIBE_TO_PUBLISHER messages and
3941 * VmsMessageType.DATA .
3942 */
3943 enum class VmsMessageWithLayerAndPublisherIdIntegerValuesIndex : int32_t {
3944 /*
3945 * The message type as enumerated by VmsMessageType enum.
3946 */
3947 MESSAGE_TYPE = 0,
3948 LAYER_TYPE = 1,
3949 LAYER_SUBTYPE = 2,
3950 LAYER_VERSION = 3,
3951 PUBLISHER_ID = 4,
3952 };
3953
3954 /*
3955 * An offering can be sent by publishers as part of VmsMessageType.OFFERING in order to
3956 * advertise which layers they can publish and under which constraints: e.g., I can publish Layer X
3957 * if someone else will publish Layer Y.
3958 * The offering contains the publisher ID which was assigned to the publisher by the VMS service.
3959 * A single offering is represented as:
3960 * - Layer type
3961 * - Layer subtype
3962 * - Layer version
3963 * - Number of dependencies (N)
3964 * - N x (Layer type, Layer subtype, Layer version)
3965 */
3966 enum class VmsOfferingMessageIntegerValuesIndex : int32_t {
3967 /*
3968 * The message type as enumerated by VmsMessageType enum.
3969 */
3970 MESSAGE_TYPE = 0,
3971 PUBLISHER_ID = 1,
3972 NUMBER_OF_OFFERS = 2,
3973 OFFERING_START = 3,
3974 };
3975
3976 /**
3977 * A subscriptions state is sent to the publishers in response to a change in the subscriptions
3978 * as part of a VmsMessageType.SUBSCRIPTIONS_CHANGE, or in response to a
3979 * VmsMessageType.SUBSCRIPTIONS_REQUEST message as part of VmsMessageType.SUBSCRIPTIONS_RESPONSE.
3980 * The VMS service issues monotonically increasing sequence numbers, and in case a subscriber receives
3981 * a smaller sequnce number it should ignore the message.
3982 * The subscriptions are sent as a list of layers followed by a list of associated layers:
3983 * {Sequence number, N, M, N x layer, M x associated layer}
3984 * A subscribed layer is represented as three integers:
3985 * - Layer type
3986 * - Layer subtype
3987 * - Layer version
3988 * A subscribed associated layer is a layer with a list of publisher IDs. It is represented as:
3989 * - Layer type
3990 * - Layer subtype
3991 * - Layer version
3992 * - Number of publisher IDs (N)
3993 * - N x publisher ID
3994 */
3995 enum class VmsSubscriptionsStateIntegerValuesIndex : int32_t {
3996 /*
3997 * The message type as enumerated by VmsMessageType enum.
3998 */
3999 MESSAGE_TYPE = 0,
4000 SEQUENCE_NUMBER = 1,
4001 NUMBER_OF_LAYERS = 2,
4002 NUMBER_OF_ASSOCIATED_LAYERS = 3,
4003 SUBSCRIPTIONS_START = 4,
4004 };
4005
4006 /**
4007 * An availability state is sent to the subscribers in response to a change in the available
4008 * layers as part of a VmsMessageType.AVAILABILITY_CHANGE message, or in response to a
4009 * VmsMessageType.AVAILABILITY_REQUEST message as part of a VmsMessageType.AVAILABILITY_RESPONSE.
4010 * The VMS service issues monotonically increasing sequence numbers, and in case a subscriber receives
4011 * a smaller sequnce number, it should ignore the message.
4012 * An available associated layer is a layer with a list of publisher IDs:
4013 * - Layer type
4014 * - Layer subtype
4015 * - Layer version
4016 * - Number of publisher IDs (N)
4017 * - N x publisher ID
4018 */
4019 enum class VmsAvailabilityStateIntegerValuesIndex : int32_t {
4020 /*
4021 * The message type as enumerated by VmsMessageType enum.
4022 */
4023 MESSAGE_TYPE = 0,
4024 SEQUENCE_NUMBER = 1,
4025 NUMBER_OF_ASSOCIATED_LAYERS = 2,
4026 LAYERS_START = 3,
4027 };
4028
4029 /*
4030 * Publishers send the VMS service their information and assigned in response a publisher ID.
4031 * Subscribers can request the publisher information for a publisher ID they received in other messages.
4032 */
4033 enum class VmsPublisherInformationIntegerValuesIndex : int32_t {
4034 /*
4035 * The message type as enumerated by VmsMessageType enum.
4036 */
4037 MESSAGE_TYPE = 0,
4038 PUBLISHER_ID = 1,
4039 };
4040
4041 /**
4042 * Id of an Android user.
4043 *
4044 * Must be > 0 for valid ids, or -10000 (which is the same as Android.UserHandle.USER_NULL) when
4045 * it's not used.
4046 */
4047 typedef int32_t UserId;
4048
4049 /**
4050 * Flags used to define the characteristics of an Android user.
4051 */
4052 enum class UserFlags : int32_t {
4053 /**
4054 * No flags.
4055 */
4056 NONE = 0 /* 0x0 */,
4057 /**
4058 * System user.
4059 * On automotive, that user is always running, although never on foreground (except during
4060 * boot or exceptional circumstances).
4061 */
4062 SYSTEM = 1 /* 0x01 */,
4063 /**
4064 * Guest users have restrictions.
4065 */
4066 GUEST = 2 /* 0x02 */,
4067 /**
4068 * Ephemeral users have non-persistent state.
4069 */
4070 EPHEMERAL = 4 /* 0x04 */,
4071 /**
4072 * Admin users have additional privileges such as permission to create other users.
4073 */
4074 ADMIN = 8 /* 0x08 */,
4075 };
4076
4077 /**
4078 * Information about a specific Android user.
4079 */
4080 struct UserInfo final {
4081 int32_t userId __attribute__ ((aligned(4)));
4082 ::android::hardware::automotive::vehicle::V2_0::UserFlags flags __attribute__ ((aligned(4)));
4083 };
4084
4085 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserInfo, userId) == 0, "wrong offset");
4086 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserInfo, flags) == 4, "wrong offset");
4087 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::UserInfo) == 8, "wrong size");
4088 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::UserInfo) == 4, "wrong alignment");
4089
4090 /**
4091 * Information about all Android users.
4092 *
4093 * NOTE: this struct is not used in the HAL properties directly, it's part of other structs, which
4094 * in turn are converted to a VehiclePropValue.RawValue through libraries provided by the default
4095 * Vehicle HAL implementation.
4096 */
4097 struct UsersInfo final {
4098 /**
4099 * The current foreground user.
4100 */
4101 ::android::hardware::automotive::vehicle::V2_0::UserInfo currentUser __attribute__ ((aligned(4)));
4102 /**
4103 * Number of existing users (includes the current user).
4104 */
4105 int32_t numberUsers __attribute__ ((aligned(4)));
4106 /**
4107 * List of existing users (includes the current user).
4108 */
4109 ::android::hardware::hidl_vec<::android::hardware::automotive::vehicle::V2_0::UserInfo> existingUsers __attribute__ ((aligned(8)));
4110 };
4111
4112 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UsersInfo, currentUser) == 0, "wrong offset");
4113 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UsersInfo, numberUsers) == 8, "wrong offset");
4114 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UsersInfo, existingUsers) == 16, "wrong offset");
4115 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::UsersInfo) == 32, "wrong size");
4116 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::UsersInfo) == 8, "wrong alignment");
4117
4118 /**
4119 * Id of a request related to user management.
4120 *
4121 * This id can be used by the Android system to map responses sent by the HAL, and vice-versa.
4122 *
4123 * For requests originated by Android, the value is positive (> 0), while for requests originated by
4124 * the HAL it must be negative (< 0).
4125 */
4126 typedef int32_t UserRequestId;
4127
4128 /**
4129 * Defines when a INITIAL_USER_INFO request was made.
4130 */
4131 enum class InitialUserInfoRequestType : int32_t {
4132 /**
4133 * At the first time Android was booted (or after a factory reset).
4134 */
4135 FIRST_BOOT = 1,
4136 /**
4137 * At the first time Android was booted after the system was updated.
4138 */
4139 FIRST_BOOT_AFTER_OTA = 2,
4140 /**
4141 * When Android was booted "from scratch".
4142 */
4143 COLD_BOOT = 3,
4144 /**
4145 * When Android was resumed after the system was suspended to memory.
4146 */
4147 RESUME = 4,
4148 };
4149
4150 /**
4151 * Defines the format of a INITIAL_USER_INFO request made by the Android system.
4152 *
4153 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4154 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4155 */
4156 struct InitialUserInfoRequest final {
4157 /**
4158 * Arbitrary id used to map the HAL response to the request.
4159 */
4160 int32_t requestId __attribute__ ((aligned(4)));
4161 /**
4162 * Type of request.
4163 */
4164 ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType requestType __attribute__ ((aligned(4)));
4165 /**
4166 * Information about the current state of the Android system.
4167 */
4168 ::android::hardware::automotive::vehicle::V2_0::UsersInfo usersInfo __attribute__ ((aligned(8)));
4169 };
4170
4171 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest, requestId) == 0, "wrong offset");
4172 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest, requestType) == 4, "wrong offset");
4173 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest, usersInfo) == 8, "wrong offset");
4174 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest) == 40, "wrong size");
4175 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest) == 8, "wrong alignment");
4176
4177 /**
4178 * Defines which action the Android system should take in an INITIAL_USER_INFO request.
4179 */
4180 enum class InitialUserInfoResponseAction : int32_t {
4181 /**
4182 * Let the Android System decide what to do.
4183 *
4184 * For example, it might create a new user on first boot, and switch to the last
4185 * active user afterwards.
4186 */
4187 DEFAULT = 0,
4188 /**
4189 * Switch to an existing Android user.
4190 */
4191 SWITCH = 1,
4192 /**
4193 * Create a new Android user (and switch to it).
4194 */
4195 CREATE = 2,
4196 };
4197
4198 /**
4199 * Defines the format of a HAL response to a INITIAL_USER_INFO request.
4200 *
4201 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4202 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4203 */
4204 struct InitialUserInfoResponse final {
4205 /**
4206 * Id of the request being responded.
4207 */
4208 int32_t requestId __attribute__ ((aligned(4)));
4209 /**
4210 * which action the Android system should take.
4211 */
4212 ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction action __attribute__ ((aligned(4)));
4213 /**
4214 * Information about the user that should be switched to or created.
4215 */
4216 ::android::hardware::automotive::vehicle::V2_0::UserInfo userToSwitchOrCreate __attribute__ ((aligned(4)));
4217 /**
4218 * Name of the user that should be created.
4219 */
4220 ::android::hardware::hidl_string userNameToCreate __attribute__ ((aligned(8)));
4221 };
4222
4223 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse, requestId) == 0, "wrong offset");
4224 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse, action) == 4, "wrong offset");
4225 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse, userToSwitchOrCreate) == 8, "wrong offset");
4226 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse, userNameToCreate) == 16, "wrong offset");
4227 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse) == 32, "wrong size");
4228 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse) == 8, "wrong alignment");
4229
4230 /**
4231 * Defines the reason a SWITCH_USER call was made.
4232 *
4233 * The meaning of each constant is explained in that property.
4234 */
4235 enum class SwitchUserMessageType : int32_t {
4236 LEGACY_ANDROID_SWITCH = 1,
4237 ANDROID_SWITCH = 2,
4238 VEHICLE_RESPONSE = 3,
4239 VEHICLE_REQUEST = 4,
4240 ANDROID_POST_SWITCH = 5,
4241 };
4242
4243 /**
4244 * Defines the format of a SWITCH_USER property.
4245 *
4246 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4247 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4248 */
4249 struct SwitchUserRequest final {
4250 /**
4251 * Arbitrary id used to map the response to the request.
4252 */
4253 int32_t requestId __attribute__ ((aligned(4)));
4254 /**
4255 * Type of message.
4256 */
4257 ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType messageType __attribute__ ((aligned(4)));
4258 /**
4259 * Information about the Android user being switched to.
4260 *
4261 * Only the user id (but not the flags) should be set when the request is made by HAL.
4262 */
4263 ::android::hardware::automotive::vehicle::V2_0::UserInfo targetUser __attribute__ ((aligned(4)));
4264 /**
4265 * Information about the current state of the Android system.
4266 *
4267 * Should not be set when the request is made by HAL.
4268 */
4269 ::android::hardware::automotive::vehicle::V2_0::UsersInfo usersInfo __attribute__ ((aligned(8)));
4270 };
4271
4272 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest, requestId) == 0, "wrong offset");
4273 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest, messageType) == 4, "wrong offset");
4274 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest, targetUser) == 8, "wrong offset");
4275 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest, usersInfo) == 16, "wrong offset");
4276 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest) == 48, "wrong size");
4277 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest) == 8, "wrong alignment");
4278
4279 /**
4280 * Status of the response to a SwitchUserRequest.
4281 */
4282 enum class SwitchUserStatus : int32_t {
4283 /**
4284 * The request succeeded and the HAL user was switched.
4285 */
4286 SUCCESS = 1,
4287 /**
4288 * The request failed and the HAL user remained the same.
4289 */
4290 FAILURE = 2,
4291 };
4292
4293 /**
4294 * Defines the result of a SwitchUserRequest.
4295 *
4296 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4297 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4298 */
4299 struct SwitchUserResponse final {
4300 /**
4301 * Id of the request being responded.
4302 */
4303 int32_t requestId __attribute__ ((aligned(4)));
4304 /**
4305 * Type of message.
4306 */
4307 ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType messageType __attribute__ ((aligned(4)));
4308 /**
4309 * Status of the request.
4310 */
4311 ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus status __attribute__ ((aligned(4)));
4312 /**
4313 * HAL-specific error message.
4314 *
4315 * This argument is optional, and when defined, it's passed "as-is" to the caller. It could be
4316 * used to show custom error messages to the end user.
4317 */
4318 ::android::hardware::hidl_string errorMessage __attribute__ ((aligned(8)));
4319 };
4320
4321 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse, requestId) == 0, "wrong offset");
4322 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse, messageType) == 4, "wrong offset");
4323 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse, status) == 8, "wrong offset");
4324 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse, errorMessage) == 16, "wrong offset");
4325 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse) == 32, "wrong size");
4326 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse) == 8, "wrong alignment");
4327
4328 /**
4329 * Defines the format of a CREATE_USER property.
4330 *
4331 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4332 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4333 */
4334 struct CreateUserRequest final {
4335 /**
4336 * Arbitrary id used to map the response to the request.
4337 */
4338 int32_t requestId __attribute__ ((aligned(4)));
4339 /**
4340 * Basic information about Android user that was created.
4341 */
4342 ::android::hardware::automotive::vehicle::V2_0::UserInfo newUserInfo __attribute__ ((aligned(4)));
4343 /**
4344 * Name of the new Android user.
4345 */
4346 ::android::hardware::hidl_string newUserName __attribute__ ((aligned(8)));
4347 /**
4348 * Information about the current state of the Android system.
4349 */
4350 ::android::hardware::automotive::vehicle::V2_0::UsersInfo usersInfo __attribute__ ((aligned(8)));
4351 };
4352
4353 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::CreateUserRequest, requestId) == 0, "wrong offset");
4354 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::CreateUserRequest, newUserInfo) == 4, "wrong offset");
4355 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::CreateUserRequest, newUserName) == 16, "wrong offset");
4356 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::CreateUserRequest, usersInfo) == 32, "wrong offset");
4357 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::CreateUserRequest) == 64, "wrong size");
4358 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::CreateUserRequest) == 8, "wrong alignment");
4359
4360 /**
4361 * Status of the response to a CreateUserRequest.
4362 */
4363 enum class CreateUserStatus : int32_t {
4364 /**
4365 * The request succeeded (for example, HAL created a new internal user, or associated the
4366 * Android user to an existing internal user).
4367 */
4368 SUCCESS = 1,
4369 /**
4370 * The request failed (and Android will remove the Android user).
4371 */
4372 FAILURE = 2,
4373 };
4374
4375 /**
4376 * Defines the result of a CreateUserRequest.
4377 *
4378 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4379 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4380 */
4381 struct CreateUserResponse final {
4382 /**
4383 * Id of the request being responded.
4384 */
4385 int32_t requestId __attribute__ ((aligned(4)));
4386 /**
4387 * Status of the request.
4388 */
4389 ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus status __attribute__ ((aligned(4)));
4390 /**
4391 * HAL-specific error message.
4392 *
4393 * This argument is optional, and when defined, it's passed "as-is" to the caller. It could be
4394 * used to show custom error messages to the end user.
4395 */
4396 ::android::hardware::hidl_string errorMessage __attribute__ ((aligned(8)));
4397 };
4398
4399 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::CreateUserResponse, requestId) == 0, "wrong offset");
4400 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::CreateUserResponse, status) == 4, "wrong offset");
4401 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::CreateUserResponse, errorMessage) == 8, "wrong offset");
4402 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::CreateUserResponse) == 24, "wrong size");
4403 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::CreateUserResponse) == 8, "wrong alignment");
4404
4405 /**
4406 * Defines the format of a REMOVE_USER property.
4407 *
4408 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4409 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4410 */
4411 struct RemoveUserRequest final {
4412 /**
4413 * Arbitrary id used to map the response to the request.
4414 */
4415 int32_t requestId __attribute__ ((aligned(4)));
4416 /**
4417 * Information about the Android user that was removed.
4418 */
4419 ::android::hardware::automotive::vehicle::V2_0::UserInfo removedUserInfo __attribute__ ((aligned(4)));
4420 /**
4421 * Information about the current state of the Android system.
4422 */
4423 ::android::hardware::automotive::vehicle::V2_0::UsersInfo usersInfo __attribute__ ((aligned(8)));
4424 };
4425
4426 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest, requestId) == 0, "wrong offset");
4427 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest, removedUserInfo) == 4, "wrong offset");
4428 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest, usersInfo) == 16, "wrong offset");
4429 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest) == 48, "wrong size");
4430 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest) == 8, "wrong alignment");
4431
4432 /**
4433 * Types of mechanisms used to identify an Android user.
4434 *
4435 * See USER_IDENTIFICATION_ASSOCIATION for more details and example.
4436 */
4437 enum class UserIdentificationAssociationType : int32_t {
4438 /**
4439 * Key used to unlock the car.
4440 */
4441 KEY_FOB = 1,
4442 /**
4443 * Custom mechanism defined by the OEM.
4444 */
4445 CUSTOM_1 = 101,
4446 /**
4447 * Custom mechanism defined by the OEM.
4448 */
4449 CUSTOM_2 = 102,
4450 /**
4451 * Custom mechanism defined by the OEM.
4452 */
4453 CUSTOM_3 = 103,
4454 /**
4455 * Custom mechanism defined by the OEM.
4456 */
4457 CUSTOM_4 = 104,
4458 };
4459
4460 /**
4461 * Whether a UserIdentificationAssociationType is associate with an Android user.
4462 */
4463 enum class UserIdentificationAssociationValue : int32_t {
4464 /**
4465 * Used when the status of an association could not be determined.
4466 *
4467 * For example, in a set() request, it would indicate a failure to set the given type.
4468 */
4469 UNKNOWN = 1,
4470 /**
4471 * The identification type is associated with the current foreground Android user.
4472 */
4473 ASSOCIATED_CURRENT_USER = 2,
4474 /**
4475 * The identification type is associated with another Android user.
4476 */
4477 ASSOCIATED_ANOTHER_USER = 3,
4478 /**
4479 * The identification type is not associated with any Android user.
4480 */
4481 NOT_ASSOCIATED_ANY_USER = 4,
4482 };
4483
4484 /**
4485 * Used to set a UserIdentificationAssociationType with an Android user.
4486 */
4487 enum class UserIdentificationAssociationSetValue : int32_t {
4488 /**
4489 * Associate the identification type with the current foreground Android user.
4490 */
4491 ASSOCIATE_CURRENT_USER = 1,
4492 /**
4493 * Disassociate the identification type from the current foreground Android user.
4494 */
4495 DISASSOCIATE_CURRENT_USER = 2,
4496 /**
4497 * Disassociate the identification type from all Android users.
4498 */
4499 DISASSOCIATE_ALL_USERS = 3,
4500 };
4501
4502 /**
4503 * Defines the format of a get() call to USER_IDENTIFICATION_ASSOCIATION.
4504 *
4505 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4506 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4507 */
4508 struct UserIdentificationGetRequest final {
4509 /**
4510 * Information about the current foreground Android user.
4511 */
4512 ::android::hardware::automotive::vehicle::V2_0::UserInfo userInfo __attribute__ ((aligned(4)));
4513 /**
4514 * Number of association being queried.
4515 */
4516 int32_t numberAssociationTypes __attribute__ ((aligned(4)));
4517 /**
4518 * Types of association being queried.
4519 */
4520 ::android::hardware::hidl_vec<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType> associationTypes __attribute__ ((aligned(8)));
4521 };
4522
4523 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest, userInfo) == 0, "wrong offset");
4524 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest, numberAssociationTypes) == 8, "wrong offset");
4525 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest, associationTypes) == 16, "wrong offset");
4526 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest) == 32, "wrong size");
4527 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest) == 8, "wrong alignment");
4528
4529 /**
4530 * Defines the format of a set() call to USER_IDENTIFICATION_ASSOCIATION.
4531 *
4532 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4533 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4534 */
4535 struct UserIdentificationSetRequest final {
4536 /**
4537 * Information about the current foreground Android user.
4538 */
4539 ::android::hardware::automotive::vehicle::V2_0::UserInfo userInfo __attribute__ ((aligned(4)));
4540 /**
4541 * Number of association being set.
4542 */
4543 int32_t numberAssociations __attribute__ ((aligned(4)));
4544 /**
4545 * Associations being set.
4546 */
4547 ::android::hardware::hidl_vec<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue> associations __attribute__ ((aligned(8)));
4548 };
4549
4550 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest, userInfo) == 0, "wrong offset");
4551 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest, numberAssociations) == 8, "wrong offset");
4552 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest, associations) == 16, "wrong offset");
4553 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest) == 32, "wrong size");
4554 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest) == 8, "wrong alignment");
4555
4556 /**
4557 * Defines the result of a USER_IDENTIFICATION_ASSOCIATION - both for get() and set().
4558 *
4559 * NOTE: this struct is not used in the HAL properties directly, it must be converted to
4560 * VehiclePropValue.RawValue through libraries provided by the default Vehicle HAL implementation.
4561 */
4562 struct UserIdentificationResponse final {
4563 /**
4564 * Number of associations being returned.
4565 */
4566 int32_t numberAssociation __attribute__ ((aligned(4)));
4567 /**
4568 * Values associated with the user.
4569 */
4570 ::android::hardware::hidl_vec<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation> associations __attribute__ ((aligned(8)));
4571 /**
4572 * HAL-specific error message.
4573 *
4574 * This argument is optional, and when defined, it's passed "as-is" to the caller. It could be
4575 * used to show custom error messages to the end user.
4576 */
4577 ::android::hardware::hidl_string errorMessage __attribute__ ((aligned(8)));
4578 };
4579
4580 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse, numberAssociation) == 0, "wrong offset");
4581 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse, associations) == 8, "wrong offset");
4582 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse, errorMessage) == 24, "wrong offset");
4583 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse) == 40, "wrong size");
4584 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse) == 8, "wrong alignment");
4585
4586 /**
4587 * Helper struct used when getting a user/identification association type.
4588 */
4589 struct UserIdentificationAssociation final {
4590 ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType type __attribute__ ((aligned(4)));
4591 ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue value __attribute__ ((aligned(4)));
4592 };
4593
4594 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation, type) == 0, "wrong offset");
4595 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation, value) == 4, "wrong offset");
4596 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation) == 8, "wrong size");
4597 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation) == 4, "wrong alignment");
4598
4599 /**
4600 * Helper struct used when setting a user/identification association type.
4601 */
4602 struct UserIdentificationSetAssociation final {
4603 ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType type __attribute__ ((aligned(4)));
4604 ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue value __attribute__ ((aligned(4)));
4605 };
4606
4607 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation, type) == 0, "wrong offset");
4608 // static_assert(offsetof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation, value) == 4, "wrong offset");
4609 // static_assert(sizeof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation) == 8, "wrong size");
4610 // static_assert(__alignof(::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation) == 4, "wrong alignment");
4611
4612 /**
4613 * A rotary control which can rotate without limits. These controls use HW_ROTARY_INPUT to report
4614 * relative clockwise or counterclockwise motion. They have no absolute position.
4615 */
4616 enum class RotaryInputType : int32_t {
4617 /**
4618 * Main rotary control, typically in the center console, used to navigate the user interface.
4619 */
4620 ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION = 0,
4621 /**
4622 * Volume control for adjusting audio volume.
4623 */
4624 ROTARY_INPUT_TYPE_AUDIO_VOLUME = 1,
4625 };
4626
4627 //
4628 // type declarations for package
4629 //
4630
4631 template<typename>
4632 static inline std::string toString(int32_t o);
4633 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType o);
4634 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType o, ::std::ostream* os);
4635 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType rhs) {
4636 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4637 }
4638 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType rhs) {
4639 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4640 }
4641 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType lhs, const int32_t rhs) {
4642 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4643 }
4644 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType rhs) {
4645 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4646 }
4647 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType rhs) {
4648 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4649 }
4650 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType lhs, const int32_t rhs) {
4651 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4652 }
4653 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType e) {
4654 v |= static_cast<int32_t>(e);
4655 return v;
4656 }
4657 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType e) {
4658 v &= static_cast<int32_t>(e);
4659 return v;
4660 }
4661
4662 template<typename>
4663 static inline std::string toString(int32_t o);
4664 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleArea o);
4665 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleArea o, ::std::ostream* os);
4666 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleArea lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleArea rhs) {
4667 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4668 }
4669 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleArea rhs) {
4670 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4671 }
4672 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleArea lhs, const int32_t rhs) {
4673 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4674 }
4675 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleArea lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleArea rhs) {
4676 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4677 }
4678 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleArea rhs) {
4679 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4680 }
4681 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleArea lhs, const int32_t rhs) {
4682 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4683 }
4684 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleArea e) {
4685 v |= static_cast<int32_t>(e);
4686 return v;
4687 }
4688 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleArea e) {
4689 v &= static_cast<int32_t>(e);
4690 return v;
4691 }
4692
4693 template<typename>
4694 static inline std::string toString(int32_t o);
4695 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup o);
4696 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup o, ::std::ostream* os);
4697 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup rhs) {
4698 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4699 }
4700 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup rhs) {
4701 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4702 }
4703 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup lhs, const int32_t rhs) {
4704 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4705 }
4706 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup rhs) {
4707 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4708 }
4709 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup rhs) {
4710 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4711 }
4712 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup lhs, const int32_t rhs) {
4713 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4714 }
4715 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup e) {
4716 v |= static_cast<int32_t>(e);
4717 return v;
4718 }
4719 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup e) {
4720 v &= static_cast<int32_t>(e);
4721 return v;
4722 }
4723
4724 template<typename>
4725 static inline std::string toString(int32_t o);
4726 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleProperty o);
4727 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleProperty o, ::std::ostream* os);
4728 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty rhs) {
4729 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4730 }
4731 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty rhs) {
4732 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4733 }
4734 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty lhs, const int32_t rhs) {
4735 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4736 }
4737 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty rhs) {
4738 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4739 }
4740 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty rhs) {
4741 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4742 }
4743 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty lhs, const int32_t rhs) {
4744 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4745 }
4746 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty e) {
4747 v |= static_cast<int32_t>(e);
4748 return v;
4749 }
4750 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleProperty e) {
4751 v &= static_cast<int32_t>(e);
4752 return v;
4753 }
4754
4755 template<typename>
4756 static inline std::string toString(int32_t o);
4757 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission o);
4758 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission o, ::std::ostream* os);
4759 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission rhs) {
4760 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4761 }
4762 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission rhs) {
4763 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4764 }
4765 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission lhs, const int32_t rhs) {
4766 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4767 }
4768 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission rhs) {
4769 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4770 }
4771 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission rhs) {
4772 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4773 }
4774 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission lhs, const int32_t rhs) {
4775 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4776 }
4777 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission e) {
4778 v |= static_cast<int32_t>(e);
4779 return v;
4780 }
4781 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission e) {
4782 v &= static_cast<int32_t>(e);
4783 return v;
4784 }
4785
4786 template<typename>
4787 static inline std::string toString(int32_t o);
4788 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState o);
4789 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState o, ::std::ostream* os);
4790 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState rhs) {
4791 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4792 }
4793 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState rhs) {
4794 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4795 }
4796 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState lhs, const int32_t rhs) {
4797 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4798 }
4799 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState rhs) {
4800 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4801 }
4802 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState rhs) {
4803 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4804 }
4805 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState lhs, const int32_t rhs) {
4806 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4807 }
4808 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState e) {
4809 v |= static_cast<int32_t>(e);
4810 return v;
4811 }
4812 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState e) {
4813 v &= static_cast<int32_t>(e);
4814 return v;
4815 }
4816
4817 template<typename>
4818 static inline std::string toString(int32_t o);
4819 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleLightState o);
4820 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleLightState o, ::std::ostream* os);
4821 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState rhs) {
4822 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4823 }
4824 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState rhs) {
4825 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4826 }
4827 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState lhs, const int32_t rhs) {
4828 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4829 }
4830 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState rhs) {
4831 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4832 }
4833 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState rhs) {
4834 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4835 }
4836 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState lhs, const int32_t rhs) {
4837 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4838 }
4839 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState e) {
4840 v |= static_cast<int32_t>(e);
4841 return v;
4842 }
4843 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightState e) {
4844 v &= static_cast<int32_t>(e);
4845 return v;
4846 }
4847
4848 template<typename>
4849 static inline std::string toString(int32_t o);
4850 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch o);
4851 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch o, ::std::ostream* os);
4852 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch rhs) {
4853 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4854 }
4855 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch rhs) {
4856 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4857 }
4858 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch lhs, const int32_t rhs) {
4859 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4860 }
4861 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch rhs) {
4862 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4863 }
4864 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch rhs) {
4865 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4866 }
4867 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch lhs, const int32_t rhs) {
4868 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4869 }
4870 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch e) {
4871 v |= static_cast<int32_t>(e);
4872 return v;
4873 }
4874 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch e) {
4875 v &= static_cast<int32_t>(e);
4876 return v;
4877 }
4878
4879 template<typename>
4880 static inline std::string toString(int32_t o);
4881 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::EvConnectorType o);
4882 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::EvConnectorType o, ::std::ostream* os);
4883 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType lhs, const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType rhs) {
4884 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4885 }
4886 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType rhs) {
4887 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4888 }
4889 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType lhs, const int32_t rhs) {
4890 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4891 }
4892 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType lhs, const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType rhs) {
4893 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4894 }
4895 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType rhs) {
4896 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4897 }
4898 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType lhs, const int32_t rhs) {
4899 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4900 }
4901 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType e) {
4902 v |= static_cast<int32_t>(e);
4903 return v;
4904 }
4905 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::EvConnectorType e) {
4906 v &= static_cast<int32_t>(e);
4907 return v;
4908 }
4909
4910 template<typename>
4911 static inline std::string toString(int32_t o);
4912 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::PortLocationType o);
4913 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::PortLocationType o, ::std::ostream* os);
4914 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::PortLocationType lhs, const ::android::hardware::automotive::vehicle::V2_0::PortLocationType rhs) {
4915 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4916 }
4917 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::PortLocationType rhs) {
4918 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4919 }
4920 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::PortLocationType lhs, const int32_t rhs) {
4921 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4922 }
4923 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::PortLocationType lhs, const ::android::hardware::automotive::vehicle::V2_0::PortLocationType rhs) {
4924 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4925 }
4926 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::PortLocationType rhs) {
4927 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4928 }
4929 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::PortLocationType lhs, const int32_t rhs) {
4930 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4931 }
4932 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::PortLocationType e) {
4933 v |= static_cast<int32_t>(e);
4934 return v;
4935 }
4936 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::PortLocationType e) {
4937 v &= static_cast<int32_t>(e);
4938 return v;
4939 }
4940
4941 template<typename>
4942 static inline std::string toString(int32_t o);
4943 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::FuelType o);
4944 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::FuelType o, ::std::ostream* os);
4945 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::FuelType lhs, const ::android::hardware::automotive::vehicle::V2_0::FuelType rhs) {
4946 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4947 }
4948 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::FuelType rhs) {
4949 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4950 }
4951 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::FuelType lhs, const int32_t rhs) {
4952 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4953 }
4954 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::FuelType lhs, const ::android::hardware::automotive::vehicle::V2_0::FuelType rhs) {
4955 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4956 }
4957 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::FuelType rhs) {
4958 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4959 }
4960 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::FuelType lhs, const int32_t rhs) {
4961 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4962 }
4963 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::FuelType e) {
4964 v |= static_cast<int32_t>(e);
4965 return v;
4966 }
4967 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::FuelType e) {
4968 v &= static_cast<int32_t>(e);
4969 return v;
4970 }
4971
4972 template<typename>
4973 static inline std::string toString(int32_t o);
4974 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection o);
4975 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection o, ::std::ostream* os);
4976 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection rhs) {
4977 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
4978 }
4979 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection rhs) {
4980 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
4981 }
4982 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection lhs, const int32_t rhs) {
4983 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
4984 }
4985 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection rhs) {
4986 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
4987 }
4988 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection rhs) {
4989 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
4990 }
4991 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection lhs, const int32_t rhs) {
4992 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
4993 }
4994 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection e) {
4995 v |= static_cast<int32_t>(e);
4996 return v;
4997 }
4998 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection e) {
4999 v &= static_cast<int32_t>(e);
5000 return v;
5001 }
5002
5003 template<typename>
5004 static inline std::string toString(int32_t o);
5005 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel o);
5006 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel o, ::std::ostream* os);
5007 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel rhs) {
5008 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5009 }
5010 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel rhs) {
5011 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5012 }
5013 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel lhs, const int32_t rhs) {
5014 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5015 }
5016 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel rhs) {
5017 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5018 }
5019 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel rhs) {
5020 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5021 }
5022 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel lhs, const int32_t rhs) {
5023 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5024 }
5025 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel e) {
5026 v |= static_cast<int32_t>(e);
5027 return v;
5028 }
5029 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel e) {
5030 v &= static_cast<int32_t>(e);
5031 return v;
5032 }
5033
5034 template<typename>
5035 static inline std::string toString(int32_t o);
5036 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag o);
5037 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag o, ::std::ostream* os);
5038 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag rhs) {
5039 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5040 }
5041 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag rhs) {
5042 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5043 }
5044 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag lhs, const int32_t rhs) {
5045 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5046 }
5047 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag rhs) {
5048 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5049 }
5050 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag rhs) {
5051 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5052 }
5053 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag lhs, const int32_t rhs) {
5054 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5055 }
5056 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag e) {
5057 v |= static_cast<int32_t>(e);
5058 return v;
5059 }
5060 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag e) {
5061 v &= static_cast<int32_t>(e);
5062 return v;
5063 }
5064
5065 template<typename>
5066 static inline std::string toString(int32_t o);
5067 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq o);
5068 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq o, ::std::ostream* os);
5069 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq rhs) {
5070 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5071 }
5072 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq rhs) {
5073 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5074 }
5075 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq lhs, const int32_t rhs) {
5076 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5077 }
5078 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq rhs) {
5079 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5080 }
5081 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq rhs) {
5082 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5083 }
5084 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq lhs, const int32_t rhs) {
5085 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5086 }
5087 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq e) {
5088 v |= static_cast<int32_t>(e);
5089 return v;
5090 }
5091 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq e) {
5092 v &= static_cast<int32_t>(e);
5093 return v;
5094 }
5095
5096 template<typename>
5097 static inline std::string toString(int32_t o);
5098 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex o);
5099 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex o, ::std::ostream* os);
5100 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex rhs) {
5101 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5102 }
5103 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex rhs) {
5104 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5105 }
5106 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex lhs, const int32_t rhs) {
5107 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5108 }
5109 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex rhs) {
5110 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5111 }
5112 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex rhs) {
5113 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5114 }
5115 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex lhs, const int32_t rhs) {
5116 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5117 }
5118 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex e) {
5119 v |= static_cast<int32_t>(e);
5120 return v;
5121 }
5122 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex e) {
5123 v &= static_cast<int32_t>(e);
5124 return v;
5125 }
5126
5127 template<typename>
5128 static inline std::string toString(int32_t o);
5129 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam o);
5130 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam o, ::std::ostream* os);
5131 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam rhs) {
5132 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5133 }
5134 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam rhs) {
5135 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5136 }
5137 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam lhs, const int32_t rhs) {
5138 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5139 }
5140 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam rhs) {
5141 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5142 }
5143 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam rhs) {
5144 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5145 }
5146 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam lhs, const int32_t rhs) {
5147 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5148 }
5149 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam e) {
5150 v |= static_cast<int32_t>(e);
5151 return v;
5152 }
5153 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam e) {
5154 v &= static_cast<int32_t>(e);
5155 return v;
5156 }
5157
5158 template<typename>
5159 static inline std::string toString(int32_t o);
5160 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport o);
5161 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport o, ::std::ostream* os);
5162 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport rhs) {
5163 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5164 }
5165 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport rhs) {
5166 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5167 }
5168 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport lhs, const int32_t rhs) {
5169 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5170 }
5171 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport rhs) {
5172 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5173 }
5174 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport rhs) {
5175 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5176 }
5177 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport lhs, const int32_t rhs) {
5178 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5179 }
5180 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport e) {
5181 v |= static_cast<int32_t>(e);
5182 return v;
5183 }
5184 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport e) {
5185 v &= static_cast<int32_t>(e);
5186 return v;
5187 }
5188
5189 template<typename>
5190 static inline std::string toString(int32_t o);
5191 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction o);
5192 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction o, ::std::ostream* os);
5193 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction rhs) {
5194 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5195 }
5196 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction rhs) {
5197 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5198 }
5199 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction lhs, const int32_t rhs) {
5200 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5201 }
5202 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction rhs) {
5203 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5204 }
5205 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction rhs) {
5206 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5207 }
5208 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction lhs, const int32_t rhs) {
5209 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5210 }
5211 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction e) {
5212 v |= static_cast<int32_t>(e);
5213 return v;
5214 }
5215 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction e) {
5216 v &= static_cast<int32_t>(e);
5217 return v;
5218 }
5219
5220 template<typename>
5221 static inline std::string toString(int32_t o);
5222 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleDisplay o);
5223 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleDisplay o, ::std::ostream* os);
5224 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay rhs) {
5225 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5226 }
5227 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay rhs) {
5228 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5229 }
5230 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay lhs, const int32_t rhs) {
5231 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5232 }
5233 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay rhs) {
5234 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5235 }
5236 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay rhs) {
5237 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5238 }
5239 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay lhs, const int32_t rhs) {
5240 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5241 }
5242 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay e) {
5243 v |= static_cast<int32_t>(e);
5244 return v;
5245 }
5246 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay e) {
5247 v &= static_cast<int32_t>(e);
5248 return v;
5249 }
5250
5251 template<typename>
5252 static inline std::string toString(int32_t o);
5253 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleUnit o);
5254 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleUnit o, ::std::ostream* os);
5255 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit rhs) {
5256 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5257 }
5258 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit rhs) {
5259 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5260 }
5261 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit lhs, const int32_t rhs) {
5262 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5263 }
5264 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit rhs) {
5265 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5266 }
5267 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit rhs) {
5268 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5269 }
5270 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit lhs, const int32_t rhs) {
5271 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5272 }
5273 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit e) {
5274 v |= static_cast<int32_t>(e);
5275 return v;
5276 }
5277 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleUnit e) {
5278 v &= static_cast<int32_t>(e);
5279 return v;
5280 }
5281
5282 template<typename>
5283 static inline std::string toString(int32_t o);
5284 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode o);
5285 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode o, ::std::ostream* os);
5286 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode rhs) {
5287 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5288 }
5289 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode rhs) {
5290 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5291 }
5292 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode lhs, const int32_t rhs) {
5293 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5294 }
5295 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode rhs) {
5296 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5297 }
5298 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode rhs) {
5299 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5300 }
5301 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode lhs, const int32_t rhs) {
5302 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5303 }
5304 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode e) {
5305 v |= static_cast<int32_t>(e);
5306 return v;
5307 }
5308 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode e) {
5309 v &= static_cast<int32_t>(e);
5310 return v;
5311 }
5312
5313 template<typename>
5314 static inline std::string toString(int32_t o);
5315 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess o);
5316 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess o, ::std::ostream* os);
5317 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess rhs) {
5318 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5319 }
5320 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess rhs) {
5321 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5322 }
5323 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess lhs, const int32_t rhs) {
5324 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5325 }
5326 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess rhs) {
5327 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5328 }
5329 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess rhs) {
5330 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5331 }
5332 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess lhs, const int32_t rhs) {
5333 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5334 }
5335 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess e) {
5336 v |= static_cast<int32_t>(e);
5337 return v;
5338 }
5339 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess e) {
5340 v &= static_cast<int32_t>(e);
5341 return v;
5342 }
5343
5344 template<typename>
5345 static inline std::string toString(int32_t o);
5346 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus o);
5347 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus o, ::std::ostream* os);
5348 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus rhs) {
5349 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5350 }
5351 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus rhs) {
5352 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5353 }
5354 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus lhs, const int32_t rhs) {
5355 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5356 }
5357 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus rhs) {
5358 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5359 }
5360 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus rhs) {
5361 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5362 }
5363 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus lhs, const int32_t rhs) {
5364 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5365 }
5366 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus e) {
5367 v |= static_cast<int32_t>(e);
5368 return v;
5369 }
5370 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus e) {
5371 v &= static_cast<int32_t>(e);
5372 return v;
5373 }
5374
5375 template<typename>
5376 static inline std::string toString(int32_t o);
5377 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleGear o);
5378 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleGear o, ::std::ostream* os);
5379 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleGear lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleGear rhs) {
5380 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5381 }
5382 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleGear rhs) {
5383 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5384 }
5385 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleGear lhs, const int32_t rhs) {
5386 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5387 }
5388 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleGear lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleGear rhs) {
5389 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5390 }
5391 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleGear rhs) {
5392 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5393 }
5394 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleGear lhs, const int32_t rhs) {
5395 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5396 }
5397 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleGear e) {
5398 v |= static_cast<int32_t>(e);
5399 return v;
5400 }
5401 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleGear e) {
5402 v &= static_cast<int32_t>(e);
5403 return v;
5404 }
5405
5406 template<typename>
5407 static inline std::string toString(int32_t o);
5408 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat o);
5409 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat o, ::std::ostream* os);
5410 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat rhs) {
5411 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5412 }
5413 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat rhs) {
5414 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5415 }
5416 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat lhs, const int32_t rhs) {
5417 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5418 }
5419 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat rhs) {
5420 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5421 }
5422 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat rhs) {
5423 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5424 }
5425 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat lhs, const int32_t rhs) {
5426 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5427 }
5428 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat e) {
5429 v |= static_cast<int32_t>(e);
5430 return v;
5431 }
5432 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat e) {
5433 v &= static_cast<int32_t>(e);
5434 return v;
5435 }
5436
5437 template<typename>
5438 static inline std::string toString(int32_t o);
5439 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow o);
5440 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow o, ::std::ostream* os);
5441 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow rhs) {
5442 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5443 }
5444 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow rhs) {
5445 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5446 }
5447 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow lhs, const int32_t rhs) {
5448 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5449 }
5450 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow rhs) {
5451 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5452 }
5453 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow rhs) {
5454 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5455 }
5456 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow lhs, const int32_t rhs) {
5457 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5458 }
5459 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow e) {
5460 v |= static_cast<int32_t>(e);
5461 return v;
5462 }
5463 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow e) {
5464 v &= static_cast<int32_t>(e);
5465 return v;
5466 }
5467
5468 template<typename>
5469 static inline std::string toString(int32_t o);
5470 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor o);
5471 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor o, ::std::ostream* os);
5472 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor rhs) {
5473 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5474 }
5475 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor rhs) {
5476 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5477 }
5478 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor lhs, const int32_t rhs) {
5479 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5480 }
5481 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor rhs) {
5482 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5483 }
5484 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor rhs) {
5485 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5486 }
5487 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor lhs, const int32_t rhs) {
5488 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5489 }
5490 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor e) {
5491 v |= static_cast<int32_t>(e);
5492 return v;
5493 }
5494 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor e) {
5495 v &= static_cast<int32_t>(e);
5496 return v;
5497 }
5498
5499 template<typename>
5500 static inline std::string toString(int32_t o);
5501 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror o);
5502 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror o, ::std::ostream* os);
5503 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror rhs) {
5504 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5505 }
5506 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror rhs) {
5507 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5508 }
5509 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror lhs, const int32_t rhs) {
5510 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5511 }
5512 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror rhs) {
5513 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5514 }
5515 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror rhs) {
5516 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5517 }
5518 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror lhs, const int32_t rhs) {
5519 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5520 }
5521 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror e) {
5522 v |= static_cast<int32_t>(e);
5523 return v;
5524 }
5525 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror e) {
5526 v &= static_cast<int32_t>(e);
5527 return v;
5528 }
5529
5530 template<typename>
5531 static inline std::string toString(int32_t o);
5532 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal o);
5533 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal o, ::std::ostream* os);
5534 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal rhs) {
5535 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5536 }
5537 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal rhs) {
5538 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5539 }
5540 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal lhs, const int32_t rhs) {
5541 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5542 }
5543 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal rhs) {
5544 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5545 }
5546 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal rhs) {
5547 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5548 }
5549 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal lhs, const int32_t rhs) {
5550 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5551 }
5552 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal e) {
5553 v |= static_cast<int32_t>(e);
5554 return v;
5555 }
5556 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal e) {
5557 v &= static_cast<int32_t>(e);
5558 return v;
5559 }
5560
5561 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& o);
5562 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& o, ::std::ostream*);
5563 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& rhs);
5564 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& rhs);
5565
5566 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& o);
5567 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& o, ::std::ostream*);
5568 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& rhs);
5569 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& rhs);
5570
5571 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& o);
5572 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& o, ::std::ostream*);
5573 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& rhs);
5574 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& rhs);
5575
5576 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& o);
5577 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& o, ::std::ostream*);
5578 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& rhs);
5579 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& rhs);
5580
5581 template<typename>
5582 static inline std::string toString(int32_t o);
5583 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState o);
5584 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState o, ::std::ostream* os);
5585 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState rhs) {
5586 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5587 }
5588 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState rhs) {
5589 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5590 }
5591 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState lhs, const int32_t rhs) {
5592 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5593 }
5594 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState rhs) {
5595 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5596 }
5597 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState rhs) {
5598 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5599 }
5600 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState lhs, const int32_t rhs) {
5601 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5602 }
5603 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState e) {
5604 v |= static_cast<int32_t>(e);
5605 return v;
5606 }
5607 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState e) {
5608 v &= static_cast<int32_t>(e);
5609 return v;
5610 }
5611
5612 template<typename>
5613 static inline std::string toString(int32_t o);
5614 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags o);
5615 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags o, ::std::ostream* os);
5616 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags lhs, const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags rhs) {
5617 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5618 }
5619 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags rhs) {
5620 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5621 }
5622 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags lhs, const int32_t rhs) {
5623 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5624 }
5625 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags lhs, const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags rhs) {
5626 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5627 }
5628 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags rhs) {
5629 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5630 }
5631 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags lhs, const int32_t rhs) {
5632 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5633 }
5634 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags e) {
5635 v |= static_cast<int32_t>(e);
5636 return v;
5637 }
5638 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags e) {
5639 v &= static_cast<int32_t>(e);
5640 return v;
5641 }
5642
5643 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& o);
5644 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& o, ::std::ostream*);
5645 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& lhs, const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& rhs);
5646 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& lhs, const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& rhs);
5647
5648 template<typename>
5649 static inline std::string toString(int32_t o);
5650 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::StatusCode o);
5651 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::StatusCode o, ::std::ostream* os);
5652 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::StatusCode lhs, const ::android::hardware::automotive::vehicle::V2_0::StatusCode rhs) {
5653 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5654 }
5655 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::StatusCode rhs) {
5656 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5657 }
5658 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::StatusCode lhs, const int32_t rhs) {
5659 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5660 }
5661 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::StatusCode lhs, const ::android::hardware::automotive::vehicle::V2_0::StatusCode rhs) {
5662 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5663 }
5664 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::StatusCode rhs) {
5665 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5666 }
5667 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::StatusCode lhs, const int32_t rhs) {
5668 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5669 }
5670 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::StatusCode e) {
5671 v |= static_cast<int32_t>(e);
5672 return v;
5673 }
5674 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::StatusCode e) {
5675 v &= static_cast<int32_t>(e);
5676 return v;
5677 }
5678
5679 template<typename>
5680 static inline std::string toString(int32_t o);
5681 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel o);
5682 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel o, ::std::ostream* os);
5683 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel rhs) {
5684 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5685 }
5686 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel rhs) {
5687 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5688 }
5689 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel lhs, const int32_t rhs) {
5690 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5691 }
5692 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel rhs) {
5693 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5694 }
5695 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel rhs) {
5696 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5697 }
5698 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel lhs, const int32_t rhs) {
5699 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5700 }
5701 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel e) {
5702 v |= static_cast<int32_t>(e);
5703 return v;
5704 }
5705 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel e) {
5706 v &= static_cast<int32_t>(e);
5707 return v;
5708 }
5709
5710 template<typename>
5711 static inline std::string toString(int32_t o);
5712 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus o);
5713 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus o, ::std::ostream* os);
5714 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus rhs) {
5715 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5716 }
5717 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus rhs) {
5718 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5719 }
5720 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus lhs, const int32_t rhs) {
5721 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5722 }
5723 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus rhs) {
5724 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5725 }
5726 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus rhs) {
5727 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5728 }
5729 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus lhs, const int32_t rhs) {
5730 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5731 }
5732 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus e) {
5733 v |= static_cast<int32_t>(e);
5734 return v;
5735 }
5736 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus e) {
5737 v &= static_cast<int32_t>(e);
5738 return v;
5739 }
5740
5741 template<typename>
5742 static inline std::string toString(int32_t o);
5743 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind o);
5744 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind o, ::std::ostream* os);
5745 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind rhs) {
5746 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5747 }
5748 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind rhs) {
5749 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5750 }
5751 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind lhs, const int32_t rhs) {
5752 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5753 }
5754 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind rhs) {
5755 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5756 }
5757 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind rhs) {
5758 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5759 }
5760 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind lhs, const int32_t rhs) {
5761 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5762 }
5763 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind e) {
5764 v |= static_cast<int32_t>(e);
5765 return v;
5766 }
5767 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind e) {
5768 v &= static_cast<int32_t>(e);
5769 return v;
5770 }
5771
5772 template<typename>
5773 static inline std::string toString(int32_t o);
5774 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors o);
5775 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors o, ::std::ostream* os);
5776 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors rhs) {
5777 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5778 }
5779 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors rhs) {
5780 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5781 }
5782 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors lhs, const int32_t rhs) {
5783 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5784 }
5785 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors rhs) {
5786 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5787 }
5788 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors rhs) {
5789 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5790 }
5791 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors lhs, const int32_t rhs) {
5792 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5793 }
5794 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors e) {
5795 v |= static_cast<int32_t>(e);
5796 return v;
5797 }
5798 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors e) {
5799 v &= static_cast<int32_t>(e);
5800 return v;
5801 }
5802
5803 template<typename>
5804 static inline std::string toString(int32_t o);
5805 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors o);
5806 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors o, ::std::ostream* os);
5807 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors rhs) {
5808 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5809 }
5810 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors rhs) {
5811 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5812 }
5813 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors lhs, const int32_t rhs) {
5814 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5815 }
5816 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors rhs) {
5817 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5818 }
5819 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors rhs) {
5820 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5821 }
5822 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors lhs, const int32_t rhs) {
5823 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5824 }
5825 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors e) {
5826 v |= static_cast<int32_t>(e);
5827 return v;
5828 }
5829 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors e) {
5830 v &= static_cast<int32_t>(e);
5831 return v;
5832 }
5833
5834 template<typename>
5835 static inline std::string toString(int32_t o);
5836 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors o);
5837 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors o, ::std::ostream* os);
5838 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors rhs) {
5839 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5840 }
5841 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors rhs) {
5842 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5843 }
5844 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors lhs, const int32_t rhs) {
5845 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5846 }
5847 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors rhs) {
5848 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5849 }
5850 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors rhs) {
5851 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5852 }
5853 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors lhs, const int32_t rhs) {
5854 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5855 }
5856 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors e) {
5857 v |= static_cast<int32_t>(e);
5858 return v;
5859 }
5860 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors e) {
5861 v &= static_cast<int32_t>(e);
5862 return v;
5863 }
5864
5865 template<typename>
5866 static inline std::string toString(int32_t o);
5867 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus o);
5868 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus o, ::std::ostream* os);
5869 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus rhs) {
5870 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5871 }
5872 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus rhs) {
5873 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5874 }
5875 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus lhs, const int32_t rhs) {
5876 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5877 }
5878 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus rhs) {
5879 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5880 }
5881 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus rhs) {
5882 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5883 }
5884 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus lhs, const int32_t rhs) {
5885 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5886 }
5887 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus e) {
5888 v |= static_cast<int32_t>(e);
5889 return v;
5890 }
5891 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus e) {
5892 v &= static_cast<int32_t>(e);
5893 return v;
5894 }
5895
5896 template<typename>
5897 static inline std::string toString(int32_t o);
5898 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType o);
5899 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType o, ::std::ostream* os);
5900 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType rhs) {
5901 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5902 }
5903 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType rhs) {
5904 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5905 }
5906 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType lhs, const int32_t rhs) {
5907 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5908 }
5909 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType rhs) {
5910 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5911 }
5912 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType rhs) {
5913 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5914 }
5915 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType lhs, const int32_t rhs) {
5916 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5917 }
5918 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType e) {
5919 v |= static_cast<int32_t>(e);
5920 return v;
5921 }
5922 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType e) {
5923 v &= static_cast<int32_t>(e);
5924 return v;
5925 }
5926
5927 template<typename>
5928 static inline std::string toString(int32_t o);
5929 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex o);
5930 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex o, ::std::ostream* os);
5931 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex rhs) {
5932 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5933 }
5934 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex rhs) {
5935 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5936 }
5937 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex lhs, const int32_t rhs) {
5938 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5939 }
5940 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex rhs) {
5941 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5942 }
5943 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex rhs) {
5944 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5945 }
5946 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex lhs, const int32_t rhs) {
5947 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5948 }
5949 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex e) {
5950 v |= static_cast<int32_t>(e);
5951 return v;
5952 }
5953 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex e) {
5954 v &= static_cast<int32_t>(e);
5955 return v;
5956 }
5957
5958 template<typename>
5959 static inline std::string toString(int32_t o);
5960 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex o);
5961 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex o, ::std::ostream* os);
5962 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex rhs) {
5963 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5964 }
5965 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex rhs) {
5966 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5967 }
5968 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex lhs, const int32_t rhs) {
5969 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
5970 }
5971 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex rhs) {
5972 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
5973 }
5974 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex rhs) {
5975 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
5976 }
5977 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex lhs, const int32_t rhs) {
5978 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
5979 }
5980 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex e) {
5981 v |= static_cast<int32_t>(e);
5982 return v;
5983 }
5984 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex e) {
5985 v &= static_cast<int32_t>(e);
5986 return v;
5987 }
5988
5989 template<typename>
5990 static inline std::string toString(int32_t o);
5991 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageType o);
5992 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageType o, ::std::ostream* os);
5993 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType rhs) {
5994 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
5995 }
5996 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType rhs) {
5997 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
5998 }
5999 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType lhs, const int32_t rhs) {
6000 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6001 }
6002 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType rhs) {
6003 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6004 }
6005 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType rhs) {
6006 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6007 }
6008 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType lhs, const int32_t rhs) {
6009 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6010 }
6011 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType e) {
6012 v |= static_cast<int32_t>(e);
6013 return v;
6014 }
6015 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageType e) {
6016 v &= static_cast<int32_t>(e);
6017 return v;
6018 }
6019
6020 template<typename>
6021 static inline std::string toString(int32_t o);
6022 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex o);
6023 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex o, ::std::ostream* os);
6024 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex rhs) {
6025 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6026 }
6027 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex rhs) {
6028 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6029 }
6030 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex lhs, const int32_t rhs) {
6031 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6032 }
6033 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex rhs) {
6034 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6035 }
6036 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex rhs) {
6037 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6038 }
6039 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex lhs, const int32_t rhs) {
6040 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6041 }
6042 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex e) {
6043 v |= static_cast<int32_t>(e);
6044 return v;
6045 }
6046 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex e) {
6047 v &= static_cast<int32_t>(e);
6048 return v;
6049 }
6050
6051 template<typename>
6052 static inline std::string toString(int32_t o);
6053 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex o);
6054 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex o, ::std::ostream* os);
6055 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex rhs) {
6056 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6057 }
6058 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex rhs) {
6059 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6060 }
6061 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex lhs, const int32_t rhs) {
6062 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6063 }
6064 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex rhs) {
6065 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6066 }
6067 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex rhs) {
6068 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6069 }
6070 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex lhs, const int32_t rhs) {
6071 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6072 }
6073 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex e) {
6074 v |= static_cast<int32_t>(e);
6075 return v;
6076 }
6077 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex e) {
6078 v &= static_cast<int32_t>(e);
6079 return v;
6080 }
6081
6082 template<typename>
6083 static inline std::string toString(int32_t o);
6084 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex o);
6085 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex o, ::std::ostream* os);
6086 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex rhs) {
6087 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6088 }
6089 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex rhs) {
6090 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6091 }
6092 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex lhs, const int32_t rhs) {
6093 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6094 }
6095 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex rhs) {
6096 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6097 }
6098 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex rhs) {
6099 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6100 }
6101 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex lhs, const int32_t rhs) {
6102 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6103 }
6104 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex e) {
6105 v |= static_cast<int32_t>(e);
6106 return v;
6107 }
6108 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex e) {
6109 v &= static_cast<int32_t>(e);
6110 return v;
6111 }
6112
6113 template<typename>
6114 static inline std::string toString(int32_t o);
6115 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex o);
6116 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex o, ::std::ostream* os);
6117 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex rhs) {
6118 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6119 }
6120 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex rhs) {
6121 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6122 }
6123 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex lhs, const int32_t rhs) {
6124 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6125 }
6126 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex rhs) {
6127 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6128 }
6129 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex rhs) {
6130 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6131 }
6132 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex lhs, const int32_t rhs) {
6133 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6134 }
6135 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex e) {
6136 v |= static_cast<int32_t>(e);
6137 return v;
6138 }
6139 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex e) {
6140 v &= static_cast<int32_t>(e);
6141 return v;
6142 }
6143
6144 template<typename>
6145 static inline std::string toString(int32_t o);
6146 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex o);
6147 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex o, ::std::ostream* os);
6148 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex rhs) {
6149 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6150 }
6151 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex rhs) {
6152 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6153 }
6154 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex lhs, const int32_t rhs) {
6155 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6156 }
6157 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex rhs) {
6158 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6159 }
6160 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex rhs) {
6161 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6162 }
6163 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex lhs, const int32_t rhs) {
6164 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6165 }
6166 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex e) {
6167 v |= static_cast<int32_t>(e);
6168 return v;
6169 }
6170 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex e) {
6171 v &= static_cast<int32_t>(e);
6172 return v;
6173 }
6174
6175 template<typename>
6176 static inline std::string toString(int32_t o);
6177 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex o);
6178 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex o, ::std::ostream* os);
6179 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex rhs) {
6180 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6181 }
6182 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex rhs) {
6183 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6184 }
6185 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex lhs, const int32_t rhs) {
6186 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6187 }
6188 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex rhs) {
6189 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6190 }
6191 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex rhs) {
6192 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6193 }
6194 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex lhs, const int32_t rhs) {
6195 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6196 }
6197 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex e) {
6198 v |= static_cast<int32_t>(e);
6199 return v;
6200 }
6201 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex e) {
6202 v &= static_cast<int32_t>(e);
6203 return v;
6204 }
6205
6206 template<typename>
6207 static inline std::string toString(int32_t o);
6208 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex o);
6209 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex o, ::std::ostream* os);
6210 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex rhs) {
6211 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6212 }
6213 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex rhs) {
6214 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6215 }
6216 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex lhs, const int32_t rhs) {
6217 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6218 }
6219 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex rhs) {
6220 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6221 }
6222 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex rhs) {
6223 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6224 }
6225 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex lhs, const int32_t rhs) {
6226 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6227 }
6228 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex e) {
6229 v |= static_cast<int32_t>(e);
6230 return v;
6231 }
6232 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex e) {
6233 v &= static_cast<int32_t>(e);
6234 return v;
6235 }
6236
6237 template<typename>
6238 static inline std::string toString(int32_t o);
6239 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex o);
6240 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex o, ::std::ostream* os);
6241 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex rhs) {
6242 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6243 }
6244 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex rhs) {
6245 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6246 }
6247 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex lhs, const int32_t rhs) {
6248 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6249 }
6250 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex rhs) {
6251 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6252 }
6253 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex rhs) {
6254 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6255 }
6256 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex lhs, const int32_t rhs) {
6257 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6258 }
6259 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex e) {
6260 v |= static_cast<int32_t>(e);
6261 return v;
6262 }
6263 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex e) {
6264 v &= static_cast<int32_t>(e);
6265 return v;
6266 }
6267
6268 template<typename>
6269 static inline std::string toString(int32_t o);
6270 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::UserFlags o);
6271 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::UserFlags o, ::std::ostream* os);
6272 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::UserFlags lhs, const ::android::hardware::automotive::vehicle::V2_0::UserFlags rhs) {
6273 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6274 }
6275 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::UserFlags rhs) {
6276 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6277 }
6278 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::UserFlags lhs, const int32_t rhs) {
6279 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6280 }
6281 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::UserFlags lhs, const ::android::hardware::automotive::vehicle::V2_0::UserFlags rhs) {
6282 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6283 }
6284 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::UserFlags rhs) {
6285 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6286 }
6287 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::UserFlags lhs, const int32_t rhs) {
6288 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6289 }
6290 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::UserFlags e) {
6291 v |= static_cast<int32_t>(e);
6292 return v;
6293 }
6294 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::UserFlags e) {
6295 v &= static_cast<int32_t>(e);
6296 return v;
6297 }
6298
6299 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserInfo& o);
6300 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserInfo& o, ::std::ostream*);
6301 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserInfo& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserInfo& rhs);
6302 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserInfo& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserInfo& rhs);
6303
6304 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& o);
6305 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& o, ::std::ostream*);
6306 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& lhs, const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& rhs);
6307 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& lhs, const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& rhs);
6308
6309 template<typename>
6310 static inline std::string toString(int32_t o);
6311 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType o);
6312 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType o, ::std::ostream* os);
6313 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType rhs) {
6314 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6315 }
6316 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType rhs) {
6317 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6318 }
6319 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType lhs, const int32_t rhs) {
6320 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6321 }
6322 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType rhs) {
6323 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6324 }
6325 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType rhs) {
6326 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6327 }
6328 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType lhs, const int32_t rhs) {
6329 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6330 }
6331 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType e) {
6332 v |= static_cast<int32_t>(e);
6333 return v;
6334 }
6335 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType e) {
6336 v &= static_cast<int32_t>(e);
6337 return v;
6338 }
6339
6340 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& o);
6341 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& o, ::std::ostream*);
6342 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& rhs);
6343 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& rhs);
6344
6345 template<typename>
6346 static inline std::string toString(int32_t o);
6347 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction o);
6348 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction o, ::std::ostream* os);
6349 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction rhs) {
6350 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6351 }
6352 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction rhs) {
6353 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6354 }
6355 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction lhs, const int32_t rhs) {
6356 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6357 }
6358 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction rhs) {
6359 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6360 }
6361 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction rhs) {
6362 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6363 }
6364 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction lhs, const int32_t rhs) {
6365 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6366 }
6367 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction e) {
6368 v |= static_cast<int32_t>(e);
6369 return v;
6370 }
6371 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction e) {
6372 v &= static_cast<int32_t>(e);
6373 return v;
6374 }
6375
6376 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& o);
6377 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& o, ::std::ostream*);
6378 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& rhs);
6379 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& rhs);
6380
6381 template<typename>
6382 static inline std::string toString(int32_t o);
6383 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType o);
6384 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType o, ::std::ostream* os);
6385 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType rhs) {
6386 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6387 }
6388 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType rhs) {
6389 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6390 }
6391 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType lhs, const int32_t rhs) {
6392 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6393 }
6394 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType rhs) {
6395 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6396 }
6397 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType rhs) {
6398 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6399 }
6400 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType lhs, const int32_t rhs) {
6401 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6402 }
6403 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType e) {
6404 v |= static_cast<int32_t>(e);
6405 return v;
6406 }
6407 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType e) {
6408 v &= static_cast<int32_t>(e);
6409 return v;
6410 }
6411
6412 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& o);
6413 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& o, ::std::ostream*);
6414 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& rhs);
6415 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& rhs);
6416
6417 template<typename>
6418 static inline std::string toString(int32_t o);
6419 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus o);
6420 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus o, ::std::ostream* os);
6421 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus rhs) {
6422 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6423 }
6424 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus rhs) {
6425 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6426 }
6427 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus lhs, const int32_t rhs) {
6428 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6429 }
6430 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus rhs) {
6431 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6432 }
6433 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus rhs) {
6434 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6435 }
6436 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus lhs, const int32_t rhs) {
6437 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6438 }
6439 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus e) {
6440 v |= static_cast<int32_t>(e);
6441 return v;
6442 }
6443 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus e) {
6444 v &= static_cast<int32_t>(e);
6445 return v;
6446 }
6447
6448 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& o);
6449 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& o, ::std::ostream*);
6450 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& rhs);
6451 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& rhs);
6452
6453 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& o);
6454 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& o, ::std::ostream*);
6455 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& rhs);
6456 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& rhs);
6457
6458 template<typename>
6459 static inline std::string toString(int32_t o);
6460 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::CreateUserStatus o);
6461 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::CreateUserStatus o, ::std::ostream* os);
6462 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus rhs) {
6463 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6464 }
6465 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus rhs) {
6466 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6467 }
6468 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus lhs, const int32_t rhs) {
6469 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6470 }
6471 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus rhs) {
6472 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6473 }
6474 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus rhs) {
6475 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6476 }
6477 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus lhs, const int32_t rhs) {
6478 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6479 }
6480 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus e) {
6481 v |= static_cast<int32_t>(e);
6482 return v;
6483 }
6484 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus e) {
6485 v &= static_cast<int32_t>(e);
6486 return v;
6487 }
6488
6489 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& o);
6490 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& o, ::std::ostream*);
6491 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& rhs);
6492 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& rhs);
6493
6494 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& o);
6495 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& o, ::std::ostream*);
6496 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& rhs);
6497 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& rhs);
6498
6499 template<typename>
6500 static inline std::string toString(int32_t o);
6501 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType o);
6502 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType o, ::std::ostream* os);
6503 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType rhs) {
6504 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6505 }
6506 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType rhs) {
6507 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6508 }
6509 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType lhs, const int32_t rhs) {
6510 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6511 }
6512 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType rhs) {
6513 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6514 }
6515 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType rhs) {
6516 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6517 }
6518 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType lhs, const int32_t rhs) {
6519 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6520 }
6521 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType e) {
6522 v |= static_cast<int32_t>(e);
6523 return v;
6524 }
6525 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType e) {
6526 v &= static_cast<int32_t>(e);
6527 return v;
6528 }
6529
6530 template<typename>
6531 static inline std::string toString(int32_t o);
6532 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue o);
6533 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue o, ::std::ostream* os);
6534 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue rhs) {
6535 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6536 }
6537 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue rhs) {
6538 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6539 }
6540 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue lhs, const int32_t rhs) {
6541 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6542 }
6543 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue rhs) {
6544 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6545 }
6546 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue rhs) {
6547 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6548 }
6549 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue lhs, const int32_t rhs) {
6550 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6551 }
6552 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue e) {
6553 v |= static_cast<int32_t>(e);
6554 return v;
6555 }
6556 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue e) {
6557 v &= static_cast<int32_t>(e);
6558 return v;
6559 }
6560
6561 template<typename>
6562 static inline std::string toString(int32_t o);
6563 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue o);
6564 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue o, ::std::ostream* os);
6565 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue rhs) {
6566 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6567 }
6568 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue rhs) {
6569 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6570 }
6571 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue lhs, const int32_t rhs) {
6572 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6573 }
6574 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue rhs) {
6575 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6576 }
6577 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue rhs) {
6578 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6579 }
6580 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue lhs, const int32_t rhs) {
6581 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6582 }
6583 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue e) {
6584 v |= static_cast<int32_t>(e);
6585 return v;
6586 }
6587 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue e) {
6588 v &= static_cast<int32_t>(e);
6589 return v;
6590 }
6591
6592 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& o);
6593 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& o, ::std::ostream*);
6594 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& rhs);
6595 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& rhs);
6596
6597 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& o);
6598 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& o, ::std::ostream*);
6599 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& rhs);
6600 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& rhs);
6601
6602 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& o);
6603 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& o, ::std::ostream*);
6604 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& rhs);
6605 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& rhs);
6606
6607 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& o);
6608 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& o, ::std::ostream*);
6609 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& rhs);
6610 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& rhs);
6611
6612 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& o);
6613 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& o, ::std::ostream*);
6614 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& rhs);
6615 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& rhs);
6616
6617 template<typename>
6618 static inline std::string toString(int32_t o);
6619 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::RotaryInputType o);
6620 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::RotaryInputType o, ::std::ostream* os);
6621 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType lhs, const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType rhs) {
6622 return static_cast<int32_t>(static_cast<int32_t>(lhs) | static_cast<int32_t>(rhs));
6623 }
6624 constexpr int32_t operator|(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType rhs) {
6625 return static_cast<int32_t>(lhs | static_cast<int32_t>(rhs));
6626 }
6627 constexpr int32_t operator|(const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType lhs, const int32_t rhs) {
6628 return static_cast<int32_t>(static_cast<int32_t>(lhs) | rhs);
6629 }
6630 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType lhs, const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType rhs) {
6631 return static_cast<int32_t>(static_cast<int32_t>(lhs) & static_cast<int32_t>(rhs));
6632 }
6633 constexpr int32_t operator&(const int32_t lhs, const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType rhs) {
6634 return static_cast<int32_t>(lhs & static_cast<int32_t>(rhs));
6635 }
6636 constexpr int32_t operator&(const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType lhs, const int32_t rhs) {
6637 return static_cast<int32_t>(static_cast<int32_t>(lhs) & rhs);
6638 }
6639 constexpr int32_t &operator|=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType e) {
6640 v |= static_cast<int32_t>(e);
6641 return v;
6642 }
6643 constexpr int32_t &operator&=(int32_t& v, const ::android::hardware::automotive::vehicle::V2_0::RotaryInputType e) {
6644 v &= static_cast<int32_t>(e);
6645 return v;
6646 }
6647
6648 //
6649 // type header definitions for package
6650 //
6651
6652 template<>
6653 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType>(int32_t o) {
6654 using ::android::hardware::details::toHexString;
6655 std::string os;
6656 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType> flipped = 0;
6657 bool first = true;
6658 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::STRING) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::STRING)) {
6659 os += (first ? "" : " | ");
6660 os += "STRING";
6661 first = false;
6662 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::STRING;
6663 }
6664 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::BOOLEAN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::BOOLEAN)) {
6665 os += (first ? "" : " | ");
6666 os += "BOOLEAN";
6667 first = false;
6668 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::BOOLEAN;
6669 }
6670 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT32) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT32)) {
6671 os += (first ? "" : " | ");
6672 os += "INT32";
6673 first = false;
6674 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT32;
6675 }
6676 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT32_VEC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT32_VEC)) {
6677 os += (first ? "" : " | ");
6678 os += "INT32_VEC";
6679 first = false;
6680 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT32_VEC;
6681 }
6682 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT64) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT64)) {
6683 os += (first ? "" : " | ");
6684 os += "INT64";
6685 first = false;
6686 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT64;
6687 }
6688 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT64_VEC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT64_VEC)) {
6689 os += (first ? "" : " | ");
6690 os += "INT64_VEC";
6691 first = false;
6692 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT64_VEC;
6693 }
6694 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::FLOAT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::FLOAT)) {
6695 os += (first ? "" : " | ");
6696 os += "FLOAT";
6697 first = false;
6698 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::FLOAT;
6699 }
6700 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::FLOAT_VEC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::FLOAT_VEC)) {
6701 os += (first ? "" : " | ");
6702 os += "FLOAT_VEC";
6703 first = false;
6704 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::FLOAT_VEC;
6705 }
6706 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::BYTES) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::BYTES)) {
6707 os += (first ? "" : " | ");
6708 os += "BYTES";
6709 first = false;
6710 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::BYTES;
6711 }
6712 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::MIXED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::MIXED)) {
6713 os += (first ? "" : " | ");
6714 os += "MIXED";
6715 first = false;
6716 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::MIXED;
6717 }
6718 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::MASK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::MASK)) {
6719 os += (first ? "" : " | ");
6720 os += "MASK";
6721 first = false;
6722 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::MASK;
6723 }
6724 if (o != flipped) {
6725 os += (first ? "" : " | ");
6726 os += toHexString(o & (~flipped));
6727 }os += " (";
6728 os += toHexString(o);
6729 os += ")";
6730 return os;
6731 }
6732
toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType o)6733 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType o) {
6734 using ::android::hardware::details::toHexString;
6735 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::STRING) {
6736 return "STRING";
6737 }
6738 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::BOOLEAN) {
6739 return "BOOLEAN";
6740 }
6741 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT32) {
6742 return "INT32";
6743 }
6744 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT32_VEC) {
6745 return "INT32_VEC";
6746 }
6747 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT64) {
6748 return "INT64";
6749 }
6750 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::INT64_VEC) {
6751 return "INT64_VEC";
6752 }
6753 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::FLOAT) {
6754 return "FLOAT";
6755 }
6756 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::FLOAT_VEC) {
6757 return "FLOAT_VEC";
6758 }
6759 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::BYTES) {
6760 return "BYTES";
6761 }
6762 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::MIXED) {
6763 return "MIXED";
6764 }
6765 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType::MASK) {
6766 return "MASK";
6767 }
6768 std::string os;
6769 os += toHexString(static_cast<int32_t>(o));
6770 return os;
6771 }
6772
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType o,::std::ostream * os)6773 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyType o, ::std::ostream* os) {
6774 *os << toString(o);
6775 }
6776
6777 template<>
6778 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleArea>(int32_t o) {
6779 using ::android::hardware::details::toHexString;
6780 std::string os;
6781 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleArea> flipped = 0;
6782 bool first = true;
6783 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleArea::GLOBAL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleArea::GLOBAL)) {
6784 os += (first ? "" : " | ");
6785 os += "GLOBAL";
6786 first = false;
6787 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleArea::GLOBAL;
6788 }
6789 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleArea::WINDOW) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleArea::WINDOW)) {
6790 os += (first ? "" : " | ");
6791 os += "WINDOW";
6792 first = false;
6793 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleArea::WINDOW;
6794 }
6795 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleArea::MIRROR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleArea::MIRROR)) {
6796 os += (first ? "" : " | ");
6797 os += "MIRROR";
6798 first = false;
6799 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleArea::MIRROR;
6800 }
6801 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleArea::SEAT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleArea::SEAT)) {
6802 os += (first ? "" : " | ");
6803 os += "SEAT";
6804 first = false;
6805 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleArea::SEAT;
6806 }
6807 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleArea::DOOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleArea::DOOR)) {
6808 os += (first ? "" : " | ");
6809 os += "DOOR";
6810 first = false;
6811 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleArea::DOOR;
6812 }
6813 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleArea::WHEEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleArea::WHEEL)) {
6814 os += (first ? "" : " | ");
6815 os += "WHEEL";
6816 first = false;
6817 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleArea::WHEEL;
6818 }
6819 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleArea::MASK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleArea::MASK)) {
6820 os += (first ? "" : " | ");
6821 os += "MASK";
6822 first = false;
6823 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleArea::MASK;
6824 }
6825 if (o != flipped) {
6826 os += (first ? "" : " | ");
6827 os += toHexString(o & (~flipped));
6828 }os += " (";
6829 os += toHexString(o);
6830 os += ")";
6831 return os;
6832 }
6833
toString(::android::hardware::automotive::vehicle::V2_0::VehicleArea o)6834 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleArea o) {
6835 using ::android::hardware::details::toHexString;
6836 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleArea::GLOBAL) {
6837 return "GLOBAL";
6838 }
6839 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleArea::WINDOW) {
6840 return "WINDOW";
6841 }
6842 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleArea::MIRROR) {
6843 return "MIRROR";
6844 }
6845 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleArea::SEAT) {
6846 return "SEAT";
6847 }
6848 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleArea::DOOR) {
6849 return "DOOR";
6850 }
6851 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleArea::WHEEL) {
6852 return "WHEEL";
6853 }
6854 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleArea::MASK) {
6855 return "MASK";
6856 }
6857 std::string os;
6858 os += toHexString(static_cast<int32_t>(o));
6859 return os;
6860 }
6861
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleArea o,::std::ostream * os)6862 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleArea o, ::std::ostream* os) {
6863 *os << toString(o);
6864 }
6865
6866 template<>
6867 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup>(int32_t o) {
6868 using ::android::hardware::details::toHexString;
6869 std::string os;
6870 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup> flipped = 0;
6871 bool first = true;
6872 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::SYSTEM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::SYSTEM)) {
6873 os += (first ? "" : " | ");
6874 os += "SYSTEM";
6875 first = false;
6876 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::SYSTEM;
6877 }
6878 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::VENDOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::VENDOR)) {
6879 os += (first ? "" : " | ");
6880 os += "VENDOR";
6881 first = false;
6882 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::VENDOR;
6883 }
6884 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::MASK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::MASK)) {
6885 os += (first ? "" : " | ");
6886 os += "MASK";
6887 first = false;
6888 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::MASK;
6889 }
6890 if (o != flipped) {
6891 os += (first ? "" : " | ");
6892 os += toHexString(o & (~flipped));
6893 }os += " (";
6894 os += toHexString(o);
6895 os += ")";
6896 return os;
6897 }
6898
toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup o)6899 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup o) {
6900 using ::android::hardware::details::toHexString;
6901 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::SYSTEM) {
6902 return "SYSTEM";
6903 }
6904 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::VENDOR) {
6905 return "VENDOR";
6906 }
6907 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup::MASK) {
6908 return "MASK";
6909 }
6910 std::string os;
6911 os += toHexString(static_cast<int32_t>(o));
6912 return os;
6913 }
6914
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup o,::std::ostream * os)6915 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyGroup o, ::std::ostream* os) {
6916 *os << toString(o);
6917 }
6918
6919 template<>
6920 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleProperty>(int32_t o) {
6921 using ::android::hardware::details::toHexString;
6922 std::string os;
6923 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleProperty> flipped = 0;
6924 bool first = true;
6925 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INVALID) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INVALID)) {
6926 os += (first ? "" : " | ");
6927 os += "INVALID";
6928 first = false;
6929 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INVALID;
6930 }
6931 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_VIN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_VIN)) {
6932 os += (first ? "" : " | ");
6933 os += "INFO_VIN";
6934 first = false;
6935 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_VIN;
6936 }
6937 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MAKE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MAKE)) {
6938 os += (first ? "" : " | ");
6939 os += "INFO_MAKE";
6940 first = false;
6941 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MAKE;
6942 }
6943 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MODEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MODEL)) {
6944 os += (first ? "" : " | ");
6945 os += "INFO_MODEL";
6946 first = false;
6947 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MODEL;
6948 }
6949 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MODEL_YEAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MODEL_YEAR)) {
6950 os += (first ? "" : " | ");
6951 os += "INFO_MODEL_YEAR";
6952 first = false;
6953 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MODEL_YEAR;
6954 }
6955 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_CAPACITY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_CAPACITY)) {
6956 os += (first ? "" : " | ");
6957 os += "INFO_FUEL_CAPACITY";
6958 first = false;
6959 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_CAPACITY;
6960 }
6961 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_TYPE)) {
6962 os += (first ? "" : " | ");
6963 os += "INFO_FUEL_TYPE";
6964 first = false;
6965 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_TYPE;
6966 }
6967 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_BATTERY_CAPACITY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_BATTERY_CAPACITY)) {
6968 os += (first ? "" : " | ");
6969 os += "INFO_EV_BATTERY_CAPACITY";
6970 first = false;
6971 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_BATTERY_CAPACITY;
6972 }
6973 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_CONNECTOR_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_CONNECTOR_TYPE)) {
6974 os += (first ? "" : " | ");
6975 os += "INFO_EV_CONNECTOR_TYPE";
6976 first = false;
6977 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_CONNECTOR_TYPE;
6978 }
6979 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_DOOR_LOCATION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_DOOR_LOCATION)) {
6980 os += (first ? "" : " | ");
6981 os += "INFO_FUEL_DOOR_LOCATION";
6982 first = false;
6983 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_DOOR_LOCATION;
6984 }
6985 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_PORT_LOCATION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_PORT_LOCATION)) {
6986 os += (first ? "" : " | ");
6987 os += "INFO_EV_PORT_LOCATION";
6988 first = false;
6989 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_PORT_LOCATION;
6990 }
6991 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_DRIVER_SEAT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_DRIVER_SEAT)) {
6992 os += (first ? "" : " | ");
6993 os += "INFO_DRIVER_SEAT";
6994 first = false;
6995 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_DRIVER_SEAT;
6996 }
6997 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EXTERIOR_DIMENSIONS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EXTERIOR_DIMENSIONS)) {
6998 os += (first ? "" : " | ");
6999 os += "INFO_EXTERIOR_DIMENSIONS";
7000 first = false;
7001 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EXTERIOR_DIMENSIONS;
7002 }
7003 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS)) {
7004 os += (first ? "" : " | ");
7005 os += "INFO_MULTI_EV_PORT_LOCATIONS";
7006 first = false;
7007 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS;
7008 }
7009 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_ODOMETER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_ODOMETER)) {
7010 os += (first ? "" : " | ");
7011 os += "PERF_ODOMETER";
7012 first = false;
7013 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_ODOMETER;
7014 }
7015 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_VEHICLE_SPEED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_VEHICLE_SPEED)) {
7016 os += (first ? "" : " | ");
7017 os += "PERF_VEHICLE_SPEED";
7018 first = false;
7019 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_VEHICLE_SPEED;
7020 }
7021 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY)) {
7022 os += (first ? "" : " | ");
7023 os += "PERF_VEHICLE_SPEED_DISPLAY";
7024 first = false;
7025 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY;
7026 }
7027 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_STEERING_ANGLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_STEERING_ANGLE)) {
7028 os += (first ? "" : " | ");
7029 os += "PERF_STEERING_ANGLE";
7030 first = false;
7031 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_STEERING_ANGLE;
7032 }
7033 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_REAR_STEERING_ANGLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_REAR_STEERING_ANGLE)) {
7034 os += (first ? "" : " | ");
7035 os += "PERF_REAR_STEERING_ANGLE";
7036 first = false;
7037 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_REAR_STEERING_ANGLE;
7038 }
7039 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_COOLANT_TEMP) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_COOLANT_TEMP)) {
7040 os += (first ? "" : " | ");
7041 os += "ENGINE_COOLANT_TEMP";
7042 first = false;
7043 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_COOLANT_TEMP;
7044 }
7045 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_OIL_LEVEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_OIL_LEVEL)) {
7046 os += (first ? "" : " | ");
7047 os += "ENGINE_OIL_LEVEL";
7048 first = false;
7049 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_OIL_LEVEL;
7050 }
7051 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_OIL_TEMP) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_OIL_TEMP)) {
7052 os += (first ? "" : " | ");
7053 os += "ENGINE_OIL_TEMP";
7054 first = false;
7055 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_OIL_TEMP;
7056 }
7057 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_RPM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_RPM)) {
7058 os += (first ? "" : " | ");
7059 os += "ENGINE_RPM";
7060 first = false;
7061 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_RPM;
7062 }
7063 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WHEEL_TICK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WHEEL_TICK)) {
7064 os += (first ? "" : " | ");
7065 os += "WHEEL_TICK";
7066 first = false;
7067 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WHEEL_TICK;
7068 }
7069 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_LEVEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_LEVEL)) {
7070 os += (first ? "" : " | ");
7071 os += "FUEL_LEVEL";
7072 first = false;
7073 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_LEVEL;
7074 }
7075 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_DOOR_OPEN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_DOOR_OPEN)) {
7076 os += (first ? "" : " | ");
7077 os += "FUEL_DOOR_OPEN";
7078 first = false;
7079 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_DOOR_OPEN;
7080 }
7081 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_LEVEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_LEVEL)) {
7082 os += (first ? "" : " | ");
7083 os += "EV_BATTERY_LEVEL";
7084 first = false;
7085 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_LEVEL;
7086 }
7087 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_CHARGE_PORT_OPEN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_CHARGE_PORT_OPEN)) {
7088 os += (first ? "" : " | ");
7089 os += "EV_CHARGE_PORT_OPEN";
7090 first = false;
7091 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_CHARGE_PORT_OPEN;
7092 }
7093 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_CHARGE_PORT_CONNECTED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_CHARGE_PORT_CONNECTED)) {
7094 os += (first ? "" : " | ");
7095 os += "EV_CHARGE_PORT_CONNECTED";
7096 first = false;
7097 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_CHARGE_PORT_CONNECTED;
7098 }
7099 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE)) {
7100 os += (first ? "" : " | ");
7101 os += "EV_BATTERY_INSTANTANEOUS_CHARGE_RATE";
7102 first = false;
7103 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE;
7104 }
7105 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::RANGE_REMAINING) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::RANGE_REMAINING)) {
7106 os += (first ? "" : " | ");
7107 os += "RANGE_REMAINING";
7108 first = false;
7109 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::RANGE_REMAINING;
7110 }
7111 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TIRE_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TIRE_PRESSURE)) {
7112 os += (first ? "" : " | ");
7113 os += "TIRE_PRESSURE";
7114 first = false;
7115 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TIRE_PRESSURE;
7116 }
7117 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::GEAR_SELECTION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::GEAR_SELECTION)) {
7118 os += (first ? "" : " | ");
7119 os += "GEAR_SELECTION";
7120 first = false;
7121 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::GEAR_SELECTION;
7122 }
7123 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CURRENT_GEAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CURRENT_GEAR)) {
7124 os += (first ? "" : " | ");
7125 os += "CURRENT_GEAR";
7126 first = false;
7127 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CURRENT_GEAR;
7128 }
7129 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PARKING_BRAKE_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PARKING_BRAKE_ON)) {
7130 os += (first ? "" : " | ");
7131 os += "PARKING_BRAKE_ON";
7132 first = false;
7133 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PARKING_BRAKE_ON;
7134 }
7135 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PARKING_BRAKE_AUTO_APPLY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PARKING_BRAKE_AUTO_APPLY)) {
7136 os += (first ? "" : " | ");
7137 os += "PARKING_BRAKE_AUTO_APPLY";
7138 first = false;
7139 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PARKING_BRAKE_AUTO_APPLY;
7140 }
7141 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_LEVEL_LOW) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_LEVEL_LOW)) {
7142 os += (first ? "" : " | ");
7143 os += "FUEL_LEVEL_LOW";
7144 first = false;
7145 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_LEVEL_LOW;
7146 }
7147 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::NIGHT_MODE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::NIGHT_MODE)) {
7148 os += (first ? "" : " | ");
7149 os += "NIGHT_MODE";
7150 first = false;
7151 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::NIGHT_MODE;
7152 }
7153 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TURN_SIGNAL_STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TURN_SIGNAL_STATE)) {
7154 os += (first ? "" : " | ");
7155 os += "TURN_SIGNAL_STATE";
7156 first = false;
7157 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TURN_SIGNAL_STATE;
7158 }
7159 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::IGNITION_STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::IGNITION_STATE)) {
7160 os += (first ? "" : " | ");
7161 os += "IGNITION_STATE";
7162 first = false;
7163 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::IGNITION_STATE;
7164 }
7165 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ABS_ACTIVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ABS_ACTIVE)) {
7166 os += (first ? "" : " | ");
7167 os += "ABS_ACTIVE";
7168 first = false;
7169 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ABS_ACTIVE;
7170 }
7171 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TRACTION_CONTROL_ACTIVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TRACTION_CONTROL_ACTIVE)) {
7172 os += (first ? "" : " | ");
7173 os += "TRACTION_CONTROL_ACTIVE";
7174 first = false;
7175 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TRACTION_CONTROL_ACTIVE;
7176 }
7177 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_SPEED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_SPEED)) {
7178 os += (first ? "" : " | ");
7179 os += "HVAC_FAN_SPEED";
7180 first = false;
7181 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_SPEED;
7182 }
7183 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_DIRECTION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_DIRECTION)) {
7184 os += (first ? "" : " | ");
7185 os += "HVAC_FAN_DIRECTION";
7186 first = false;
7187 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_DIRECTION;
7188 }
7189 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_CURRENT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_CURRENT)) {
7190 os += (first ? "" : " | ");
7191 os += "HVAC_TEMPERATURE_CURRENT";
7192 first = false;
7193 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_CURRENT;
7194 }
7195 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_SET) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_SET)) {
7196 os += (first ? "" : " | ");
7197 os += "HVAC_TEMPERATURE_SET";
7198 first = false;
7199 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_SET;
7200 }
7201 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_DEFROSTER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_DEFROSTER)) {
7202 os += (first ? "" : " | ");
7203 os += "HVAC_DEFROSTER";
7204 first = false;
7205 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_DEFROSTER;
7206 }
7207 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AC_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AC_ON)) {
7208 os += (first ? "" : " | ");
7209 os += "HVAC_AC_ON";
7210 first = false;
7211 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AC_ON;
7212 }
7213 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_MAX_AC_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_MAX_AC_ON)) {
7214 os += (first ? "" : " | ");
7215 os += "HVAC_MAX_AC_ON";
7216 first = false;
7217 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_MAX_AC_ON;
7218 }
7219 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_MAX_DEFROST_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_MAX_DEFROST_ON)) {
7220 os += (first ? "" : " | ");
7221 os += "HVAC_MAX_DEFROST_ON";
7222 first = false;
7223 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_MAX_DEFROST_ON;
7224 }
7225 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_RECIRC_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_RECIRC_ON)) {
7226 os += (first ? "" : " | ");
7227 os += "HVAC_RECIRC_ON";
7228 first = false;
7229 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_RECIRC_ON;
7230 }
7231 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_DUAL_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_DUAL_ON)) {
7232 os += (first ? "" : " | ");
7233 os += "HVAC_DUAL_ON";
7234 first = false;
7235 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_DUAL_ON;
7236 }
7237 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AUTO_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AUTO_ON)) {
7238 os += (first ? "" : " | ");
7239 os += "HVAC_AUTO_ON";
7240 first = false;
7241 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AUTO_ON;
7242 }
7243 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SEAT_TEMPERATURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SEAT_TEMPERATURE)) {
7244 os += (first ? "" : " | ");
7245 os += "HVAC_SEAT_TEMPERATURE";
7246 first = false;
7247 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SEAT_TEMPERATURE;
7248 }
7249 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SIDE_MIRROR_HEAT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SIDE_MIRROR_HEAT)) {
7250 os += (first ? "" : " | ");
7251 os += "HVAC_SIDE_MIRROR_HEAT";
7252 first = false;
7253 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SIDE_MIRROR_HEAT;
7254 }
7255 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_STEERING_WHEEL_HEAT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_STEERING_WHEEL_HEAT)) {
7256 os += (first ? "" : " | ");
7257 os += "HVAC_STEERING_WHEEL_HEAT";
7258 first = false;
7259 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_STEERING_WHEEL_HEAT;
7260 }
7261 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS)) {
7262 os += (first ? "" : " | ");
7263 os += "HVAC_TEMPERATURE_DISPLAY_UNITS";
7264 first = false;
7265 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS;
7266 }
7267 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM)) {
7268 os += (first ? "" : " | ");
7269 os += "HVAC_ACTUAL_FAN_SPEED_RPM";
7270 first = false;
7271 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM;
7272 }
7273 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_POWER_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_POWER_ON)) {
7274 os += (first ? "" : " | ");
7275 os += "HVAC_POWER_ON";
7276 first = false;
7277 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_POWER_ON;
7278 }
7279 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE)) {
7280 os += (first ? "" : " | ");
7281 os += "HVAC_FAN_DIRECTION_AVAILABLE";
7282 first = false;
7283 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE;
7284 }
7285 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AUTO_RECIRC_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AUTO_RECIRC_ON)) {
7286 os += (first ? "" : " | ");
7287 os += "HVAC_AUTO_RECIRC_ON";
7288 first = false;
7289 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AUTO_RECIRC_ON;
7290 }
7291 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SEAT_VENTILATION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SEAT_VENTILATION)) {
7292 os += (first ? "" : " | ");
7293 os += "HVAC_SEAT_VENTILATION";
7294 first = false;
7295 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SEAT_VENTILATION;
7296 }
7297 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON)) {
7298 os += (first ? "" : " | ");
7299 os += "HVAC_ELECTRIC_DEFROSTER_ON";
7300 first = false;
7301 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON;
7302 }
7303 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISTANCE_DISPLAY_UNITS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISTANCE_DISPLAY_UNITS)) {
7304 os += (first ? "" : " | ");
7305 os += "DISTANCE_DISPLAY_UNITS";
7306 first = false;
7307 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISTANCE_DISPLAY_UNITS;
7308 }
7309 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS)) {
7310 os += (first ? "" : " | ");
7311 os += "FUEL_VOLUME_DISPLAY_UNITS";
7312 first = false;
7313 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS;
7314 }
7315 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS)) {
7316 os += (first ? "" : " | ");
7317 os += "TIRE_PRESSURE_DISPLAY_UNITS";
7318 first = false;
7319 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS;
7320 }
7321 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_DISPLAY_UNITS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_DISPLAY_UNITS)) {
7322 os += (first ? "" : " | ");
7323 os += "EV_BATTERY_DISPLAY_UNITS";
7324 first = false;
7325 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_DISPLAY_UNITS;
7326 }
7327 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME)) {
7328 os += (first ? "" : " | ");
7329 os += "FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME";
7330 first = false;
7331 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME;
7332 }
7333 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS)) {
7334 os += (first ? "" : " | ");
7335 os += "VEHICLE_SPEED_DISPLAY_UNITS";
7336 first = false;
7337 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS;
7338 }
7339 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENV_OUTSIDE_TEMPERATURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENV_OUTSIDE_TEMPERATURE)) {
7340 os += (first ? "" : " | ");
7341 os += "ENV_OUTSIDE_TEMPERATURE";
7342 first = false;
7343 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENV_OUTSIDE_TEMPERATURE;
7344 }
7345 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_STATE_REQ) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_STATE_REQ)) {
7346 os += (first ? "" : " | ");
7347 os += "AP_POWER_STATE_REQ";
7348 first = false;
7349 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_STATE_REQ;
7350 }
7351 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_STATE_REPORT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_STATE_REPORT)) {
7352 os += (first ? "" : " | ");
7353 os += "AP_POWER_STATE_REPORT";
7354 first = false;
7355 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_STATE_REPORT;
7356 }
7357 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_BOOTUP_REASON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_BOOTUP_REASON)) {
7358 os += (first ? "" : " | ");
7359 os += "AP_POWER_BOOTUP_REASON";
7360 first = false;
7361 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_BOOTUP_REASON;
7362 }
7363 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISPLAY_BRIGHTNESS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISPLAY_BRIGHTNESS)) {
7364 os += (first ? "" : " | ");
7365 os += "DISPLAY_BRIGHTNESS";
7366 first = false;
7367 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISPLAY_BRIGHTNESS;
7368 }
7369 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HW_KEY_INPUT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HW_KEY_INPUT)) {
7370 os += (first ? "" : " | ");
7371 os += "HW_KEY_INPUT";
7372 first = false;
7373 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HW_KEY_INPUT;
7374 }
7375 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HW_ROTARY_INPUT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HW_ROTARY_INPUT)) {
7376 os += (first ? "" : " | ");
7377 os += "HW_ROTARY_INPUT";
7378 first = false;
7379 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HW_ROTARY_INPUT;
7380 }
7381 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_POS)) {
7382 os += (first ? "" : " | ");
7383 os += "DOOR_POS";
7384 first = false;
7385 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_POS;
7386 }
7387 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_MOVE)) {
7388 os += (first ? "" : " | ");
7389 os += "DOOR_MOVE";
7390 first = false;
7391 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_MOVE;
7392 }
7393 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_LOCK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_LOCK)) {
7394 os += (first ? "" : " | ");
7395 os += "DOOR_LOCK";
7396 first = false;
7397 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_LOCK;
7398 }
7399 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Z_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Z_POS)) {
7400 os += (first ? "" : " | ");
7401 os += "MIRROR_Z_POS";
7402 first = false;
7403 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Z_POS;
7404 }
7405 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Z_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Z_MOVE)) {
7406 os += (first ? "" : " | ");
7407 os += "MIRROR_Z_MOVE";
7408 first = false;
7409 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Z_MOVE;
7410 }
7411 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Y_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Y_POS)) {
7412 os += (first ? "" : " | ");
7413 os += "MIRROR_Y_POS";
7414 first = false;
7415 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Y_POS;
7416 }
7417 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Y_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Y_MOVE)) {
7418 os += (first ? "" : " | ");
7419 os += "MIRROR_Y_MOVE";
7420 first = false;
7421 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Y_MOVE;
7422 }
7423 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_LOCK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_LOCK)) {
7424 os += (first ? "" : " | ");
7425 os += "MIRROR_LOCK";
7426 first = false;
7427 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_LOCK;
7428 }
7429 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_FOLD) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_FOLD)) {
7430 os += (first ? "" : " | ");
7431 os += "MIRROR_FOLD";
7432 first = false;
7433 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_FOLD;
7434 }
7435 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_MEMORY_SELECT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_MEMORY_SELECT)) {
7436 os += (first ? "" : " | ");
7437 os += "SEAT_MEMORY_SELECT";
7438 first = false;
7439 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_MEMORY_SELECT;
7440 }
7441 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_MEMORY_SET) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_MEMORY_SET)) {
7442 os += (first ? "" : " | ");
7443 os += "SEAT_MEMORY_SET";
7444 first = false;
7445 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_MEMORY_SET;
7446 }
7447 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_BUCKLED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_BUCKLED)) {
7448 os += (first ? "" : " | ");
7449 os += "SEAT_BELT_BUCKLED";
7450 first = false;
7451 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_BUCKLED;
7452 }
7453 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_HEIGHT_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_HEIGHT_POS)) {
7454 os += (first ? "" : " | ");
7455 os += "SEAT_BELT_HEIGHT_POS";
7456 first = false;
7457 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_HEIGHT_POS;
7458 }
7459 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_HEIGHT_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_HEIGHT_MOVE)) {
7460 os += (first ? "" : " | ");
7461 os += "SEAT_BELT_HEIGHT_MOVE";
7462 first = false;
7463 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_HEIGHT_MOVE;
7464 }
7465 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_FORE_AFT_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_FORE_AFT_POS)) {
7466 os += (first ? "" : " | ");
7467 os += "SEAT_FORE_AFT_POS";
7468 first = false;
7469 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_FORE_AFT_POS;
7470 }
7471 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_FORE_AFT_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_FORE_AFT_MOVE)) {
7472 os += (first ? "" : " | ");
7473 os += "SEAT_FORE_AFT_MOVE";
7474 first = false;
7475 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_FORE_AFT_MOVE;
7476 }
7477 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_1_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_1_POS)) {
7478 os += (first ? "" : " | ");
7479 os += "SEAT_BACKREST_ANGLE_1_POS";
7480 first = false;
7481 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_1_POS;
7482 }
7483 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE)) {
7484 os += (first ? "" : " | ");
7485 os += "SEAT_BACKREST_ANGLE_1_MOVE";
7486 first = false;
7487 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE;
7488 }
7489 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_2_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_2_POS)) {
7490 os += (first ? "" : " | ");
7491 os += "SEAT_BACKREST_ANGLE_2_POS";
7492 first = false;
7493 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_2_POS;
7494 }
7495 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE)) {
7496 os += (first ? "" : " | ");
7497 os += "SEAT_BACKREST_ANGLE_2_MOVE";
7498 first = false;
7499 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE;
7500 }
7501 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEIGHT_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEIGHT_POS)) {
7502 os += (first ? "" : " | ");
7503 os += "SEAT_HEIGHT_POS";
7504 first = false;
7505 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEIGHT_POS;
7506 }
7507 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEIGHT_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEIGHT_MOVE)) {
7508 os += (first ? "" : " | ");
7509 os += "SEAT_HEIGHT_MOVE";
7510 first = false;
7511 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEIGHT_MOVE;
7512 }
7513 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_DEPTH_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_DEPTH_POS)) {
7514 os += (first ? "" : " | ");
7515 os += "SEAT_DEPTH_POS";
7516 first = false;
7517 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_DEPTH_POS;
7518 }
7519 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_DEPTH_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_DEPTH_MOVE)) {
7520 os += (first ? "" : " | ");
7521 os += "SEAT_DEPTH_MOVE";
7522 first = false;
7523 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_DEPTH_MOVE;
7524 }
7525 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_TILT_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_TILT_POS)) {
7526 os += (first ? "" : " | ");
7527 os += "SEAT_TILT_POS";
7528 first = false;
7529 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_TILT_POS;
7530 }
7531 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_TILT_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_TILT_MOVE)) {
7532 os += (first ? "" : " | ");
7533 os += "SEAT_TILT_MOVE";
7534 first = false;
7535 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_TILT_MOVE;
7536 }
7537 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS)) {
7538 os += (first ? "" : " | ");
7539 os += "SEAT_LUMBAR_FORE_AFT_POS";
7540 first = false;
7541 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS;
7542 }
7543 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE)) {
7544 os += (first ? "" : " | ");
7545 os += "SEAT_LUMBAR_FORE_AFT_MOVE";
7546 first = false;
7547 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE;
7548 }
7549 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS)) {
7550 os += (first ? "" : " | ");
7551 os += "SEAT_LUMBAR_SIDE_SUPPORT_POS";
7552 first = false;
7553 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS;
7554 }
7555 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE)) {
7556 os += (first ? "" : " | ");
7557 os += "SEAT_LUMBAR_SIDE_SUPPORT_MOVE";
7558 first = false;
7559 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE;
7560 }
7561 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_HEIGHT_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_HEIGHT_POS)) {
7562 os += (first ? "" : " | ");
7563 os += "SEAT_HEADREST_HEIGHT_POS";
7564 first = false;
7565 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_HEIGHT_POS;
7566 }
7567 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE)) {
7568 os += (first ? "" : " | ");
7569 os += "SEAT_HEADREST_HEIGHT_MOVE";
7570 first = false;
7571 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE;
7572 }
7573 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_ANGLE_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_ANGLE_POS)) {
7574 os += (first ? "" : " | ");
7575 os += "SEAT_HEADREST_ANGLE_POS";
7576 first = false;
7577 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_ANGLE_POS;
7578 }
7579 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_ANGLE_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_ANGLE_MOVE)) {
7580 os += (first ? "" : " | ");
7581 os += "SEAT_HEADREST_ANGLE_MOVE";
7582 first = false;
7583 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_ANGLE_MOVE;
7584 }
7585 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_FORE_AFT_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_FORE_AFT_POS)) {
7586 os += (first ? "" : " | ");
7587 os += "SEAT_HEADREST_FORE_AFT_POS";
7588 first = false;
7589 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_FORE_AFT_POS;
7590 }
7591 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE)) {
7592 os += (first ? "" : " | ");
7593 os += "SEAT_HEADREST_FORE_AFT_MOVE";
7594 first = false;
7595 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE;
7596 }
7597 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_OCCUPANCY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_OCCUPANCY)) {
7598 os += (first ? "" : " | ");
7599 os += "SEAT_OCCUPANCY";
7600 first = false;
7601 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_OCCUPANCY;
7602 }
7603 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_POS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_POS)) {
7604 os += (first ? "" : " | ");
7605 os += "WINDOW_POS";
7606 first = false;
7607 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_POS;
7608 }
7609 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_MOVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_MOVE)) {
7610 os += (first ? "" : " | ");
7611 os += "WINDOW_MOVE";
7612 first = false;
7613 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_MOVE;
7614 }
7615 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_LOCK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_LOCK)) {
7616 os += (first ? "" : " | ");
7617 os += "WINDOW_LOCK";
7618 first = false;
7619 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_LOCK;
7620 }
7621 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::VEHICLE_MAP_SERVICE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::VEHICLE_MAP_SERVICE)) {
7622 os += (first ? "" : " | ");
7623 os += "VEHICLE_MAP_SERVICE";
7624 first = false;
7625 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::VEHICLE_MAP_SERVICE;
7626 }
7627 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_LIVE_FRAME) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_LIVE_FRAME)) {
7628 os += (first ? "" : " | ");
7629 os += "OBD2_LIVE_FRAME";
7630 first = false;
7631 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_LIVE_FRAME;
7632 }
7633 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME)) {
7634 os += (first ? "" : " | ");
7635 os += "OBD2_FREEZE_FRAME";
7636 first = false;
7637 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME;
7638 }
7639 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME_INFO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME_INFO)) {
7640 os += (first ? "" : " | ");
7641 os += "OBD2_FREEZE_FRAME_INFO";
7642 first = false;
7643 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME_INFO;
7644 }
7645 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME_CLEAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME_CLEAR)) {
7646 os += (first ? "" : " | ");
7647 os += "OBD2_FREEZE_FRAME_CLEAR";
7648 first = false;
7649 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME_CLEAR;
7650 }
7651 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HEADLIGHTS_STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HEADLIGHTS_STATE)) {
7652 os += (first ? "" : " | ");
7653 os += "HEADLIGHTS_STATE";
7654 first = false;
7655 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HEADLIGHTS_STATE;
7656 }
7657 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HIGH_BEAM_LIGHTS_STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HIGH_BEAM_LIGHTS_STATE)) {
7658 os += (first ? "" : " | ");
7659 os += "HIGH_BEAM_LIGHTS_STATE";
7660 first = false;
7661 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HIGH_BEAM_LIGHTS_STATE;
7662 }
7663 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FOG_LIGHTS_STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FOG_LIGHTS_STATE)) {
7664 os += (first ? "" : " | ");
7665 os += "FOG_LIGHTS_STATE";
7666 first = false;
7667 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FOG_LIGHTS_STATE;
7668 }
7669 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HAZARD_LIGHTS_STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HAZARD_LIGHTS_STATE)) {
7670 os += (first ? "" : " | ");
7671 os += "HAZARD_LIGHTS_STATE";
7672 first = false;
7673 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HAZARD_LIGHTS_STATE;
7674 }
7675 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HEADLIGHTS_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HEADLIGHTS_SWITCH)) {
7676 os += (first ? "" : " | ");
7677 os += "HEADLIGHTS_SWITCH";
7678 first = false;
7679 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HEADLIGHTS_SWITCH;
7680 }
7681 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH)) {
7682 os += (first ? "" : " | ");
7683 os += "HIGH_BEAM_LIGHTS_SWITCH";
7684 first = false;
7685 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH;
7686 }
7687 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FOG_LIGHTS_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FOG_LIGHTS_SWITCH)) {
7688 os += (first ? "" : " | ");
7689 os += "FOG_LIGHTS_SWITCH";
7690 first = false;
7691 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FOG_LIGHTS_SWITCH;
7692 }
7693 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HAZARD_LIGHTS_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HAZARD_LIGHTS_SWITCH)) {
7694 os += (first ? "" : " | ");
7695 os += "HAZARD_LIGHTS_SWITCH";
7696 first = false;
7697 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HAZARD_LIGHTS_SWITCH;
7698 }
7699 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CABIN_LIGHTS_STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CABIN_LIGHTS_STATE)) {
7700 os += (first ? "" : " | ");
7701 os += "CABIN_LIGHTS_STATE";
7702 first = false;
7703 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CABIN_LIGHTS_STATE;
7704 }
7705 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CABIN_LIGHTS_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CABIN_LIGHTS_SWITCH)) {
7706 os += (first ? "" : " | ");
7707 os += "CABIN_LIGHTS_SWITCH";
7708 first = false;
7709 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CABIN_LIGHTS_SWITCH;
7710 }
7711 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::READING_LIGHTS_STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::READING_LIGHTS_STATE)) {
7712 os += (first ? "" : " | ");
7713 os += "READING_LIGHTS_STATE";
7714 first = false;
7715 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::READING_LIGHTS_STATE;
7716 }
7717 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::READING_LIGHTS_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::READING_LIGHTS_SWITCH)) {
7718 os += (first ? "" : " | ");
7719 os += "READING_LIGHTS_SWITCH";
7720 first = false;
7721 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::READING_LIGHTS_SWITCH;
7722 }
7723 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION)) {
7724 os += (first ? "" : " | ");
7725 os += "SUPPORT_CUSTOMIZE_VENDOR_PERMISSION";
7726 first = false;
7727 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION;
7728 }
7729 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISABLED_OPTIONAL_FEATURES) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISABLED_OPTIONAL_FEATURES)) {
7730 os += (first ? "" : " | ");
7731 os += "DISABLED_OPTIONAL_FEATURES";
7732 first = false;
7733 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISABLED_OPTIONAL_FEATURES;
7734 }
7735 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INITIAL_USER_INFO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INITIAL_USER_INFO)) {
7736 os += (first ? "" : " | ");
7737 os += "INITIAL_USER_INFO";
7738 first = false;
7739 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INITIAL_USER_INFO;
7740 }
7741 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SWITCH_USER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SWITCH_USER)) {
7742 os += (first ? "" : " | ");
7743 os += "SWITCH_USER";
7744 first = false;
7745 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SWITCH_USER;
7746 }
7747 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CREATE_USER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CREATE_USER)) {
7748 os += (first ? "" : " | ");
7749 os += "CREATE_USER";
7750 first = false;
7751 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CREATE_USER;
7752 }
7753 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::REMOVE_USER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::REMOVE_USER)) {
7754 os += (first ? "" : " | ");
7755 os += "REMOVE_USER";
7756 first = false;
7757 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::REMOVE_USER;
7758 }
7759 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::USER_IDENTIFICATION_ASSOCIATION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleProperty::USER_IDENTIFICATION_ASSOCIATION)) {
7760 os += (first ? "" : " | ");
7761 os += "USER_IDENTIFICATION_ASSOCIATION";
7762 first = false;
7763 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::USER_IDENTIFICATION_ASSOCIATION;
7764 }
7765 if (o != flipped) {
7766 os += (first ? "" : " | ");
7767 os += toHexString(o & (~flipped));
7768 }os += " (";
7769 os += toHexString(o);
7770 os += ")";
7771 return os;
7772 }
7773
toString(::android::hardware::automotive::vehicle::V2_0::VehicleProperty o)7774 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleProperty o) {
7775 using ::android::hardware::details::toHexString;
7776 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INVALID) {
7777 return "INVALID";
7778 }
7779 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_VIN) {
7780 return "INFO_VIN";
7781 }
7782 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MAKE) {
7783 return "INFO_MAKE";
7784 }
7785 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MODEL) {
7786 return "INFO_MODEL";
7787 }
7788 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MODEL_YEAR) {
7789 return "INFO_MODEL_YEAR";
7790 }
7791 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_CAPACITY) {
7792 return "INFO_FUEL_CAPACITY";
7793 }
7794 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_TYPE) {
7795 return "INFO_FUEL_TYPE";
7796 }
7797 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_BATTERY_CAPACITY) {
7798 return "INFO_EV_BATTERY_CAPACITY";
7799 }
7800 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_CONNECTOR_TYPE) {
7801 return "INFO_EV_CONNECTOR_TYPE";
7802 }
7803 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_FUEL_DOOR_LOCATION) {
7804 return "INFO_FUEL_DOOR_LOCATION";
7805 }
7806 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EV_PORT_LOCATION) {
7807 return "INFO_EV_PORT_LOCATION";
7808 }
7809 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_DRIVER_SEAT) {
7810 return "INFO_DRIVER_SEAT";
7811 }
7812 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_EXTERIOR_DIMENSIONS) {
7813 return "INFO_EXTERIOR_DIMENSIONS";
7814 }
7815 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS) {
7816 return "INFO_MULTI_EV_PORT_LOCATIONS";
7817 }
7818 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_ODOMETER) {
7819 return "PERF_ODOMETER";
7820 }
7821 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_VEHICLE_SPEED) {
7822 return "PERF_VEHICLE_SPEED";
7823 }
7824 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY) {
7825 return "PERF_VEHICLE_SPEED_DISPLAY";
7826 }
7827 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_STEERING_ANGLE) {
7828 return "PERF_STEERING_ANGLE";
7829 }
7830 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PERF_REAR_STEERING_ANGLE) {
7831 return "PERF_REAR_STEERING_ANGLE";
7832 }
7833 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_COOLANT_TEMP) {
7834 return "ENGINE_COOLANT_TEMP";
7835 }
7836 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_OIL_LEVEL) {
7837 return "ENGINE_OIL_LEVEL";
7838 }
7839 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_OIL_TEMP) {
7840 return "ENGINE_OIL_TEMP";
7841 }
7842 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENGINE_RPM) {
7843 return "ENGINE_RPM";
7844 }
7845 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WHEEL_TICK) {
7846 return "WHEEL_TICK";
7847 }
7848 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_LEVEL) {
7849 return "FUEL_LEVEL";
7850 }
7851 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_DOOR_OPEN) {
7852 return "FUEL_DOOR_OPEN";
7853 }
7854 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_LEVEL) {
7855 return "EV_BATTERY_LEVEL";
7856 }
7857 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_CHARGE_PORT_OPEN) {
7858 return "EV_CHARGE_PORT_OPEN";
7859 }
7860 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_CHARGE_PORT_CONNECTED) {
7861 return "EV_CHARGE_PORT_CONNECTED";
7862 }
7863 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE) {
7864 return "EV_BATTERY_INSTANTANEOUS_CHARGE_RATE";
7865 }
7866 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::RANGE_REMAINING) {
7867 return "RANGE_REMAINING";
7868 }
7869 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TIRE_PRESSURE) {
7870 return "TIRE_PRESSURE";
7871 }
7872 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::GEAR_SELECTION) {
7873 return "GEAR_SELECTION";
7874 }
7875 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CURRENT_GEAR) {
7876 return "CURRENT_GEAR";
7877 }
7878 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PARKING_BRAKE_ON) {
7879 return "PARKING_BRAKE_ON";
7880 }
7881 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::PARKING_BRAKE_AUTO_APPLY) {
7882 return "PARKING_BRAKE_AUTO_APPLY";
7883 }
7884 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_LEVEL_LOW) {
7885 return "FUEL_LEVEL_LOW";
7886 }
7887 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::NIGHT_MODE) {
7888 return "NIGHT_MODE";
7889 }
7890 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TURN_SIGNAL_STATE) {
7891 return "TURN_SIGNAL_STATE";
7892 }
7893 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::IGNITION_STATE) {
7894 return "IGNITION_STATE";
7895 }
7896 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ABS_ACTIVE) {
7897 return "ABS_ACTIVE";
7898 }
7899 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TRACTION_CONTROL_ACTIVE) {
7900 return "TRACTION_CONTROL_ACTIVE";
7901 }
7902 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_SPEED) {
7903 return "HVAC_FAN_SPEED";
7904 }
7905 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_DIRECTION) {
7906 return "HVAC_FAN_DIRECTION";
7907 }
7908 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_CURRENT) {
7909 return "HVAC_TEMPERATURE_CURRENT";
7910 }
7911 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_SET) {
7912 return "HVAC_TEMPERATURE_SET";
7913 }
7914 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_DEFROSTER) {
7915 return "HVAC_DEFROSTER";
7916 }
7917 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AC_ON) {
7918 return "HVAC_AC_ON";
7919 }
7920 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_MAX_AC_ON) {
7921 return "HVAC_MAX_AC_ON";
7922 }
7923 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_MAX_DEFROST_ON) {
7924 return "HVAC_MAX_DEFROST_ON";
7925 }
7926 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_RECIRC_ON) {
7927 return "HVAC_RECIRC_ON";
7928 }
7929 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_DUAL_ON) {
7930 return "HVAC_DUAL_ON";
7931 }
7932 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AUTO_ON) {
7933 return "HVAC_AUTO_ON";
7934 }
7935 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SEAT_TEMPERATURE) {
7936 return "HVAC_SEAT_TEMPERATURE";
7937 }
7938 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SIDE_MIRROR_HEAT) {
7939 return "HVAC_SIDE_MIRROR_HEAT";
7940 }
7941 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_STEERING_WHEEL_HEAT) {
7942 return "HVAC_STEERING_WHEEL_HEAT";
7943 }
7944 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS) {
7945 return "HVAC_TEMPERATURE_DISPLAY_UNITS";
7946 }
7947 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM) {
7948 return "HVAC_ACTUAL_FAN_SPEED_RPM";
7949 }
7950 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_POWER_ON) {
7951 return "HVAC_POWER_ON";
7952 }
7953 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE) {
7954 return "HVAC_FAN_DIRECTION_AVAILABLE";
7955 }
7956 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_AUTO_RECIRC_ON) {
7957 return "HVAC_AUTO_RECIRC_ON";
7958 }
7959 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_SEAT_VENTILATION) {
7960 return "HVAC_SEAT_VENTILATION";
7961 }
7962 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON) {
7963 return "HVAC_ELECTRIC_DEFROSTER_ON";
7964 }
7965 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISTANCE_DISPLAY_UNITS) {
7966 return "DISTANCE_DISPLAY_UNITS";
7967 }
7968 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS) {
7969 return "FUEL_VOLUME_DISPLAY_UNITS";
7970 }
7971 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS) {
7972 return "TIRE_PRESSURE_DISPLAY_UNITS";
7973 }
7974 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::EV_BATTERY_DISPLAY_UNITS) {
7975 return "EV_BATTERY_DISPLAY_UNITS";
7976 }
7977 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME) {
7978 return "FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME";
7979 }
7980 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS) {
7981 return "VEHICLE_SPEED_DISPLAY_UNITS";
7982 }
7983 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::ENV_OUTSIDE_TEMPERATURE) {
7984 return "ENV_OUTSIDE_TEMPERATURE";
7985 }
7986 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_STATE_REQ) {
7987 return "AP_POWER_STATE_REQ";
7988 }
7989 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_STATE_REPORT) {
7990 return "AP_POWER_STATE_REPORT";
7991 }
7992 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::AP_POWER_BOOTUP_REASON) {
7993 return "AP_POWER_BOOTUP_REASON";
7994 }
7995 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISPLAY_BRIGHTNESS) {
7996 return "DISPLAY_BRIGHTNESS";
7997 }
7998 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HW_KEY_INPUT) {
7999 return "HW_KEY_INPUT";
8000 }
8001 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HW_ROTARY_INPUT) {
8002 return "HW_ROTARY_INPUT";
8003 }
8004 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_POS) {
8005 return "DOOR_POS";
8006 }
8007 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_MOVE) {
8008 return "DOOR_MOVE";
8009 }
8010 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DOOR_LOCK) {
8011 return "DOOR_LOCK";
8012 }
8013 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Z_POS) {
8014 return "MIRROR_Z_POS";
8015 }
8016 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Z_MOVE) {
8017 return "MIRROR_Z_MOVE";
8018 }
8019 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Y_POS) {
8020 return "MIRROR_Y_POS";
8021 }
8022 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_Y_MOVE) {
8023 return "MIRROR_Y_MOVE";
8024 }
8025 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_LOCK) {
8026 return "MIRROR_LOCK";
8027 }
8028 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::MIRROR_FOLD) {
8029 return "MIRROR_FOLD";
8030 }
8031 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_MEMORY_SELECT) {
8032 return "SEAT_MEMORY_SELECT";
8033 }
8034 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_MEMORY_SET) {
8035 return "SEAT_MEMORY_SET";
8036 }
8037 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_BUCKLED) {
8038 return "SEAT_BELT_BUCKLED";
8039 }
8040 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_HEIGHT_POS) {
8041 return "SEAT_BELT_HEIGHT_POS";
8042 }
8043 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BELT_HEIGHT_MOVE) {
8044 return "SEAT_BELT_HEIGHT_MOVE";
8045 }
8046 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_FORE_AFT_POS) {
8047 return "SEAT_FORE_AFT_POS";
8048 }
8049 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_FORE_AFT_MOVE) {
8050 return "SEAT_FORE_AFT_MOVE";
8051 }
8052 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_1_POS) {
8053 return "SEAT_BACKREST_ANGLE_1_POS";
8054 }
8055 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE) {
8056 return "SEAT_BACKREST_ANGLE_1_MOVE";
8057 }
8058 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_2_POS) {
8059 return "SEAT_BACKREST_ANGLE_2_POS";
8060 }
8061 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE) {
8062 return "SEAT_BACKREST_ANGLE_2_MOVE";
8063 }
8064 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEIGHT_POS) {
8065 return "SEAT_HEIGHT_POS";
8066 }
8067 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEIGHT_MOVE) {
8068 return "SEAT_HEIGHT_MOVE";
8069 }
8070 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_DEPTH_POS) {
8071 return "SEAT_DEPTH_POS";
8072 }
8073 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_DEPTH_MOVE) {
8074 return "SEAT_DEPTH_MOVE";
8075 }
8076 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_TILT_POS) {
8077 return "SEAT_TILT_POS";
8078 }
8079 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_TILT_MOVE) {
8080 return "SEAT_TILT_MOVE";
8081 }
8082 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS) {
8083 return "SEAT_LUMBAR_FORE_AFT_POS";
8084 }
8085 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE) {
8086 return "SEAT_LUMBAR_FORE_AFT_MOVE";
8087 }
8088 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS) {
8089 return "SEAT_LUMBAR_SIDE_SUPPORT_POS";
8090 }
8091 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE) {
8092 return "SEAT_LUMBAR_SIDE_SUPPORT_MOVE";
8093 }
8094 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_HEIGHT_POS) {
8095 return "SEAT_HEADREST_HEIGHT_POS";
8096 }
8097 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE) {
8098 return "SEAT_HEADREST_HEIGHT_MOVE";
8099 }
8100 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_ANGLE_POS) {
8101 return "SEAT_HEADREST_ANGLE_POS";
8102 }
8103 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_ANGLE_MOVE) {
8104 return "SEAT_HEADREST_ANGLE_MOVE";
8105 }
8106 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_FORE_AFT_POS) {
8107 return "SEAT_HEADREST_FORE_AFT_POS";
8108 }
8109 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE) {
8110 return "SEAT_HEADREST_FORE_AFT_MOVE";
8111 }
8112 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SEAT_OCCUPANCY) {
8113 return "SEAT_OCCUPANCY";
8114 }
8115 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_POS) {
8116 return "WINDOW_POS";
8117 }
8118 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_MOVE) {
8119 return "WINDOW_MOVE";
8120 }
8121 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::WINDOW_LOCK) {
8122 return "WINDOW_LOCK";
8123 }
8124 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::VEHICLE_MAP_SERVICE) {
8125 return "VEHICLE_MAP_SERVICE";
8126 }
8127 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_LIVE_FRAME) {
8128 return "OBD2_LIVE_FRAME";
8129 }
8130 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME) {
8131 return "OBD2_FREEZE_FRAME";
8132 }
8133 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME_INFO) {
8134 return "OBD2_FREEZE_FRAME_INFO";
8135 }
8136 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::OBD2_FREEZE_FRAME_CLEAR) {
8137 return "OBD2_FREEZE_FRAME_CLEAR";
8138 }
8139 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HEADLIGHTS_STATE) {
8140 return "HEADLIGHTS_STATE";
8141 }
8142 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HIGH_BEAM_LIGHTS_STATE) {
8143 return "HIGH_BEAM_LIGHTS_STATE";
8144 }
8145 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FOG_LIGHTS_STATE) {
8146 return "FOG_LIGHTS_STATE";
8147 }
8148 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HAZARD_LIGHTS_STATE) {
8149 return "HAZARD_LIGHTS_STATE";
8150 }
8151 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HEADLIGHTS_SWITCH) {
8152 return "HEADLIGHTS_SWITCH";
8153 }
8154 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH) {
8155 return "HIGH_BEAM_LIGHTS_SWITCH";
8156 }
8157 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::FOG_LIGHTS_SWITCH) {
8158 return "FOG_LIGHTS_SWITCH";
8159 }
8160 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::HAZARD_LIGHTS_SWITCH) {
8161 return "HAZARD_LIGHTS_SWITCH";
8162 }
8163 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CABIN_LIGHTS_STATE) {
8164 return "CABIN_LIGHTS_STATE";
8165 }
8166 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CABIN_LIGHTS_SWITCH) {
8167 return "CABIN_LIGHTS_SWITCH";
8168 }
8169 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::READING_LIGHTS_STATE) {
8170 return "READING_LIGHTS_STATE";
8171 }
8172 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::READING_LIGHTS_SWITCH) {
8173 return "READING_LIGHTS_SWITCH";
8174 }
8175 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION) {
8176 return "SUPPORT_CUSTOMIZE_VENDOR_PERMISSION";
8177 }
8178 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::DISABLED_OPTIONAL_FEATURES) {
8179 return "DISABLED_OPTIONAL_FEATURES";
8180 }
8181 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::INITIAL_USER_INFO) {
8182 return "INITIAL_USER_INFO";
8183 }
8184 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::SWITCH_USER) {
8185 return "SWITCH_USER";
8186 }
8187 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::CREATE_USER) {
8188 return "CREATE_USER";
8189 }
8190 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::REMOVE_USER) {
8191 return "REMOVE_USER";
8192 }
8193 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleProperty::USER_IDENTIFICATION_ASSOCIATION) {
8194 return "USER_IDENTIFICATION_ASSOCIATION";
8195 }
8196 std::string os;
8197 os += toHexString(static_cast<int32_t>(o));
8198 return os;
8199 }
8200
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleProperty o,::std::ostream * os)8201 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleProperty o, ::std::ostream* os) {
8202 *os << toString(o);
8203 }
8204
8205 template<>
8206 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission>(int32_t o) {
8207 using ::android::hardware::details::toHexString;
8208 std::string os;
8209 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission> flipped = 0;
8210 bool first = true;
8211 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_DEFAULT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_DEFAULT)) {
8212 os += (first ? "" : " | ");
8213 os += "PERMISSION_DEFAULT";
8214 first = false;
8215 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_DEFAULT;
8216 }
8217 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_WINDOW) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_WINDOW)) {
8218 os += (first ? "" : " | ");
8219 os += "PERMISSION_SET_VENDOR_CATEGORY_WINDOW";
8220 first = false;
8221 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_WINDOW;
8222 }
8223 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_WINDOW) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_WINDOW)) {
8224 os += (first ? "" : " | ");
8225 os += "PERMISSION_GET_VENDOR_CATEGORY_WINDOW";
8226 first = false;
8227 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_WINDOW;
8228 }
8229 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_DOOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_DOOR)) {
8230 os += (first ? "" : " | ");
8231 os += "PERMISSION_SET_VENDOR_CATEGORY_DOOR";
8232 first = false;
8233 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_DOOR;
8234 }
8235 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_DOOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_DOOR)) {
8236 os += (first ? "" : " | ");
8237 os += "PERMISSION_GET_VENDOR_CATEGORY_DOOR";
8238 first = false;
8239 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_DOOR;
8240 }
8241 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_SEAT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_SEAT)) {
8242 os += (first ? "" : " | ");
8243 os += "PERMISSION_SET_VENDOR_CATEGORY_SEAT";
8244 first = false;
8245 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_SEAT;
8246 }
8247 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_SEAT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_SEAT)) {
8248 os += (first ? "" : " | ");
8249 os += "PERMISSION_GET_VENDOR_CATEGORY_SEAT";
8250 first = false;
8251 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_SEAT;
8252 }
8253 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_MIRROR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_MIRROR)) {
8254 os += (first ? "" : " | ");
8255 os += "PERMISSION_SET_VENDOR_CATEGORY_MIRROR";
8256 first = false;
8257 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_MIRROR;
8258 }
8259 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_MIRROR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_MIRROR)) {
8260 os += (first ? "" : " | ");
8261 os += "PERMISSION_GET_VENDOR_CATEGORY_MIRROR";
8262 first = false;
8263 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_MIRROR;
8264 }
8265 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_INFO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_INFO)) {
8266 os += (first ? "" : " | ");
8267 os += "PERMISSION_SET_VENDOR_CATEGORY_INFO";
8268 first = false;
8269 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_INFO;
8270 }
8271 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_INFO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_INFO)) {
8272 os += (first ? "" : " | ");
8273 os += "PERMISSION_GET_VENDOR_CATEGORY_INFO";
8274 first = false;
8275 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_INFO;
8276 }
8277 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_ENGINE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_ENGINE)) {
8278 os += (first ? "" : " | ");
8279 os += "PERMISSION_SET_VENDOR_CATEGORY_ENGINE";
8280 first = false;
8281 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_ENGINE;
8282 }
8283 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_ENGINE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_ENGINE)) {
8284 os += (first ? "" : " | ");
8285 os += "PERMISSION_GET_VENDOR_CATEGORY_ENGINE";
8286 first = false;
8287 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_ENGINE;
8288 }
8289 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_HVAC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_HVAC)) {
8290 os += (first ? "" : " | ");
8291 os += "PERMISSION_SET_VENDOR_CATEGORY_HVAC";
8292 first = false;
8293 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_HVAC;
8294 }
8295 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_HVAC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_HVAC)) {
8296 os += (first ? "" : " | ");
8297 os += "PERMISSION_GET_VENDOR_CATEGORY_HVAC";
8298 first = false;
8299 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_HVAC;
8300 }
8301 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_LIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_LIGHT)) {
8302 os += (first ? "" : " | ");
8303 os += "PERMISSION_SET_VENDOR_CATEGORY_LIGHT";
8304 first = false;
8305 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_LIGHT;
8306 }
8307 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_LIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_LIGHT)) {
8308 os += (first ? "" : " | ");
8309 os += "PERMISSION_GET_VENDOR_CATEGORY_LIGHT";
8310 first = false;
8311 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_LIGHT;
8312 }
8313 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_1)) {
8314 os += (first ? "" : " | ");
8315 os += "PERMISSION_SET_VENDOR_CATEGORY_1";
8316 first = false;
8317 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_1;
8318 }
8319 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_1)) {
8320 os += (first ? "" : " | ");
8321 os += "PERMISSION_GET_VENDOR_CATEGORY_1";
8322 first = false;
8323 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_1;
8324 }
8325 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_2)) {
8326 os += (first ? "" : " | ");
8327 os += "PERMISSION_SET_VENDOR_CATEGORY_2";
8328 first = false;
8329 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_2;
8330 }
8331 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_2)) {
8332 os += (first ? "" : " | ");
8333 os += "PERMISSION_GET_VENDOR_CATEGORY_2";
8334 first = false;
8335 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_2;
8336 }
8337 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_3) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_3)) {
8338 os += (first ? "" : " | ");
8339 os += "PERMISSION_SET_VENDOR_CATEGORY_3";
8340 first = false;
8341 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_3;
8342 }
8343 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_3) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_3)) {
8344 os += (first ? "" : " | ");
8345 os += "PERMISSION_GET_VENDOR_CATEGORY_3";
8346 first = false;
8347 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_3;
8348 }
8349 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_4) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_4)) {
8350 os += (first ? "" : " | ");
8351 os += "PERMISSION_SET_VENDOR_CATEGORY_4";
8352 first = false;
8353 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_4;
8354 }
8355 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_4) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_4)) {
8356 os += (first ? "" : " | ");
8357 os += "PERMISSION_GET_VENDOR_CATEGORY_4";
8358 first = false;
8359 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_4;
8360 }
8361 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_5) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_5)) {
8362 os += (first ? "" : " | ");
8363 os += "PERMISSION_SET_VENDOR_CATEGORY_5";
8364 first = false;
8365 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_5;
8366 }
8367 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_5) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_5)) {
8368 os += (first ? "" : " | ");
8369 os += "PERMISSION_GET_VENDOR_CATEGORY_5";
8370 first = false;
8371 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_5;
8372 }
8373 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_6) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_6)) {
8374 os += (first ? "" : " | ");
8375 os += "PERMISSION_SET_VENDOR_CATEGORY_6";
8376 first = false;
8377 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_6;
8378 }
8379 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_6) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_6)) {
8380 os += (first ? "" : " | ");
8381 os += "PERMISSION_GET_VENDOR_CATEGORY_6";
8382 first = false;
8383 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_6;
8384 }
8385 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_7) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_7)) {
8386 os += (first ? "" : " | ");
8387 os += "PERMISSION_SET_VENDOR_CATEGORY_7";
8388 first = false;
8389 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_7;
8390 }
8391 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_7) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_7)) {
8392 os += (first ? "" : " | ");
8393 os += "PERMISSION_GET_VENDOR_CATEGORY_7";
8394 first = false;
8395 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_7;
8396 }
8397 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_8) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_8)) {
8398 os += (first ? "" : " | ");
8399 os += "PERMISSION_SET_VENDOR_CATEGORY_8";
8400 first = false;
8401 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_8;
8402 }
8403 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_8) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_8)) {
8404 os += (first ? "" : " | ");
8405 os += "PERMISSION_GET_VENDOR_CATEGORY_8";
8406 first = false;
8407 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_8;
8408 }
8409 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_9) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_9)) {
8410 os += (first ? "" : " | ");
8411 os += "PERMISSION_SET_VENDOR_CATEGORY_9";
8412 first = false;
8413 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_9;
8414 }
8415 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_9) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_9)) {
8416 os += (first ? "" : " | ");
8417 os += "PERMISSION_GET_VENDOR_CATEGORY_9";
8418 first = false;
8419 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_9;
8420 }
8421 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_10) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_10)) {
8422 os += (first ? "" : " | ");
8423 os += "PERMISSION_SET_VENDOR_CATEGORY_10";
8424 first = false;
8425 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_10;
8426 }
8427 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_10) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_10)) {
8428 os += (first ? "" : " | ");
8429 os += "PERMISSION_GET_VENDOR_CATEGORY_10";
8430 first = false;
8431 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_10;
8432 }
8433 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_NOT_ACCESSIBLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_NOT_ACCESSIBLE)) {
8434 os += (first ? "" : " | ");
8435 os += "PERMISSION_NOT_ACCESSIBLE";
8436 first = false;
8437 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_NOT_ACCESSIBLE;
8438 }
8439 if (o != flipped) {
8440 os += (first ? "" : " | ");
8441 os += toHexString(o & (~flipped));
8442 }os += " (";
8443 os += toHexString(o);
8444 os += ")";
8445 return os;
8446 }
8447
toString(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission o)8448 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission o) {
8449 using ::android::hardware::details::toHexString;
8450 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_DEFAULT) {
8451 return "PERMISSION_DEFAULT";
8452 }
8453 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_WINDOW) {
8454 return "PERMISSION_SET_VENDOR_CATEGORY_WINDOW";
8455 }
8456 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_WINDOW) {
8457 return "PERMISSION_GET_VENDOR_CATEGORY_WINDOW";
8458 }
8459 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_DOOR) {
8460 return "PERMISSION_SET_VENDOR_CATEGORY_DOOR";
8461 }
8462 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_DOOR) {
8463 return "PERMISSION_GET_VENDOR_CATEGORY_DOOR";
8464 }
8465 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_SEAT) {
8466 return "PERMISSION_SET_VENDOR_CATEGORY_SEAT";
8467 }
8468 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_SEAT) {
8469 return "PERMISSION_GET_VENDOR_CATEGORY_SEAT";
8470 }
8471 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_MIRROR) {
8472 return "PERMISSION_SET_VENDOR_CATEGORY_MIRROR";
8473 }
8474 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_MIRROR) {
8475 return "PERMISSION_GET_VENDOR_CATEGORY_MIRROR";
8476 }
8477 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_INFO) {
8478 return "PERMISSION_SET_VENDOR_CATEGORY_INFO";
8479 }
8480 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_INFO) {
8481 return "PERMISSION_GET_VENDOR_CATEGORY_INFO";
8482 }
8483 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_ENGINE) {
8484 return "PERMISSION_SET_VENDOR_CATEGORY_ENGINE";
8485 }
8486 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_ENGINE) {
8487 return "PERMISSION_GET_VENDOR_CATEGORY_ENGINE";
8488 }
8489 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_HVAC) {
8490 return "PERMISSION_SET_VENDOR_CATEGORY_HVAC";
8491 }
8492 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_HVAC) {
8493 return "PERMISSION_GET_VENDOR_CATEGORY_HVAC";
8494 }
8495 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_LIGHT) {
8496 return "PERMISSION_SET_VENDOR_CATEGORY_LIGHT";
8497 }
8498 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_LIGHT) {
8499 return "PERMISSION_GET_VENDOR_CATEGORY_LIGHT";
8500 }
8501 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_1) {
8502 return "PERMISSION_SET_VENDOR_CATEGORY_1";
8503 }
8504 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_1) {
8505 return "PERMISSION_GET_VENDOR_CATEGORY_1";
8506 }
8507 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_2) {
8508 return "PERMISSION_SET_VENDOR_CATEGORY_2";
8509 }
8510 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_2) {
8511 return "PERMISSION_GET_VENDOR_CATEGORY_2";
8512 }
8513 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_3) {
8514 return "PERMISSION_SET_VENDOR_CATEGORY_3";
8515 }
8516 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_3) {
8517 return "PERMISSION_GET_VENDOR_CATEGORY_3";
8518 }
8519 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_4) {
8520 return "PERMISSION_SET_VENDOR_CATEGORY_4";
8521 }
8522 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_4) {
8523 return "PERMISSION_GET_VENDOR_CATEGORY_4";
8524 }
8525 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_5) {
8526 return "PERMISSION_SET_VENDOR_CATEGORY_5";
8527 }
8528 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_5) {
8529 return "PERMISSION_GET_VENDOR_CATEGORY_5";
8530 }
8531 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_6) {
8532 return "PERMISSION_SET_VENDOR_CATEGORY_6";
8533 }
8534 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_6) {
8535 return "PERMISSION_GET_VENDOR_CATEGORY_6";
8536 }
8537 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_7) {
8538 return "PERMISSION_SET_VENDOR_CATEGORY_7";
8539 }
8540 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_7) {
8541 return "PERMISSION_GET_VENDOR_CATEGORY_7";
8542 }
8543 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_8) {
8544 return "PERMISSION_SET_VENDOR_CATEGORY_8";
8545 }
8546 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_8) {
8547 return "PERMISSION_GET_VENDOR_CATEGORY_8";
8548 }
8549 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_9) {
8550 return "PERMISSION_SET_VENDOR_CATEGORY_9";
8551 }
8552 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_9) {
8553 return "PERMISSION_GET_VENDOR_CATEGORY_9";
8554 }
8555 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_10) {
8556 return "PERMISSION_SET_VENDOR_CATEGORY_10";
8557 }
8558 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_10) {
8559 return "PERMISSION_GET_VENDOR_CATEGORY_10";
8560 }
8561 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission::PERMISSION_NOT_ACCESSIBLE) {
8562 return "PERMISSION_NOT_ACCESSIBLE";
8563 }
8564 std::string os;
8565 os += toHexString(static_cast<int32_t>(o));
8566 return os;
8567 }
8568
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission o,::std::ostream * os)8569 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleVendorPermission o, ::std::ostream* os) {
8570 *os << toString(o);
8571 }
8572
8573 template<>
8574 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState>(int32_t o) {
8575 using ::android::hardware::details::toHexString;
8576 std::string os;
8577 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState> flipped = 0;
8578 bool first = true;
8579 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::UNKNOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::UNKNOWN)) {
8580 os += (first ? "" : " | ");
8581 os += "UNKNOWN";
8582 first = false;
8583 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::UNKNOWN;
8584 }
8585 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::VACANT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::VACANT)) {
8586 os += (first ? "" : " | ");
8587 os += "VACANT";
8588 first = false;
8589 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::VACANT;
8590 }
8591 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::OCCUPIED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::OCCUPIED)) {
8592 os += (first ? "" : " | ");
8593 os += "OCCUPIED";
8594 first = false;
8595 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::OCCUPIED;
8596 }
8597 if (o != flipped) {
8598 os += (first ? "" : " | ");
8599 os += toHexString(o & (~flipped));
8600 }os += " (";
8601 os += toHexString(o);
8602 os += ")";
8603 return os;
8604 }
8605
toString(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState o)8606 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState o) {
8607 using ::android::hardware::details::toHexString;
8608 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::UNKNOWN) {
8609 return "UNKNOWN";
8610 }
8611 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::VACANT) {
8612 return "VACANT";
8613 }
8614 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState::OCCUPIED) {
8615 return "OCCUPIED";
8616 }
8617 std::string os;
8618 os += toHexString(static_cast<int32_t>(o));
8619 return os;
8620 }
8621
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState o,::std::ostream * os)8622 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleSeatOccupancyState o, ::std::ostream* os) {
8623 *os << toString(o);
8624 }
8625
8626 template<>
8627 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleLightState>(int32_t o) {
8628 using ::android::hardware::details::toHexString;
8629 std::string os;
8630 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleLightState> flipped = 0;
8631 bool first = true;
8632 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::OFF) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleLightState::OFF)) {
8633 os += (first ? "" : " | ");
8634 os += "OFF";
8635 first = false;
8636 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::OFF;
8637 }
8638 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleLightState::ON)) {
8639 os += (first ? "" : " | ");
8640 os += "ON";
8641 first = false;
8642 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::ON;
8643 }
8644 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::DAYTIME_RUNNING) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleLightState::DAYTIME_RUNNING)) {
8645 os += (first ? "" : " | ");
8646 os += "DAYTIME_RUNNING";
8647 first = false;
8648 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::DAYTIME_RUNNING;
8649 }
8650 if (o != flipped) {
8651 os += (first ? "" : " | ");
8652 os += toHexString(o & (~flipped));
8653 }os += " (";
8654 os += toHexString(o);
8655 os += ")";
8656 return os;
8657 }
8658
toString(::android::hardware::automotive::vehicle::V2_0::VehicleLightState o)8659 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleLightState o) {
8660 using ::android::hardware::details::toHexString;
8661 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::OFF) {
8662 return "OFF";
8663 }
8664 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::ON) {
8665 return "ON";
8666 }
8667 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleLightState::DAYTIME_RUNNING) {
8668 return "DAYTIME_RUNNING";
8669 }
8670 std::string os;
8671 os += toHexString(static_cast<int32_t>(o));
8672 return os;
8673 }
8674
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleLightState o,::std::ostream * os)8675 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleLightState o, ::std::ostream* os) {
8676 *os << toString(o);
8677 }
8678
8679 template<>
8680 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch>(int32_t o) {
8681 using ::android::hardware::details::toHexString;
8682 std::string os;
8683 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch> flipped = 0;
8684 bool first = true;
8685 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::OFF) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::OFF)) {
8686 os += (first ? "" : " | ");
8687 os += "OFF";
8688 first = false;
8689 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::OFF;
8690 }
8691 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::ON)) {
8692 os += (first ? "" : " | ");
8693 os += "ON";
8694 first = false;
8695 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::ON;
8696 }
8697 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::DAYTIME_RUNNING) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::DAYTIME_RUNNING)) {
8698 os += (first ? "" : " | ");
8699 os += "DAYTIME_RUNNING";
8700 first = false;
8701 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::DAYTIME_RUNNING;
8702 }
8703 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::AUTOMATIC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::AUTOMATIC)) {
8704 os += (first ? "" : " | ");
8705 os += "AUTOMATIC";
8706 first = false;
8707 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::AUTOMATIC;
8708 }
8709 if (o != flipped) {
8710 os += (first ? "" : " | ");
8711 os += toHexString(o & (~flipped));
8712 }os += " (";
8713 os += toHexString(o);
8714 os += ")";
8715 return os;
8716 }
8717
toString(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch o)8718 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch o) {
8719 using ::android::hardware::details::toHexString;
8720 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::OFF) {
8721 return "OFF";
8722 }
8723 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::ON) {
8724 return "ON";
8725 }
8726 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::DAYTIME_RUNNING) {
8727 return "DAYTIME_RUNNING";
8728 }
8729 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch::AUTOMATIC) {
8730 return "AUTOMATIC";
8731 }
8732 std::string os;
8733 os += toHexString(static_cast<int32_t>(o));
8734 return os;
8735 }
8736
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch o,::std::ostream * os)8737 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleLightSwitch o, ::std::ostream* os) {
8738 *os << toString(o);
8739 }
8740
8741 template<>
8742 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::EvConnectorType>(int32_t o) {
8743 using ::android::hardware::details::toHexString;
8744 std::string os;
8745 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::EvConnectorType> flipped = 0;
8746 bool first = true;
8747 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::UNKNOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::UNKNOWN)) {
8748 os += (first ? "" : " | ");
8749 os += "UNKNOWN";
8750 first = false;
8751 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::UNKNOWN;
8752 }
8753 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_1_AC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_1_AC)) {
8754 os += (first ? "" : " | ");
8755 os += "IEC_TYPE_1_AC";
8756 first = false;
8757 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_1_AC;
8758 }
8759 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_2_AC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_2_AC)) {
8760 os += (first ? "" : " | ");
8761 os += "IEC_TYPE_2_AC";
8762 first = false;
8763 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_2_AC;
8764 }
8765 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_3_AC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_3_AC)) {
8766 os += (first ? "" : " | ");
8767 os += "IEC_TYPE_3_AC";
8768 first = false;
8769 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_3_AC;
8770 }
8771 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_4_DC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_4_DC)) {
8772 os += (first ? "" : " | ");
8773 os += "IEC_TYPE_4_DC";
8774 first = false;
8775 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_4_DC;
8776 }
8777 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_1_CCS_DC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_1_CCS_DC)) {
8778 os += (first ? "" : " | ");
8779 os += "IEC_TYPE_1_CCS_DC";
8780 first = false;
8781 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_1_CCS_DC;
8782 }
8783 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_2_CCS_DC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_2_CCS_DC)) {
8784 os += (first ? "" : " | ");
8785 os += "IEC_TYPE_2_CCS_DC";
8786 first = false;
8787 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_2_CCS_DC;
8788 }
8789 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_ROADSTER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_ROADSTER)) {
8790 os += (first ? "" : " | ");
8791 os += "TESLA_ROADSTER";
8792 first = false;
8793 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_ROADSTER;
8794 }
8795 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_HPWC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_HPWC)) {
8796 os += (first ? "" : " | ");
8797 os += "TESLA_HPWC";
8798 first = false;
8799 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_HPWC;
8800 }
8801 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_SUPERCHARGER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_SUPERCHARGER)) {
8802 os += (first ? "" : " | ");
8803 os += "TESLA_SUPERCHARGER";
8804 first = false;
8805 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_SUPERCHARGER;
8806 }
8807 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::GBT_AC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::GBT_AC)) {
8808 os += (first ? "" : " | ");
8809 os += "GBT_AC";
8810 first = false;
8811 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::GBT_AC;
8812 }
8813 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::GBT_DC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::GBT_DC)) {
8814 os += (first ? "" : " | ");
8815 os += "GBT_DC";
8816 first = false;
8817 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::GBT_DC;
8818 }
8819 if ((o & ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::OTHER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::EvConnectorType::OTHER)) {
8820 os += (first ? "" : " | ");
8821 os += "OTHER";
8822 first = false;
8823 flipped |= ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::OTHER;
8824 }
8825 if (o != flipped) {
8826 os += (first ? "" : " | ");
8827 os += toHexString(o & (~flipped));
8828 }os += " (";
8829 os += toHexString(o);
8830 os += ")";
8831 return os;
8832 }
8833
toString(::android::hardware::automotive::vehicle::V2_0::EvConnectorType o)8834 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::EvConnectorType o) {
8835 using ::android::hardware::details::toHexString;
8836 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::UNKNOWN) {
8837 return "UNKNOWN";
8838 }
8839 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_1_AC) {
8840 return "IEC_TYPE_1_AC";
8841 }
8842 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_2_AC) {
8843 return "IEC_TYPE_2_AC";
8844 }
8845 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_3_AC) {
8846 return "IEC_TYPE_3_AC";
8847 }
8848 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_4_DC) {
8849 return "IEC_TYPE_4_DC";
8850 }
8851 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_1_CCS_DC) {
8852 return "IEC_TYPE_1_CCS_DC";
8853 }
8854 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::IEC_TYPE_2_CCS_DC) {
8855 return "IEC_TYPE_2_CCS_DC";
8856 }
8857 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_ROADSTER) {
8858 return "TESLA_ROADSTER";
8859 }
8860 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_HPWC) {
8861 return "TESLA_HPWC";
8862 }
8863 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::TESLA_SUPERCHARGER) {
8864 return "TESLA_SUPERCHARGER";
8865 }
8866 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::GBT_AC) {
8867 return "GBT_AC";
8868 }
8869 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::GBT_DC) {
8870 return "GBT_DC";
8871 }
8872 if (o == ::android::hardware::automotive::vehicle::V2_0::EvConnectorType::OTHER) {
8873 return "OTHER";
8874 }
8875 std::string os;
8876 os += toHexString(static_cast<int32_t>(o));
8877 return os;
8878 }
8879
PrintTo(::android::hardware::automotive::vehicle::V2_0::EvConnectorType o,::std::ostream * os)8880 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::EvConnectorType o, ::std::ostream* os) {
8881 *os << toString(o);
8882 }
8883
8884 template<>
8885 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::PortLocationType>(int32_t o) {
8886 using ::android::hardware::details::toHexString;
8887 std::string os;
8888 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::PortLocationType> flipped = 0;
8889 bool first = true;
8890 if ((o & ::android::hardware::automotive::vehicle::V2_0::PortLocationType::UNKNOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::PortLocationType::UNKNOWN)) {
8891 os += (first ? "" : " | ");
8892 os += "UNKNOWN";
8893 first = false;
8894 flipped |= ::android::hardware::automotive::vehicle::V2_0::PortLocationType::UNKNOWN;
8895 }
8896 if ((o & ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT_LEFT)) {
8897 os += (first ? "" : " | ");
8898 os += "FRONT_LEFT";
8899 first = false;
8900 flipped |= ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT_LEFT;
8901 }
8902 if ((o & ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT_RIGHT)) {
8903 os += (first ? "" : " | ");
8904 os += "FRONT_RIGHT";
8905 first = false;
8906 flipped |= ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT_RIGHT;
8907 }
8908 if ((o & ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR_RIGHT)) {
8909 os += (first ? "" : " | ");
8910 os += "REAR_RIGHT";
8911 first = false;
8912 flipped |= ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR_RIGHT;
8913 }
8914 if ((o & ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR_LEFT)) {
8915 os += (first ? "" : " | ");
8916 os += "REAR_LEFT";
8917 first = false;
8918 flipped |= ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR_LEFT;
8919 }
8920 if ((o & ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT)) {
8921 os += (first ? "" : " | ");
8922 os += "FRONT";
8923 first = false;
8924 flipped |= ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT;
8925 }
8926 if ((o & ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR)) {
8927 os += (first ? "" : " | ");
8928 os += "REAR";
8929 first = false;
8930 flipped |= ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR;
8931 }
8932 if (o != flipped) {
8933 os += (first ? "" : " | ");
8934 os += toHexString(o & (~flipped));
8935 }os += " (";
8936 os += toHexString(o);
8937 os += ")";
8938 return os;
8939 }
8940
toString(::android::hardware::automotive::vehicle::V2_0::PortLocationType o)8941 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::PortLocationType o) {
8942 using ::android::hardware::details::toHexString;
8943 if (o == ::android::hardware::automotive::vehicle::V2_0::PortLocationType::UNKNOWN) {
8944 return "UNKNOWN";
8945 }
8946 if (o == ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT_LEFT) {
8947 return "FRONT_LEFT";
8948 }
8949 if (o == ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT_RIGHT) {
8950 return "FRONT_RIGHT";
8951 }
8952 if (o == ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR_RIGHT) {
8953 return "REAR_RIGHT";
8954 }
8955 if (o == ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR_LEFT) {
8956 return "REAR_LEFT";
8957 }
8958 if (o == ::android::hardware::automotive::vehicle::V2_0::PortLocationType::FRONT) {
8959 return "FRONT";
8960 }
8961 if (o == ::android::hardware::automotive::vehicle::V2_0::PortLocationType::REAR) {
8962 return "REAR";
8963 }
8964 std::string os;
8965 os += toHexString(static_cast<int32_t>(o));
8966 return os;
8967 }
8968
PrintTo(::android::hardware::automotive::vehicle::V2_0::PortLocationType o,::std::ostream * os)8969 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::PortLocationType o, ::std::ostream* os) {
8970 *os << toString(o);
8971 }
8972
8973 template<>
8974 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::FuelType>(int32_t o) {
8975 using ::android::hardware::details::toHexString;
8976 std::string os;
8977 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::FuelType> flipped = 0;
8978 bool first = true;
8979 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_UNKNOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_UNKNOWN)) {
8980 os += (first ? "" : " | ");
8981 os += "FUEL_TYPE_UNKNOWN";
8982 first = false;
8983 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_UNKNOWN;
8984 }
8985 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_UNLEADED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_UNLEADED)) {
8986 os += (first ? "" : " | ");
8987 os += "FUEL_TYPE_UNLEADED";
8988 first = false;
8989 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_UNLEADED;
8990 }
8991 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LEADED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LEADED)) {
8992 os += (first ? "" : " | ");
8993 os += "FUEL_TYPE_LEADED";
8994 first = false;
8995 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LEADED;
8996 }
8997 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_DIESEL_1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_DIESEL_1)) {
8998 os += (first ? "" : " | ");
8999 os += "FUEL_TYPE_DIESEL_1";
9000 first = false;
9001 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_DIESEL_1;
9002 }
9003 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_DIESEL_2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_DIESEL_2)) {
9004 os += (first ? "" : " | ");
9005 os += "FUEL_TYPE_DIESEL_2";
9006 first = false;
9007 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_DIESEL_2;
9008 }
9009 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_BIODIESEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_BIODIESEL)) {
9010 os += (first ? "" : " | ");
9011 os += "FUEL_TYPE_BIODIESEL";
9012 first = false;
9013 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_BIODIESEL;
9014 }
9015 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_E85) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_E85)) {
9016 os += (first ? "" : " | ");
9017 os += "FUEL_TYPE_E85";
9018 first = false;
9019 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_E85;
9020 }
9021 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LPG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LPG)) {
9022 os += (first ? "" : " | ");
9023 os += "FUEL_TYPE_LPG";
9024 first = false;
9025 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LPG;
9026 }
9027 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_CNG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_CNG)) {
9028 os += (first ? "" : " | ");
9029 os += "FUEL_TYPE_CNG";
9030 first = false;
9031 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_CNG;
9032 }
9033 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LNG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LNG)) {
9034 os += (first ? "" : " | ");
9035 os += "FUEL_TYPE_LNG";
9036 first = false;
9037 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LNG;
9038 }
9039 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_ELECTRIC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_ELECTRIC)) {
9040 os += (first ? "" : " | ");
9041 os += "FUEL_TYPE_ELECTRIC";
9042 first = false;
9043 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_ELECTRIC;
9044 }
9045 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_HYDROGEN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_HYDROGEN)) {
9046 os += (first ? "" : " | ");
9047 os += "FUEL_TYPE_HYDROGEN";
9048 first = false;
9049 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_HYDROGEN;
9050 }
9051 if ((o & ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_OTHER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_OTHER)) {
9052 os += (first ? "" : " | ");
9053 os += "FUEL_TYPE_OTHER";
9054 first = false;
9055 flipped |= ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_OTHER;
9056 }
9057 if (o != flipped) {
9058 os += (first ? "" : " | ");
9059 os += toHexString(o & (~flipped));
9060 }os += " (";
9061 os += toHexString(o);
9062 os += ")";
9063 return os;
9064 }
9065
toString(::android::hardware::automotive::vehicle::V2_0::FuelType o)9066 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::FuelType o) {
9067 using ::android::hardware::details::toHexString;
9068 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_UNKNOWN) {
9069 return "FUEL_TYPE_UNKNOWN";
9070 }
9071 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_UNLEADED) {
9072 return "FUEL_TYPE_UNLEADED";
9073 }
9074 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LEADED) {
9075 return "FUEL_TYPE_LEADED";
9076 }
9077 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_DIESEL_1) {
9078 return "FUEL_TYPE_DIESEL_1";
9079 }
9080 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_DIESEL_2) {
9081 return "FUEL_TYPE_DIESEL_2";
9082 }
9083 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_BIODIESEL) {
9084 return "FUEL_TYPE_BIODIESEL";
9085 }
9086 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_E85) {
9087 return "FUEL_TYPE_E85";
9088 }
9089 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LPG) {
9090 return "FUEL_TYPE_LPG";
9091 }
9092 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_CNG) {
9093 return "FUEL_TYPE_CNG";
9094 }
9095 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_LNG) {
9096 return "FUEL_TYPE_LNG";
9097 }
9098 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_ELECTRIC) {
9099 return "FUEL_TYPE_ELECTRIC";
9100 }
9101 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_HYDROGEN) {
9102 return "FUEL_TYPE_HYDROGEN";
9103 }
9104 if (o == ::android::hardware::automotive::vehicle::V2_0::FuelType::FUEL_TYPE_OTHER) {
9105 return "FUEL_TYPE_OTHER";
9106 }
9107 std::string os;
9108 os += toHexString(static_cast<int32_t>(o));
9109 return os;
9110 }
9111
PrintTo(::android::hardware::automotive::vehicle::V2_0::FuelType o,::std::ostream * os)9112 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::FuelType o, ::std::ostream* os) {
9113 *os << toString(o);
9114 }
9115
9116 template<>
9117 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection>(int32_t o) {
9118 using ::android::hardware::details::toHexString;
9119 std::string os;
9120 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection> flipped = 0;
9121 bool first = true;
9122 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::UNKNOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::UNKNOWN)) {
9123 os += (first ? "" : " | ");
9124 os += "UNKNOWN";
9125 first = false;
9126 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::UNKNOWN;
9127 }
9128 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FACE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FACE)) {
9129 os += (first ? "" : " | ");
9130 os += "FACE";
9131 first = false;
9132 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FACE;
9133 }
9134 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FLOOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FLOOR)) {
9135 os += (first ? "" : " | ");
9136 os += "FLOOR";
9137 first = false;
9138 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FLOOR;
9139 }
9140 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FACE_AND_FLOOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FACE_AND_FLOOR)) {
9141 os += (first ? "" : " | ");
9142 os += "FACE_AND_FLOOR";
9143 first = false;
9144 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FACE_AND_FLOOR;
9145 }
9146 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::DEFROST) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::DEFROST)) {
9147 os += (first ? "" : " | ");
9148 os += "DEFROST";
9149 first = false;
9150 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::DEFROST;
9151 }
9152 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::DEFROST_AND_FLOOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::DEFROST_AND_FLOOR)) {
9153 os += (first ? "" : " | ");
9154 os += "DEFROST_AND_FLOOR";
9155 first = false;
9156 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::DEFROST_AND_FLOOR;
9157 }
9158 if (o != flipped) {
9159 os += (first ? "" : " | ");
9160 os += toHexString(o & (~flipped));
9161 }os += " (";
9162 os += toHexString(o);
9163 os += ")";
9164 return os;
9165 }
9166
toString(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection o)9167 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection o) {
9168 using ::android::hardware::details::toHexString;
9169 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::UNKNOWN) {
9170 return "UNKNOWN";
9171 }
9172 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FACE) {
9173 return "FACE";
9174 }
9175 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FLOOR) {
9176 return "FLOOR";
9177 }
9178 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::FACE_AND_FLOOR) {
9179 return "FACE_AND_FLOOR";
9180 }
9181 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::DEFROST) {
9182 return "DEFROST";
9183 }
9184 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection::DEFROST_AND_FLOOR) {
9185 return "DEFROST_AND_FLOOR";
9186 }
9187 std::string os;
9188 os += toHexString(static_cast<int32_t>(o));
9189 return os;
9190 }
9191
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection o,::std::ostream * os)9192 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleHvacFanDirection o, ::std::ostream* os) {
9193 *os << toString(o);
9194 }
9195
9196 template<>
9197 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel>(int32_t o) {
9198 using ::android::hardware::details::toHexString;
9199 std::string os;
9200 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel> flipped = 0;
9201 bool first = true;
9202 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::CRITICALLY_LOW) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::CRITICALLY_LOW)) {
9203 os += (first ? "" : " | ");
9204 os += "CRITICALLY_LOW";
9205 first = false;
9206 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::CRITICALLY_LOW;
9207 }
9208 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::LOW) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::LOW)) {
9209 os += (first ? "" : " | ");
9210 os += "LOW";
9211 first = false;
9212 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::LOW;
9213 }
9214 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::NORMAL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::NORMAL)) {
9215 os += (first ? "" : " | ");
9216 os += "NORMAL";
9217 first = false;
9218 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::NORMAL;
9219 }
9220 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::HIGH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::HIGH)) {
9221 os += (first ? "" : " | ");
9222 os += "HIGH";
9223 first = false;
9224 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::HIGH;
9225 }
9226 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::ERROR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::ERROR)) {
9227 os += (first ? "" : " | ");
9228 os += "ERROR";
9229 first = false;
9230 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::ERROR;
9231 }
9232 if (o != flipped) {
9233 os += (first ? "" : " | ");
9234 os += toHexString(o & (~flipped));
9235 }os += " (";
9236 os += toHexString(o);
9237 os += ")";
9238 return os;
9239 }
9240
toString(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel o)9241 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel o) {
9242 using ::android::hardware::details::toHexString;
9243 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::CRITICALLY_LOW) {
9244 return "CRITICALLY_LOW";
9245 }
9246 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::LOW) {
9247 return "LOW";
9248 }
9249 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::NORMAL) {
9250 return "NORMAL";
9251 }
9252 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::HIGH) {
9253 return "HIGH";
9254 }
9255 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel::ERROR) {
9256 return "ERROR";
9257 }
9258 std::string os;
9259 os += toHexString(static_cast<int32_t>(o));
9260 return os;
9261 }
9262
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel o,::std::ostream * os)9263 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleOilLevel o, ::std::ostream* os) {
9264 *os << toString(o);
9265 }
9266
9267 template<>
9268 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag>(int32_t o) {
9269 using ::android::hardware::details::toHexString;
9270 std::string os;
9271 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag> flipped = 0;
9272 bool first = true;
9273 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag::ENABLE_DEEP_SLEEP_FLAG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag::ENABLE_DEEP_SLEEP_FLAG)) {
9274 os += (first ? "" : " | ");
9275 os += "ENABLE_DEEP_SLEEP_FLAG";
9276 first = false;
9277 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag::ENABLE_DEEP_SLEEP_FLAG;
9278 }
9279 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag::CONFIG_SUPPORT_TIMER_POWER_ON_FLAG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag::CONFIG_SUPPORT_TIMER_POWER_ON_FLAG)) {
9280 os += (first ? "" : " | ");
9281 os += "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG";
9282 first = false;
9283 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag::CONFIG_SUPPORT_TIMER_POWER_ON_FLAG;
9284 }
9285 if (o != flipped) {
9286 os += (first ? "" : " | ");
9287 os += toHexString(o & (~flipped));
9288 }os += " (";
9289 os += toHexString(o);
9290 os += ")";
9291 return os;
9292 }
9293
toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag o)9294 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag o) {
9295 using ::android::hardware::details::toHexString;
9296 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag::ENABLE_DEEP_SLEEP_FLAG) {
9297 return "ENABLE_DEEP_SLEEP_FLAG";
9298 }
9299 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag::CONFIG_SUPPORT_TIMER_POWER_ON_FLAG) {
9300 return "CONFIG_SUPPORT_TIMER_POWER_ON_FLAG";
9301 }
9302 std::string os;
9303 os += toHexString(static_cast<int32_t>(o));
9304 return os;
9305 }
9306
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag o,::std::ostream * os)9307 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateConfigFlag o, ::std::ostream* os) {
9308 *os << toString(o);
9309 }
9310
9311 template<>
9312 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq>(int32_t o) {
9313 using ::android::hardware::details::toHexString;
9314 std::string os;
9315 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq> flipped = 0;
9316 bool first = true;
9317 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::ON)) {
9318 os += (first ? "" : " | ");
9319 os += "ON";
9320 first = false;
9321 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::ON;
9322 }
9323 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::SHUTDOWN_PREPARE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::SHUTDOWN_PREPARE)) {
9324 os += (first ? "" : " | ");
9325 os += "SHUTDOWN_PREPARE";
9326 first = false;
9327 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::SHUTDOWN_PREPARE;
9328 }
9329 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::CANCEL_SHUTDOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::CANCEL_SHUTDOWN)) {
9330 os += (first ? "" : " | ");
9331 os += "CANCEL_SHUTDOWN";
9332 first = false;
9333 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::CANCEL_SHUTDOWN;
9334 }
9335 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::FINISHED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::FINISHED)) {
9336 os += (first ? "" : " | ");
9337 os += "FINISHED";
9338 first = false;
9339 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::FINISHED;
9340 }
9341 if (o != flipped) {
9342 os += (first ? "" : " | ");
9343 os += toHexString(o & (~flipped));
9344 }os += " (";
9345 os += toHexString(o);
9346 os += ")";
9347 return os;
9348 }
9349
toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq o)9350 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq o) {
9351 using ::android::hardware::details::toHexString;
9352 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::ON) {
9353 return "ON";
9354 }
9355 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::SHUTDOWN_PREPARE) {
9356 return "SHUTDOWN_PREPARE";
9357 }
9358 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::CANCEL_SHUTDOWN) {
9359 return "CANCEL_SHUTDOWN";
9360 }
9361 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq::FINISHED) {
9362 return "FINISHED";
9363 }
9364 std::string os;
9365 os += toHexString(static_cast<int32_t>(o));
9366 return os;
9367 }
9368
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq o,::std::ostream * os)9369 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReq o, ::std::ostream* os) {
9370 *os << toString(o);
9371 }
9372
9373 template<>
9374 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex>(int32_t o) {
9375 using ::android::hardware::details::toHexString;
9376 std::string os;
9377 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex> flipped = 0;
9378 bool first = true;
9379 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex::STATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex::STATE)) {
9380 os += (first ? "" : " | ");
9381 os += "STATE";
9382 first = false;
9383 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex::STATE;
9384 }
9385 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex::ADDITIONAL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex::ADDITIONAL)) {
9386 os += (first ? "" : " | ");
9387 os += "ADDITIONAL";
9388 first = false;
9389 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex::ADDITIONAL;
9390 }
9391 if (o != flipped) {
9392 os += (first ? "" : " | ");
9393 os += toHexString(o & (~flipped));
9394 }os += " (";
9395 os += toHexString(o);
9396 os += ")";
9397 return os;
9398 }
9399
toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex o)9400 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex o) {
9401 using ::android::hardware::details::toHexString;
9402 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex::STATE) {
9403 return "STATE";
9404 }
9405 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex::ADDITIONAL) {
9406 return "ADDITIONAL";
9407 }
9408 std::string os;
9409 os += toHexString(static_cast<int32_t>(o));
9410 return os;
9411 }
9412
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex o,::std::ostream * os)9413 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReqIndex o, ::std::ostream* os) {
9414 *os << toString(o);
9415 }
9416
9417 template<>
9418 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam>(int32_t o) {
9419 using ::android::hardware::details::toHexString;
9420 std::string os;
9421 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam> flipped = 0;
9422 bool first = true;
9423 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SHUTDOWN_IMMEDIATELY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SHUTDOWN_IMMEDIATELY)) {
9424 os += (first ? "" : " | ");
9425 os += "SHUTDOWN_IMMEDIATELY";
9426 first = false;
9427 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SHUTDOWN_IMMEDIATELY;
9428 }
9429 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::CAN_SLEEP) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::CAN_SLEEP)) {
9430 os += (first ? "" : " | ");
9431 os += "CAN_SLEEP";
9432 first = false;
9433 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::CAN_SLEEP;
9434 }
9435 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SHUTDOWN_ONLY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SHUTDOWN_ONLY)) {
9436 os += (first ? "" : " | ");
9437 os += "SHUTDOWN_ONLY";
9438 first = false;
9439 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SHUTDOWN_ONLY;
9440 }
9441 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SLEEP_IMMEDIATELY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SLEEP_IMMEDIATELY)) {
9442 os += (first ? "" : " | ");
9443 os += "SLEEP_IMMEDIATELY";
9444 first = false;
9445 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SLEEP_IMMEDIATELY;
9446 }
9447 if (o != flipped) {
9448 os += (first ? "" : " | ");
9449 os += toHexString(o & (~flipped));
9450 }os += " (";
9451 os += toHexString(o);
9452 os += ")";
9453 return os;
9454 }
9455
toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam o)9456 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam o) {
9457 using ::android::hardware::details::toHexString;
9458 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SHUTDOWN_IMMEDIATELY) {
9459 return "SHUTDOWN_IMMEDIATELY";
9460 }
9461 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::CAN_SLEEP) {
9462 return "CAN_SLEEP";
9463 }
9464 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SHUTDOWN_ONLY) {
9465 return "SHUTDOWN_ONLY";
9466 }
9467 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam::SLEEP_IMMEDIATELY) {
9468 return "SLEEP_IMMEDIATELY";
9469 }
9470 std::string os;
9471 os += toHexString(static_cast<int32_t>(o));
9472 return os;
9473 }
9474
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam o,::std::ostream * os)9475 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateShutdownParam o, ::std::ostream* os) {
9476 *os << toString(o);
9477 }
9478
9479 template<>
9480 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport>(int32_t o) {
9481 using ::android::hardware::details::toHexString;
9482 std::string os;
9483 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport> flipped = 0;
9484 bool first = true;
9485 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::WAIT_FOR_VHAL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::WAIT_FOR_VHAL)) {
9486 os += (first ? "" : " | ");
9487 os += "WAIT_FOR_VHAL";
9488 first = false;
9489 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::WAIT_FOR_VHAL;
9490 }
9491 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::DEEP_SLEEP_ENTRY) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::DEEP_SLEEP_ENTRY)) {
9492 os += (first ? "" : " | ");
9493 os += "DEEP_SLEEP_ENTRY";
9494 first = false;
9495 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::DEEP_SLEEP_ENTRY;
9496 }
9497 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::DEEP_SLEEP_EXIT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::DEEP_SLEEP_EXIT)) {
9498 os += (first ? "" : " | ");
9499 os += "DEEP_SLEEP_EXIT";
9500 first = false;
9501 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::DEEP_SLEEP_EXIT;
9502 }
9503 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_POSTPONE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_POSTPONE)) {
9504 os += (first ? "" : " | ");
9505 os += "SHUTDOWN_POSTPONE";
9506 first = false;
9507 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_POSTPONE;
9508 }
9509 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_START) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_START)) {
9510 os += (first ? "" : " | ");
9511 os += "SHUTDOWN_START";
9512 first = false;
9513 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_START;
9514 }
9515 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::ON)) {
9516 os += (first ? "" : " | ");
9517 os += "ON";
9518 first = false;
9519 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::ON;
9520 }
9521 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_PREPARE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_PREPARE)) {
9522 os += (first ? "" : " | ");
9523 os += "SHUTDOWN_PREPARE";
9524 first = false;
9525 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_PREPARE;
9526 }
9527 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_CANCELLED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_CANCELLED)) {
9528 os += (first ? "" : " | ");
9529 os += "SHUTDOWN_CANCELLED";
9530 first = false;
9531 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_CANCELLED;
9532 }
9533 if (o != flipped) {
9534 os += (first ? "" : " | ");
9535 os += toHexString(o & (~flipped));
9536 }os += " (";
9537 os += toHexString(o);
9538 os += ")";
9539 return os;
9540 }
9541
toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport o)9542 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport o) {
9543 using ::android::hardware::details::toHexString;
9544 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::WAIT_FOR_VHAL) {
9545 return "WAIT_FOR_VHAL";
9546 }
9547 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::DEEP_SLEEP_ENTRY) {
9548 return "DEEP_SLEEP_ENTRY";
9549 }
9550 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::DEEP_SLEEP_EXIT) {
9551 return "DEEP_SLEEP_EXIT";
9552 }
9553 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_POSTPONE) {
9554 return "SHUTDOWN_POSTPONE";
9555 }
9556 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_START) {
9557 return "SHUTDOWN_START";
9558 }
9559 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::ON) {
9560 return "ON";
9561 }
9562 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_PREPARE) {
9563 return "SHUTDOWN_PREPARE";
9564 }
9565 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport::SHUTDOWN_CANCELLED) {
9566 return "SHUTDOWN_CANCELLED";
9567 }
9568 std::string os;
9569 os += toHexString(static_cast<int32_t>(o));
9570 return os;
9571 }
9572
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport o,::std::ostream * os)9573 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleApPowerStateReport o, ::std::ostream* os) {
9574 *os << toString(o);
9575 }
9576
9577 template<>
9578 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction>(int32_t o) {
9579 using ::android::hardware::details::toHexString;
9580 std::string os;
9581 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction> flipped = 0;
9582 bool first = true;
9583 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction::ACTION_DOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction::ACTION_DOWN)) {
9584 os += (first ? "" : " | ");
9585 os += "ACTION_DOWN";
9586 first = false;
9587 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction::ACTION_DOWN;
9588 }
9589 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction::ACTION_UP) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction::ACTION_UP)) {
9590 os += (first ? "" : " | ");
9591 os += "ACTION_UP";
9592 first = false;
9593 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction::ACTION_UP;
9594 }
9595 if (o != flipped) {
9596 os += (first ? "" : " | ");
9597 os += toHexString(o & (~flipped));
9598 }os += " (";
9599 os += toHexString(o);
9600 os += ")";
9601 return os;
9602 }
9603
toString(::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction o)9604 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction o) {
9605 using ::android::hardware::details::toHexString;
9606 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction::ACTION_DOWN) {
9607 return "ACTION_DOWN";
9608 }
9609 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction::ACTION_UP) {
9610 return "ACTION_UP";
9611 }
9612 std::string os;
9613 os += toHexString(static_cast<int32_t>(o));
9614 return os;
9615 }
9616
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction o,::std::ostream * os)9617 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleHwKeyInputAction o, ::std::ostream* os) {
9618 *os << toString(o);
9619 }
9620
9621 template<>
9622 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleDisplay>(int32_t o) {
9623 using ::android::hardware::details::toHexString;
9624 std::string os;
9625 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleDisplay> flipped = 0;
9626 bool first = true;
9627 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay::MAIN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleDisplay::MAIN)) {
9628 os += (first ? "" : " | ");
9629 os += "MAIN";
9630 first = false;
9631 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay::MAIN;
9632 }
9633 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay::INSTRUMENT_CLUSTER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleDisplay::INSTRUMENT_CLUSTER)) {
9634 os += (first ? "" : " | ");
9635 os += "INSTRUMENT_CLUSTER";
9636 first = false;
9637 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay::INSTRUMENT_CLUSTER;
9638 }
9639 if (o != flipped) {
9640 os += (first ? "" : " | ");
9641 os += toHexString(o & (~flipped));
9642 }os += " (";
9643 os += toHexString(o);
9644 os += ")";
9645 return os;
9646 }
9647
toString(::android::hardware::automotive::vehicle::V2_0::VehicleDisplay o)9648 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleDisplay o) {
9649 using ::android::hardware::details::toHexString;
9650 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay::MAIN) {
9651 return "MAIN";
9652 }
9653 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleDisplay::INSTRUMENT_CLUSTER) {
9654 return "INSTRUMENT_CLUSTER";
9655 }
9656 std::string os;
9657 os += toHexString(static_cast<int32_t>(o));
9658 return os;
9659 }
9660
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleDisplay o,::std::ostream * os)9661 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleDisplay o, ::std::ostream* os) {
9662 *os << toString(o);
9663 }
9664
9665 template<>
9666 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleUnit>(int32_t o) {
9667 using ::android::hardware::details::toHexString;
9668 std::string os;
9669 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleUnit> flipped = 0;
9670 bool first = true;
9671 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::SHOULD_NOT_USE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::SHOULD_NOT_USE)) {
9672 os += (first ? "" : " | ");
9673 os += "SHOULD_NOT_USE";
9674 first = false;
9675 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::SHOULD_NOT_USE;
9676 }
9677 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::METER_PER_SEC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::METER_PER_SEC)) {
9678 os += (first ? "" : " | ");
9679 os += "METER_PER_SEC";
9680 first = false;
9681 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::METER_PER_SEC;
9682 }
9683 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::RPM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::RPM)) {
9684 os += (first ? "" : " | ");
9685 os += "RPM";
9686 first = false;
9687 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::RPM;
9688 }
9689 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::HERTZ) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::HERTZ)) {
9690 os += (first ? "" : " | ");
9691 os += "HERTZ";
9692 first = false;
9693 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::HERTZ;
9694 }
9695 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::PERCENTILE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::PERCENTILE)) {
9696 os += (first ? "" : " | ");
9697 os += "PERCENTILE";
9698 first = false;
9699 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::PERCENTILE;
9700 }
9701 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIMETER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIMETER)) {
9702 os += (first ? "" : " | ");
9703 os += "MILLIMETER";
9704 first = false;
9705 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIMETER;
9706 }
9707 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::METER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::METER)) {
9708 os += (first ? "" : " | ");
9709 os += "METER";
9710 first = false;
9711 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::METER;
9712 }
9713 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOMETER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOMETER)) {
9714 os += (first ? "" : " | ");
9715 os += "KILOMETER";
9716 first = false;
9717 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOMETER;
9718 }
9719 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILE)) {
9720 os += (first ? "" : " | ");
9721 os += "MILE";
9722 first = false;
9723 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILE;
9724 }
9725 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::CELSIUS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::CELSIUS)) {
9726 os += (first ? "" : " | ");
9727 os += "CELSIUS";
9728 first = false;
9729 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::CELSIUS;
9730 }
9731 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::FAHRENHEIT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::FAHRENHEIT)) {
9732 os += (first ? "" : " | ");
9733 os += "FAHRENHEIT";
9734 first = false;
9735 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::FAHRENHEIT;
9736 }
9737 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KELVIN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KELVIN)) {
9738 os += (first ? "" : " | ");
9739 os += "KELVIN";
9740 first = false;
9741 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KELVIN;
9742 }
9743 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLILITER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLILITER)) {
9744 os += (first ? "" : " | ");
9745 os += "MILLILITER";
9746 first = false;
9747 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLILITER;
9748 }
9749 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::LITER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::LITER)) {
9750 os += (first ? "" : " | ");
9751 os += "LITER";
9752 first = false;
9753 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::LITER;
9754 }
9755 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::GALLON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::GALLON)) {
9756 os += (first ? "" : " | ");
9757 os += "GALLON";
9758 first = false;
9759 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::GALLON;
9760 }
9761 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::US_GALLON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::US_GALLON)) {
9762 os += (first ? "" : " | ");
9763 os += "US_GALLON";
9764 first = false;
9765 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::US_GALLON;
9766 }
9767 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::IMPERIAL_GALLON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::IMPERIAL_GALLON)) {
9768 os += (first ? "" : " | ");
9769 os += "IMPERIAL_GALLON";
9770 first = false;
9771 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::IMPERIAL_GALLON;
9772 }
9773 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::NANO_SECS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::NANO_SECS)) {
9774 os += (first ? "" : " | ");
9775 os += "NANO_SECS";
9776 first = false;
9777 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::NANO_SECS;
9778 }
9779 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::SECS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::SECS)) {
9780 os += (first ? "" : " | ");
9781 os += "SECS";
9782 first = false;
9783 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::SECS;
9784 }
9785 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::YEAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::YEAR)) {
9786 os += (first ? "" : " | ");
9787 os += "YEAR";
9788 first = false;
9789 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::YEAR;
9790 }
9791 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::WATT_HOUR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::WATT_HOUR)) {
9792 os += (first ? "" : " | ");
9793 os += "WATT_HOUR";
9794 first = false;
9795 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::WATT_HOUR;
9796 }
9797 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIAMPERE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIAMPERE)) {
9798 os += (first ? "" : " | ");
9799 os += "MILLIAMPERE";
9800 first = false;
9801 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIAMPERE;
9802 }
9803 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIVOLT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIVOLT)) {
9804 os += (first ? "" : " | ");
9805 os += "MILLIVOLT";
9806 first = false;
9807 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIVOLT;
9808 }
9809 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIWATTS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIWATTS)) {
9810 os += (first ? "" : " | ");
9811 os += "MILLIWATTS";
9812 first = false;
9813 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIWATTS;
9814 }
9815 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::AMPERE_HOURS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::AMPERE_HOURS)) {
9816 os += (first ? "" : " | ");
9817 os += "AMPERE_HOURS";
9818 first = false;
9819 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::AMPERE_HOURS;
9820 }
9821 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOWATT_HOUR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOWATT_HOUR)) {
9822 os += (first ? "" : " | ");
9823 os += "KILOWATT_HOUR";
9824 first = false;
9825 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOWATT_HOUR;
9826 }
9827 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOPASCAL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOPASCAL)) {
9828 os += (first ? "" : " | ");
9829 os += "KILOPASCAL";
9830 first = false;
9831 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOPASCAL;
9832 }
9833 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::PSI) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::PSI)) {
9834 os += (first ? "" : " | ");
9835 os += "PSI";
9836 first = false;
9837 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::PSI;
9838 }
9839 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::BAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::BAR)) {
9840 os += (first ? "" : " | ");
9841 os += "BAR";
9842 first = false;
9843 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::BAR;
9844 }
9845 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::DEGREES) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::DEGREES)) {
9846 os += (first ? "" : " | ");
9847 os += "DEGREES";
9848 first = false;
9849 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::DEGREES;
9850 }
9851 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILES_PER_HOUR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILES_PER_HOUR)) {
9852 os += (first ? "" : " | ");
9853 os += "MILES_PER_HOUR";
9854 first = false;
9855 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILES_PER_HOUR;
9856 }
9857 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOMETERS_PER_HOUR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOMETERS_PER_HOUR)) {
9858 os += (first ? "" : " | ");
9859 os += "KILOMETERS_PER_HOUR";
9860 first = false;
9861 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOMETERS_PER_HOUR;
9862 }
9863 if (o != flipped) {
9864 os += (first ? "" : " | ");
9865 os += toHexString(o & (~flipped));
9866 }os += " (";
9867 os += toHexString(o);
9868 os += ")";
9869 return os;
9870 }
9871
toString(::android::hardware::automotive::vehicle::V2_0::VehicleUnit o)9872 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleUnit o) {
9873 using ::android::hardware::details::toHexString;
9874 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::SHOULD_NOT_USE) {
9875 return "SHOULD_NOT_USE";
9876 }
9877 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::METER_PER_SEC) {
9878 return "METER_PER_SEC";
9879 }
9880 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::RPM) {
9881 return "RPM";
9882 }
9883 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::HERTZ) {
9884 return "HERTZ";
9885 }
9886 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::PERCENTILE) {
9887 return "PERCENTILE";
9888 }
9889 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIMETER) {
9890 return "MILLIMETER";
9891 }
9892 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::METER) {
9893 return "METER";
9894 }
9895 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOMETER) {
9896 return "KILOMETER";
9897 }
9898 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILE) {
9899 return "MILE";
9900 }
9901 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::CELSIUS) {
9902 return "CELSIUS";
9903 }
9904 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::FAHRENHEIT) {
9905 return "FAHRENHEIT";
9906 }
9907 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KELVIN) {
9908 return "KELVIN";
9909 }
9910 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLILITER) {
9911 return "MILLILITER";
9912 }
9913 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::LITER) {
9914 return "LITER";
9915 }
9916 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::GALLON) {
9917 return "GALLON";
9918 }
9919 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::US_GALLON) {
9920 return "US_GALLON";
9921 }
9922 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::IMPERIAL_GALLON) {
9923 return "IMPERIAL_GALLON";
9924 }
9925 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::NANO_SECS) {
9926 return "NANO_SECS";
9927 }
9928 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::SECS) {
9929 return "SECS";
9930 }
9931 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::YEAR) {
9932 return "YEAR";
9933 }
9934 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::WATT_HOUR) {
9935 return "WATT_HOUR";
9936 }
9937 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIAMPERE) {
9938 return "MILLIAMPERE";
9939 }
9940 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIVOLT) {
9941 return "MILLIVOLT";
9942 }
9943 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILLIWATTS) {
9944 return "MILLIWATTS";
9945 }
9946 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::AMPERE_HOURS) {
9947 return "AMPERE_HOURS";
9948 }
9949 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOWATT_HOUR) {
9950 return "KILOWATT_HOUR";
9951 }
9952 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOPASCAL) {
9953 return "KILOPASCAL";
9954 }
9955 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::PSI) {
9956 return "PSI";
9957 }
9958 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::BAR) {
9959 return "BAR";
9960 }
9961 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::DEGREES) {
9962 return "DEGREES";
9963 }
9964 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::MILES_PER_HOUR) {
9965 return "MILES_PER_HOUR";
9966 }
9967 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleUnit::KILOMETERS_PER_HOUR) {
9968 return "KILOMETERS_PER_HOUR";
9969 }
9970 std::string os;
9971 os += toHexString(static_cast<int32_t>(o));
9972 return os;
9973 }
9974
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleUnit o,::std::ostream * os)9975 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleUnit o, ::std::ostream* os) {
9976 *os << toString(o);
9977 }
9978
9979 template<>
9980 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode>(int32_t o) {
9981 using ::android::hardware::details::toHexString;
9982 std::string os;
9983 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode> flipped = 0;
9984 bool first = true;
9985 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::STATIC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::STATIC)) {
9986 os += (first ? "" : " | ");
9987 os += "STATIC";
9988 first = false;
9989 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::STATIC;
9990 }
9991 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::ON_CHANGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::ON_CHANGE)) {
9992 os += (first ? "" : " | ");
9993 os += "ON_CHANGE";
9994 first = false;
9995 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::ON_CHANGE;
9996 }
9997 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::CONTINUOUS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::CONTINUOUS)) {
9998 os += (first ? "" : " | ");
9999 os += "CONTINUOUS";
10000 first = false;
10001 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::CONTINUOUS;
10002 }
10003 if (o != flipped) {
10004 os += (first ? "" : " | ");
10005 os += toHexString(o & (~flipped));
10006 }os += " (";
10007 os += toHexString(o);
10008 os += ")";
10009 return os;
10010 }
10011
toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode o)10012 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode o) {
10013 using ::android::hardware::details::toHexString;
10014 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::STATIC) {
10015 return "STATIC";
10016 }
10017 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::ON_CHANGE) {
10018 return "ON_CHANGE";
10019 }
10020 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode::CONTINUOUS) {
10021 return "CONTINUOUS";
10022 }
10023 std::string os;
10024 os += toHexString(static_cast<int32_t>(o));
10025 return os;
10026 }
10027
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode o,::std::ostream * os)10028 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyChangeMode o, ::std::ostream* os) {
10029 *os << toString(o);
10030 }
10031
10032 template<>
10033 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess>(int32_t o) {
10034 using ::android::hardware::details::toHexString;
10035 std::string os;
10036 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess> flipped = 0;
10037 bool first = true;
10038 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::NONE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::NONE)) {
10039 os += (first ? "" : " | ");
10040 os += "NONE";
10041 first = false;
10042 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::NONE;
10043 }
10044 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::READ) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::READ)) {
10045 os += (first ? "" : " | ");
10046 os += "READ";
10047 first = false;
10048 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::READ;
10049 }
10050 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::WRITE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::WRITE)) {
10051 os += (first ? "" : " | ");
10052 os += "WRITE";
10053 first = false;
10054 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::WRITE;
10055 }
10056 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::READ_WRITE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::READ_WRITE)) {
10057 os += (first ? "" : " | ");
10058 os += "READ_WRITE";
10059 first = false;
10060 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::READ_WRITE;
10061 }
10062 if (o != flipped) {
10063 os += (first ? "" : " | ");
10064 os += toHexString(o & (~flipped));
10065 }os += " (";
10066 os += toHexString(o);
10067 os += ")";
10068 return os;
10069 }
10070
toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess o)10071 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess o) {
10072 using ::android::hardware::details::toHexString;
10073 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::NONE) {
10074 return "NONE";
10075 }
10076 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::READ) {
10077 return "READ";
10078 }
10079 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::WRITE) {
10080 return "WRITE";
10081 }
10082 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess::READ_WRITE) {
10083 return "READ_WRITE";
10084 }
10085 std::string os;
10086 os += toHexString(static_cast<int32_t>(o));
10087 return os;
10088 }
10089
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess o,::std::ostream * os)10090 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyAccess o, ::std::ostream* os) {
10091 *os << toString(o);
10092 }
10093
10094 template<>
10095 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus>(int32_t o) {
10096 using ::android::hardware::details::toHexString;
10097 std::string os;
10098 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus> flipped = 0;
10099 bool first = true;
10100 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::AVAILABLE)) {
10101 os += (first ? "" : " | ");
10102 os += "AVAILABLE";
10103 first = false;
10104 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::AVAILABLE;
10105 }
10106 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::UNAVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::UNAVAILABLE)) {
10107 os += (first ? "" : " | ");
10108 os += "UNAVAILABLE";
10109 first = false;
10110 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::UNAVAILABLE;
10111 }
10112 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::ERROR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::ERROR)) {
10113 os += (first ? "" : " | ");
10114 os += "ERROR";
10115 first = false;
10116 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::ERROR;
10117 }
10118 if (o != flipped) {
10119 os += (first ? "" : " | ");
10120 os += toHexString(o & (~flipped));
10121 }os += " (";
10122 os += toHexString(o);
10123 os += ")";
10124 return os;
10125 }
10126
toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus o)10127 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus o) {
10128 using ::android::hardware::details::toHexString;
10129 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::AVAILABLE) {
10130 return "AVAILABLE";
10131 }
10132 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::UNAVAILABLE) {
10133 return "UNAVAILABLE";
10134 }
10135 if (o == ::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus::ERROR) {
10136 return "ERROR";
10137 }
10138 std::string os;
10139 os += toHexString(static_cast<int32_t>(o));
10140 return os;
10141 }
10142
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus o,::std::ostream * os)10143 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehiclePropertyStatus o, ::std::ostream* os) {
10144 *os << toString(o);
10145 }
10146
10147 template<>
10148 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleGear>(int32_t o) {
10149 using ::android::hardware::details::toHexString;
10150 std::string os;
10151 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleGear> flipped = 0;
10152 bool first = true;
10153 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_UNKNOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_UNKNOWN)) {
10154 os += (first ? "" : " | ");
10155 os += "GEAR_UNKNOWN";
10156 first = false;
10157 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_UNKNOWN;
10158 }
10159 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_NEUTRAL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_NEUTRAL)) {
10160 os += (first ? "" : " | ");
10161 os += "GEAR_NEUTRAL";
10162 first = false;
10163 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_NEUTRAL;
10164 }
10165 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_REVERSE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_REVERSE)) {
10166 os += (first ? "" : " | ");
10167 os += "GEAR_REVERSE";
10168 first = false;
10169 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_REVERSE;
10170 }
10171 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_PARK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_PARK)) {
10172 os += (first ? "" : " | ");
10173 os += "GEAR_PARK";
10174 first = false;
10175 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_PARK;
10176 }
10177 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_DRIVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_DRIVE)) {
10178 os += (first ? "" : " | ");
10179 os += "GEAR_DRIVE";
10180 first = false;
10181 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_DRIVE;
10182 }
10183 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_1)) {
10184 os += (first ? "" : " | ");
10185 os += "GEAR_1";
10186 first = false;
10187 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_1;
10188 }
10189 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_2)) {
10190 os += (first ? "" : " | ");
10191 os += "GEAR_2";
10192 first = false;
10193 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_2;
10194 }
10195 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_3) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_3)) {
10196 os += (first ? "" : " | ");
10197 os += "GEAR_3";
10198 first = false;
10199 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_3;
10200 }
10201 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_4) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_4)) {
10202 os += (first ? "" : " | ");
10203 os += "GEAR_4";
10204 first = false;
10205 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_4;
10206 }
10207 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_5) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_5)) {
10208 os += (first ? "" : " | ");
10209 os += "GEAR_5";
10210 first = false;
10211 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_5;
10212 }
10213 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_6) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_6)) {
10214 os += (first ? "" : " | ");
10215 os += "GEAR_6";
10216 first = false;
10217 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_6;
10218 }
10219 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_7) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_7)) {
10220 os += (first ? "" : " | ");
10221 os += "GEAR_7";
10222 first = false;
10223 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_7;
10224 }
10225 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_8) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_8)) {
10226 os += (first ? "" : " | ");
10227 os += "GEAR_8";
10228 first = false;
10229 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_8;
10230 }
10231 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_9) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_9)) {
10232 os += (first ? "" : " | ");
10233 os += "GEAR_9";
10234 first = false;
10235 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_9;
10236 }
10237 if (o != flipped) {
10238 os += (first ? "" : " | ");
10239 os += toHexString(o & (~flipped));
10240 }os += " (";
10241 os += toHexString(o);
10242 os += ")";
10243 return os;
10244 }
10245
toString(::android::hardware::automotive::vehicle::V2_0::VehicleGear o)10246 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleGear o) {
10247 using ::android::hardware::details::toHexString;
10248 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_UNKNOWN) {
10249 return "GEAR_UNKNOWN";
10250 }
10251 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_NEUTRAL) {
10252 return "GEAR_NEUTRAL";
10253 }
10254 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_REVERSE) {
10255 return "GEAR_REVERSE";
10256 }
10257 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_PARK) {
10258 return "GEAR_PARK";
10259 }
10260 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_DRIVE) {
10261 return "GEAR_DRIVE";
10262 }
10263 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_1) {
10264 return "GEAR_1";
10265 }
10266 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_2) {
10267 return "GEAR_2";
10268 }
10269 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_3) {
10270 return "GEAR_3";
10271 }
10272 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_4) {
10273 return "GEAR_4";
10274 }
10275 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_5) {
10276 return "GEAR_5";
10277 }
10278 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_6) {
10279 return "GEAR_6";
10280 }
10281 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_7) {
10282 return "GEAR_7";
10283 }
10284 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_8) {
10285 return "GEAR_8";
10286 }
10287 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleGear::GEAR_9) {
10288 return "GEAR_9";
10289 }
10290 std::string os;
10291 os += toHexString(static_cast<int32_t>(o));
10292 return os;
10293 }
10294
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleGear o,::std::ostream * os)10295 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleGear o, ::std::ostream* os) {
10296 *os << toString(o);
10297 }
10298
10299 template<>
10300 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat>(int32_t o) {
10301 using ::android::hardware::details::toHexString;
10302 std::string os;
10303 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat> flipped = 0;
10304 bool first = true;
10305 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_LEFT)) {
10306 os += (first ? "" : " | ");
10307 os += "ROW_1_LEFT";
10308 first = false;
10309 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_LEFT;
10310 }
10311 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_CENTER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_CENTER)) {
10312 os += (first ? "" : " | ");
10313 os += "ROW_1_CENTER";
10314 first = false;
10315 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_CENTER;
10316 }
10317 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_RIGHT)) {
10318 os += (first ? "" : " | ");
10319 os += "ROW_1_RIGHT";
10320 first = false;
10321 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_RIGHT;
10322 }
10323 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_LEFT)) {
10324 os += (first ? "" : " | ");
10325 os += "ROW_2_LEFT";
10326 first = false;
10327 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_LEFT;
10328 }
10329 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_CENTER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_CENTER)) {
10330 os += (first ? "" : " | ");
10331 os += "ROW_2_CENTER";
10332 first = false;
10333 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_CENTER;
10334 }
10335 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_RIGHT)) {
10336 os += (first ? "" : " | ");
10337 os += "ROW_2_RIGHT";
10338 first = false;
10339 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_RIGHT;
10340 }
10341 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_LEFT)) {
10342 os += (first ? "" : " | ");
10343 os += "ROW_3_LEFT";
10344 first = false;
10345 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_LEFT;
10346 }
10347 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_CENTER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_CENTER)) {
10348 os += (first ? "" : " | ");
10349 os += "ROW_3_CENTER";
10350 first = false;
10351 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_CENTER;
10352 }
10353 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_RIGHT)) {
10354 os += (first ? "" : " | ");
10355 os += "ROW_3_RIGHT";
10356 first = false;
10357 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_RIGHT;
10358 }
10359 if (o != flipped) {
10360 os += (first ? "" : " | ");
10361 os += toHexString(o & (~flipped));
10362 }os += " (";
10363 os += toHexString(o);
10364 os += ")";
10365 return os;
10366 }
10367
toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat o)10368 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat o) {
10369 using ::android::hardware::details::toHexString;
10370 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_LEFT) {
10371 return "ROW_1_LEFT";
10372 }
10373 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_CENTER) {
10374 return "ROW_1_CENTER";
10375 }
10376 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_1_RIGHT) {
10377 return "ROW_1_RIGHT";
10378 }
10379 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_LEFT) {
10380 return "ROW_2_LEFT";
10381 }
10382 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_CENTER) {
10383 return "ROW_2_CENTER";
10384 }
10385 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_2_RIGHT) {
10386 return "ROW_2_RIGHT";
10387 }
10388 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_LEFT) {
10389 return "ROW_3_LEFT";
10390 }
10391 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_CENTER) {
10392 return "ROW_3_CENTER";
10393 }
10394 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat::ROW_3_RIGHT) {
10395 return "ROW_3_RIGHT";
10396 }
10397 std::string os;
10398 os += toHexString(static_cast<int32_t>(o));
10399 return os;
10400 }
10401
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat o,::std::ostream * os)10402 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaSeat o, ::std::ostream* os) {
10403 *os << toString(o);
10404 }
10405
10406 template<>
10407 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow>(int32_t o) {
10408 using ::android::hardware::details::toHexString;
10409 std::string os;
10410 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow> flipped = 0;
10411 bool first = true;
10412 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::FRONT_WINDSHIELD) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::FRONT_WINDSHIELD)) {
10413 os += (first ? "" : " | ");
10414 os += "FRONT_WINDSHIELD";
10415 first = false;
10416 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::FRONT_WINDSHIELD;
10417 }
10418 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::REAR_WINDSHIELD) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::REAR_WINDSHIELD)) {
10419 os += (first ? "" : " | ");
10420 os += "REAR_WINDSHIELD";
10421 first = false;
10422 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::REAR_WINDSHIELD;
10423 }
10424 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_1_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_1_LEFT)) {
10425 os += (first ? "" : " | ");
10426 os += "ROW_1_LEFT";
10427 first = false;
10428 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_1_LEFT;
10429 }
10430 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_1_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_1_RIGHT)) {
10431 os += (first ? "" : " | ");
10432 os += "ROW_1_RIGHT";
10433 first = false;
10434 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_1_RIGHT;
10435 }
10436 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_2_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_2_LEFT)) {
10437 os += (first ? "" : " | ");
10438 os += "ROW_2_LEFT";
10439 first = false;
10440 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_2_LEFT;
10441 }
10442 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_2_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_2_RIGHT)) {
10443 os += (first ? "" : " | ");
10444 os += "ROW_2_RIGHT";
10445 first = false;
10446 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_2_RIGHT;
10447 }
10448 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_3_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_3_LEFT)) {
10449 os += (first ? "" : " | ");
10450 os += "ROW_3_LEFT";
10451 first = false;
10452 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_3_LEFT;
10453 }
10454 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_3_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_3_RIGHT)) {
10455 os += (first ? "" : " | ");
10456 os += "ROW_3_RIGHT";
10457 first = false;
10458 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_3_RIGHT;
10459 }
10460 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROOF_TOP_1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROOF_TOP_1)) {
10461 os += (first ? "" : " | ");
10462 os += "ROOF_TOP_1";
10463 first = false;
10464 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROOF_TOP_1;
10465 }
10466 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROOF_TOP_2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROOF_TOP_2)) {
10467 os += (first ? "" : " | ");
10468 os += "ROOF_TOP_2";
10469 first = false;
10470 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROOF_TOP_2;
10471 }
10472 if (o != flipped) {
10473 os += (first ? "" : " | ");
10474 os += toHexString(o & (~flipped));
10475 }os += " (";
10476 os += toHexString(o);
10477 os += ")";
10478 return os;
10479 }
10480
toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow o)10481 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow o) {
10482 using ::android::hardware::details::toHexString;
10483 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::FRONT_WINDSHIELD) {
10484 return "FRONT_WINDSHIELD";
10485 }
10486 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::REAR_WINDSHIELD) {
10487 return "REAR_WINDSHIELD";
10488 }
10489 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_1_LEFT) {
10490 return "ROW_1_LEFT";
10491 }
10492 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_1_RIGHT) {
10493 return "ROW_1_RIGHT";
10494 }
10495 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_2_LEFT) {
10496 return "ROW_2_LEFT";
10497 }
10498 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_2_RIGHT) {
10499 return "ROW_2_RIGHT";
10500 }
10501 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_3_LEFT) {
10502 return "ROW_3_LEFT";
10503 }
10504 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROW_3_RIGHT) {
10505 return "ROW_3_RIGHT";
10506 }
10507 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROOF_TOP_1) {
10508 return "ROOF_TOP_1";
10509 }
10510 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow::ROOF_TOP_2) {
10511 return "ROOF_TOP_2";
10512 }
10513 std::string os;
10514 os += toHexString(static_cast<int32_t>(o));
10515 return os;
10516 }
10517
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow o,::std::ostream * os)10518 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWindow o, ::std::ostream* os) {
10519 *os << toString(o);
10520 }
10521
10522 template<>
10523 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor>(int32_t o) {
10524 using ::android::hardware::details::toHexString;
10525 std::string os;
10526 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor> flipped = 0;
10527 bool first = true;
10528 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_1_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_1_LEFT)) {
10529 os += (first ? "" : " | ");
10530 os += "ROW_1_LEFT";
10531 first = false;
10532 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_1_LEFT;
10533 }
10534 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_1_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_1_RIGHT)) {
10535 os += (first ? "" : " | ");
10536 os += "ROW_1_RIGHT";
10537 first = false;
10538 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_1_RIGHT;
10539 }
10540 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_2_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_2_LEFT)) {
10541 os += (first ? "" : " | ");
10542 os += "ROW_2_LEFT";
10543 first = false;
10544 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_2_LEFT;
10545 }
10546 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_2_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_2_RIGHT)) {
10547 os += (first ? "" : " | ");
10548 os += "ROW_2_RIGHT";
10549 first = false;
10550 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_2_RIGHT;
10551 }
10552 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_3_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_3_LEFT)) {
10553 os += (first ? "" : " | ");
10554 os += "ROW_3_LEFT";
10555 first = false;
10556 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_3_LEFT;
10557 }
10558 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_3_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_3_RIGHT)) {
10559 os += (first ? "" : " | ");
10560 os += "ROW_3_RIGHT";
10561 first = false;
10562 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_3_RIGHT;
10563 }
10564 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::HOOD) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::HOOD)) {
10565 os += (first ? "" : " | ");
10566 os += "HOOD";
10567 first = false;
10568 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::HOOD;
10569 }
10570 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::REAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::REAR)) {
10571 os += (first ? "" : " | ");
10572 os += "REAR";
10573 first = false;
10574 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::REAR;
10575 }
10576 if (o != flipped) {
10577 os += (first ? "" : " | ");
10578 os += toHexString(o & (~flipped));
10579 }os += " (";
10580 os += toHexString(o);
10581 os += ")";
10582 return os;
10583 }
10584
toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor o)10585 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor o) {
10586 using ::android::hardware::details::toHexString;
10587 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_1_LEFT) {
10588 return "ROW_1_LEFT";
10589 }
10590 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_1_RIGHT) {
10591 return "ROW_1_RIGHT";
10592 }
10593 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_2_LEFT) {
10594 return "ROW_2_LEFT";
10595 }
10596 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_2_RIGHT) {
10597 return "ROW_2_RIGHT";
10598 }
10599 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_3_LEFT) {
10600 return "ROW_3_LEFT";
10601 }
10602 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::ROW_3_RIGHT) {
10603 return "ROW_3_RIGHT";
10604 }
10605 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::HOOD) {
10606 return "HOOD";
10607 }
10608 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor::REAR) {
10609 return "REAR";
10610 }
10611 std::string os;
10612 os += toHexString(static_cast<int32_t>(o));
10613 return os;
10614 }
10615
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor o,::std::ostream * os)10616 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaDoor o, ::std::ostream* os) {
10617 *os << toString(o);
10618 }
10619
10620 template<>
10621 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror>(int32_t o) {
10622 using ::android::hardware::details::toHexString;
10623 std::string os;
10624 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror> flipped = 0;
10625 bool first = true;
10626 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_LEFT)) {
10627 os += (first ? "" : " | ");
10628 os += "DRIVER_LEFT";
10629 first = false;
10630 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_LEFT;
10631 }
10632 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_RIGHT)) {
10633 os += (first ? "" : " | ");
10634 os += "DRIVER_RIGHT";
10635 first = false;
10636 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_RIGHT;
10637 }
10638 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_CENTER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_CENTER)) {
10639 os += (first ? "" : " | ");
10640 os += "DRIVER_CENTER";
10641 first = false;
10642 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_CENTER;
10643 }
10644 if (o != flipped) {
10645 os += (first ? "" : " | ");
10646 os += toHexString(o & (~flipped));
10647 }os += " (";
10648 os += toHexString(o);
10649 os += ")";
10650 return os;
10651 }
10652
toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror o)10653 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror o) {
10654 using ::android::hardware::details::toHexString;
10655 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_LEFT) {
10656 return "DRIVER_LEFT";
10657 }
10658 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_RIGHT) {
10659 return "DRIVER_RIGHT";
10660 }
10661 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror::DRIVER_CENTER) {
10662 return "DRIVER_CENTER";
10663 }
10664 std::string os;
10665 os += toHexString(static_cast<int32_t>(o));
10666 return os;
10667 }
10668
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror o,::std::ostream * os)10669 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaMirror o, ::std::ostream* os) {
10670 *os << toString(o);
10671 }
10672
10673 template<>
10674 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal>(int32_t o) {
10675 using ::android::hardware::details::toHexString;
10676 std::string os;
10677 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal> flipped = 0;
10678 bool first = true;
10679 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::NONE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::NONE)) {
10680 os += (first ? "" : " | ");
10681 os += "NONE";
10682 first = false;
10683 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::NONE;
10684 }
10685 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::RIGHT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::RIGHT)) {
10686 os += (first ? "" : " | ");
10687 os += "RIGHT";
10688 first = false;
10689 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::RIGHT;
10690 }
10691 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::LEFT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::LEFT)) {
10692 os += (first ? "" : " | ");
10693 os += "LEFT";
10694 first = false;
10695 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::LEFT;
10696 }
10697 if (o != flipped) {
10698 os += (first ? "" : " | ");
10699 os += toHexString(o & (~flipped));
10700 }os += " (";
10701 os += toHexString(o);
10702 os += ")";
10703 return os;
10704 }
10705
toString(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal o)10706 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal o) {
10707 using ::android::hardware::details::toHexString;
10708 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::NONE) {
10709 return "NONE";
10710 }
10711 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::RIGHT) {
10712 return "RIGHT";
10713 }
10714 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal::LEFT) {
10715 return "LEFT";
10716 }
10717 std::string os;
10718 os += toHexString(static_cast<int32_t>(o));
10719 return os;
10720 }
10721
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal o,::std::ostream * os)10722 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleTurnSignal o, ::std::ostream* os) {
10723 *os << toString(o);
10724 }
10725
toString(const::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig & o)10726 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& o) {
10727 using ::android::hardware::toString;
10728 std::string os;
10729 os += "{";
10730 os += ".areaId = ";
10731 os += ::android::hardware::toString(o.areaId);
10732 os += ", .minInt32Value = ";
10733 os += ::android::hardware::toString(o.minInt32Value);
10734 os += ", .maxInt32Value = ";
10735 os += ::android::hardware::toString(o.maxInt32Value);
10736 os += ", .minInt64Value = ";
10737 os += ::android::hardware::toString(o.minInt64Value);
10738 os += ", .maxInt64Value = ";
10739 os += ::android::hardware::toString(o.maxInt64Value);
10740 os += ", .minFloatValue = ";
10741 os += ::android::hardware::toString(o.minFloatValue);
10742 os += ", .maxFloatValue = ";
10743 os += ::android::hardware::toString(o.maxFloatValue);
10744 os += "}"; return os;
10745 }
10746
PrintTo(const::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig & o,::std::ostream * os)10747 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& o, ::std::ostream* os) {
10748 *os << toString(o);
10749 }
10750
10751 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& rhs) {
10752 if (lhs.areaId != rhs.areaId) {
10753 return false;
10754 }
10755 if (lhs.minInt32Value != rhs.minInt32Value) {
10756 return false;
10757 }
10758 if (lhs.maxInt32Value != rhs.maxInt32Value) {
10759 return false;
10760 }
10761 if (lhs.minInt64Value != rhs.minInt64Value) {
10762 return false;
10763 }
10764 if (lhs.maxInt64Value != rhs.maxInt64Value) {
10765 return false;
10766 }
10767 if (lhs.minFloatValue != rhs.minFloatValue) {
10768 return false;
10769 }
10770 if (lhs.maxFloatValue != rhs.maxFloatValue) {
10771 return false;
10772 }
10773 return true;
10774 }
10775
10776 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehicleAreaConfig& rhs){
10777 return !(lhs == rhs);
10778 }
10779
toString(const::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig & o)10780 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& o) {
10781 using ::android::hardware::toString;
10782 std::string os;
10783 os += "{";
10784 os += ".prop = ";
10785 os += ::android::hardware::toString(o.prop);
10786 os += ", .access = ";
10787 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.access);
10788 os += ", .changeMode = ";
10789 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.changeMode);
10790 os += ", .areaConfigs = ";
10791 os += ::android::hardware::toString(o.areaConfigs);
10792 os += ", .configArray = ";
10793 os += ::android::hardware::toString(o.configArray);
10794 os += ", .configString = ";
10795 os += ::android::hardware::toString(o.configString);
10796 os += ", .minSampleRate = ";
10797 os += ::android::hardware::toString(o.minSampleRate);
10798 os += ", .maxSampleRate = ";
10799 os += ::android::hardware::toString(o.maxSampleRate);
10800 os += "}"; return os;
10801 }
10802
PrintTo(const::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig & o,::std::ostream * os)10803 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& o, ::std::ostream* os) {
10804 *os << toString(o);
10805 }
10806
10807 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& rhs) {
10808 if (lhs.prop != rhs.prop) {
10809 return false;
10810 }
10811 if (lhs.access != rhs.access) {
10812 return false;
10813 }
10814 if (lhs.changeMode != rhs.changeMode) {
10815 return false;
10816 }
10817 if (lhs.areaConfigs != rhs.areaConfigs) {
10818 return false;
10819 }
10820 if (lhs.configArray != rhs.configArray) {
10821 return false;
10822 }
10823 if (lhs.configString != rhs.configString) {
10824 return false;
10825 }
10826 if (lhs.minSampleRate != rhs.minSampleRate) {
10827 return false;
10828 }
10829 if (lhs.maxSampleRate != rhs.maxSampleRate) {
10830 return false;
10831 }
10832 return true;
10833 }
10834
10835 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropConfig& rhs){
10836 return !(lhs == rhs);
10837 }
10838
toString(const::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue & o)10839 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& o) {
10840 using ::android::hardware::toString;
10841 std::string os;
10842 os += "{";
10843 os += ".int32Values = ";
10844 os += ::android::hardware::toString(o.int32Values);
10845 os += ", .floatValues = ";
10846 os += ::android::hardware::toString(o.floatValues);
10847 os += ", .int64Values = ";
10848 os += ::android::hardware::toString(o.int64Values);
10849 os += ", .bytes = ";
10850 os += ::android::hardware::toString(o.bytes);
10851 os += ", .stringValue = ";
10852 os += ::android::hardware::toString(o.stringValue);
10853 os += "}"; return os;
10854 }
10855
PrintTo(const::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue & o,::std::ostream * os)10856 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& o, ::std::ostream* os) {
10857 *os << toString(o);
10858 }
10859
10860 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& rhs) {
10861 if (lhs.int32Values != rhs.int32Values) {
10862 return false;
10863 }
10864 if (lhs.floatValues != rhs.floatValues) {
10865 return false;
10866 }
10867 if (lhs.int64Values != rhs.int64Values) {
10868 return false;
10869 }
10870 if (lhs.bytes != rhs.bytes) {
10871 return false;
10872 }
10873 if (lhs.stringValue != rhs.stringValue) {
10874 return false;
10875 }
10876 return true;
10877 }
10878
10879 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue::RawValue& rhs){
10880 return !(lhs == rhs);
10881 }
10882
toString(const::android::hardware::automotive::vehicle::V2_0::VehiclePropValue & o)10883 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& o) {
10884 using ::android::hardware::toString;
10885 std::string os;
10886 os += "{";
10887 os += ".timestamp = ";
10888 os += ::android::hardware::toString(o.timestamp);
10889 os += ", .areaId = ";
10890 os += ::android::hardware::toString(o.areaId);
10891 os += ", .prop = ";
10892 os += ::android::hardware::toString(o.prop);
10893 os += ", .status = ";
10894 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.status);
10895 os += ", .value = ";
10896 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.value);
10897 os += "}"; return os;
10898 }
10899
PrintTo(const::android::hardware::automotive::vehicle::V2_0::VehiclePropValue & o,::std::ostream * os)10900 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& o, ::std::ostream* os) {
10901 *os << toString(o);
10902 }
10903
10904 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& rhs) {
10905 if (lhs.timestamp != rhs.timestamp) {
10906 return false;
10907 }
10908 if (lhs.areaId != rhs.areaId) {
10909 return false;
10910 }
10911 if (lhs.prop != rhs.prop) {
10912 return false;
10913 }
10914 if (lhs.status != rhs.status) {
10915 return false;
10916 }
10917 if (lhs.value != rhs.value) {
10918 return false;
10919 }
10920 return true;
10921 }
10922
10923 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& lhs, const ::android::hardware::automotive::vehicle::V2_0::VehiclePropValue& rhs){
10924 return !(lhs == rhs);
10925 }
10926
10927 template<>
10928 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState>(int32_t o) {
10929 using ::android::hardware::details::toHexString;
10930 std::string os;
10931 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState> flipped = 0;
10932 bool first = true;
10933 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::UNDEFINED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::UNDEFINED)) {
10934 os += (first ? "" : " | ");
10935 os += "UNDEFINED";
10936 first = false;
10937 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::UNDEFINED;
10938 }
10939 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::LOCK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::LOCK)) {
10940 os += (first ? "" : " | ");
10941 os += "LOCK";
10942 first = false;
10943 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::LOCK;
10944 }
10945 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::OFF) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::OFF)) {
10946 os += (first ? "" : " | ");
10947 os += "OFF";
10948 first = false;
10949 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::OFF;
10950 }
10951 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::ACC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::ACC)) {
10952 os += (first ? "" : " | ");
10953 os += "ACC";
10954 first = false;
10955 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::ACC;
10956 }
10957 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::ON)) {
10958 os += (first ? "" : " | ");
10959 os += "ON";
10960 first = false;
10961 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::ON;
10962 }
10963 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::START) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::START)) {
10964 os += (first ? "" : " | ");
10965 os += "START";
10966 first = false;
10967 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::START;
10968 }
10969 if (o != flipped) {
10970 os += (first ? "" : " | ");
10971 os += toHexString(o & (~flipped));
10972 }os += " (";
10973 os += toHexString(o);
10974 os += ")";
10975 return os;
10976 }
10977
toString(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState o)10978 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState o) {
10979 using ::android::hardware::details::toHexString;
10980 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::UNDEFINED) {
10981 return "UNDEFINED";
10982 }
10983 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::LOCK) {
10984 return "LOCK";
10985 }
10986 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::OFF) {
10987 return "OFF";
10988 }
10989 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::ACC) {
10990 return "ACC";
10991 }
10992 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::ON) {
10993 return "ON";
10994 }
10995 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState::START) {
10996 return "START";
10997 }
10998 std::string os;
10999 os += toHexString(static_cast<int32_t>(o));
11000 return os;
11001 }
11002
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState o,::std::ostream * os)11003 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleIgnitionState o, ::std::ostream* os) {
11004 *os << toString(o);
11005 }
11006
11007 template<>
11008 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::SubscribeFlags>(int32_t o) {
11009 using ::android::hardware::details::toHexString;
11010 std::string os;
11011 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::SubscribeFlags> flipped = 0;
11012 bool first = true;
11013 if ((o & ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::UNDEFINED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::UNDEFINED)) {
11014 os += (first ? "" : " | ");
11015 os += "UNDEFINED";
11016 first = false;
11017 flipped |= ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::UNDEFINED;
11018 }
11019 if ((o & ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::EVENTS_FROM_CAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::EVENTS_FROM_CAR)) {
11020 os += (first ? "" : " | ");
11021 os += "EVENTS_FROM_CAR";
11022 first = false;
11023 flipped |= ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::EVENTS_FROM_CAR;
11024 }
11025 if ((o & ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::EVENTS_FROM_ANDROID) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::EVENTS_FROM_ANDROID)) {
11026 os += (first ? "" : " | ");
11027 os += "EVENTS_FROM_ANDROID";
11028 first = false;
11029 flipped |= ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::EVENTS_FROM_ANDROID;
11030 }
11031 if (o != flipped) {
11032 os += (first ? "" : " | ");
11033 os += toHexString(o & (~flipped));
11034 }os += " (";
11035 os += toHexString(o);
11036 os += ")";
11037 return os;
11038 }
11039
toString(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags o)11040 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags o) {
11041 using ::android::hardware::details::toHexString;
11042 if (o == ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::UNDEFINED) {
11043 return "UNDEFINED";
11044 }
11045 if (o == ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::EVENTS_FROM_CAR) {
11046 return "EVENTS_FROM_CAR";
11047 }
11048 if (o == ::android::hardware::automotive::vehicle::V2_0::SubscribeFlags::EVENTS_FROM_ANDROID) {
11049 return "EVENTS_FROM_ANDROID";
11050 }
11051 std::string os;
11052 os += toHexString(static_cast<int32_t>(o));
11053 return os;
11054 }
11055
PrintTo(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags o,::std::ostream * os)11056 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::SubscribeFlags o, ::std::ostream* os) {
11057 *os << toString(o);
11058 }
11059
toString(const::android::hardware::automotive::vehicle::V2_0::SubscribeOptions & o)11060 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& o) {
11061 using ::android::hardware::toString;
11062 std::string os;
11063 os += "{";
11064 os += ".propId = ";
11065 os += ::android::hardware::toString(o.propId);
11066 os += ", .sampleRate = ";
11067 os += ::android::hardware::toString(o.sampleRate);
11068 os += ", .flags = ";
11069 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.flags);
11070 os += "}"; return os;
11071 }
11072
PrintTo(const::android::hardware::automotive::vehicle::V2_0::SubscribeOptions & o,::std::ostream * os)11073 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& o, ::std::ostream* os) {
11074 *os << toString(o);
11075 }
11076
11077 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& lhs, const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& rhs) {
11078 if (lhs.propId != rhs.propId) {
11079 return false;
11080 }
11081 if (lhs.sampleRate != rhs.sampleRate) {
11082 return false;
11083 }
11084 if (lhs.flags != rhs.flags) {
11085 return false;
11086 }
11087 return true;
11088 }
11089
11090 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& lhs, const ::android::hardware::automotive::vehicle::V2_0::SubscribeOptions& rhs){
11091 return !(lhs == rhs);
11092 }
11093
11094 template<>
11095 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::StatusCode>(int32_t o) {
11096 using ::android::hardware::details::toHexString;
11097 std::string os;
11098 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::StatusCode> flipped = 0;
11099 bool first = true;
11100 if ((o & ::android::hardware::automotive::vehicle::V2_0::StatusCode::OK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::StatusCode::OK)) {
11101 os += (first ? "" : " | ");
11102 os += "OK";
11103 first = false;
11104 flipped |= ::android::hardware::automotive::vehicle::V2_0::StatusCode::OK;
11105 }
11106 if ((o & ::android::hardware::automotive::vehicle::V2_0::StatusCode::TRY_AGAIN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::StatusCode::TRY_AGAIN)) {
11107 os += (first ? "" : " | ");
11108 os += "TRY_AGAIN";
11109 first = false;
11110 flipped |= ::android::hardware::automotive::vehicle::V2_0::StatusCode::TRY_AGAIN;
11111 }
11112 if ((o & ::android::hardware::automotive::vehicle::V2_0::StatusCode::INVALID_ARG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::StatusCode::INVALID_ARG)) {
11113 os += (first ? "" : " | ");
11114 os += "INVALID_ARG";
11115 first = false;
11116 flipped |= ::android::hardware::automotive::vehicle::V2_0::StatusCode::INVALID_ARG;
11117 }
11118 if ((o & ::android::hardware::automotive::vehicle::V2_0::StatusCode::NOT_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::StatusCode::NOT_AVAILABLE)) {
11119 os += (first ? "" : " | ");
11120 os += "NOT_AVAILABLE";
11121 first = false;
11122 flipped |= ::android::hardware::automotive::vehicle::V2_0::StatusCode::NOT_AVAILABLE;
11123 }
11124 if ((o & ::android::hardware::automotive::vehicle::V2_0::StatusCode::ACCESS_DENIED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::StatusCode::ACCESS_DENIED)) {
11125 os += (first ? "" : " | ");
11126 os += "ACCESS_DENIED";
11127 first = false;
11128 flipped |= ::android::hardware::automotive::vehicle::V2_0::StatusCode::ACCESS_DENIED;
11129 }
11130 if ((o & ::android::hardware::automotive::vehicle::V2_0::StatusCode::INTERNAL_ERROR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::StatusCode::INTERNAL_ERROR)) {
11131 os += (first ? "" : " | ");
11132 os += "INTERNAL_ERROR";
11133 first = false;
11134 flipped |= ::android::hardware::automotive::vehicle::V2_0::StatusCode::INTERNAL_ERROR;
11135 }
11136 if (o != flipped) {
11137 os += (first ? "" : " | ");
11138 os += toHexString(o & (~flipped));
11139 }os += " (";
11140 os += toHexString(o);
11141 os += ")";
11142 return os;
11143 }
11144
toString(::android::hardware::automotive::vehicle::V2_0::StatusCode o)11145 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::StatusCode o) {
11146 using ::android::hardware::details::toHexString;
11147 if (o == ::android::hardware::automotive::vehicle::V2_0::StatusCode::OK) {
11148 return "OK";
11149 }
11150 if (o == ::android::hardware::automotive::vehicle::V2_0::StatusCode::TRY_AGAIN) {
11151 return "TRY_AGAIN";
11152 }
11153 if (o == ::android::hardware::automotive::vehicle::V2_0::StatusCode::INVALID_ARG) {
11154 return "INVALID_ARG";
11155 }
11156 if (o == ::android::hardware::automotive::vehicle::V2_0::StatusCode::NOT_AVAILABLE) {
11157 return "NOT_AVAILABLE";
11158 }
11159 if (o == ::android::hardware::automotive::vehicle::V2_0::StatusCode::ACCESS_DENIED) {
11160 return "ACCESS_DENIED";
11161 }
11162 if (o == ::android::hardware::automotive::vehicle::V2_0::StatusCode::INTERNAL_ERROR) {
11163 return "INTERNAL_ERROR";
11164 }
11165 std::string os;
11166 os += toHexString(static_cast<int32_t>(o));
11167 return os;
11168 }
11169
PrintTo(::android::hardware::automotive::vehicle::V2_0::StatusCode o,::std::ostream * os)11170 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::StatusCode o, ::std::ostream* os) {
11171 *os << toString(o);
11172 }
11173
11174 template<>
11175 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel>(int32_t o) {
11176 using ::android::hardware::details::toHexString;
11177 std::string os;
11178 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel> flipped = 0;
11179 bool first = true;
11180 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::UNKNOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::UNKNOWN)) {
11181 os += (first ? "" : " | ");
11182 os += "UNKNOWN";
11183 first = false;
11184 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::UNKNOWN;
11185 }
11186 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::LEFT_FRONT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::LEFT_FRONT)) {
11187 os += (first ? "" : " | ");
11188 os += "LEFT_FRONT";
11189 first = false;
11190 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::LEFT_FRONT;
11191 }
11192 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::RIGHT_FRONT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::RIGHT_FRONT)) {
11193 os += (first ? "" : " | ");
11194 os += "RIGHT_FRONT";
11195 first = false;
11196 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::RIGHT_FRONT;
11197 }
11198 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::LEFT_REAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::LEFT_REAR)) {
11199 os += (first ? "" : " | ");
11200 os += "LEFT_REAR";
11201 first = false;
11202 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::LEFT_REAR;
11203 }
11204 if ((o & ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::RIGHT_REAR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::RIGHT_REAR)) {
11205 os += (first ? "" : " | ");
11206 os += "RIGHT_REAR";
11207 first = false;
11208 flipped |= ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::RIGHT_REAR;
11209 }
11210 if (o != flipped) {
11211 os += (first ? "" : " | ");
11212 os += toHexString(o & (~flipped));
11213 }os += " (";
11214 os += toHexString(o);
11215 os += ")";
11216 return os;
11217 }
11218
toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel o)11219 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel o) {
11220 using ::android::hardware::details::toHexString;
11221 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::UNKNOWN) {
11222 return "UNKNOWN";
11223 }
11224 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::LEFT_FRONT) {
11225 return "LEFT_FRONT";
11226 }
11227 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::RIGHT_FRONT) {
11228 return "RIGHT_FRONT";
11229 }
11230 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::LEFT_REAR) {
11231 return "LEFT_REAR";
11232 }
11233 if (o == ::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel::RIGHT_REAR) {
11234 return "RIGHT_REAR";
11235 }
11236 std::string os;
11237 os += toHexString(static_cast<int32_t>(o));
11238 return os;
11239 }
11240
PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel o,::std::ostream * os)11241 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VehicleAreaWheel o, ::std::ostream* os) {
11242 *os << toString(o);
11243 }
11244
11245 template<>
11246 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus>(int32_t o) {
11247 using ::android::hardware::details::toHexString;
11248 std::string os;
11249 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus> flipped = 0;
11250 bool first = true;
11251 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_INSUFFICIENT_ENGINE_TEMPERATURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_INSUFFICIENT_ENGINE_TEMPERATURE)) {
11252 os += (first ? "" : " | ");
11253 os += "OPEN_INSUFFICIENT_ENGINE_TEMPERATURE";
11254 first = false;
11255 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_INSUFFICIENT_ENGINE_TEMPERATURE;
11256 }
11257 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::CLOSED_LOOP) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::CLOSED_LOOP)) {
11258 os += (first ? "" : " | ");
11259 os += "CLOSED_LOOP";
11260 first = false;
11261 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::CLOSED_LOOP;
11262 }
11263 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_ENGINE_LOAD_OR_DECELERATION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_ENGINE_LOAD_OR_DECELERATION)) {
11264 os += (first ? "" : " | ");
11265 os += "OPEN_ENGINE_LOAD_OR_DECELERATION";
11266 first = false;
11267 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_ENGINE_LOAD_OR_DECELERATION;
11268 }
11269 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_SYSTEM_FAILURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_SYSTEM_FAILURE)) {
11270 os += (first ? "" : " | ");
11271 os += "OPEN_SYSTEM_FAILURE";
11272 first = false;
11273 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_SYSTEM_FAILURE;
11274 }
11275 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::CLOSED_LOOP_BUT_FEEDBACK_FAULT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::CLOSED_LOOP_BUT_FEEDBACK_FAULT)) {
11276 os += (first ? "" : " | ");
11277 os += "CLOSED_LOOP_BUT_FEEDBACK_FAULT";
11278 first = false;
11279 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::CLOSED_LOOP_BUT_FEEDBACK_FAULT;
11280 }
11281 if (o != flipped) {
11282 os += (first ? "" : " | ");
11283 os += toHexString(o & (~flipped));
11284 }os += " (";
11285 os += toHexString(o);
11286 os += ")";
11287 return os;
11288 }
11289
toString(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus o)11290 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus o) {
11291 using ::android::hardware::details::toHexString;
11292 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_INSUFFICIENT_ENGINE_TEMPERATURE) {
11293 return "OPEN_INSUFFICIENT_ENGINE_TEMPERATURE";
11294 }
11295 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::CLOSED_LOOP) {
11296 return "CLOSED_LOOP";
11297 }
11298 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_ENGINE_LOAD_OR_DECELERATION) {
11299 return "OPEN_ENGINE_LOAD_OR_DECELERATION";
11300 }
11301 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::OPEN_SYSTEM_FAILURE) {
11302 return "OPEN_SYSTEM_FAILURE";
11303 }
11304 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus::CLOSED_LOOP_BUT_FEEDBACK_FAULT) {
11305 return "CLOSED_LOOP_BUT_FEEDBACK_FAULT";
11306 }
11307 std::string os;
11308 os += toHexString(static_cast<int32_t>(o));
11309 return os;
11310 }
11311
PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus o,::std::ostream * os)11312 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2FuelSystemStatus o, ::std::ostream* os) {
11313 *os << toString(o);
11314 }
11315
11316 template<>
11317 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind>(int32_t o) {
11318 using ::android::hardware::details::toHexString;
11319 std::string os;
11320 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind> flipped = 0;
11321 bool first = true;
11322 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind::SPARK) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind::SPARK)) {
11323 os += (first ? "" : " | ");
11324 os += "SPARK";
11325 first = false;
11326 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind::SPARK;
11327 }
11328 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind::COMPRESSION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind::COMPRESSION)) {
11329 os += (first ? "" : " | ");
11330 os += "COMPRESSION";
11331 first = false;
11332 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind::COMPRESSION;
11333 }
11334 if (o != flipped) {
11335 os += (first ? "" : " | ");
11336 os += toHexString(o & (~flipped));
11337 }os += " (";
11338 os += toHexString(o);
11339 os += ")";
11340 return os;
11341 }
11342
toString(::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind o)11343 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind o) {
11344 using ::android::hardware::details::toHexString;
11345 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind::SPARK) {
11346 return "SPARK";
11347 }
11348 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind::COMPRESSION) {
11349 return "COMPRESSION";
11350 }
11351 std::string os;
11352 os += toHexString(static_cast<int32_t>(o));
11353 return os;
11354 }
11355
PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind o,::std::ostream * os)11356 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2IgnitionMonitorKind o, ::std::ostream* os) {
11357 *os << toString(o);
11358 }
11359
11360 template<>
11361 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors>(int32_t o) {
11362 using ::android::hardware::details::toHexString;
11363 std::string os;
11364 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors> flipped = 0;
11365 bool first = true;
11366 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::COMPONENTS_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::COMPONENTS_AVAILABLE)) {
11367 os += (first ? "" : " | ");
11368 os += "COMPONENTS_AVAILABLE";
11369 first = false;
11370 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::COMPONENTS_AVAILABLE;
11371 }
11372 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::COMPONENTS_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::COMPONENTS_INCOMPLETE)) {
11373 os += (first ? "" : " | ");
11374 os += "COMPONENTS_INCOMPLETE";
11375 first = false;
11376 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::COMPONENTS_INCOMPLETE;
11377 }
11378 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::FUEL_SYSTEM_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::FUEL_SYSTEM_AVAILABLE)) {
11379 os += (first ? "" : " | ");
11380 os += "FUEL_SYSTEM_AVAILABLE";
11381 first = false;
11382 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::FUEL_SYSTEM_AVAILABLE;
11383 }
11384 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE)) {
11385 os += (first ? "" : " | ");
11386 os += "FUEL_SYSTEM_INCOMPLETE";
11387 first = false;
11388 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE;
11389 }
11390 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::MISFIRE_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::MISFIRE_AVAILABLE)) {
11391 os += (first ? "" : " | ");
11392 os += "MISFIRE_AVAILABLE";
11393 first = false;
11394 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::MISFIRE_AVAILABLE;
11395 }
11396 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::MISFIRE_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::MISFIRE_INCOMPLETE)) {
11397 os += (first ? "" : " | ");
11398 os += "MISFIRE_INCOMPLETE";
11399 first = false;
11400 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::MISFIRE_INCOMPLETE;
11401 }
11402 if (o != flipped) {
11403 os += (first ? "" : " | ");
11404 os += toHexString(o & (~flipped));
11405 }os += " (";
11406 os += toHexString(o);
11407 os += ")";
11408 return os;
11409 }
11410
toString(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors o)11411 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors o) {
11412 using ::android::hardware::details::toHexString;
11413 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::COMPONENTS_AVAILABLE) {
11414 return "COMPONENTS_AVAILABLE";
11415 }
11416 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::COMPONENTS_INCOMPLETE) {
11417 return "COMPONENTS_INCOMPLETE";
11418 }
11419 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::FUEL_SYSTEM_AVAILABLE) {
11420 return "FUEL_SYSTEM_AVAILABLE";
11421 }
11422 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE) {
11423 return "FUEL_SYSTEM_INCOMPLETE";
11424 }
11425 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::MISFIRE_AVAILABLE) {
11426 return "MISFIRE_AVAILABLE";
11427 }
11428 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors::MISFIRE_INCOMPLETE) {
11429 return "MISFIRE_INCOMPLETE";
11430 }
11431 std::string os;
11432 os += toHexString(static_cast<int32_t>(o));
11433 return os;
11434 }
11435
PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors o,::std::ostream * os)11436 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2CommonIgnitionMonitors o, ::std::ostream* os) {
11437 *os << toString(o);
11438 }
11439
11440 template<>
11441 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors>(int32_t o) {
11442 using ::android::hardware::details::toHexString;
11443 std::string os;
11444 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors> flipped = 0;
11445 bool first = true;
11446 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::COMPONENTS_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::COMPONENTS_AVAILABLE)) {
11447 os += (first ? "" : " | ");
11448 os += "COMPONENTS_AVAILABLE";
11449 first = false;
11450 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::COMPONENTS_AVAILABLE;
11451 }
11452 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::COMPONENTS_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::COMPONENTS_INCOMPLETE)) {
11453 os += (first ? "" : " | ");
11454 os += "COMPONENTS_INCOMPLETE";
11455 first = false;
11456 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::COMPONENTS_INCOMPLETE;
11457 }
11458 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::FUEL_SYSTEM_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::FUEL_SYSTEM_AVAILABLE)) {
11459 os += (first ? "" : " | ");
11460 os += "FUEL_SYSTEM_AVAILABLE";
11461 first = false;
11462 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::FUEL_SYSTEM_AVAILABLE;
11463 }
11464 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE)) {
11465 os += (first ? "" : " | ");
11466 os += "FUEL_SYSTEM_INCOMPLETE";
11467 first = false;
11468 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE;
11469 }
11470 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::MISFIRE_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::MISFIRE_AVAILABLE)) {
11471 os += (first ? "" : " | ");
11472 os += "MISFIRE_AVAILABLE";
11473 first = false;
11474 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::MISFIRE_AVAILABLE;
11475 }
11476 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::MISFIRE_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::MISFIRE_INCOMPLETE)) {
11477 os += (first ? "" : " | ");
11478 os += "MISFIRE_INCOMPLETE";
11479 first = false;
11480 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::MISFIRE_INCOMPLETE;
11481 }
11482 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EGR_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EGR_AVAILABLE)) {
11483 os += (first ? "" : " | ");
11484 os += "EGR_AVAILABLE";
11485 first = false;
11486 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EGR_AVAILABLE;
11487 }
11488 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EGR_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EGR_INCOMPLETE)) {
11489 os += (first ? "" : " | ");
11490 os += "EGR_INCOMPLETE";
11491 first = false;
11492 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EGR_INCOMPLETE;
11493 }
11494 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_HEATER_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_HEATER_AVAILABLE)) {
11495 os += (first ? "" : " | ");
11496 os += "OXYGEN_SENSOR_HEATER_AVAILABLE";
11497 first = false;
11498 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_HEATER_AVAILABLE;
11499 }
11500 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_HEATER_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_HEATER_INCOMPLETE)) {
11501 os += (first ? "" : " | ");
11502 os += "OXYGEN_SENSOR_HEATER_INCOMPLETE";
11503 first = false;
11504 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_HEATER_INCOMPLETE;
11505 }
11506 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_AVAILABLE)) {
11507 os += (first ? "" : " | ");
11508 os += "OXYGEN_SENSOR_AVAILABLE";
11509 first = false;
11510 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_AVAILABLE;
11511 }
11512 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_INCOMPLETE)) {
11513 os += (first ? "" : " | ");
11514 os += "OXYGEN_SENSOR_INCOMPLETE";
11515 first = false;
11516 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_INCOMPLETE;
11517 }
11518 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::AC_REFRIGERANT_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::AC_REFRIGERANT_AVAILABLE)) {
11519 os += (first ? "" : " | ");
11520 os += "AC_REFRIGERANT_AVAILABLE";
11521 first = false;
11522 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::AC_REFRIGERANT_AVAILABLE;
11523 }
11524 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::AC_REFRIGERANT_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::AC_REFRIGERANT_INCOMPLETE)) {
11525 os += (first ? "" : " | ");
11526 os += "AC_REFRIGERANT_INCOMPLETE";
11527 first = false;
11528 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::AC_REFRIGERANT_INCOMPLETE;
11529 }
11530 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::SECONDARY_AIR_SYSTEM_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::SECONDARY_AIR_SYSTEM_AVAILABLE)) {
11531 os += (first ? "" : " | ");
11532 os += "SECONDARY_AIR_SYSTEM_AVAILABLE";
11533 first = false;
11534 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::SECONDARY_AIR_SYSTEM_AVAILABLE;
11535 }
11536 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::SECONDARY_AIR_SYSTEM_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::SECONDARY_AIR_SYSTEM_INCOMPLETE)) {
11537 os += (first ? "" : " | ");
11538 os += "SECONDARY_AIR_SYSTEM_INCOMPLETE";
11539 first = false;
11540 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::SECONDARY_AIR_SYSTEM_INCOMPLETE;
11541 }
11542 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_AVAILABLE)) {
11543 os += (first ? "" : " | ");
11544 os += "EVAPORATIVE_SYSTEM_AVAILABLE";
11545 first = false;
11546 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_AVAILABLE;
11547 }
11548 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_INCOMPLETE)) {
11549 os += (first ? "" : " | ");
11550 os += "EVAPORATIVE_SYSTEM_INCOMPLETE";
11551 first = false;
11552 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_INCOMPLETE;
11553 }
11554 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::HEATED_CATALYST_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::HEATED_CATALYST_AVAILABLE)) {
11555 os += (first ? "" : " | ");
11556 os += "HEATED_CATALYST_AVAILABLE";
11557 first = false;
11558 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::HEATED_CATALYST_AVAILABLE;
11559 }
11560 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::HEATED_CATALYST_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::HEATED_CATALYST_INCOMPLETE)) {
11561 os += (first ? "" : " | ");
11562 os += "HEATED_CATALYST_INCOMPLETE";
11563 first = false;
11564 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::HEATED_CATALYST_INCOMPLETE;
11565 }
11566 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::CATALYST_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::CATALYST_AVAILABLE)) {
11567 os += (first ? "" : " | ");
11568 os += "CATALYST_AVAILABLE";
11569 first = false;
11570 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::CATALYST_AVAILABLE;
11571 }
11572 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::CATALYST_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::CATALYST_INCOMPLETE)) {
11573 os += (first ? "" : " | ");
11574 os += "CATALYST_INCOMPLETE";
11575 first = false;
11576 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::CATALYST_INCOMPLETE;
11577 }
11578 if (o != flipped) {
11579 os += (first ? "" : " | ");
11580 os += toHexString(o & (~flipped));
11581 }os += " (";
11582 os += toHexString(o);
11583 os += ")";
11584 return os;
11585 }
11586
toString(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors o)11587 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors o) {
11588 using ::android::hardware::details::toHexString;
11589 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::COMPONENTS_AVAILABLE) {
11590 return "COMPONENTS_AVAILABLE";
11591 }
11592 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::COMPONENTS_INCOMPLETE) {
11593 return "COMPONENTS_INCOMPLETE";
11594 }
11595 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::FUEL_SYSTEM_AVAILABLE) {
11596 return "FUEL_SYSTEM_AVAILABLE";
11597 }
11598 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE) {
11599 return "FUEL_SYSTEM_INCOMPLETE";
11600 }
11601 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::MISFIRE_AVAILABLE) {
11602 return "MISFIRE_AVAILABLE";
11603 }
11604 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::MISFIRE_INCOMPLETE) {
11605 return "MISFIRE_INCOMPLETE";
11606 }
11607 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EGR_AVAILABLE) {
11608 return "EGR_AVAILABLE";
11609 }
11610 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EGR_INCOMPLETE) {
11611 return "EGR_INCOMPLETE";
11612 }
11613 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_HEATER_AVAILABLE) {
11614 return "OXYGEN_SENSOR_HEATER_AVAILABLE";
11615 }
11616 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_HEATER_INCOMPLETE) {
11617 return "OXYGEN_SENSOR_HEATER_INCOMPLETE";
11618 }
11619 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_AVAILABLE) {
11620 return "OXYGEN_SENSOR_AVAILABLE";
11621 }
11622 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::OXYGEN_SENSOR_INCOMPLETE) {
11623 return "OXYGEN_SENSOR_INCOMPLETE";
11624 }
11625 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::AC_REFRIGERANT_AVAILABLE) {
11626 return "AC_REFRIGERANT_AVAILABLE";
11627 }
11628 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::AC_REFRIGERANT_INCOMPLETE) {
11629 return "AC_REFRIGERANT_INCOMPLETE";
11630 }
11631 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::SECONDARY_AIR_SYSTEM_AVAILABLE) {
11632 return "SECONDARY_AIR_SYSTEM_AVAILABLE";
11633 }
11634 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::SECONDARY_AIR_SYSTEM_INCOMPLETE) {
11635 return "SECONDARY_AIR_SYSTEM_INCOMPLETE";
11636 }
11637 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_AVAILABLE) {
11638 return "EVAPORATIVE_SYSTEM_AVAILABLE";
11639 }
11640 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::EVAPORATIVE_SYSTEM_INCOMPLETE) {
11641 return "EVAPORATIVE_SYSTEM_INCOMPLETE";
11642 }
11643 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::HEATED_CATALYST_AVAILABLE) {
11644 return "HEATED_CATALYST_AVAILABLE";
11645 }
11646 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::HEATED_CATALYST_INCOMPLETE) {
11647 return "HEATED_CATALYST_INCOMPLETE";
11648 }
11649 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::CATALYST_AVAILABLE) {
11650 return "CATALYST_AVAILABLE";
11651 }
11652 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors::CATALYST_INCOMPLETE) {
11653 return "CATALYST_INCOMPLETE";
11654 }
11655 std::string os;
11656 os += toHexString(static_cast<int32_t>(o));
11657 return os;
11658 }
11659
PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors o,::std::ostream * os)11660 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2SparkIgnitionMonitors o, ::std::ostream* os) {
11661 *os << toString(o);
11662 }
11663
11664 template<>
11665 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors>(int32_t o) {
11666 using ::android::hardware::details::toHexString;
11667 std::string os;
11668 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors> flipped = 0;
11669 bool first = true;
11670 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::COMPONENTS_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::COMPONENTS_AVAILABLE)) {
11671 os += (first ? "" : " | ");
11672 os += "COMPONENTS_AVAILABLE";
11673 first = false;
11674 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::COMPONENTS_AVAILABLE;
11675 }
11676 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::COMPONENTS_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::COMPONENTS_INCOMPLETE)) {
11677 os += (first ? "" : " | ");
11678 os += "COMPONENTS_INCOMPLETE";
11679 first = false;
11680 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::COMPONENTS_INCOMPLETE;
11681 }
11682 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::FUEL_SYSTEM_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::FUEL_SYSTEM_AVAILABLE)) {
11683 os += (first ? "" : " | ");
11684 os += "FUEL_SYSTEM_AVAILABLE";
11685 first = false;
11686 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::FUEL_SYSTEM_AVAILABLE;
11687 }
11688 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE)) {
11689 os += (first ? "" : " | ");
11690 os += "FUEL_SYSTEM_INCOMPLETE";
11691 first = false;
11692 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE;
11693 }
11694 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::MISFIRE_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::MISFIRE_AVAILABLE)) {
11695 os += (first ? "" : " | ");
11696 os += "MISFIRE_AVAILABLE";
11697 first = false;
11698 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::MISFIRE_AVAILABLE;
11699 }
11700 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::MISFIRE_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::MISFIRE_INCOMPLETE)) {
11701 os += (first ? "" : " | ");
11702 os += "MISFIRE_INCOMPLETE";
11703 first = false;
11704 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::MISFIRE_INCOMPLETE;
11705 }
11706 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EGR_OR_VVT_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EGR_OR_VVT_AVAILABLE)) {
11707 os += (first ? "" : " | ");
11708 os += "EGR_OR_VVT_AVAILABLE";
11709 first = false;
11710 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EGR_OR_VVT_AVAILABLE;
11711 }
11712 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EGR_OR_VVT_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EGR_OR_VVT_INCOMPLETE)) {
11713 os += (first ? "" : " | ");
11714 os += "EGR_OR_VVT_INCOMPLETE";
11715 first = false;
11716 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EGR_OR_VVT_INCOMPLETE;
11717 }
11718 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::PM_FILTER_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::PM_FILTER_AVAILABLE)) {
11719 os += (first ? "" : " | ");
11720 os += "PM_FILTER_AVAILABLE";
11721 first = false;
11722 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::PM_FILTER_AVAILABLE;
11723 }
11724 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::PM_FILTER_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::PM_FILTER_INCOMPLETE)) {
11725 os += (first ? "" : " | ");
11726 os += "PM_FILTER_INCOMPLETE";
11727 first = false;
11728 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::PM_FILTER_INCOMPLETE;
11729 }
11730 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EXHAUST_GAS_SENSOR_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EXHAUST_GAS_SENSOR_AVAILABLE)) {
11731 os += (first ? "" : " | ");
11732 os += "EXHAUST_GAS_SENSOR_AVAILABLE";
11733 first = false;
11734 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EXHAUST_GAS_SENSOR_AVAILABLE;
11735 }
11736 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EXHAUST_GAS_SENSOR_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EXHAUST_GAS_SENSOR_INCOMPLETE)) {
11737 os += (first ? "" : " | ");
11738 os += "EXHAUST_GAS_SENSOR_INCOMPLETE";
11739 first = false;
11740 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EXHAUST_GAS_SENSOR_INCOMPLETE;
11741 }
11742 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::BOOST_PRESSURE_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::BOOST_PRESSURE_AVAILABLE)) {
11743 os += (first ? "" : " | ");
11744 os += "BOOST_PRESSURE_AVAILABLE";
11745 first = false;
11746 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::BOOST_PRESSURE_AVAILABLE;
11747 }
11748 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::BOOST_PRESSURE_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::BOOST_PRESSURE_INCOMPLETE)) {
11749 os += (first ? "" : " | ");
11750 os += "BOOST_PRESSURE_INCOMPLETE";
11751 first = false;
11752 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::BOOST_PRESSURE_INCOMPLETE;
11753 }
11754 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NOx_SCR_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NOx_SCR_AVAILABLE)) {
11755 os += (first ? "" : " | ");
11756 os += "NOx_SCR_AVAILABLE";
11757 first = false;
11758 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NOx_SCR_AVAILABLE;
11759 }
11760 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NOx_SCR_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NOx_SCR_INCOMPLETE)) {
11761 os += (first ? "" : " | ");
11762 os += "NOx_SCR_INCOMPLETE";
11763 first = false;
11764 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NOx_SCR_INCOMPLETE;
11765 }
11766 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NMHC_CATALYST_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NMHC_CATALYST_AVAILABLE)) {
11767 os += (first ? "" : " | ");
11768 os += "NMHC_CATALYST_AVAILABLE";
11769 first = false;
11770 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NMHC_CATALYST_AVAILABLE;
11771 }
11772 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NMHC_CATALYST_INCOMPLETE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NMHC_CATALYST_INCOMPLETE)) {
11773 os += (first ? "" : " | ");
11774 os += "NMHC_CATALYST_INCOMPLETE";
11775 first = false;
11776 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NMHC_CATALYST_INCOMPLETE;
11777 }
11778 if (o != flipped) {
11779 os += (first ? "" : " | ");
11780 os += toHexString(o & (~flipped));
11781 }os += " (";
11782 os += toHexString(o);
11783 os += ")";
11784 return os;
11785 }
11786
toString(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors o)11787 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors o) {
11788 using ::android::hardware::details::toHexString;
11789 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::COMPONENTS_AVAILABLE) {
11790 return "COMPONENTS_AVAILABLE";
11791 }
11792 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::COMPONENTS_INCOMPLETE) {
11793 return "COMPONENTS_INCOMPLETE";
11794 }
11795 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::FUEL_SYSTEM_AVAILABLE) {
11796 return "FUEL_SYSTEM_AVAILABLE";
11797 }
11798 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::FUEL_SYSTEM_INCOMPLETE) {
11799 return "FUEL_SYSTEM_INCOMPLETE";
11800 }
11801 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::MISFIRE_AVAILABLE) {
11802 return "MISFIRE_AVAILABLE";
11803 }
11804 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::MISFIRE_INCOMPLETE) {
11805 return "MISFIRE_INCOMPLETE";
11806 }
11807 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EGR_OR_VVT_AVAILABLE) {
11808 return "EGR_OR_VVT_AVAILABLE";
11809 }
11810 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EGR_OR_VVT_INCOMPLETE) {
11811 return "EGR_OR_VVT_INCOMPLETE";
11812 }
11813 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::PM_FILTER_AVAILABLE) {
11814 return "PM_FILTER_AVAILABLE";
11815 }
11816 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::PM_FILTER_INCOMPLETE) {
11817 return "PM_FILTER_INCOMPLETE";
11818 }
11819 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EXHAUST_GAS_SENSOR_AVAILABLE) {
11820 return "EXHAUST_GAS_SENSOR_AVAILABLE";
11821 }
11822 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::EXHAUST_GAS_SENSOR_INCOMPLETE) {
11823 return "EXHAUST_GAS_SENSOR_INCOMPLETE";
11824 }
11825 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::BOOST_PRESSURE_AVAILABLE) {
11826 return "BOOST_PRESSURE_AVAILABLE";
11827 }
11828 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::BOOST_PRESSURE_INCOMPLETE) {
11829 return "BOOST_PRESSURE_INCOMPLETE";
11830 }
11831 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NOx_SCR_AVAILABLE) {
11832 return "NOx_SCR_AVAILABLE";
11833 }
11834 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NOx_SCR_INCOMPLETE) {
11835 return "NOx_SCR_INCOMPLETE";
11836 }
11837 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NMHC_CATALYST_AVAILABLE) {
11838 return "NMHC_CATALYST_AVAILABLE";
11839 }
11840 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors::NMHC_CATALYST_INCOMPLETE) {
11841 return "NMHC_CATALYST_INCOMPLETE";
11842 }
11843 std::string os;
11844 os += toHexString(static_cast<int32_t>(o));
11845 return os;
11846 }
11847
PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors o,::std::ostream * os)11848 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2CompressionIgnitionMonitors o, ::std::ostream* os) {
11849 *os << toString(o);
11850 }
11851
11852 template<>
11853 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus>(int32_t o) {
11854 using ::android::hardware::details::toHexString;
11855 std::string os;
11856 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus> flipped = 0;
11857 bool first = true;
11858 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::UPSTREAM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::UPSTREAM)) {
11859 os += (first ? "" : " | ");
11860 os += "UPSTREAM";
11861 first = false;
11862 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::UPSTREAM;
11863 }
11864 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::DOWNSTREAM_OF_CATALYCIC_CONVERTER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::DOWNSTREAM_OF_CATALYCIC_CONVERTER)) {
11865 os += (first ? "" : " | ");
11866 os += "DOWNSTREAM_OF_CATALYCIC_CONVERTER";
11867 first = false;
11868 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::DOWNSTREAM_OF_CATALYCIC_CONVERTER;
11869 }
11870 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::FROM_OUTSIDE_OR_OFF) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::FROM_OUTSIDE_OR_OFF)) {
11871 os += (first ? "" : " | ");
11872 os += "FROM_OUTSIDE_OR_OFF";
11873 first = false;
11874 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::FROM_OUTSIDE_OR_OFF;
11875 }
11876 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::PUMP_ON_FOR_DIAGNOSTICS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::PUMP_ON_FOR_DIAGNOSTICS)) {
11877 os += (first ? "" : " | ");
11878 os += "PUMP_ON_FOR_DIAGNOSTICS";
11879 first = false;
11880 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::PUMP_ON_FOR_DIAGNOSTICS;
11881 }
11882 if (o != flipped) {
11883 os += (first ? "" : " | ");
11884 os += toHexString(o & (~flipped));
11885 }os += " (";
11886 os += toHexString(o);
11887 os += ")";
11888 return os;
11889 }
11890
toString(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus o)11891 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus o) {
11892 using ::android::hardware::details::toHexString;
11893 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::UPSTREAM) {
11894 return "UPSTREAM";
11895 }
11896 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::DOWNSTREAM_OF_CATALYCIC_CONVERTER) {
11897 return "DOWNSTREAM_OF_CATALYCIC_CONVERTER";
11898 }
11899 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::FROM_OUTSIDE_OR_OFF) {
11900 return "FROM_OUTSIDE_OR_OFF";
11901 }
11902 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus::PUMP_ON_FOR_DIAGNOSTICS) {
11903 return "PUMP_ON_FOR_DIAGNOSTICS";
11904 }
11905 std::string os;
11906 os += toHexString(static_cast<int32_t>(o));
11907 return os;
11908 }
11909
PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus o,::std::ostream * os)11910 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2SecondaryAirStatus o, ::std::ostream* os) {
11911 *os << toString(o);
11912 }
11913
11914 template<>
11915 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::Obd2FuelType>(int32_t o) {
11916 using ::android::hardware::details::toHexString;
11917 std::string os;
11918 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::Obd2FuelType> flipped = 0;
11919 bool first = true;
11920 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::NOT_AVAILABLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::NOT_AVAILABLE)) {
11921 os += (first ? "" : " | ");
11922 os += "NOT_AVAILABLE";
11923 first = false;
11924 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::NOT_AVAILABLE;
11925 }
11926 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::GASOLINE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::GASOLINE)) {
11927 os += (first ? "" : " | ");
11928 os += "GASOLINE";
11929 first = false;
11930 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::GASOLINE;
11931 }
11932 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::METHANOL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::METHANOL)) {
11933 os += (first ? "" : " | ");
11934 os += "METHANOL";
11935 first = false;
11936 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::METHANOL;
11937 }
11938 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::ETHANOL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::ETHANOL)) {
11939 os += (first ? "" : " | ");
11940 os += "ETHANOL";
11941 first = false;
11942 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::ETHANOL;
11943 }
11944 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::DIESEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::DIESEL)) {
11945 os += (first ? "" : " | ");
11946 os += "DIESEL";
11947 first = false;
11948 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::DIESEL;
11949 }
11950 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::LPG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::LPG)) {
11951 os += (first ? "" : " | ");
11952 os += "LPG";
11953 first = false;
11954 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::LPG;
11955 }
11956 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::CNG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::CNG)) {
11957 os += (first ? "" : " | ");
11958 os += "CNG";
11959 first = false;
11960 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::CNG;
11961 }
11962 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::PROPANE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::PROPANE)) {
11963 os += (first ? "" : " | ");
11964 os += "PROPANE";
11965 first = false;
11966 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::PROPANE;
11967 }
11968 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::ELECTRIC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::ELECTRIC)) {
11969 os += (first ? "" : " | ");
11970 os += "ELECTRIC";
11971 first = false;
11972 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::ELECTRIC;
11973 }
11974 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_GASOLINE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_GASOLINE)) {
11975 os += (first ? "" : " | ");
11976 os += "BIFUEL_RUNNING_GASOLINE";
11977 first = false;
11978 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_GASOLINE;
11979 }
11980 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_METHANOL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_METHANOL)) {
11981 os += (first ? "" : " | ");
11982 os += "BIFUEL_RUNNING_METHANOL";
11983 first = false;
11984 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_METHANOL;
11985 }
11986 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ETHANOL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ETHANOL)) {
11987 os += (first ? "" : " | ");
11988 os += "BIFUEL_RUNNING_ETHANOL";
11989 first = false;
11990 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ETHANOL;
11991 }
11992 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_LPG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_LPG)) {
11993 os += (first ? "" : " | ");
11994 os += "BIFUEL_RUNNING_LPG";
11995 first = false;
11996 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_LPG;
11997 }
11998 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_CNG) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_CNG)) {
11999 os += (first ? "" : " | ");
12000 os += "BIFUEL_RUNNING_CNG";
12001 first = false;
12002 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_CNG;
12003 }
12004 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_PROPANE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_PROPANE)) {
12005 os += (first ? "" : " | ");
12006 os += "BIFUEL_RUNNING_PROPANE";
12007 first = false;
12008 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_PROPANE;
12009 }
12010 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ELECTRIC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ELECTRIC)) {
12011 os += (first ? "" : " | ");
12012 os += "BIFUEL_RUNNING_ELECTRIC";
12013 first = false;
12014 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ELECTRIC;
12015 }
12016 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION)) {
12017 os += (first ? "" : " | ");
12018 os += "BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION";
12019 first = false;
12020 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION;
12021 }
12022 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_GASOLINE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_GASOLINE)) {
12023 os += (first ? "" : " | ");
12024 os += "HYBRID_GASOLINE";
12025 first = false;
12026 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_GASOLINE;
12027 }
12028 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_ETHANOL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_ETHANOL)) {
12029 os += (first ? "" : " | ");
12030 os += "HYBRID_ETHANOL";
12031 first = false;
12032 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_ETHANOL;
12033 }
12034 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_DIESEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_DIESEL)) {
12035 os += (first ? "" : " | ");
12036 os += "HYBRID_DIESEL";
12037 first = false;
12038 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_DIESEL;
12039 }
12040 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_ELECTRIC) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_ELECTRIC)) {
12041 os += (first ? "" : " | ");
12042 os += "HYBRID_ELECTRIC";
12043 first = false;
12044 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_ELECTRIC;
12045 }
12046 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION)) {
12047 os += (first ? "" : " | ");
12048 os += "HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION";
12049 first = false;
12050 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION;
12051 }
12052 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_REGENERATIVE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_REGENERATIVE)) {
12053 os += (first ? "" : " | ");
12054 os += "HYBRID_REGENERATIVE";
12055 first = false;
12056 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_REGENERATIVE;
12057 }
12058 if ((o & ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_DIESEL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_DIESEL)) {
12059 os += (first ? "" : " | ");
12060 os += "BIFUEL_RUNNING_DIESEL";
12061 first = false;
12062 flipped |= ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_DIESEL;
12063 }
12064 if (o != flipped) {
12065 os += (first ? "" : " | ");
12066 os += toHexString(o & (~flipped));
12067 }os += " (";
12068 os += toHexString(o);
12069 os += ")";
12070 return os;
12071 }
12072
toString(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType o)12073 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType o) {
12074 using ::android::hardware::details::toHexString;
12075 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::NOT_AVAILABLE) {
12076 return "NOT_AVAILABLE";
12077 }
12078 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::GASOLINE) {
12079 return "GASOLINE";
12080 }
12081 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::METHANOL) {
12082 return "METHANOL";
12083 }
12084 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::ETHANOL) {
12085 return "ETHANOL";
12086 }
12087 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::DIESEL) {
12088 return "DIESEL";
12089 }
12090 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::LPG) {
12091 return "LPG";
12092 }
12093 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::CNG) {
12094 return "CNG";
12095 }
12096 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::PROPANE) {
12097 return "PROPANE";
12098 }
12099 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::ELECTRIC) {
12100 return "ELECTRIC";
12101 }
12102 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_GASOLINE) {
12103 return "BIFUEL_RUNNING_GASOLINE";
12104 }
12105 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_METHANOL) {
12106 return "BIFUEL_RUNNING_METHANOL";
12107 }
12108 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ETHANOL) {
12109 return "BIFUEL_RUNNING_ETHANOL";
12110 }
12111 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_LPG) {
12112 return "BIFUEL_RUNNING_LPG";
12113 }
12114 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_CNG) {
12115 return "BIFUEL_RUNNING_CNG";
12116 }
12117 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_PROPANE) {
12118 return "BIFUEL_RUNNING_PROPANE";
12119 }
12120 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ELECTRIC) {
12121 return "BIFUEL_RUNNING_ELECTRIC";
12122 }
12123 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION) {
12124 return "BIFUEL_RUNNING_ELECTRIC_AND_COMBUSTION";
12125 }
12126 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_GASOLINE) {
12127 return "HYBRID_GASOLINE";
12128 }
12129 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_ETHANOL) {
12130 return "HYBRID_ETHANOL";
12131 }
12132 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_DIESEL) {
12133 return "HYBRID_DIESEL";
12134 }
12135 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_ELECTRIC) {
12136 return "HYBRID_ELECTRIC";
12137 }
12138 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION) {
12139 return "HYBRID_RUNNING_ELECTRIC_AND_COMBUSTION";
12140 }
12141 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::HYBRID_REGENERATIVE) {
12142 return "HYBRID_REGENERATIVE";
12143 }
12144 if (o == ::android::hardware::automotive::vehicle::V2_0::Obd2FuelType::BIFUEL_RUNNING_DIESEL) {
12145 return "BIFUEL_RUNNING_DIESEL";
12146 }
12147 std::string os;
12148 os += toHexString(static_cast<int32_t>(o));
12149 return os;
12150 }
12151
PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType o,::std::ostream * os)12152 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::Obd2FuelType o, ::std::ostream* os) {
12153 *os << toString(o);
12154 }
12155
12156 template<>
12157 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex>(int32_t o) {
12158 using ::android::hardware::details::toHexString;
12159 std::string os;
12160 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex> flipped = 0;
12161 bool first = true;
12162 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_SYSTEM_STATUS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_SYSTEM_STATUS)) {
12163 os += (first ? "" : " | ");
12164 os += "FUEL_SYSTEM_STATUS";
12165 first = false;
12166 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_SYSTEM_STATUS;
12167 }
12168 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MALFUNCTION_INDICATOR_LIGHT_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MALFUNCTION_INDICATOR_LIGHT_ON)) {
12169 os += (first ? "" : " | ");
12170 os += "MALFUNCTION_INDICATOR_LIGHT_ON";
12171 first = false;
12172 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MALFUNCTION_INDICATOR_LIGHT_ON;
12173 }
12174 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::IGNITION_MONITORS_SUPPORTED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::IGNITION_MONITORS_SUPPORTED)) {
12175 os += (first ? "" : " | ");
12176 os += "IGNITION_MONITORS_SUPPORTED";
12177 first = false;
12178 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::IGNITION_MONITORS_SUPPORTED;
12179 }
12180 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::IGNITION_SPECIFIC_MONITORS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::IGNITION_SPECIFIC_MONITORS)) {
12181 os += (first ? "" : " | ");
12182 os += "IGNITION_SPECIFIC_MONITORS";
12183 first = false;
12184 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::IGNITION_SPECIFIC_MONITORS;
12185 }
12186 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::INTAKE_AIR_TEMPERATURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::INTAKE_AIR_TEMPERATURE)) {
12187 os += (first ? "" : " | ");
12188 os += "INTAKE_AIR_TEMPERATURE";
12189 first = false;
12190 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::INTAKE_AIR_TEMPERATURE;
12191 }
12192 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::COMMANDED_SECONDARY_AIR_STATUS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::COMMANDED_SECONDARY_AIR_STATUS)) {
12193 os += (first ? "" : " | ");
12194 os += "COMMANDED_SECONDARY_AIR_STATUS";
12195 first = false;
12196 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::COMMANDED_SECONDARY_AIR_STATUS;
12197 }
12198 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::NUM_OXYGEN_SENSORS_PRESENT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::NUM_OXYGEN_SENSORS_PRESENT)) {
12199 os += (first ? "" : " | ");
12200 os += "NUM_OXYGEN_SENSORS_PRESENT";
12201 first = false;
12202 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::NUM_OXYGEN_SENSORS_PRESENT;
12203 }
12204 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::RUNTIME_SINCE_ENGINE_START) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::RUNTIME_SINCE_ENGINE_START)) {
12205 os += (first ? "" : " | ");
12206 os += "RUNTIME_SINCE_ENGINE_START";
12207 first = false;
12208 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::RUNTIME_SINCE_ENGINE_START;
12209 }
12210 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON)) {
12211 os += (first ? "" : " | ");
12212 os += "DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON";
12213 first = false;
12214 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON;
12215 }
12216 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::WARMUPS_SINCE_CODES_CLEARED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::WARMUPS_SINCE_CODES_CLEARED)) {
12217 os += (first ? "" : " | ");
12218 os += "WARMUPS_SINCE_CODES_CLEARED";
12219 first = false;
12220 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::WARMUPS_SINCE_CODES_CLEARED;
12221 }
12222 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DISTANCE_TRAVELED_SINCE_CODES_CLEARED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DISTANCE_TRAVELED_SINCE_CODES_CLEARED)) {
12223 os += (first ? "" : " | ");
12224 os += "DISTANCE_TRAVELED_SINCE_CODES_CLEARED";
12225 first = false;
12226 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DISTANCE_TRAVELED_SINCE_CODES_CLEARED;
12227 }
12228 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ABSOLUTE_BAROMETRIC_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ABSOLUTE_BAROMETRIC_PRESSURE)) {
12229 os += (first ? "" : " | ");
12230 os += "ABSOLUTE_BAROMETRIC_PRESSURE";
12231 first = false;
12232 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ABSOLUTE_BAROMETRIC_PRESSURE;
12233 }
12234 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::CONTROL_MODULE_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::CONTROL_MODULE_VOLTAGE)) {
12235 os += (first ? "" : " | ");
12236 os += "CONTROL_MODULE_VOLTAGE";
12237 first = false;
12238 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::CONTROL_MODULE_VOLTAGE;
12239 }
12240 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::AMBIENT_AIR_TEMPERATURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::AMBIENT_AIR_TEMPERATURE)) {
12241 os += (first ? "" : " | ");
12242 os += "AMBIENT_AIR_TEMPERATURE";
12243 first = false;
12244 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::AMBIENT_AIR_TEMPERATURE;
12245 }
12246 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::TIME_WITH_MALFUNCTION_LIGHT_ON) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::TIME_WITH_MALFUNCTION_LIGHT_ON)) {
12247 os += (first ? "" : " | ");
12248 os += "TIME_WITH_MALFUNCTION_LIGHT_ON";
12249 first = false;
12250 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::TIME_WITH_MALFUNCTION_LIGHT_ON;
12251 }
12252 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::TIME_SINCE_TROUBLE_CODES_CLEARED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::TIME_SINCE_TROUBLE_CODES_CLEARED)) {
12253 os += (first ? "" : " | ");
12254 os += "TIME_SINCE_TROUBLE_CODES_CLEARED";
12255 first = false;
12256 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::TIME_SINCE_TROUBLE_CODES_CLEARED;
12257 }
12258 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_FUEL_AIR_EQUIVALENCE_RATIO)) {
12259 os += (first ? "" : " | ");
12260 os += "MAX_FUEL_AIR_EQUIVALENCE_RATIO";
12261 first = false;
12262 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_FUEL_AIR_EQUIVALENCE_RATIO;
12263 }
12264 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_OXYGEN_SENSOR_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_OXYGEN_SENSOR_VOLTAGE)) {
12265 os += (first ? "" : " | ");
12266 os += "MAX_OXYGEN_SENSOR_VOLTAGE";
12267 first = false;
12268 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_OXYGEN_SENSOR_VOLTAGE;
12269 }
12270 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_OXYGEN_SENSOR_CURRENT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_OXYGEN_SENSOR_CURRENT)) {
12271 os += (first ? "" : " | ");
12272 os += "MAX_OXYGEN_SENSOR_CURRENT";
12273 first = false;
12274 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_OXYGEN_SENSOR_CURRENT;
12275 }
12276 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE)) {
12277 os += (first ? "" : " | ");
12278 os += "MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE";
12279 first = false;
12280 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE;
12281 }
12282 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR)) {
12283 os += (first ? "" : " | ");
12284 os += "MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR";
12285 first = false;
12286 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR;
12287 }
12288 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_TYPE)) {
12289 os += (first ? "" : " | ");
12290 os += "FUEL_TYPE";
12291 first = false;
12292 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_TYPE;
12293 }
12294 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_RAIL_ABSOLUTE_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_RAIL_ABSOLUTE_PRESSURE)) {
12295 os += (first ? "" : " | ");
12296 os += "FUEL_RAIL_ABSOLUTE_PRESSURE";
12297 first = false;
12298 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_RAIL_ABSOLUTE_PRESSURE;
12299 }
12300 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_OIL_TEMPERATURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_OIL_TEMPERATURE)) {
12301 os += (first ? "" : " | ");
12302 os += "ENGINE_OIL_TEMPERATURE";
12303 first = false;
12304 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_OIL_TEMPERATURE;
12305 }
12306 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DRIVER_DEMAND_PERCENT_TORQUE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DRIVER_DEMAND_PERCENT_TORQUE)) {
12307 os += (first ? "" : " | ");
12308 os += "DRIVER_DEMAND_PERCENT_TORQUE";
12309 first = false;
12310 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DRIVER_DEMAND_PERCENT_TORQUE;
12311 }
12312 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_ACTUAL_PERCENT_TORQUE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_ACTUAL_PERCENT_TORQUE)) {
12313 os += (first ? "" : " | ");
12314 os += "ENGINE_ACTUAL_PERCENT_TORQUE";
12315 first = false;
12316 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_ACTUAL_PERCENT_TORQUE;
12317 }
12318 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_REFERENCE_PERCENT_TORQUE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_REFERENCE_PERCENT_TORQUE)) {
12319 os += (first ? "" : " | ");
12320 os += "ENGINE_REFERENCE_PERCENT_TORQUE";
12321 first = false;
12322 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_REFERENCE_PERCENT_TORQUE;
12323 }
12324 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_IDLE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_IDLE)) {
12325 os += (first ? "" : " | ");
12326 os += "ENGINE_PERCENT_TORQUE_DATA_IDLE";
12327 first = false;
12328 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_IDLE;
12329 }
12330 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT1)) {
12331 os += (first ? "" : " | ");
12332 os += "ENGINE_PERCENT_TORQUE_DATA_POINT1";
12333 first = false;
12334 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT1;
12335 }
12336 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT2)) {
12337 os += (first ? "" : " | ");
12338 os += "ENGINE_PERCENT_TORQUE_DATA_POINT2";
12339 first = false;
12340 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT2;
12341 }
12342 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT3) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT3)) {
12343 os += (first ? "" : " | ");
12344 os += "ENGINE_PERCENT_TORQUE_DATA_POINT3";
12345 first = false;
12346 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT3;
12347 }
12348 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT4) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT4)) {
12349 os += (first ? "" : " | ");
12350 os += "ENGINE_PERCENT_TORQUE_DATA_POINT4";
12351 first = false;
12352 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT4;
12353 }
12354 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::LAST_SYSTEM_INDEX) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::LAST_SYSTEM_INDEX)) {
12355 os += (first ? "" : " | ");
12356 os += "LAST_SYSTEM_INDEX";
12357 first = false;
12358 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::LAST_SYSTEM_INDEX;
12359 }
12360 if (o != flipped) {
12361 os += (first ? "" : " | ");
12362 os += toHexString(o & (~flipped));
12363 }os += " (";
12364 os += toHexString(o);
12365 os += ")";
12366 return os;
12367 }
12368
toString(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex o)12369 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex o) {
12370 using ::android::hardware::details::toHexString;
12371 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_SYSTEM_STATUS) {
12372 return "FUEL_SYSTEM_STATUS";
12373 }
12374 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MALFUNCTION_INDICATOR_LIGHT_ON) {
12375 return "MALFUNCTION_INDICATOR_LIGHT_ON";
12376 }
12377 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::IGNITION_MONITORS_SUPPORTED) {
12378 return "IGNITION_MONITORS_SUPPORTED";
12379 }
12380 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::IGNITION_SPECIFIC_MONITORS) {
12381 return "IGNITION_SPECIFIC_MONITORS";
12382 }
12383 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::INTAKE_AIR_TEMPERATURE) {
12384 return "INTAKE_AIR_TEMPERATURE";
12385 }
12386 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::COMMANDED_SECONDARY_AIR_STATUS) {
12387 return "COMMANDED_SECONDARY_AIR_STATUS";
12388 }
12389 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::NUM_OXYGEN_SENSORS_PRESENT) {
12390 return "NUM_OXYGEN_SENSORS_PRESENT";
12391 }
12392 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::RUNTIME_SINCE_ENGINE_START) {
12393 return "RUNTIME_SINCE_ENGINE_START";
12394 }
12395 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON) {
12396 return "DISTANCE_TRAVELED_WITH_MALFUNCTION_INDICATOR_LIGHT_ON";
12397 }
12398 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::WARMUPS_SINCE_CODES_CLEARED) {
12399 return "WARMUPS_SINCE_CODES_CLEARED";
12400 }
12401 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DISTANCE_TRAVELED_SINCE_CODES_CLEARED) {
12402 return "DISTANCE_TRAVELED_SINCE_CODES_CLEARED";
12403 }
12404 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ABSOLUTE_BAROMETRIC_PRESSURE) {
12405 return "ABSOLUTE_BAROMETRIC_PRESSURE";
12406 }
12407 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::CONTROL_MODULE_VOLTAGE) {
12408 return "CONTROL_MODULE_VOLTAGE";
12409 }
12410 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::AMBIENT_AIR_TEMPERATURE) {
12411 return "AMBIENT_AIR_TEMPERATURE";
12412 }
12413 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::TIME_WITH_MALFUNCTION_LIGHT_ON) {
12414 return "TIME_WITH_MALFUNCTION_LIGHT_ON";
12415 }
12416 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::TIME_SINCE_TROUBLE_CODES_CLEARED) {
12417 return "TIME_SINCE_TROUBLE_CODES_CLEARED";
12418 }
12419 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_FUEL_AIR_EQUIVALENCE_RATIO) {
12420 return "MAX_FUEL_AIR_EQUIVALENCE_RATIO";
12421 }
12422 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_OXYGEN_SENSOR_VOLTAGE) {
12423 return "MAX_OXYGEN_SENSOR_VOLTAGE";
12424 }
12425 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_OXYGEN_SENSOR_CURRENT) {
12426 return "MAX_OXYGEN_SENSOR_CURRENT";
12427 }
12428 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE) {
12429 return "MAX_INTAKE_MANIFOLD_ABSOLUTE_PRESSURE";
12430 }
12431 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR) {
12432 return "MAX_AIR_FLOW_RATE_FROM_MASS_AIR_FLOW_SENSOR";
12433 }
12434 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_TYPE) {
12435 return "FUEL_TYPE";
12436 }
12437 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::FUEL_RAIL_ABSOLUTE_PRESSURE) {
12438 return "FUEL_RAIL_ABSOLUTE_PRESSURE";
12439 }
12440 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_OIL_TEMPERATURE) {
12441 return "ENGINE_OIL_TEMPERATURE";
12442 }
12443 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::DRIVER_DEMAND_PERCENT_TORQUE) {
12444 return "DRIVER_DEMAND_PERCENT_TORQUE";
12445 }
12446 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_ACTUAL_PERCENT_TORQUE) {
12447 return "ENGINE_ACTUAL_PERCENT_TORQUE";
12448 }
12449 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_REFERENCE_PERCENT_TORQUE) {
12450 return "ENGINE_REFERENCE_PERCENT_TORQUE";
12451 }
12452 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_IDLE) {
12453 return "ENGINE_PERCENT_TORQUE_DATA_IDLE";
12454 }
12455 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT1) {
12456 return "ENGINE_PERCENT_TORQUE_DATA_POINT1";
12457 }
12458 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT2) {
12459 return "ENGINE_PERCENT_TORQUE_DATA_POINT2";
12460 }
12461 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT3) {
12462 return "ENGINE_PERCENT_TORQUE_DATA_POINT3";
12463 }
12464 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::ENGINE_PERCENT_TORQUE_DATA_POINT4) {
12465 return "ENGINE_PERCENT_TORQUE_DATA_POINT4";
12466 }
12467 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex::LAST_SYSTEM_INDEX) {
12468 return "LAST_SYSTEM_INDEX";
12469 }
12470 std::string os;
12471 os += toHexString(static_cast<int32_t>(o));
12472 return os;
12473 }
12474
PrintTo(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex o,::std::ostream * os)12475 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::DiagnosticIntegerSensorIndex o, ::std::ostream* os) {
12476 *os << toString(o);
12477 }
12478
12479 template<>
12480 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex>(int32_t o) {
12481 using ::android::hardware::details::toHexString;
12482 std::string os;
12483 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex> flipped = 0;
12484 bool first = true;
12485 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CALCULATED_ENGINE_LOAD) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CALCULATED_ENGINE_LOAD)) {
12486 os += (first ? "" : " | ");
12487 os += "CALCULATED_ENGINE_LOAD";
12488 first = false;
12489 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CALCULATED_ENGINE_LOAD;
12490 }
12491 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_COOLANT_TEMPERATURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_COOLANT_TEMPERATURE)) {
12492 os += (first ? "" : " | ");
12493 os += "ENGINE_COOLANT_TEMPERATURE";
12494 first = false;
12495 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_COOLANT_TEMPERATURE;
12496 }
12497 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK1)) {
12498 os += (first ? "" : " | ");
12499 os += "SHORT_TERM_FUEL_TRIM_BANK1";
12500 first = false;
12501 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK1;
12502 }
12503 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK1)) {
12504 os += (first ? "" : " | ");
12505 os += "LONG_TERM_FUEL_TRIM_BANK1";
12506 first = false;
12507 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK1;
12508 }
12509 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK2)) {
12510 os += (first ? "" : " | ");
12511 os += "SHORT_TERM_FUEL_TRIM_BANK2";
12512 first = false;
12513 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK2;
12514 }
12515 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK2)) {
12516 os += (first ? "" : " | ");
12517 os += "LONG_TERM_FUEL_TRIM_BANK2";
12518 first = false;
12519 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK2;
12520 }
12521 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_PRESSURE)) {
12522 os += (first ? "" : " | ");
12523 os += "FUEL_PRESSURE";
12524 first = false;
12525 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_PRESSURE;
12526 }
12527 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::INTAKE_MANIFOLD_ABSOLUTE_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::INTAKE_MANIFOLD_ABSOLUTE_PRESSURE)) {
12528 os += (first ? "" : " | ");
12529 os += "INTAKE_MANIFOLD_ABSOLUTE_PRESSURE";
12530 first = false;
12531 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::INTAKE_MANIFOLD_ABSOLUTE_PRESSURE;
12532 }
12533 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_RPM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_RPM)) {
12534 os += (first ? "" : " | ");
12535 os += "ENGINE_RPM";
12536 first = false;
12537 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_RPM;
12538 }
12539 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::VEHICLE_SPEED) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::VEHICLE_SPEED)) {
12540 os += (first ? "" : " | ");
12541 os += "VEHICLE_SPEED";
12542 first = false;
12543 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::VEHICLE_SPEED;
12544 }
12545 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::TIMING_ADVANCE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::TIMING_ADVANCE)) {
12546 os += (first ? "" : " | ");
12547 os += "TIMING_ADVANCE";
12548 first = false;
12549 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::TIMING_ADVANCE;
12550 }
12551 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::MAF_AIR_FLOW_RATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::MAF_AIR_FLOW_RATE)) {
12552 os += (first ? "" : " | ");
12553 os += "MAF_AIR_FLOW_RATE";
12554 first = false;
12555 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::MAF_AIR_FLOW_RATE;
12556 }
12557 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::THROTTLE_POSITION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::THROTTLE_POSITION)) {
12558 os += (first ? "" : " | ");
12559 os += "THROTTLE_POSITION";
12560 first = false;
12561 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::THROTTLE_POSITION;
12562 }
12563 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_VOLTAGE)) {
12564 os += (first ? "" : " | ");
12565 os += "OXYGEN_SENSOR1_VOLTAGE";
12566 first = false;
12567 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_VOLTAGE;
12568 }
12569 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM)) {
12570 os += (first ? "" : " | ");
12571 os += "OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM";
12572 first = false;
12573 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM;
12574 }
12575 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO)) {
12576 os += (first ? "" : " | ");
12577 os += "OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO";
12578 first = false;
12579 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO;
12580 }
12581 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_VOLTAGE)) {
12582 os += (first ? "" : " | ");
12583 os += "OXYGEN_SENSOR2_VOLTAGE";
12584 first = false;
12585 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_VOLTAGE;
12586 }
12587 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM)) {
12588 os += (first ? "" : " | ");
12589 os += "OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM";
12590 first = false;
12591 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM;
12592 }
12593 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO)) {
12594 os += (first ? "" : " | ");
12595 os += "OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO";
12596 first = false;
12597 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO;
12598 }
12599 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_VOLTAGE)) {
12600 os += (first ? "" : " | ");
12601 os += "OXYGEN_SENSOR3_VOLTAGE";
12602 first = false;
12603 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_VOLTAGE;
12604 }
12605 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM)) {
12606 os += (first ? "" : " | ");
12607 os += "OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM";
12608 first = false;
12609 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM;
12610 }
12611 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO)) {
12612 os += (first ? "" : " | ");
12613 os += "OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO";
12614 first = false;
12615 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO;
12616 }
12617 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_VOLTAGE)) {
12618 os += (first ? "" : " | ");
12619 os += "OXYGEN_SENSOR4_VOLTAGE";
12620 first = false;
12621 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_VOLTAGE;
12622 }
12623 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM)) {
12624 os += (first ? "" : " | ");
12625 os += "OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM";
12626 first = false;
12627 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM;
12628 }
12629 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO)) {
12630 os += (first ? "" : " | ");
12631 os += "OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO";
12632 first = false;
12633 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO;
12634 }
12635 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_VOLTAGE)) {
12636 os += (first ? "" : " | ");
12637 os += "OXYGEN_SENSOR5_VOLTAGE";
12638 first = false;
12639 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_VOLTAGE;
12640 }
12641 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM)) {
12642 os += (first ? "" : " | ");
12643 os += "OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM";
12644 first = false;
12645 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM;
12646 }
12647 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO)) {
12648 os += (first ? "" : " | ");
12649 os += "OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO";
12650 first = false;
12651 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO;
12652 }
12653 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_VOLTAGE)) {
12654 os += (first ? "" : " | ");
12655 os += "OXYGEN_SENSOR6_VOLTAGE";
12656 first = false;
12657 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_VOLTAGE;
12658 }
12659 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM)) {
12660 os += (first ? "" : " | ");
12661 os += "OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM";
12662 first = false;
12663 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM;
12664 }
12665 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO)) {
12666 os += (first ? "" : " | ");
12667 os += "OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO";
12668 first = false;
12669 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO;
12670 }
12671 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_VOLTAGE)) {
12672 os += (first ? "" : " | ");
12673 os += "OXYGEN_SENSOR7_VOLTAGE";
12674 first = false;
12675 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_VOLTAGE;
12676 }
12677 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM)) {
12678 os += (first ? "" : " | ");
12679 os += "OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM";
12680 first = false;
12681 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM;
12682 }
12683 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO)) {
12684 os += (first ? "" : " | ");
12685 os += "OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO";
12686 first = false;
12687 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO;
12688 }
12689 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_VOLTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_VOLTAGE)) {
12690 os += (first ? "" : " | ");
12691 os += "OXYGEN_SENSOR8_VOLTAGE";
12692 first = false;
12693 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_VOLTAGE;
12694 }
12695 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM)) {
12696 os += (first ? "" : " | ");
12697 os += "OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM";
12698 first = false;
12699 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM;
12700 }
12701 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO)) {
12702 os += (first ? "" : " | ");
12703 os += "OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO";
12704 first = false;
12705 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO;
12706 }
12707 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_RAIL_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_RAIL_PRESSURE)) {
12708 os += (first ? "" : " | ");
12709 os += "FUEL_RAIL_PRESSURE";
12710 first = false;
12711 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_RAIL_PRESSURE;
12712 }
12713 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_RAIL_GAUGE_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_RAIL_GAUGE_PRESSURE)) {
12714 os += (first ? "" : " | ");
12715 os += "FUEL_RAIL_GAUGE_PRESSURE";
12716 first = false;
12717 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_RAIL_GAUGE_PRESSURE;
12718 }
12719 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_EXHAUST_GAS_RECIRCULATION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_EXHAUST_GAS_RECIRCULATION)) {
12720 os += (first ? "" : " | ");
12721 os += "COMMANDED_EXHAUST_GAS_RECIRCULATION";
12722 first = false;
12723 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_EXHAUST_GAS_RECIRCULATION;
12724 }
12725 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::EXHAUST_GAS_RECIRCULATION_ERROR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::EXHAUST_GAS_RECIRCULATION_ERROR)) {
12726 os += (first ? "" : " | ");
12727 os += "EXHAUST_GAS_RECIRCULATION_ERROR";
12728 first = false;
12729 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::EXHAUST_GAS_RECIRCULATION_ERROR;
12730 }
12731 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_EVAPORATIVE_PURGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_EVAPORATIVE_PURGE)) {
12732 os += (first ? "" : " | ");
12733 os += "COMMANDED_EVAPORATIVE_PURGE";
12734 first = false;
12735 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_EVAPORATIVE_PURGE;
12736 }
12737 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_TANK_LEVEL_INPUT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_TANK_LEVEL_INPUT)) {
12738 os += (first ? "" : " | ");
12739 os += "FUEL_TANK_LEVEL_INPUT";
12740 first = false;
12741 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_TANK_LEVEL_INPUT;
12742 }
12743 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::EVAPORATION_SYSTEM_VAPOR_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::EVAPORATION_SYSTEM_VAPOR_PRESSURE)) {
12744 os += (first ? "" : " | ");
12745 os += "EVAPORATION_SYSTEM_VAPOR_PRESSURE";
12746 first = false;
12747 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::EVAPORATION_SYSTEM_VAPOR_PRESSURE;
12748 }
12749 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR1)) {
12750 os += (first ? "" : " | ");
12751 os += "CATALYST_TEMPERATURE_BANK1_SENSOR1";
12752 first = false;
12753 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR1;
12754 }
12755 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK2_SENSOR1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK2_SENSOR1)) {
12756 os += (first ? "" : " | ");
12757 os += "CATALYST_TEMPERATURE_BANK2_SENSOR1";
12758 first = false;
12759 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK2_SENSOR1;
12760 }
12761 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR2)) {
12762 os += (first ? "" : " | ");
12763 os += "CATALYST_TEMPERATURE_BANK1_SENSOR2";
12764 first = false;
12765 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR2;
12766 }
12767 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK2_SENSOR2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK2_SENSOR2)) {
12768 os += (first ? "" : " | ");
12769 os += "CATALYST_TEMPERATURE_BANK2_SENSOR2";
12770 first = false;
12771 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK2_SENSOR2;
12772 }
12773 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_LOAD_VALUE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_LOAD_VALUE)) {
12774 os += (first ? "" : " | ");
12775 os += "ABSOLUTE_LOAD_VALUE";
12776 first = false;
12777 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_LOAD_VALUE;
12778 }
12779 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO)) {
12780 os += (first ? "" : " | ");
12781 os += "FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO";
12782 first = false;
12783 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO;
12784 }
12785 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::RELATIVE_THROTTLE_POSITION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::RELATIVE_THROTTLE_POSITION)) {
12786 os += (first ? "" : " | ");
12787 os += "RELATIVE_THROTTLE_POSITION";
12788 first = false;
12789 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::RELATIVE_THROTTLE_POSITION;
12790 }
12791 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_B) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_B)) {
12792 os += (first ? "" : " | ");
12793 os += "ABSOLUTE_THROTTLE_POSITION_B";
12794 first = false;
12795 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_B;
12796 }
12797 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_C) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_C)) {
12798 os += (first ? "" : " | ");
12799 os += "ABSOLUTE_THROTTLE_POSITION_C";
12800 first = false;
12801 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_C;
12802 }
12803 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_D) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_D)) {
12804 os += (first ? "" : " | ");
12805 os += "ACCELERATOR_PEDAL_POSITION_D";
12806 first = false;
12807 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_D;
12808 }
12809 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_E) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_E)) {
12810 os += (first ? "" : " | ");
12811 os += "ACCELERATOR_PEDAL_POSITION_E";
12812 first = false;
12813 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_E;
12814 }
12815 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_F) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_F)) {
12816 os += (first ? "" : " | ");
12817 os += "ACCELERATOR_PEDAL_POSITION_F";
12818 first = false;
12819 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_F;
12820 }
12821 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_THROTTLE_ACTUATOR) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_THROTTLE_ACTUATOR)) {
12822 os += (first ? "" : " | ");
12823 os += "COMMANDED_THROTTLE_ACTUATOR";
12824 first = false;
12825 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_THROTTLE_ACTUATOR;
12826 }
12827 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ETHANOL_FUEL_PERCENTAGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ETHANOL_FUEL_PERCENTAGE)) {
12828 os += (first ? "" : " | ");
12829 os += "ETHANOL_FUEL_PERCENTAGE";
12830 first = false;
12831 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ETHANOL_FUEL_PERCENTAGE;
12832 }
12833 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE)) {
12834 os += (first ? "" : " | ");
12835 os += "ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE";
12836 first = false;
12837 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE;
12838 }
12839 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1)) {
12840 os += (first ? "" : " | ");
12841 os += "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1";
12842 first = false;
12843 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1;
12844 }
12845 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2)) {
12846 os += (first ? "" : " | ");
12847 os += "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2";
12848 first = false;
12849 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2;
12850 }
12851 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3)) {
12852 os += (first ? "" : " | ");
12853 os += "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3";
12854 first = false;
12855 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3;
12856 }
12857 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4)) {
12858 os += (first ? "" : " | ");
12859 os += "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4";
12860 first = false;
12861 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4;
12862 }
12863 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1)) {
12864 os += (first ? "" : " | ");
12865 os += "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1";
12866 first = false;
12867 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1;
12868 }
12869 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2)) {
12870 os += (first ? "" : " | ");
12871 os += "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2";
12872 first = false;
12873 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2;
12874 }
12875 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3)) {
12876 os += (first ? "" : " | ");
12877 os += "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3";
12878 first = false;
12879 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3;
12880 }
12881 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4)) {
12882 os += (first ? "" : " | ");
12883 os += "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4";
12884 first = false;
12885 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4;
12886 }
12887 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::RELATIVE_ACCELERATOR_PEDAL_POSITION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::RELATIVE_ACCELERATOR_PEDAL_POSITION)) {
12888 os += (first ? "" : " | ");
12889 os += "RELATIVE_ACCELERATOR_PEDAL_POSITION";
12890 first = false;
12891 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::RELATIVE_ACCELERATOR_PEDAL_POSITION;
12892 }
12893 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::HYBRID_BATTERY_PACK_REMAINING_LIFE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::HYBRID_BATTERY_PACK_REMAINING_LIFE)) {
12894 os += (first ? "" : " | ");
12895 os += "HYBRID_BATTERY_PACK_REMAINING_LIFE";
12896 first = false;
12897 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::HYBRID_BATTERY_PACK_REMAINING_LIFE;
12898 }
12899 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_INJECTION_TIMING) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_INJECTION_TIMING)) {
12900 os += (first ? "" : " | ");
12901 os += "FUEL_INJECTION_TIMING";
12902 first = false;
12903 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_INJECTION_TIMING;
12904 }
12905 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_FUEL_RATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_FUEL_RATE)) {
12906 os += (first ? "" : " | ");
12907 os += "ENGINE_FUEL_RATE";
12908 first = false;
12909 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_FUEL_RATE;
12910 }
12911 if ((o & ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LAST_SYSTEM_INDEX) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LAST_SYSTEM_INDEX)) {
12912 os += (first ? "" : " | ");
12913 os += "LAST_SYSTEM_INDEX";
12914 first = false;
12915 flipped |= ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LAST_SYSTEM_INDEX;
12916 }
12917 if (o != flipped) {
12918 os += (first ? "" : " | ");
12919 os += toHexString(o & (~flipped));
12920 }os += " (";
12921 os += toHexString(o);
12922 os += ")";
12923 return os;
12924 }
12925
toString(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex o)12926 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex o) {
12927 using ::android::hardware::details::toHexString;
12928 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CALCULATED_ENGINE_LOAD) {
12929 return "CALCULATED_ENGINE_LOAD";
12930 }
12931 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_COOLANT_TEMPERATURE) {
12932 return "ENGINE_COOLANT_TEMPERATURE";
12933 }
12934 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK1) {
12935 return "SHORT_TERM_FUEL_TRIM_BANK1";
12936 }
12937 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK1) {
12938 return "LONG_TERM_FUEL_TRIM_BANK1";
12939 }
12940 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_FUEL_TRIM_BANK2) {
12941 return "SHORT_TERM_FUEL_TRIM_BANK2";
12942 }
12943 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_FUEL_TRIM_BANK2) {
12944 return "LONG_TERM_FUEL_TRIM_BANK2";
12945 }
12946 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_PRESSURE) {
12947 return "FUEL_PRESSURE";
12948 }
12949 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::INTAKE_MANIFOLD_ABSOLUTE_PRESSURE) {
12950 return "INTAKE_MANIFOLD_ABSOLUTE_PRESSURE";
12951 }
12952 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_RPM) {
12953 return "ENGINE_RPM";
12954 }
12955 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::VEHICLE_SPEED) {
12956 return "VEHICLE_SPEED";
12957 }
12958 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::TIMING_ADVANCE) {
12959 return "TIMING_ADVANCE";
12960 }
12961 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::MAF_AIR_FLOW_RATE) {
12962 return "MAF_AIR_FLOW_RATE";
12963 }
12964 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::THROTTLE_POSITION) {
12965 return "THROTTLE_POSITION";
12966 }
12967 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_VOLTAGE) {
12968 return "OXYGEN_SENSOR1_VOLTAGE";
12969 }
12970 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM) {
12971 return "OXYGEN_SENSOR1_SHORT_TERM_FUEL_TRIM";
12972 }
12973 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO) {
12974 return "OXYGEN_SENSOR1_FUEL_AIR_EQUIVALENCE_RATIO";
12975 }
12976 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_VOLTAGE) {
12977 return "OXYGEN_SENSOR2_VOLTAGE";
12978 }
12979 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM) {
12980 return "OXYGEN_SENSOR2_SHORT_TERM_FUEL_TRIM";
12981 }
12982 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO) {
12983 return "OXYGEN_SENSOR2_FUEL_AIR_EQUIVALENCE_RATIO";
12984 }
12985 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_VOLTAGE) {
12986 return "OXYGEN_SENSOR3_VOLTAGE";
12987 }
12988 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM) {
12989 return "OXYGEN_SENSOR3_SHORT_TERM_FUEL_TRIM";
12990 }
12991 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO) {
12992 return "OXYGEN_SENSOR3_FUEL_AIR_EQUIVALENCE_RATIO";
12993 }
12994 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_VOLTAGE) {
12995 return "OXYGEN_SENSOR4_VOLTAGE";
12996 }
12997 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM) {
12998 return "OXYGEN_SENSOR4_SHORT_TERM_FUEL_TRIM";
12999 }
13000 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO) {
13001 return "OXYGEN_SENSOR4_FUEL_AIR_EQUIVALENCE_RATIO";
13002 }
13003 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_VOLTAGE) {
13004 return "OXYGEN_SENSOR5_VOLTAGE";
13005 }
13006 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM) {
13007 return "OXYGEN_SENSOR5_SHORT_TERM_FUEL_TRIM";
13008 }
13009 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO) {
13010 return "OXYGEN_SENSOR5_FUEL_AIR_EQUIVALENCE_RATIO";
13011 }
13012 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_VOLTAGE) {
13013 return "OXYGEN_SENSOR6_VOLTAGE";
13014 }
13015 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM) {
13016 return "OXYGEN_SENSOR6_SHORT_TERM_FUEL_TRIM";
13017 }
13018 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO) {
13019 return "OXYGEN_SENSOR6_FUEL_AIR_EQUIVALENCE_RATIO";
13020 }
13021 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_VOLTAGE) {
13022 return "OXYGEN_SENSOR7_VOLTAGE";
13023 }
13024 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM) {
13025 return "OXYGEN_SENSOR7_SHORT_TERM_FUEL_TRIM";
13026 }
13027 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO) {
13028 return "OXYGEN_SENSOR7_FUEL_AIR_EQUIVALENCE_RATIO";
13029 }
13030 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_VOLTAGE) {
13031 return "OXYGEN_SENSOR8_VOLTAGE";
13032 }
13033 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM) {
13034 return "OXYGEN_SENSOR8_SHORT_TERM_FUEL_TRIM";
13035 }
13036 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO) {
13037 return "OXYGEN_SENSOR8_FUEL_AIR_EQUIVALENCE_RATIO";
13038 }
13039 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_RAIL_PRESSURE) {
13040 return "FUEL_RAIL_PRESSURE";
13041 }
13042 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_RAIL_GAUGE_PRESSURE) {
13043 return "FUEL_RAIL_GAUGE_PRESSURE";
13044 }
13045 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_EXHAUST_GAS_RECIRCULATION) {
13046 return "COMMANDED_EXHAUST_GAS_RECIRCULATION";
13047 }
13048 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::EXHAUST_GAS_RECIRCULATION_ERROR) {
13049 return "EXHAUST_GAS_RECIRCULATION_ERROR";
13050 }
13051 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_EVAPORATIVE_PURGE) {
13052 return "COMMANDED_EVAPORATIVE_PURGE";
13053 }
13054 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_TANK_LEVEL_INPUT) {
13055 return "FUEL_TANK_LEVEL_INPUT";
13056 }
13057 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::EVAPORATION_SYSTEM_VAPOR_PRESSURE) {
13058 return "EVAPORATION_SYSTEM_VAPOR_PRESSURE";
13059 }
13060 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR1) {
13061 return "CATALYST_TEMPERATURE_BANK1_SENSOR1";
13062 }
13063 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK2_SENSOR1) {
13064 return "CATALYST_TEMPERATURE_BANK2_SENSOR1";
13065 }
13066 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK1_SENSOR2) {
13067 return "CATALYST_TEMPERATURE_BANK1_SENSOR2";
13068 }
13069 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::CATALYST_TEMPERATURE_BANK2_SENSOR2) {
13070 return "CATALYST_TEMPERATURE_BANK2_SENSOR2";
13071 }
13072 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_LOAD_VALUE) {
13073 return "ABSOLUTE_LOAD_VALUE";
13074 }
13075 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO) {
13076 return "FUEL_AIR_COMMANDED_EQUIVALENCE_RATIO";
13077 }
13078 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::RELATIVE_THROTTLE_POSITION) {
13079 return "RELATIVE_THROTTLE_POSITION";
13080 }
13081 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_B) {
13082 return "ABSOLUTE_THROTTLE_POSITION_B";
13083 }
13084 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_THROTTLE_POSITION_C) {
13085 return "ABSOLUTE_THROTTLE_POSITION_C";
13086 }
13087 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_D) {
13088 return "ACCELERATOR_PEDAL_POSITION_D";
13089 }
13090 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_E) {
13091 return "ACCELERATOR_PEDAL_POSITION_E";
13092 }
13093 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ACCELERATOR_PEDAL_POSITION_F) {
13094 return "ACCELERATOR_PEDAL_POSITION_F";
13095 }
13096 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::COMMANDED_THROTTLE_ACTUATOR) {
13097 return "COMMANDED_THROTTLE_ACTUATOR";
13098 }
13099 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ETHANOL_FUEL_PERCENTAGE) {
13100 return "ETHANOL_FUEL_PERCENTAGE";
13101 }
13102 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE) {
13103 return "ABSOLUTE_EVAPORATION_SYSTEM_VAPOR_PRESSURE";
13104 }
13105 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1) {
13106 return "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1";
13107 }
13108 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2) {
13109 return "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2";
13110 }
13111 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3) {
13112 return "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3";
13113 }
13114 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4) {
13115 return "SHORT_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4";
13116 }
13117 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1) {
13118 return "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK1";
13119 }
13120 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2) {
13121 return "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK2";
13122 }
13123 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3) {
13124 return "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK3";
13125 }
13126 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4) {
13127 return "LONG_TERM_SECONDARY_OXYGEN_SENSOR_TRIM_BANK4";
13128 }
13129 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::RELATIVE_ACCELERATOR_PEDAL_POSITION) {
13130 return "RELATIVE_ACCELERATOR_PEDAL_POSITION";
13131 }
13132 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::HYBRID_BATTERY_PACK_REMAINING_LIFE) {
13133 return "HYBRID_BATTERY_PACK_REMAINING_LIFE";
13134 }
13135 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::FUEL_INJECTION_TIMING) {
13136 return "FUEL_INJECTION_TIMING";
13137 }
13138 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::ENGINE_FUEL_RATE) {
13139 return "ENGINE_FUEL_RATE";
13140 }
13141 if (o == ::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex::LAST_SYSTEM_INDEX) {
13142 return "LAST_SYSTEM_INDEX";
13143 }
13144 std::string os;
13145 os += toHexString(static_cast<int32_t>(o));
13146 return os;
13147 }
13148
PrintTo(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex o,::std::ostream * os)13149 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::DiagnosticFloatSensorIndex o, ::std::ostream* os) {
13150 *os << toString(o);
13151 }
13152
13153 template<>
13154 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsMessageType>(int32_t o) {
13155 using ::android::hardware::details::toHexString;
13156 std::string os;
13157 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsMessageType> flipped = 0;
13158 bool first = true;
13159 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIBE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIBE)) {
13160 os += (first ? "" : " | ");
13161 os += "SUBSCRIBE";
13162 first = false;
13163 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIBE;
13164 }
13165 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIBE_TO_PUBLISHER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIBE_TO_PUBLISHER)) {
13166 os += (first ? "" : " | ");
13167 os += "SUBSCRIBE_TO_PUBLISHER";
13168 first = false;
13169 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIBE_TO_PUBLISHER;
13170 }
13171 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::UNSUBSCRIBE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::UNSUBSCRIBE)) {
13172 os += (first ? "" : " | ");
13173 os += "UNSUBSCRIBE";
13174 first = false;
13175 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::UNSUBSCRIBE;
13176 }
13177 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::UNSUBSCRIBE_TO_PUBLISHER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::UNSUBSCRIBE_TO_PUBLISHER)) {
13178 os += (first ? "" : " | ");
13179 os += "UNSUBSCRIBE_TO_PUBLISHER";
13180 first = false;
13181 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::UNSUBSCRIBE_TO_PUBLISHER;
13182 }
13183 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::OFFERING) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::OFFERING)) {
13184 os += (first ? "" : " | ");
13185 os += "OFFERING";
13186 first = false;
13187 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::OFFERING;
13188 }
13189 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_REQUEST) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_REQUEST)) {
13190 os += (first ? "" : " | ");
13191 os += "AVAILABILITY_REQUEST";
13192 first = false;
13193 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_REQUEST;
13194 }
13195 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_REQUEST) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_REQUEST)) {
13196 os += (first ? "" : " | ");
13197 os += "SUBSCRIPTIONS_REQUEST";
13198 first = false;
13199 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_REQUEST;
13200 }
13201 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_RESPONSE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_RESPONSE)) {
13202 os += (first ? "" : " | ");
13203 os += "AVAILABILITY_RESPONSE";
13204 first = false;
13205 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_RESPONSE;
13206 }
13207 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_CHANGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_CHANGE)) {
13208 os += (first ? "" : " | ");
13209 os += "AVAILABILITY_CHANGE";
13210 first = false;
13211 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_CHANGE;
13212 }
13213 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_RESPONSE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_RESPONSE)) {
13214 os += (first ? "" : " | ");
13215 os += "SUBSCRIPTIONS_RESPONSE";
13216 first = false;
13217 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_RESPONSE;
13218 }
13219 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_CHANGE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_CHANGE)) {
13220 os += (first ? "" : " | ");
13221 os += "SUBSCRIPTIONS_CHANGE";
13222 first = false;
13223 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_CHANGE;
13224 }
13225 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::DATA) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::DATA)) {
13226 os += (first ? "" : " | ");
13227 os += "DATA";
13228 first = false;
13229 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::DATA;
13230 }
13231 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_ID_REQUEST) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_ID_REQUEST)) {
13232 os += (first ? "" : " | ");
13233 os += "PUBLISHER_ID_REQUEST";
13234 first = false;
13235 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_ID_REQUEST;
13236 }
13237 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_ID_RESPONSE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_ID_RESPONSE)) {
13238 os += (first ? "" : " | ");
13239 os += "PUBLISHER_ID_RESPONSE";
13240 first = false;
13241 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_ID_RESPONSE;
13242 }
13243 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_INFORMATION_REQUEST) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_INFORMATION_REQUEST)) {
13244 os += (first ? "" : " | ");
13245 os += "PUBLISHER_INFORMATION_REQUEST";
13246 first = false;
13247 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_INFORMATION_REQUEST;
13248 }
13249 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_INFORMATION_RESPONSE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_INFORMATION_RESPONSE)) {
13250 os += (first ? "" : " | ");
13251 os += "PUBLISHER_INFORMATION_RESPONSE";
13252 first = false;
13253 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_INFORMATION_RESPONSE;
13254 }
13255 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::START_SESSION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::START_SESSION)) {
13256 os += (first ? "" : " | ");
13257 os += "START_SESSION";
13258 first = false;
13259 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::START_SESSION;
13260 }
13261 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::LAST_VMS_MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageType::LAST_VMS_MESSAGE_TYPE)) {
13262 os += (first ? "" : " | ");
13263 os += "LAST_VMS_MESSAGE_TYPE";
13264 first = false;
13265 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::LAST_VMS_MESSAGE_TYPE;
13266 }
13267 if (o != flipped) {
13268 os += (first ? "" : " | ");
13269 os += toHexString(o & (~flipped));
13270 }os += " (";
13271 os += toHexString(o);
13272 os += ")";
13273 return os;
13274 }
13275
toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageType o)13276 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageType o) {
13277 using ::android::hardware::details::toHexString;
13278 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIBE) {
13279 return "SUBSCRIBE";
13280 }
13281 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIBE_TO_PUBLISHER) {
13282 return "SUBSCRIBE_TO_PUBLISHER";
13283 }
13284 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::UNSUBSCRIBE) {
13285 return "UNSUBSCRIBE";
13286 }
13287 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::UNSUBSCRIBE_TO_PUBLISHER) {
13288 return "UNSUBSCRIBE_TO_PUBLISHER";
13289 }
13290 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::OFFERING) {
13291 return "OFFERING";
13292 }
13293 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_REQUEST) {
13294 return "AVAILABILITY_REQUEST";
13295 }
13296 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_REQUEST) {
13297 return "SUBSCRIPTIONS_REQUEST";
13298 }
13299 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_RESPONSE) {
13300 return "AVAILABILITY_RESPONSE";
13301 }
13302 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::AVAILABILITY_CHANGE) {
13303 return "AVAILABILITY_CHANGE";
13304 }
13305 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_RESPONSE) {
13306 return "SUBSCRIPTIONS_RESPONSE";
13307 }
13308 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::SUBSCRIPTIONS_CHANGE) {
13309 return "SUBSCRIPTIONS_CHANGE";
13310 }
13311 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::DATA) {
13312 return "DATA";
13313 }
13314 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_ID_REQUEST) {
13315 return "PUBLISHER_ID_REQUEST";
13316 }
13317 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_ID_RESPONSE) {
13318 return "PUBLISHER_ID_RESPONSE";
13319 }
13320 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_INFORMATION_REQUEST) {
13321 return "PUBLISHER_INFORMATION_REQUEST";
13322 }
13323 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::PUBLISHER_INFORMATION_RESPONSE) {
13324 return "PUBLISHER_INFORMATION_RESPONSE";
13325 }
13326 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::START_SESSION) {
13327 return "START_SESSION";
13328 }
13329 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageType::LAST_VMS_MESSAGE_TYPE) {
13330 return "LAST_VMS_MESSAGE_TYPE";
13331 }
13332 std::string os;
13333 os += toHexString(static_cast<int32_t>(o));
13334 return os;
13335 }
13336
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageType o,::std::ostream * os)13337 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageType o, ::std::ostream* os) {
13338 *os << toString(o);
13339 }
13340
13341 template<>
13342 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex>(int32_t o) {
13343 using ::android::hardware::details::toHexString;
13344 std::string os;
13345 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex> flipped = 0;
13346 bool first = true;
13347 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex::MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex::MESSAGE_TYPE)) {
13348 os += (first ? "" : " | ");
13349 os += "MESSAGE_TYPE";
13350 first = false;
13351 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex::MESSAGE_TYPE;
13352 }
13353 if (o != flipped) {
13354 os += (first ? "" : " | ");
13355 os += toHexString(o & (~flipped));
13356 }os += " (";
13357 os += toHexString(o);
13358 os += ")";
13359 return os;
13360 }
13361
toString(::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex o)13362 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex o) {
13363 using ::android::hardware::details::toHexString;
13364 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex::MESSAGE_TYPE) {
13365 return "MESSAGE_TYPE";
13366 }
13367 std::string os;
13368 os += toHexString(static_cast<int32_t>(o));
13369 return os;
13370 }
13371
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex o,::std::ostream * os)13372 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsBaseMessageIntegerValuesIndex o, ::std::ostream* os) {
13373 *os << toString(o);
13374 }
13375
13376 template<>
13377 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex>(int32_t o) {
13378 using ::android::hardware::details::toHexString;
13379 std::string os;
13380 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex> flipped = 0;
13381 bool first = true;
13382 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::MESSAGE_TYPE)) {
13383 os += (first ? "" : " | ");
13384 os += "MESSAGE_TYPE";
13385 first = false;
13386 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::MESSAGE_TYPE;
13387 }
13388 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::SERVICE_ID) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::SERVICE_ID)) {
13389 os += (first ? "" : " | ");
13390 os += "SERVICE_ID";
13391 first = false;
13392 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::SERVICE_ID;
13393 }
13394 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::CLIENT_ID) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::CLIENT_ID)) {
13395 os += (first ? "" : " | ");
13396 os += "CLIENT_ID";
13397 first = false;
13398 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::CLIENT_ID;
13399 }
13400 if (o != flipped) {
13401 os += (first ? "" : " | ");
13402 os += toHexString(o & (~flipped));
13403 }os += " (";
13404 os += toHexString(o);
13405 os += ")";
13406 return os;
13407 }
13408
toString(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex o)13409 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex o) {
13410 using ::android::hardware::details::toHexString;
13411 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::MESSAGE_TYPE) {
13412 return "MESSAGE_TYPE";
13413 }
13414 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::SERVICE_ID) {
13415 return "SERVICE_ID";
13416 }
13417 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex::CLIENT_ID) {
13418 return "CLIENT_ID";
13419 }
13420 std::string os;
13421 os += toHexString(static_cast<int32_t>(o));
13422 return os;
13423 }
13424
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex o,::std::ostream * os)13425 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsStartSessionMessageIntegerValuesIndex o, ::std::ostream* os) {
13426 *os << toString(o);
13427 }
13428
13429 template<>
13430 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex>(int32_t o) {
13431 using ::android::hardware::details::toHexString;
13432 std::string os;
13433 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex> flipped = 0;
13434 bool first = true;
13435 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::MESSAGE_TYPE)) {
13436 os += (first ? "" : " | ");
13437 os += "MESSAGE_TYPE";
13438 first = false;
13439 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::MESSAGE_TYPE;
13440 }
13441 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_TYPE)) {
13442 os += (first ? "" : " | ");
13443 os += "LAYER_TYPE";
13444 first = false;
13445 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_TYPE;
13446 }
13447 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_SUBTYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_SUBTYPE)) {
13448 os += (first ? "" : " | ");
13449 os += "LAYER_SUBTYPE";
13450 first = false;
13451 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_SUBTYPE;
13452 }
13453 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_VERSION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_VERSION)) {
13454 os += (first ? "" : " | ");
13455 os += "LAYER_VERSION";
13456 first = false;
13457 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_VERSION;
13458 }
13459 if (o != flipped) {
13460 os += (first ? "" : " | ");
13461 os += toHexString(o & (~flipped));
13462 }os += " (";
13463 os += toHexString(o);
13464 os += ")";
13465 return os;
13466 }
13467
toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex o)13468 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex o) {
13469 using ::android::hardware::details::toHexString;
13470 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::MESSAGE_TYPE) {
13471 return "MESSAGE_TYPE";
13472 }
13473 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_TYPE) {
13474 return "LAYER_TYPE";
13475 }
13476 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_SUBTYPE) {
13477 return "LAYER_SUBTYPE";
13478 }
13479 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex::LAYER_VERSION) {
13480 return "LAYER_VERSION";
13481 }
13482 std::string os;
13483 os += toHexString(static_cast<int32_t>(o));
13484 return os;
13485 }
13486
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex o,::std::ostream * os)13487 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerIntegerValuesIndex o, ::std::ostream* os) {
13488 *os << toString(o);
13489 }
13490
13491 template<>
13492 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex>(int32_t o) {
13493 using ::android::hardware::details::toHexString;
13494 std::string os;
13495 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex> flipped = 0;
13496 bool first = true;
13497 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::MESSAGE_TYPE)) {
13498 os += (first ? "" : " | ");
13499 os += "MESSAGE_TYPE";
13500 first = false;
13501 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::MESSAGE_TYPE;
13502 }
13503 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_TYPE)) {
13504 os += (first ? "" : " | ");
13505 os += "LAYER_TYPE";
13506 first = false;
13507 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_TYPE;
13508 }
13509 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_SUBTYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_SUBTYPE)) {
13510 os += (first ? "" : " | ");
13511 os += "LAYER_SUBTYPE";
13512 first = false;
13513 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_SUBTYPE;
13514 }
13515 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_VERSION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_VERSION)) {
13516 os += (first ? "" : " | ");
13517 os += "LAYER_VERSION";
13518 first = false;
13519 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_VERSION;
13520 }
13521 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::PUBLISHER_ID) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::PUBLISHER_ID)) {
13522 os += (first ? "" : " | ");
13523 os += "PUBLISHER_ID";
13524 first = false;
13525 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::PUBLISHER_ID;
13526 }
13527 if (o != flipped) {
13528 os += (first ? "" : " | ");
13529 os += toHexString(o & (~flipped));
13530 }os += " (";
13531 os += toHexString(o);
13532 os += ")";
13533 return os;
13534 }
13535
toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex o)13536 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex o) {
13537 using ::android::hardware::details::toHexString;
13538 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::MESSAGE_TYPE) {
13539 return "MESSAGE_TYPE";
13540 }
13541 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_TYPE) {
13542 return "LAYER_TYPE";
13543 }
13544 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_SUBTYPE) {
13545 return "LAYER_SUBTYPE";
13546 }
13547 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::LAYER_VERSION) {
13548 return "LAYER_VERSION";
13549 }
13550 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex::PUBLISHER_ID) {
13551 return "PUBLISHER_ID";
13552 }
13553 std::string os;
13554 os += toHexString(static_cast<int32_t>(o));
13555 return os;
13556 }
13557
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex o,::std::ostream * os)13558 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsMessageWithLayerAndPublisherIdIntegerValuesIndex o, ::std::ostream* os) {
13559 *os << toString(o);
13560 }
13561
13562 template<>
13563 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex>(int32_t o) {
13564 using ::android::hardware::details::toHexString;
13565 std::string os;
13566 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex> flipped = 0;
13567 bool first = true;
13568 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::MESSAGE_TYPE)) {
13569 os += (first ? "" : " | ");
13570 os += "MESSAGE_TYPE";
13571 first = false;
13572 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::MESSAGE_TYPE;
13573 }
13574 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::PUBLISHER_ID) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::PUBLISHER_ID)) {
13575 os += (first ? "" : " | ");
13576 os += "PUBLISHER_ID";
13577 first = false;
13578 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::PUBLISHER_ID;
13579 }
13580 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::NUMBER_OF_OFFERS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::NUMBER_OF_OFFERS)) {
13581 os += (first ? "" : " | ");
13582 os += "NUMBER_OF_OFFERS";
13583 first = false;
13584 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::NUMBER_OF_OFFERS;
13585 }
13586 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::OFFERING_START) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::OFFERING_START)) {
13587 os += (first ? "" : " | ");
13588 os += "OFFERING_START";
13589 first = false;
13590 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::OFFERING_START;
13591 }
13592 if (o != flipped) {
13593 os += (first ? "" : " | ");
13594 os += toHexString(o & (~flipped));
13595 }os += " (";
13596 os += toHexString(o);
13597 os += ")";
13598 return os;
13599 }
13600
toString(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex o)13601 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex o) {
13602 using ::android::hardware::details::toHexString;
13603 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::MESSAGE_TYPE) {
13604 return "MESSAGE_TYPE";
13605 }
13606 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::PUBLISHER_ID) {
13607 return "PUBLISHER_ID";
13608 }
13609 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::NUMBER_OF_OFFERS) {
13610 return "NUMBER_OF_OFFERS";
13611 }
13612 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex::OFFERING_START) {
13613 return "OFFERING_START";
13614 }
13615 std::string os;
13616 os += toHexString(static_cast<int32_t>(o));
13617 return os;
13618 }
13619
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex o,::std::ostream * os)13620 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsOfferingMessageIntegerValuesIndex o, ::std::ostream* os) {
13621 *os << toString(o);
13622 }
13623
13624 template<>
13625 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex>(int32_t o) {
13626 using ::android::hardware::details::toHexString;
13627 std::string os;
13628 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex> flipped = 0;
13629 bool first = true;
13630 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::MESSAGE_TYPE)) {
13631 os += (first ? "" : " | ");
13632 os += "MESSAGE_TYPE";
13633 first = false;
13634 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::MESSAGE_TYPE;
13635 }
13636 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::SEQUENCE_NUMBER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::SEQUENCE_NUMBER)) {
13637 os += (first ? "" : " | ");
13638 os += "SEQUENCE_NUMBER";
13639 first = false;
13640 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::SEQUENCE_NUMBER;
13641 }
13642 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::NUMBER_OF_LAYERS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::NUMBER_OF_LAYERS)) {
13643 os += (first ? "" : " | ");
13644 os += "NUMBER_OF_LAYERS";
13645 first = false;
13646 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::NUMBER_OF_LAYERS;
13647 }
13648 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::NUMBER_OF_ASSOCIATED_LAYERS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::NUMBER_OF_ASSOCIATED_LAYERS)) {
13649 os += (first ? "" : " | ");
13650 os += "NUMBER_OF_ASSOCIATED_LAYERS";
13651 first = false;
13652 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::NUMBER_OF_ASSOCIATED_LAYERS;
13653 }
13654 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::SUBSCRIPTIONS_START) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::SUBSCRIPTIONS_START)) {
13655 os += (first ? "" : " | ");
13656 os += "SUBSCRIPTIONS_START";
13657 first = false;
13658 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::SUBSCRIPTIONS_START;
13659 }
13660 if (o != flipped) {
13661 os += (first ? "" : " | ");
13662 os += toHexString(o & (~flipped));
13663 }os += " (";
13664 os += toHexString(o);
13665 os += ")";
13666 return os;
13667 }
13668
toString(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex o)13669 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex o) {
13670 using ::android::hardware::details::toHexString;
13671 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::MESSAGE_TYPE) {
13672 return "MESSAGE_TYPE";
13673 }
13674 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::SEQUENCE_NUMBER) {
13675 return "SEQUENCE_NUMBER";
13676 }
13677 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::NUMBER_OF_LAYERS) {
13678 return "NUMBER_OF_LAYERS";
13679 }
13680 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::NUMBER_OF_ASSOCIATED_LAYERS) {
13681 return "NUMBER_OF_ASSOCIATED_LAYERS";
13682 }
13683 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex::SUBSCRIPTIONS_START) {
13684 return "SUBSCRIPTIONS_START";
13685 }
13686 std::string os;
13687 os += toHexString(static_cast<int32_t>(o));
13688 return os;
13689 }
13690
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex o,::std::ostream * os)13691 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsSubscriptionsStateIntegerValuesIndex o, ::std::ostream* os) {
13692 *os << toString(o);
13693 }
13694
13695 template<>
13696 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex>(int32_t o) {
13697 using ::android::hardware::details::toHexString;
13698 std::string os;
13699 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex> flipped = 0;
13700 bool first = true;
13701 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::MESSAGE_TYPE)) {
13702 os += (first ? "" : " | ");
13703 os += "MESSAGE_TYPE";
13704 first = false;
13705 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::MESSAGE_TYPE;
13706 }
13707 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::SEQUENCE_NUMBER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::SEQUENCE_NUMBER)) {
13708 os += (first ? "" : " | ");
13709 os += "SEQUENCE_NUMBER";
13710 first = false;
13711 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::SEQUENCE_NUMBER;
13712 }
13713 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::NUMBER_OF_ASSOCIATED_LAYERS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::NUMBER_OF_ASSOCIATED_LAYERS)) {
13714 os += (first ? "" : " | ");
13715 os += "NUMBER_OF_ASSOCIATED_LAYERS";
13716 first = false;
13717 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::NUMBER_OF_ASSOCIATED_LAYERS;
13718 }
13719 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::LAYERS_START) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::LAYERS_START)) {
13720 os += (first ? "" : " | ");
13721 os += "LAYERS_START";
13722 first = false;
13723 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::LAYERS_START;
13724 }
13725 if (o != flipped) {
13726 os += (first ? "" : " | ");
13727 os += toHexString(o & (~flipped));
13728 }os += " (";
13729 os += toHexString(o);
13730 os += ")";
13731 return os;
13732 }
13733
toString(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex o)13734 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex o) {
13735 using ::android::hardware::details::toHexString;
13736 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::MESSAGE_TYPE) {
13737 return "MESSAGE_TYPE";
13738 }
13739 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::SEQUENCE_NUMBER) {
13740 return "SEQUENCE_NUMBER";
13741 }
13742 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::NUMBER_OF_ASSOCIATED_LAYERS) {
13743 return "NUMBER_OF_ASSOCIATED_LAYERS";
13744 }
13745 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex::LAYERS_START) {
13746 return "LAYERS_START";
13747 }
13748 std::string os;
13749 os += toHexString(static_cast<int32_t>(o));
13750 return os;
13751 }
13752
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex o,::std::ostream * os)13753 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsAvailabilityStateIntegerValuesIndex o, ::std::ostream* os) {
13754 *os << toString(o);
13755 }
13756
13757 template<>
13758 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex>(int32_t o) {
13759 using ::android::hardware::details::toHexString;
13760 std::string os;
13761 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex> flipped = 0;
13762 bool first = true;
13763 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex::MESSAGE_TYPE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex::MESSAGE_TYPE)) {
13764 os += (first ? "" : " | ");
13765 os += "MESSAGE_TYPE";
13766 first = false;
13767 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex::MESSAGE_TYPE;
13768 }
13769 if ((o & ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex::PUBLISHER_ID) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex::PUBLISHER_ID)) {
13770 os += (first ? "" : " | ");
13771 os += "PUBLISHER_ID";
13772 first = false;
13773 flipped |= ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex::PUBLISHER_ID;
13774 }
13775 if (o != flipped) {
13776 os += (first ? "" : " | ");
13777 os += toHexString(o & (~flipped));
13778 }os += " (";
13779 os += toHexString(o);
13780 os += ")";
13781 return os;
13782 }
13783
toString(::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex o)13784 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex o) {
13785 using ::android::hardware::details::toHexString;
13786 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex::MESSAGE_TYPE) {
13787 return "MESSAGE_TYPE";
13788 }
13789 if (o == ::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex::PUBLISHER_ID) {
13790 return "PUBLISHER_ID";
13791 }
13792 std::string os;
13793 os += toHexString(static_cast<int32_t>(o));
13794 return os;
13795 }
13796
PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex o,::std::ostream * os)13797 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::VmsPublisherInformationIntegerValuesIndex o, ::std::ostream* os) {
13798 *os << toString(o);
13799 }
13800
13801 template<>
13802 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::UserFlags>(int32_t o) {
13803 using ::android::hardware::details::toHexString;
13804 std::string os;
13805 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::UserFlags> flipped = 0;
13806 bool first = true;
13807 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserFlags::NONE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserFlags::NONE)) {
13808 os += (first ? "" : " | ");
13809 os += "NONE";
13810 first = false;
13811 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserFlags::NONE;
13812 }
13813 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserFlags::SYSTEM) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserFlags::SYSTEM)) {
13814 os += (first ? "" : " | ");
13815 os += "SYSTEM";
13816 first = false;
13817 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserFlags::SYSTEM;
13818 }
13819 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserFlags::GUEST) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserFlags::GUEST)) {
13820 os += (first ? "" : " | ");
13821 os += "GUEST";
13822 first = false;
13823 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserFlags::GUEST;
13824 }
13825 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserFlags::EPHEMERAL) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserFlags::EPHEMERAL)) {
13826 os += (first ? "" : " | ");
13827 os += "EPHEMERAL";
13828 first = false;
13829 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserFlags::EPHEMERAL;
13830 }
13831 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserFlags::ADMIN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserFlags::ADMIN)) {
13832 os += (first ? "" : " | ");
13833 os += "ADMIN";
13834 first = false;
13835 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserFlags::ADMIN;
13836 }
13837 if (o != flipped) {
13838 os += (first ? "" : " | ");
13839 os += toHexString(o & (~flipped));
13840 }os += " (";
13841 os += toHexString(o);
13842 os += ")";
13843 return os;
13844 }
13845
toString(::android::hardware::automotive::vehicle::V2_0::UserFlags o)13846 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::UserFlags o) {
13847 using ::android::hardware::details::toHexString;
13848 if (o == ::android::hardware::automotive::vehicle::V2_0::UserFlags::NONE) {
13849 return "NONE";
13850 }
13851 if (o == ::android::hardware::automotive::vehicle::V2_0::UserFlags::SYSTEM) {
13852 return "SYSTEM";
13853 }
13854 if (o == ::android::hardware::automotive::vehicle::V2_0::UserFlags::GUEST) {
13855 return "GUEST";
13856 }
13857 if (o == ::android::hardware::automotive::vehicle::V2_0::UserFlags::EPHEMERAL) {
13858 return "EPHEMERAL";
13859 }
13860 if (o == ::android::hardware::automotive::vehicle::V2_0::UserFlags::ADMIN) {
13861 return "ADMIN";
13862 }
13863 std::string os;
13864 os += toHexString(static_cast<int32_t>(o));
13865 return os;
13866 }
13867
PrintTo(::android::hardware::automotive::vehicle::V2_0::UserFlags o,::std::ostream * os)13868 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::UserFlags o, ::std::ostream* os) {
13869 *os << toString(o);
13870 }
13871
toString(const::android::hardware::automotive::vehicle::V2_0::UserInfo & o)13872 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserInfo& o) {
13873 using ::android::hardware::toString;
13874 std::string os;
13875 os += "{";
13876 os += ".userId = ";
13877 os += ::android::hardware::toString(o.userId);
13878 os += ", .flags = ";
13879 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.flags);
13880 os += "}"; return os;
13881 }
13882
PrintTo(const::android::hardware::automotive::vehicle::V2_0::UserInfo & o,::std::ostream * os)13883 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserInfo& o, ::std::ostream* os) {
13884 *os << toString(o);
13885 }
13886
13887 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserInfo& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserInfo& rhs) {
13888 if (lhs.userId != rhs.userId) {
13889 return false;
13890 }
13891 if (lhs.flags != rhs.flags) {
13892 return false;
13893 }
13894 return true;
13895 }
13896
13897 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserInfo& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserInfo& rhs){
13898 return !(lhs == rhs);
13899 }
13900
toString(const::android::hardware::automotive::vehicle::V2_0::UsersInfo & o)13901 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& o) {
13902 using ::android::hardware::toString;
13903 std::string os;
13904 os += "{";
13905 os += ".currentUser = ";
13906 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.currentUser);
13907 os += ", .numberUsers = ";
13908 os += ::android::hardware::toString(o.numberUsers);
13909 os += ", .existingUsers = ";
13910 os += ::android::hardware::toString(o.existingUsers);
13911 os += "}"; return os;
13912 }
13913
PrintTo(const::android::hardware::automotive::vehicle::V2_0::UsersInfo & o,::std::ostream * os)13914 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& o, ::std::ostream* os) {
13915 *os << toString(o);
13916 }
13917
13918 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& lhs, const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& rhs) {
13919 if (lhs.currentUser != rhs.currentUser) {
13920 return false;
13921 }
13922 if (lhs.numberUsers != rhs.numberUsers) {
13923 return false;
13924 }
13925 if (lhs.existingUsers != rhs.existingUsers) {
13926 return false;
13927 }
13928 return true;
13929 }
13930
13931 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& lhs, const ::android::hardware::automotive::vehicle::V2_0::UsersInfo& rhs){
13932 return !(lhs == rhs);
13933 }
13934
13935 template<>
13936 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType>(int32_t o) {
13937 using ::android::hardware::details::toHexString;
13938 std::string os;
13939 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType> flipped = 0;
13940 bool first = true;
13941 if ((o & ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::FIRST_BOOT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::FIRST_BOOT)) {
13942 os += (first ? "" : " | ");
13943 os += "FIRST_BOOT";
13944 first = false;
13945 flipped |= ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::FIRST_BOOT;
13946 }
13947 if ((o & ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::FIRST_BOOT_AFTER_OTA) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::FIRST_BOOT_AFTER_OTA)) {
13948 os += (first ? "" : " | ");
13949 os += "FIRST_BOOT_AFTER_OTA";
13950 first = false;
13951 flipped |= ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::FIRST_BOOT_AFTER_OTA;
13952 }
13953 if ((o & ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::COLD_BOOT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::COLD_BOOT)) {
13954 os += (first ? "" : " | ");
13955 os += "COLD_BOOT";
13956 first = false;
13957 flipped |= ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::COLD_BOOT;
13958 }
13959 if ((o & ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::RESUME) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::RESUME)) {
13960 os += (first ? "" : " | ");
13961 os += "RESUME";
13962 first = false;
13963 flipped |= ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::RESUME;
13964 }
13965 if (o != flipped) {
13966 os += (first ? "" : " | ");
13967 os += toHexString(o & (~flipped));
13968 }os += " (";
13969 os += toHexString(o);
13970 os += ")";
13971 return os;
13972 }
13973
toString(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType o)13974 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType o) {
13975 using ::android::hardware::details::toHexString;
13976 if (o == ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::FIRST_BOOT) {
13977 return "FIRST_BOOT";
13978 }
13979 if (o == ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::FIRST_BOOT_AFTER_OTA) {
13980 return "FIRST_BOOT_AFTER_OTA";
13981 }
13982 if (o == ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::COLD_BOOT) {
13983 return "COLD_BOOT";
13984 }
13985 if (o == ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType::RESUME) {
13986 return "RESUME";
13987 }
13988 std::string os;
13989 os += toHexString(static_cast<int32_t>(o));
13990 return os;
13991 }
13992
PrintTo(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType o,::std::ostream * os)13993 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequestType o, ::std::ostream* os) {
13994 *os << toString(o);
13995 }
13996
toString(const::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest & o)13997 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& o) {
13998 using ::android::hardware::toString;
13999 std::string os;
14000 os += "{";
14001 os += ".requestId = ";
14002 os += ::android::hardware::toString(o.requestId);
14003 os += ", .requestType = ";
14004 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.requestType);
14005 os += ", .usersInfo = ";
14006 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.usersInfo);
14007 os += "}"; return os;
14008 }
14009
PrintTo(const::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest & o,::std::ostream * os)14010 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& o, ::std::ostream* os) {
14011 *os << toString(o);
14012 }
14013
14014 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& rhs) {
14015 if (lhs.requestId != rhs.requestId) {
14016 return false;
14017 }
14018 if (lhs.requestType != rhs.requestType) {
14019 return false;
14020 }
14021 if (lhs.usersInfo != rhs.usersInfo) {
14022 return false;
14023 }
14024 return true;
14025 }
14026
14027 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoRequest& rhs){
14028 return !(lhs == rhs);
14029 }
14030
14031 template<>
14032 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction>(int32_t o) {
14033 using ::android::hardware::details::toHexString;
14034 std::string os;
14035 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction> flipped = 0;
14036 bool first = true;
14037 if ((o & ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::DEFAULT) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::DEFAULT)) {
14038 os += (first ? "" : " | ");
14039 os += "DEFAULT";
14040 first = false;
14041 flipped |= ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::DEFAULT;
14042 }
14043 if ((o & ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::SWITCH)) {
14044 os += (first ? "" : " | ");
14045 os += "SWITCH";
14046 first = false;
14047 flipped |= ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::SWITCH;
14048 }
14049 if ((o & ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::CREATE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::CREATE)) {
14050 os += (first ? "" : " | ");
14051 os += "CREATE";
14052 first = false;
14053 flipped |= ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::CREATE;
14054 }
14055 if (o != flipped) {
14056 os += (first ? "" : " | ");
14057 os += toHexString(o & (~flipped));
14058 }os += " (";
14059 os += toHexString(o);
14060 os += ")";
14061 return os;
14062 }
14063
toString(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction o)14064 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction o) {
14065 using ::android::hardware::details::toHexString;
14066 if (o == ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::DEFAULT) {
14067 return "DEFAULT";
14068 }
14069 if (o == ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::SWITCH) {
14070 return "SWITCH";
14071 }
14072 if (o == ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction::CREATE) {
14073 return "CREATE";
14074 }
14075 std::string os;
14076 os += toHexString(static_cast<int32_t>(o));
14077 return os;
14078 }
14079
PrintTo(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction o,::std::ostream * os)14080 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponseAction o, ::std::ostream* os) {
14081 *os << toString(o);
14082 }
14083
toString(const::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse & o)14084 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& o) {
14085 using ::android::hardware::toString;
14086 std::string os;
14087 os += "{";
14088 os += ".requestId = ";
14089 os += ::android::hardware::toString(o.requestId);
14090 os += ", .action = ";
14091 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.action);
14092 os += ", .userToSwitchOrCreate = ";
14093 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.userToSwitchOrCreate);
14094 os += ", .userNameToCreate = ";
14095 os += ::android::hardware::toString(o.userNameToCreate);
14096 os += "}"; return os;
14097 }
14098
PrintTo(const::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse & o,::std::ostream * os)14099 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& o, ::std::ostream* os) {
14100 *os << toString(o);
14101 }
14102
14103 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& rhs) {
14104 if (lhs.requestId != rhs.requestId) {
14105 return false;
14106 }
14107 if (lhs.action != rhs.action) {
14108 return false;
14109 }
14110 if (lhs.userToSwitchOrCreate != rhs.userToSwitchOrCreate) {
14111 return false;
14112 }
14113 if (lhs.userNameToCreate != rhs.userNameToCreate) {
14114 return false;
14115 }
14116 return true;
14117 }
14118
14119 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::InitialUserInfoResponse& rhs){
14120 return !(lhs == rhs);
14121 }
14122
14123 template<>
14124 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType>(int32_t o) {
14125 using ::android::hardware::details::toHexString;
14126 std::string os;
14127 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType> flipped = 0;
14128 bool first = true;
14129 if ((o & ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::LEGACY_ANDROID_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::LEGACY_ANDROID_SWITCH)) {
14130 os += (first ? "" : " | ");
14131 os += "LEGACY_ANDROID_SWITCH";
14132 first = false;
14133 flipped |= ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::LEGACY_ANDROID_SWITCH;
14134 }
14135 if ((o & ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::ANDROID_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::ANDROID_SWITCH)) {
14136 os += (first ? "" : " | ");
14137 os += "ANDROID_SWITCH";
14138 first = false;
14139 flipped |= ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::ANDROID_SWITCH;
14140 }
14141 if ((o & ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::VEHICLE_RESPONSE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::VEHICLE_RESPONSE)) {
14142 os += (first ? "" : " | ");
14143 os += "VEHICLE_RESPONSE";
14144 first = false;
14145 flipped |= ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::VEHICLE_RESPONSE;
14146 }
14147 if ((o & ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::VEHICLE_REQUEST) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::VEHICLE_REQUEST)) {
14148 os += (first ? "" : " | ");
14149 os += "VEHICLE_REQUEST";
14150 first = false;
14151 flipped |= ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::VEHICLE_REQUEST;
14152 }
14153 if ((o & ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::ANDROID_POST_SWITCH) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::ANDROID_POST_SWITCH)) {
14154 os += (first ? "" : " | ");
14155 os += "ANDROID_POST_SWITCH";
14156 first = false;
14157 flipped |= ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::ANDROID_POST_SWITCH;
14158 }
14159 if (o != flipped) {
14160 os += (first ? "" : " | ");
14161 os += toHexString(o & (~flipped));
14162 }os += " (";
14163 os += toHexString(o);
14164 os += ")";
14165 return os;
14166 }
14167
toString(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType o)14168 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType o) {
14169 using ::android::hardware::details::toHexString;
14170 if (o == ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::LEGACY_ANDROID_SWITCH) {
14171 return "LEGACY_ANDROID_SWITCH";
14172 }
14173 if (o == ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::ANDROID_SWITCH) {
14174 return "ANDROID_SWITCH";
14175 }
14176 if (o == ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::VEHICLE_RESPONSE) {
14177 return "VEHICLE_RESPONSE";
14178 }
14179 if (o == ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::VEHICLE_REQUEST) {
14180 return "VEHICLE_REQUEST";
14181 }
14182 if (o == ::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType::ANDROID_POST_SWITCH) {
14183 return "ANDROID_POST_SWITCH";
14184 }
14185 std::string os;
14186 os += toHexString(static_cast<int32_t>(o));
14187 return os;
14188 }
14189
PrintTo(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType o,::std::ostream * os)14190 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::SwitchUserMessageType o, ::std::ostream* os) {
14191 *os << toString(o);
14192 }
14193
toString(const::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest & o)14194 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& o) {
14195 using ::android::hardware::toString;
14196 std::string os;
14197 os += "{";
14198 os += ".requestId = ";
14199 os += ::android::hardware::toString(o.requestId);
14200 os += ", .messageType = ";
14201 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.messageType);
14202 os += ", .targetUser = ";
14203 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.targetUser);
14204 os += ", .usersInfo = ";
14205 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.usersInfo);
14206 os += "}"; return os;
14207 }
14208
PrintTo(const::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest & o,::std::ostream * os)14209 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& o, ::std::ostream* os) {
14210 *os << toString(o);
14211 }
14212
14213 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& rhs) {
14214 if (lhs.requestId != rhs.requestId) {
14215 return false;
14216 }
14217 if (lhs.messageType != rhs.messageType) {
14218 return false;
14219 }
14220 if (lhs.targetUser != rhs.targetUser) {
14221 return false;
14222 }
14223 if (lhs.usersInfo != rhs.usersInfo) {
14224 return false;
14225 }
14226 return true;
14227 }
14228
14229 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserRequest& rhs){
14230 return !(lhs == rhs);
14231 }
14232
14233 template<>
14234 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus>(int32_t o) {
14235 using ::android::hardware::details::toHexString;
14236 std::string os;
14237 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus> flipped = 0;
14238 bool first = true;
14239 if ((o & ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus::SUCCESS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus::SUCCESS)) {
14240 os += (first ? "" : " | ");
14241 os += "SUCCESS";
14242 first = false;
14243 flipped |= ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus::SUCCESS;
14244 }
14245 if ((o & ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus::FAILURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus::FAILURE)) {
14246 os += (first ? "" : " | ");
14247 os += "FAILURE";
14248 first = false;
14249 flipped |= ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus::FAILURE;
14250 }
14251 if (o != flipped) {
14252 os += (first ? "" : " | ");
14253 os += toHexString(o & (~flipped));
14254 }os += " (";
14255 os += toHexString(o);
14256 os += ")";
14257 return os;
14258 }
14259
toString(::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus o)14260 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus o) {
14261 using ::android::hardware::details::toHexString;
14262 if (o == ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus::SUCCESS) {
14263 return "SUCCESS";
14264 }
14265 if (o == ::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus::FAILURE) {
14266 return "FAILURE";
14267 }
14268 std::string os;
14269 os += toHexString(static_cast<int32_t>(o));
14270 return os;
14271 }
14272
PrintTo(::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus o,::std::ostream * os)14273 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::SwitchUserStatus o, ::std::ostream* os) {
14274 *os << toString(o);
14275 }
14276
toString(const::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse & o)14277 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& o) {
14278 using ::android::hardware::toString;
14279 std::string os;
14280 os += "{";
14281 os += ".requestId = ";
14282 os += ::android::hardware::toString(o.requestId);
14283 os += ", .messageType = ";
14284 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.messageType);
14285 os += ", .status = ";
14286 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.status);
14287 os += ", .errorMessage = ";
14288 os += ::android::hardware::toString(o.errorMessage);
14289 os += "}"; return os;
14290 }
14291
PrintTo(const::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse & o,::std::ostream * os)14292 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& o, ::std::ostream* os) {
14293 *os << toString(o);
14294 }
14295
14296 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& rhs) {
14297 if (lhs.requestId != rhs.requestId) {
14298 return false;
14299 }
14300 if (lhs.messageType != rhs.messageType) {
14301 return false;
14302 }
14303 if (lhs.status != rhs.status) {
14304 return false;
14305 }
14306 if (lhs.errorMessage != rhs.errorMessage) {
14307 return false;
14308 }
14309 return true;
14310 }
14311
14312 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::SwitchUserResponse& rhs){
14313 return !(lhs == rhs);
14314 }
14315
toString(const::android::hardware::automotive::vehicle::V2_0::CreateUserRequest & o)14316 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& o) {
14317 using ::android::hardware::toString;
14318 std::string os;
14319 os += "{";
14320 os += ".requestId = ";
14321 os += ::android::hardware::toString(o.requestId);
14322 os += ", .newUserInfo = ";
14323 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.newUserInfo);
14324 os += ", .newUserName = ";
14325 os += ::android::hardware::toString(o.newUserName);
14326 os += ", .usersInfo = ";
14327 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.usersInfo);
14328 os += "}"; return os;
14329 }
14330
PrintTo(const::android::hardware::automotive::vehicle::V2_0::CreateUserRequest & o,::std::ostream * os)14331 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& o, ::std::ostream* os) {
14332 *os << toString(o);
14333 }
14334
14335 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& rhs) {
14336 if (lhs.requestId != rhs.requestId) {
14337 return false;
14338 }
14339 if (lhs.newUserInfo != rhs.newUserInfo) {
14340 return false;
14341 }
14342 if (lhs.newUserName != rhs.newUserName) {
14343 return false;
14344 }
14345 if (lhs.usersInfo != rhs.usersInfo) {
14346 return false;
14347 }
14348 return true;
14349 }
14350
14351 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserRequest& rhs){
14352 return !(lhs == rhs);
14353 }
14354
14355 template<>
14356 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::CreateUserStatus>(int32_t o) {
14357 using ::android::hardware::details::toHexString;
14358 std::string os;
14359 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::CreateUserStatus> flipped = 0;
14360 bool first = true;
14361 if ((o & ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus::SUCCESS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::CreateUserStatus::SUCCESS)) {
14362 os += (first ? "" : " | ");
14363 os += "SUCCESS";
14364 first = false;
14365 flipped |= ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus::SUCCESS;
14366 }
14367 if ((o & ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus::FAILURE) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::CreateUserStatus::FAILURE)) {
14368 os += (first ? "" : " | ");
14369 os += "FAILURE";
14370 first = false;
14371 flipped |= ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus::FAILURE;
14372 }
14373 if (o != flipped) {
14374 os += (first ? "" : " | ");
14375 os += toHexString(o & (~flipped));
14376 }os += " (";
14377 os += toHexString(o);
14378 os += ")";
14379 return os;
14380 }
14381
toString(::android::hardware::automotive::vehicle::V2_0::CreateUserStatus o)14382 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::CreateUserStatus o) {
14383 using ::android::hardware::details::toHexString;
14384 if (o == ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus::SUCCESS) {
14385 return "SUCCESS";
14386 }
14387 if (o == ::android::hardware::automotive::vehicle::V2_0::CreateUserStatus::FAILURE) {
14388 return "FAILURE";
14389 }
14390 std::string os;
14391 os += toHexString(static_cast<int32_t>(o));
14392 return os;
14393 }
14394
PrintTo(::android::hardware::automotive::vehicle::V2_0::CreateUserStatus o,::std::ostream * os)14395 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::CreateUserStatus o, ::std::ostream* os) {
14396 *os << toString(o);
14397 }
14398
toString(const::android::hardware::automotive::vehicle::V2_0::CreateUserResponse & o)14399 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& o) {
14400 using ::android::hardware::toString;
14401 std::string os;
14402 os += "{";
14403 os += ".requestId = ";
14404 os += ::android::hardware::toString(o.requestId);
14405 os += ", .status = ";
14406 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.status);
14407 os += ", .errorMessage = ";
14408 os += ::android::hardware::toString(o.errorMessage);
14409 os += "}"; return os;
14410 }
14411
PrintTo(const::android::hardware::automotive::vehicle::V2_0::CreateUserResponse & o,::std::ostream * os)14412 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& o, ::std::ostream* os) {
14413 *os << toString(o);
14414 }
14415
14416 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& rhs) {
14417 if (lhs.requestId != rhs.requestId) {
14418 return false;
14419 }
14420 if (lhs.status != rhs.status) {
14421 return false;
14422 }
14423 if (lhs.errorMessage != rhs.errorMessage) {
14424 return false;
14425 }
14426 return true;
14427 }
14428
14429 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::CreateUserResponse& rhs){
14430 return !(lhs == rhs);
14431 }
14432
toString(const::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest & o)14433 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& o) {
14434 using ::android::hardware::toString;
14435 std::string os;
14436 os += "{";
14437 os += ".requestId = ";
14438 os += ::android::hardware::toString(o.requestId);
14439 os += ", .removedUserInfo = ";
14440 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.removedUserInfo);
14441 os += ", .usersInfo = ";
14442 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.usersInfo);
14443 os += "}"; return os;
14444 }
14445
PrintTo(const::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest & o,::std::ostream * os)14446 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& o, ::std::ostream* os) {
14447 *os << toString(o);
14448 }
14449
14450 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& rhs) {
14451 if (lhs.requestId != rhs.requestId) {
14452 return false;
14453 }
14454 if (lhs.removedUserInfo != rhs.removedUserInfo) {
14455 return false;
14456 }
14457 if (lhs.usersInfo != rhs.usersInfo) {
14458 return false;
14459 }
14460 return true;
14461 }
14462
14463 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::RemoveUserRequest& rhs){
14464 return !(lhs == rhs);
14465 }
14466
14467 template<>
14468 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType>(int32_t o) {
14469 using ::android::hardware::details::toHexString;
14470 std::string os;
14471 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType> flipped = 0;
14472 bool first = true;
14473 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::KEY_FOB) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::KEY_FOB)) {
14474 os += (first ? "" : " | ");
14475 os += "KEY_FOB";
14476 first = false;
14477 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::KEY_FOB;
14478 }
14479 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_1) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_1)) {
14480 os += (first ? "" : " | ");
14481 os += "CUSTOM_1";
14482 first = false;
14483 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_1;
14484 }
14485 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_2) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_2)) {
14486 os += (first ? "" : " | ");
14487 os += "CUSTOM_2";
14488 first = false;
14489 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_2;
14490 }
14491 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_3) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_3)) {
14492 os += (first ? "" : " | ");
14493 os += "CUSTOM_3";
14494 first = false;
14495 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_3;
14496 }
14497 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_4) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_4)) {
14498 os += (first ? "" : " | ");
14499 os += "CUSTOM_4";
14500 first = false;
14501 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_4;
14502 }
14503 if (o != flipped) {
14504 os += (first ? "" : " | ");
14505 os += toHexString(o & (~flipped));
14506 }os += " (";
14507 os += toHexString(o);
14508 os += ")";
14509 return os;
14510 }
14511
toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType o)14512 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType o) {
14513 using ::android::hardware::details::toHexString;
14514 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::KEY_FOB) {
14515 return "KEY_FOB";
14516 }
14517 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_1) {
14518 return "CUSTOM_1";
14519 }
14520 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_2) {
14521 return "CUSTOM_2";
14522 }
14523 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_3) {
14524 return "CUSTOM_3";
14525 }
14526 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType::CUSTOM_4) {
14527 return "CUSTOM_4";
14528 }
14529 std::string os;
14530 os += toHexString(static_cast<int32_t>(o));
14531 return os;
14532 }
14533
PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType o,::std::ostream * os)14534 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationType o, ::std::ostream* os) {
14535 *os << toString(o);
14536 }
14537
14538 template<>
14539 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue>(int32_t o) {
14540 using ::android::hardware::details::toHexString;
14541 std::string os;
14542 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue> flipped = 0;
14543 bool first = true;
14544 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::UNKNOWN) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::UNKNOWN)) {
14545 os += (first ? "" : " | ");
14546 os += "UNKNOWN";
14547 first = false;
14548 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::UNKNOWN;
14549 }
14550 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::ASSOCIATED_CURRENT_USER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::ASSOCIATED_CURRENT_USER)) {
14551 os += (first ? "" : " | ");
14552 os += "ASSOCIATED_CURRENT_USER";
14553 first = false;
14554 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::ASSOCIATED_CURRENT_USER;
14555 }
14556 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::ASSOCIATED_ANOTHER_USER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::ASSOCIATED_ANOTHER_USER)) {
14557 os += (first ? "" : " | ");
14558 os += "ASSOCIATED_ANOTHER_USER";
14559 first = false;
14560 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::ASSOCIATED_ANOTHER_USER;
14561 }
14562 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::NOT_ASSOCIATED_ANY_USER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::NOT_ASSOCIATED_ANY_USER)) {
14563 os += (first ? "" : " | ");
14564 os += "NOT_ASSOCIATED_ANY_USER";
14565 first = false;
14566 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::NOT_ASSOCIATED_ANY_USER;
14567 }
14568 if (o != flipped) {
14569 os += (first ? "" : " | ");
14570 os += toHexString(o & (~flipped));
14571 }os += " (";
14572 os += toHexString(o);
14573 os += ")";
14574 return os;
14575 }
14576
toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue o)14577 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue o) {
14578 using ::android::hardware::details::toHexString;
14579 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::UNKNOWN) {
14580 return "UNKNOWN";
14581 }
14582 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::ASSOCIATED_CURRENT_USER) {
14583 return "ASSOCIATED_CURRENT_USER";
14584 }
14585 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::ASSOCIATED_ANOTHER_USER) {
14586 return "ASSOCIATED_ANOTHER_USER";
14587 }
14588 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue::NOT_ASSOCIATED_ANY_USER) {
14589 return "NOT_ASSOCIATED_ANY_USER";
14590 }
14591 std::string os;
14592 os += toHexString(static_cast<int32_t>(o));
14593 return os;
14594 }
14595
PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue o,::std::ostream * os)14596 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationValue o, ::std::ostream* os) {
14597 *os << toString(o);
14598 }
14599
14600 template<>
14601 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue>(int32_t o) {
14602 using ::android::hardware::details::toHexString;
14603 std::string os;
14604 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue> flipped = 0;
14605 bool first = true;
14606 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::ASSOCIATE_CURRENT_USER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::ASSOCIATE_CURRENT_USER)) {
14607 os += (first ? "" : " | ");
14608 os += "ASSOCIATE_CURRENT_USER";
14609 first = false;
14610 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::ASSOCIATE_CURRENT_USER;
14611 }
14612 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::DISASSOCIATE_CURRENT_USER) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::DISASSOCIATE_CURRENT_USER)) {
14613 os += (first ? "" : " | ");
14614 os += "DISASSOCIATE_CURRENT_USER";
14615 first = false;
14616 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::DISASSOCIATE_CURRENT_USER;
14617 }
14618 if ((o & ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::DISASSOCIATE_ALL_USERS) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::DISASSOCIATE_ALL_USERS)) {
14619 os += (first ? "" : " | ");
14620 os += "DISASSOCIATE_ALL_USERS";
14621 first = false;
14622 flipped |= ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::DISASSOCIATE_ALL_USERS;
14623 }
14624 if (o != flipped) {
14625 os += (first ? "" : " | ");
14626 os += toHexString(o & (~flipped));
14627 }os += " (";
14628 os += toHexString(o);
14629 os += ")";
14630 return os;
14631 }
14632
toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue o)14633 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue o) {
14634 using ::android::hardware::details::toHexString;
14635 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::ASSOCIATE_CURRENT_USER) {
14636 return "ASSOCIATE_CURRENT_USER";
14637 }
14638 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::DISASSOCIATE_CURRENT_USER) {
14639 return "DISASSOCIATE_CURRENT_USER";
14640 }
14641 if (o == ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue::DISASSOCIATE_ALL_USERS) {
14642 return "DISASSOCIATE_ALL_USERS";
14643 }
14644 std::string os;
14645 os += toHexString(static_cast<int32_t>(o));
14646 return os;
14647 }
14648
PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue o,::std::ostream * os)14649 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociationSetValue o, ::std::ostream* os) {
14650 *os << toString(o);
14651 }
14652
toString(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest & o)14653 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& o) {
14654 using ::android::hardware::toString;
14655 std::string os;
14656 os += "{";
14657 os += ".userInfo = ";
14658 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.userInfo);
14659 os += ", .numberAssociationTypes = ";
14660 os += ::android::hardware::toString(o.numberAssociationTypes);
14661 os += ", .associationTypes = ";
14662 os += ::android::hardware::toString(o.associationTypes);
14663 os += "}"; return os;
14664 }
14665
PrintTo(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest & o,::std::ostream * os)14666 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& o, ::std::ostream* os) {
14667 *os << toString(o);
14668 }
14669
14670 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& rhs) {
14671 if (lhs.userInfo != rhs.userInfo) {
14672 return false;
14673 }
14674 if (lhs.numberAssociationTypes != rhs.numberAssociationTypes) {
14675 return false;
14676 }
14677 if (lhs.associationTypes != rhs.associationTypes) {
14678 return false;
14679 }
14680 return true;
14681 }
14682
14683 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationGetRequest& rhs){
14684 return !(lhs == rhs);
14685 }
14686
toString(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest & o)14687 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& o) {
14688 using ::android::hardware::toString;
14689 std::string os;
14690 os += "{";
14691 os += ".userInfo = ";
14692 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.userInfo);
14693 os += ", .numberAssociations = ";
14694 os += ::android::hardware::toString(o.numberAssociations);
14695 os += ", .associations = ";
14696 os += ::android::hardware::toString(o.associations);
14697 os += "}"; return os;
14698 }
14699
PrintTo(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest & o,::std::ostream * os)14700 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& o, ::std::ostream* os) {
14701 *os << toString(o);
14702 }
14703
14704 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& rhs) {
14705 if (lhs.userInfo != rhs.userInfo) {
14706 return false;
14707 }
14708 if (lhs.numberAssociations != rhs.numberAssociations) {
14709 return false;
14710 }
14711 if (lhs.associations != rhs.associations) {
14712 return false;
14713 }
14714 return true;
14715 }
14716
14717 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetRequest& rhs){
14718 return !(lhs == rhs);
14719 }
14720
toString(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse & o)14721 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& o) {
14722 using ::android::hardware::toString;
14723 std::string os;
14724 os += "{";
14725 os += ".numberAssociation = ";
14726 os += ::android::hardware::toString(o.numberAssociation);
14727 os += ", .associations = ";
14728 os += ::android::hardware::toString(o.associations);
14729 os += ", .errorMessage = ";
14730 os += ::android::hardware::toString(o.errorMessage);
14731 os += "}"; return os;
14732 }
14733
PrintTo(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse & o,::std::ostream * os)14734 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& o, ::std::ostream* os) {
14735 *os << toString(o);
14736 }
14737
14738 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& rhs) {
14739 if (lhs.numberAssociation != rhs.numberAssociation) {
14740 return false;
14741 }
14742 if (lhs.associations != rhs.associations) {
14743 return false;
14744 }
14745 if (lhs.errorMessage != rhs.errorMessage) {
14746 return false;
14747 }
14748 return true;
14749 }
14750
14751 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationResponse& rhs){
14752 return !(lhs == rhs);
14753 }
14754
toString(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation & o)14755 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& o) {
14756 using ::android::hardware::toString;
14757 std::string os;
14758 os += "{";
14759 os += ".type = ";
14760 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.type);
14761 os += ", .value = ";
14762 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.value);
14763 os += "}"; return os;
14764 }
14765
PrintTo(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation & o,::std::ostream * os)14766 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& o, ::std::ostream* os) {
14767 *os << toString(o);
14768 }
14769
14770 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& rhs) {
14771 if (lhs.type != rhs.type) {
14772 return false;
14773 }
14774 if (lhs.value != rhs.value) {
14775 return false;
14776 }
14777 return true;
14778 }
14779
14780 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationAssociation& rhs){
14781 return !(lhs == rhs);
14782 }
14783
toString(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation & o)14784 static inline std::string toString(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& o) {
14785 using ::android::hardware::toString;
14786 std::string os;
14787 os += "{";
14788 os += ".type = ";
14789 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.type);
14790 os += ", .value = ";
14791 os += ::android::hardware::automotive::vehicle::V2_0::toString(o.value);
14792 os += "}"; return os;
14793 }
14794
PrintTo(const::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation & o,::std::ostream * os)14795 static inline void PrintTo(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& o, ::std::ostream* os) {
14796 *os << toString(o);
14797 }
14798
14799 static inline bool operator==(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& rhs) {
14800 if (lhs.type != rhs.type) {
14801 return false;
14802 }
14803 if (lhs.value != rhs.value) {
14804 return false;
14805 }
14806 return true;
14807 }
14808
14809 static inline bool operator!=(const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& lhs, const ::android::hardware::automotive::vehicle::V2_0::UserIdentificationSetAssociation& rhs){
14810 return !(lhs == rhs);
14811 }
14812
14813 template<>
14814 inline std::string toString<::android::hardware::automotive::vehicle::V2_0::RotaryInputType>(int32_t o) {
14815 using ::android::hardware::details::toHexString;
14816 std::string os;
14817 ::android::hardware::hidl_bitfield<::android::hardware::automotive::vehicle::V2_0::RotaryInputType> flipped = 0;
14818 bool first = true;
14819 if ((o & ::android::hardware::automotive::vehicle::V2_0::RotaryInputType::ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::RotaryInputType::ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION)) {
14820 os += (first ? "" : " | ");
14821 os += "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION";
14822 first = false;
14823 flipped |= ::android::hardware::automotive::vehicle::V2_0::RotaryInputType::ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION;
14824 }
14825 if ((o & ::android::hardware::automotive::vehicle::V2_0::RotaryInputType::ROTARY_INPUT_TYPE_AUDIO_VOLUME) == static_cast<int32_t>(::android::hardware::automotive::vehicle::V2_0::RotaryInputType::ROTARY_INPUT_TYPE_AUDIO_VOLUME)) {
14826 os += (first ? "" : " | ");
14827 os += "ROTARY_INPUT_TYPE_AUDIO_VOLUME";
14828 first = false;
14829 flipped |= ::android::hardware::automotive::vehicle::V2_0::RotaryInputType::ROTARY_INPUT_TYPE_AUDIO_VOLUME;
14830 }
14831 if (o != flipped) {
14832 os += (first ? "" : " | ");
14833 os += toHexString(o & (~flipped));
14834 }os += " (";
14835 os += toHexString(o);
14836 os += ")";
14837 return os;
14838 }
14839
toString(::android::hardware::automotive::vehicle::V2_0::RotaryInputType o)14840 static inline std::string toString(::android::hardware::automotive::vehicle::V2_0::RotaryInputType o) {
14841 using ::android::hardware::details::toHexString;
14842 if (o == ::android::hardware::automotive::vehicle::V2_0::RotaryInputType::ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION) {
14843 return "ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION";
14844 }
14845 if (o == ::android::hardware::automotive::vehicle::V2_0::RotaryInputType::ROTARY_INPUT_TYPE_AUDIO_VOLUME) {
14846 return "ROTARY_INPUT_TYPE_AUDIO_VOLUME";
14847 }
14848 std::string os;
14849 os += toHexString(static_cast<int32_t>(o));
14850 return os;
14851 }
14852
PrintTo(::android::hardware::automotive::vehicle::V2_0::RotaryInputType o,::std::ostream * os)14853 static inline void PrintTo(::android::hardware::automotive::vehicle::V2_0::RotaryInputType o, ::std::ostream* os) {
14854 *os << toString(o);
14855 }
14856
14857
14858 } // namespace V2_0
14859 } // namespace vehicle
14860 } // namespace automotive
14861 } // namespace hardware
14862 } // namespace android
14863
14864 #endif // HIDL_GENERATED_ANDROID_HARDWARE_AUTOMOTIVE_VEHICLE_V2_0_TYPES_H
14865