1 /*
2 * Copyright (C) 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #ifndef android_hardware_automotive_vehicle_aidl_impl_default_config_include_DefaultConfig_H_
18 #define android_hardware_automotive_vehicle_aidl_impl_default_config_include_DefaultConfig_H_
19
20 #include <PropertyUtils.h>
21 #include <TestPropertyUtils.h>
22 #include <VehicleHalTypes.h>
23
24 #include <map>
25 #include <vector>
26
27 namespace android {
28 namespace hardware {
29 namespace automotive {
30 namespace vehicle {
31
32 // Types used in configs, not to be exposed as public API.
33 namespace defaultconfig_impl {
34
35 using ::aidl::android::hardware::automotive::vehicle::EvConnectorType;
36 using ::aidl::android::hardware::automotive::vehicle::EvsServiceState;
37 using ::aidl::android::hardware::automotive::vehicle::EvsServiceType;
38 using ::aidl::android::hardware::automotive::vehicle::FuelType;
39 using ::aidl::android::hardware::automotive::vehicle::RawPropValues;
40 using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerStateReport;
41 using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerStateReq;
42 using ::aidl::android::hardware::automotive::vehicle::VehicleAreaConfig;
43 using ::aidl::android::hardware::automotive::vehicle::VehicleAreaMirror;
44 using ::aidl::android::hardware::automotive::vehicle::VehicleAreaWindow;
45 using ::aidl::android::hardware::automotive::vehicle::VehicleGear;
46 using ::aidl::android::hardware::automotive::vehicle::VehicleHvacFanDirection;
47 using ::aidl::android::hardware::automotive::vehicle::VehicleIgnitionState;
48 using ::aidl::android::hardware::automotive::vehicle::VehicleOilLevel;
49 using ::aidl::android::hardware::automotive::vehicle::VehiclePropConfig;
50 using ::aidl::android::hardware::automotive::vehicle::VehicleProperty;
51 using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyAccess;
52 using ::aidl::android::hardware::automotive::vehicle::VehiclePropertyChangeMode;
53 using ::aidl::android::hardware::automotive::vehicle::VehicleSeatOccupancyState;
54 using ::aidl::android::hardware::automotive::vehicle::VehicleTurnSignal;
55 using ::aidl::android::hardware::automotive::vehicle::VehicleUnit;
56 using ::aidl::android::hardware::automotive::vehicle::VehicleVendorPermission;
57
58 struct ConfigDeclaration {
59 VehiclePropConfig config;
60
61 // This value will be used as an initial value for the property. If this field is specified for
62 // property that supports multiple areas then it will be used for all areas unless particular
63 // area is overridden in initialAreaValue field.
64 RawPropValues initialValue;
65 // Use initialAreaValues if it is necessary to specify different values per each area.
66 std::map<int32_t, RawPropValues> initialAreaValues;
67 };
68
69 const std::vector<ConfigDeclaration> kVehicleProperties = {
70 {.config =
71 {
72 .prop = toInt(VehicleProperty::INFO_FUEL_CAPACITY),
73 .access = VehiclePropertyAccess::READ,
74 .changeMode = VehiclePropertyChangeMode::STATIC,
75 },
76 .initialValue = {.floatValues = {15000.0f}}},
77
78 {.config =
79 {
80 .prop = toInt(VehicleProperty::INFO_FUEL_TYPE),
81 .access = VehiclePropertyAccess::READ,
82 .changeMode = VehiclePropertyChangeMode::STATIC,
83 },
84 .initialValue = {.int32Values = {toInt(FuelType::FUEL_TYPE_UNLEADED)}}},
85
86 {.config =
87 {
88 .prop = toInt(VehicleProperty::INFO_EV_BATTERY_CAPACITY),
89 .access = VehiclePropertyAccess::READ,
90 .changeMode = VehiclePropertyChangeMode::STATIC,
91 },
92 .initialValue = {.floatValues = {150000.0f}}},
93
94 {.config =
95 {
96 .prop = toInt(VehicleProperty::INFO_EV_CONNECTOR_TYPE),
97 .access = VehiclePropertyAccess::READ,
98 .changeMode = VehiclePropertyChangeMode::STATIC,
99 },
100 .initialValue = {.int32Values = {toInt(EvConnectorType::IEC_TYPE_1_AC)}}},
101
102 {.config =
103 {
104 .prop = toInt(VehicleProperty::INFO_FUEL_DOOR_LOCATION),
105 .access = VehiclePropertyAccess::READ,
106 .changeMode = VehiclePropertyChangeMode::STATIC,
107 },
108 .initialValue = {.int32Values = {FUEL_DOOR_REAR_LEFT}}},
109
110 {.config =
111 {
112 .prop = toInt(VehicleProperty::INFO_EV_PORT_LOCATION),
113 .access = VehiclePropertyAccess::READ,
114 .changeMode = VehiclePropertyChangeMode::STATIC,
115 },
116 .initialValue = {.int32Values = {CHARGE_PORT_FRONT_LEFT}}},
117
118 {.config =
119 {
120 .prop = toInt(VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS),
121 .access = VehiclePropertyAccess::READ,
122 .changeMode = VehiclePropertyChangeMode::STATIC,
123 },
124 .initialValue = {.int32Values = {CHARGE_PORT_FRONT_LEFT, CHARGE_PORT_REAR_LEFT}}},
125
126 {.config =
127 {
128 .prop = toInt(VehicleProperty::INFO_VIN),
129 .access = VehiclePropertyAccess::READ,
130 .changeMode = VehiclePropertyChangeMode::STATIC,
131 },
132 .initialValue = {.stringValue = "1GCARVIN123456789"}},
133 {.config =
134 {
135 .prop = toInt(VehicleProperty::INFO_MAKE),
136 .access = VehiclePropertyAccess::READ,
137 .changeMode = VehiclePropertyChangeMode::STATIC,
138 },
139 .initialValue = {.stringValue = "Toy Vehicle"}},
140 {.config =
141 {
142 .prop = toInt(VehicleProperty::INFO_MODEL),
143 .access = VehiclePropertyAccess::READ,
144 .changeMode = VehiclePropertyChangeMode::STATIC,
145 },
146 .initialValue = {.stringValue = "Speedy Model"}},
147 {.config =
148 {
149 .prop = toInt(VehicleProperty::INFO_MODEL_YEAR),
150 .access = VehiclePropertyAccess::READ,
151 .changeMode = VehiclePropertyChangeMode::STATIC,
152 },
153 .initialValue = {.int32Values = {2020}}},
154 {.config =
155 {
156 .prop = toInt(VehicleProperty::INFO_EXTERIOR_DIMENSIONS),
157 .access = VehiclePropertyAccess::READ,
158 .changeMode = VehiclePropertyChangeMode::STATIC,
159 },
160 .initialValue = {.int32Values = {1776, 4950, 2008, 2140, 2984, 1665, 1667, 11800}}},
161 {.config =
162 {
163 .prop = toInt(VehicleProperty::PERF_VEHICLE_SPEED),
164 .access = VehiclePropertyAccess::READ,
165 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
166 .minSampleRate = 1.0f,
167 .maxSampleRate = 10.0f,
168 },
169 .initialValue = {.floatValues = {0.0f}}},
170 {.config =
171 {
172 .prop = toInt(VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY),
173 .access = VehiclePropertyAccess::READ,
174 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
175 .minSampleRate = 1.0f,
176 .maxSampleRate = 10.0f,
177 },
178 .initialValue = {.floatValues = {0.0f}}},
179 {.config =
180 {
181 .prop = toInt(VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS),
182 .access = VehiclePropertyAccess::READ_WRITE,
183 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
184 .configArray = {toInt(VehicleUnit::METER_PER_SEC),
185 toInt(VehicleUnit::MILES_PER_HOUR),
186 toInt(VehicleUnit::KILOMETERS_PER_HOUR)},
187 },
188 .initialValue = {.int32Values = {toInt(VehicleUnit::MILES_PER_HOUR)}}},
189
190 {.config =
191 {
192 .prop = toInt(VehicleProperty::EV_BATTERY_DISPLAY_UNITS),
193 .access = VehiclePropertyAccess::READ_WRITE,
194 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
195 .configArray = {toInt(VehicleUnit::WATT_HOUR),
196 toInt(VehicleUnit::AMPERE_HOURS),
197 toInt(VehicleUnit::KILOWATT_HOUR)},
198 },
199 .initialValue = {.int32Values = {toInt(VehicleUnit::KILOWATT_HOUR)}}},
200
201 {.config = {.prop = toInt(VehicleProperty::SEAT_MEMORY_SELECT),
202 .access = VehiclePropertyAccess::WRITE,
203 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
204 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
205 .minInt32Value = 0,
206 .maxInt32Value = 3},
207 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
208 .minInt32Value = 0,
209 .maxInt32Value = 3},
210 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
211 .minInt32Value = 0,
212 .maxInt32Value = 3},
213 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
214 .minInt32Value = 0,
215 .maxInt32Value = 3}}},
216 .initialValue = {.int32Values = {1}}},
217
218 {.config = {.prop = toInt(VehicleProperty::SEAT_MEMORY_SET),
219 .access = VehiclePropertyAccess::WRITE,
220 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
221 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
222 .minInt32Value = 0,
223 .maxInt32Value = 3},
224 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
225 .minInt32Value = 0,
226 .maxInt32Value = 3},
227 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
228 .minInt32Value = 0,
229 .maxInt32Value = 3},
230 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
231 .minInt32Value = 0,
232 .maxInt32Value = 3}}},
233 .initialValue = {.int32Values = {1}}},
234
235 {.config = {.prop = toInt(VehicleProperty::SEAT_BELT_BUCKLED),
236 .access = VehiclePropertyAccess::READ_WRITE,
237 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
238 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT},
239 VehicleAreaConfig{.areaId = SEAT_1_RIGHT},
240 VehicleAreaConfig{.areaId = SEAT_2_LEFT},
241 VehicleAreaConfig{.areaId = SEAT_2_RIGHT},
242 VehicleAreaConfig{.areaId = SEAT_2_CENTER}}},
243 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {0}}},
244 {SEAT_1_RIGHT, {.int32Values = {0}}},
245 {SEAT_2_LEFT, {.int32Values = {0}}},
246 {SEAT_2_RIGHT, {.int32Values = {0}}},
247 {SEAT_2_CENTER, {.int32Values = {0}}}}},
248
249 {.config = {.prop = toInt(VehicleProperty::SEAT_BELT_HEIGHT_POS),
250 .access = VehiclePropertyAccess::READ_WRITE,
251 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
252 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
253 .minInt32Value = 0,
254 .maxInt32Value = 10},
255 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
256 .minInt32Value = 0,
257 .maxInt32Value = 10},
258 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
259 .minInt32Value = 0,
260 .maxInt32Value = 10},
261 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
262 .minInt32Value = 0,
263 .maxInt32Value = 10},
264 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
265 .minInt32Value = 0,
266 .maxInt32Value = 10}}},
267 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {10}}},
268 {SEAT_1_RIGHT, {.int32Values = {10}}},
269 {SEAT_2_LEFT, {.int32Values = {10}}},
270 {SEAT_2_RIGHT, {.int32Values = {10}}},
271 {SEAT_2_CENTER, {.int32Values = {10}}}}},
272
273 {.config = {.prop = toInt(VehicleProperty::SEAT_BELT_HEIGHT_MOVE),
274 .access = VehiclePropertyAccess::READ_WRITE,
275 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
276 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
277 .minInt32Value = -1,
278 .maxInt32Value = 1},
279 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
280 .minInt32Value = -1,
281 .maxInt32Value = 1},
282 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
283 .minInt32Value = -1,
284 .maxInt32Value = 1},
285 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
286 .minInt32Value = -1,
287 .maxInt32Value = 1},
288 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
289 .minInt32Value = -1,
290 .maxInt32Value = 1}}},
291 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {0}}},
292 {SEAT_1_RIGHT, {.int32Values = {0}}},
293 {SEAT_2_LEFT, {.int32Values = {0}}},
294 {SEAT_2_RIGHT, {.int32Values = {0}}},
295 {SEAT_2_CENTER, {.int32Values = {0}}}}},
296
297 {.config = {.prop = toInt(VehicleProperty::SEAT_FORE_AFT_POS),
298 .access = VehiclePropertyAccess::READ_WRITE,
299 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
300 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
301 .minInt32Value = -10,
302 .maxInt32Value = 10},
303 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
304 .minInt32Value = -10,
305 .maxInt32Value = 10},
306 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
307 .minInt32Value = -10,
308 .maxInt32Value = 10},
309 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
310 .minInt32Value = -10,
311 .maxInt32Value = 10},
312 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
313 .minInt32Value = -10,
314 .maxInt32Value = 10}}},
315 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {0}}},
316 {SEAT_1_RIGHT, {.int32Values = {0}}},
317 {SEAT_2_LEFT, {.int32Values = {0}}},
318 {SEAT_2_RIGHT, {.int32Values = {0}}},
319 {SEAT_2_CENTER, {.int32Values = {0}}}}},
320
321 {.config = {.prop = toInt(VehicleProperty::SEAT_FORE_AFT_MOVE),
322 .access = VehiclePropertyAccess::READ_WRITE,
323 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
324 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
325 .minInt32Value = -1,
326 .maxInt32Value = 1},
327 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
328 .minInt32Value = -1,
329 .maxInt32Value = 1},
330 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
331 .minInt32Value = -1,
332 .maxInt32Value = 1},
333 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
334 .minInt32Value = -1,
335 .maxInt32Value = 1},
336 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
337 .minInt32Value = -1,
338 .maxInt32Value = 1}}},
339 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {0}}},
340 {SEAT_1_RIGHT, {.int32Values = {0}}},
341 {SEAT_2_LEFT, {.int32Values = {0}}},
342 {SEAT_2_RIGHT, {.int32Values = {0}}},
343 {SEAT_2_CENTER, {.int32Values = {0}}}}},
344
345 {.config = {.prop = toInt(VehicleProperty::SEAT_BACKREST_ANGLE_1_POS),
346 .access = VehiclePropertyAccess::READ_WRITE,
347 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
348 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
349 .minInt32Value = -10,
350 .maxInt32Value = 10},
351 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
352 .minInt32Value = -10,
353 .maxInt32Value = 10},
354 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
355 .minInt32Value = -10,
356 .maxInt32Value = 10},
357 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
358 .minInt32Value = -10,
359 .maxInt32Value = 10},
360 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
361 .minInt32Value = -10,
362 .maxInt32Value = 10}}},
363 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {0}}},
364 {SEAT_1_RIGHT, {.int32Values = {0}}},
365 {SEAT_2_LEFT, {.int32Values = {0}}},
366 {SEAT_2_RIGHT, {.int32Values = {0}}},
367 {SEAT_2_CENTER, {.int32Values = {0}}}}},
368
369 {.config = {.prop = toInt(VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE),
370 .access = VehiclePropertyAccess::READ_WRITE,
371 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
372 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
373 .minInt32Value = -1,
374 .maxInt32Value = 1},
375 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
376 .minInt32Value = -1,
377 .maxInt32Value = 1},
378 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
379 .minInt32Value = -1,
380 .maxInt32Value = 1},
381 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
382 .minInt32Value = -1,
383 .maxInt32Value = 1},
384 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
385 .minInt32Value = -1,
386 .maxInt32Value = 1}}},
387 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {0}}},
388 {SEAT_1_RIGHT, {.int32Values = {0}}},
389 {SEAT_2_LEFT, {.int32Values = {0}}},
390 {SEAT_2_RIGHT, {.int32Values = {0}}},
391 {SEAT_2_CENTER, {.int32Values = {0}}}}},
392
393 {.config = {.prop = toInt(VehicleProperty::SEAT_BACKREST_ANGLE_2_POS),
394 .access = VehiclePropertyAccess::READ_WRITE,
395 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
396 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
397 .minInt32Value = -10,
398 .maxInt32Value = 10},
399 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
400 .minInt32Value = -10,
401 .maxInt32Value = 10},
402 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
403 .minInt32Value = -10,
404 .maxInt32Value = 10},
405 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
406 .minInt32Value = -10,
407 .maxInt32Value = 10},
408 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
409 .minInt32Value = -10,
410 .maxInt32Value = 10}}},
411 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {0}}},
412 {SEAT_1_RIGHT, {.int32Values = {0}}},
413 {SEAT_2_LEFT, {.int32Values = {0}}},
414 {SEAT_2_RIGHT, {.int32Values = {0}}},
415 {SEAT_2_CENTER, {.int32Values = {0}}}}},
416
417 {.config = {.prop = toInt(VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE),
418 .access = VehiclePropertyAccess::READ_WRITE,
419 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
420 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
421 .minInt32Value = -1,
422 .maxInt32Value = 1},
423 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
424 .minInt32Value = -1,
425 .maxInt32Value = 1},
426 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
427 .minInt32Value = -1,
428 .maxInt32Value = 1},
429 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
430 .minInt32Value = -1,
431 .maxInt32Value = 1},
432 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
433 .minInt32Value = -1,
434 .maxInt32Value = 1}}},
435 .initialAreaValues = {{SEAT_1_LEFT, {.int32Values = {0}}},
436 {SEAT_1_RIGHT, {.int32Values = {0}}},
437 {SEAT_2_LEFT, {.int32Values = {0}}},
438 {SEAT_2_RIGHT, {.int32Values = {0}}},
439 {SEAT_2_CENTER, {.int32Values = {0}}}}},
440
441 {.config = {.prop = toInt(VehicleProperty::SEAT_HEIGHT_POS),
442 .access = VehiclePropertyAccess::READ_WRITE,
443 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
444 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
445 .minInt32Value = -10,
446 .maxInt32Value = 10},
447 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
448 .minInt32Value = -10,
449 .maxInt32Value = 10},
450 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
451 .minInt32Value = -10,
452 .maxInt32Value = 10},
453 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
454 .minInt32Value = -10,
455 .maxInt32Value = 10},
456 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
457 .minInt32Value = -10,
458 .maxInt32Value = 10}}},
459 .initialValue = {.int32Values = {0}}},
460
461 {.config = {.prop = toInt(VehicleProperty::SEAT_HEIGHT_MOVE),
462 .access = VehiclePropertyAccess::READ_WRITE,
463 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
464 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
465 .minInt32Value = -1,
466 .maxInt32Value = 1},
467 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
468 .minInt32Value = -1,
469 .maxInt32Value = 1},
470 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
471 .minInt32Value = -1,
472 .maxInt32Value = 1},
473 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
474 .minInt32Value = -1,
475 .maxInt32Value = 1},
476 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
477 .minInt32Value = -1,
478 .maxInt32Value = 1}}},
479 .initialValue = {.int32Values = {0}}},
480
481 {.config = {.prop = toInt(VehicleProperty::SEAT_DEPTH_POS),
482 .access = VehiclePropertyAccess::READ_WRITE,
483 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
484 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
485 .minInt32Value = -10,
486 .maxInt32Value = 10},
487 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
488 .minInt32Value = -10,
489 .maxInt32Value = 10},
490 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
491 .minInt32Value = -10,
492 .maxInt32Value = 10},
493 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
494 .minInt32Value = -10,
495 .maxInt32Value = 10},
496 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
497 .minInt32Value = -10,
498 .maxInt32Value = 10}}},
499 .initialValue = {.int32Values = {0}}},
500
501 {.config = {.prop = toInt(VehicleProperty::SEAT_DEPTH_MOVE),
502 .access = VehiclePropertyAccess::READ_WRITE,
503 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
504 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
505 .minInt32Value = -1,
506 .maxInt32Value = 1},
507 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
508 .minInt32Value = -1,
509 .maxInt32Value = 1},
510 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
511 .minInt32Value = -1,
512 .maxInt32Value = 1},
513 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
514 .minInt32Value = -1,
515 .maxInt32Value = 1},
516 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
517 .minInt32Value = -1,
518 .maxInt32Value = 1}}},
519 .initialValue = {.int32Values = {0}}},
520
521 {.config = {.prop = toInt(VehicleProperty::SEAT_TILT_POS),
522 .access = VehiclePropertyAccess::READ_WRITE,
523 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
524 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
525 .minInt32Value = -10,
526 .maxInt32Value = 10},
527 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
528 .minInt32Value = -10,
529 .maxInt32Value = 10},
530 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
531 .minInt32Value = -10,
532 .maxInt32Value = 10},
533 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
534 .minInt32Value = -10,
535 .maxInt32Value = 10},
536 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
537 .minInt32Value = -10,
538 .maxInt32Value = 10}}},
539 .initialValue = {.int32Values = {0}}},
540
541 {.config = {.prop = toInt(VehicleProperty::SEAT_TILT_MOVE),
542 .access = VehiclePropertyAccess::READ_WRITE,
543 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
544 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
545 .minInt32Value = -1,
546 .maxInt32Value = 1},
547 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
548 .minInt32Value = -1,
549 .maxInt32Value = 1},
550 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
551 .minInt32Value = -1,
552 .maxInt32Value = 1},
553 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
554 .minInt32Value = -1,
555 .maxInt32Value = 1},
556 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
557 .minInt32Value = -1,
558 .maxInt32Value = 1}}},
559 .initialValue = {.int32Values = {0}}},
560
561 {.config = {.prop = toInt(VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS),
562 .access = VehiclePropertyAccess::READ_WRITE,
563 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
564 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
565 .minInt32Value = -10,
566 .maxInt32Value = 10},
567 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
568 .minInt32Value = -10,
569 .maxInt32Value = 10},
570 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
571 .minInt32Value = -10,
572 .maxInt32Value = 10},
573 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
574 .minInt32Value = -10,
575 .maxInt32Value = 10},
576 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
577 .minInt32Value = -10,
578 .maxInt32Value = 10}}},
579 .initialValue = {.int32Values = {0}}},
580
581 {.config = {.prop = toInt(VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE),
582 .access = VehiclePropertyAccess::READ_WRITE,
583 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
584 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
585 .minInt32Value = -1,
586 .maxInt32Value = 1},
587 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
588 .minInt32Value = -1,
589 .maxInt32Value = 1},
590 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
591 .minInt32Value = -1,
592 .maxInt32Value = 1},
593 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
594 .minInt32Value = -1,
595 .maxInt32Value = 1},
596 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
597 .minInt32Value = -1,
598 .maxInt32Value = 1}}},
599 .initialValue = {.int32Values = {0}}},
600
601 {.config = {.prop = toInt(VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS),
602 .access = VehiclePropertyAccess::READ_WRITE,
603 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
604 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
605 .minInt32Value = 0,
606 .maxInt32Value = 10},
607 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
608 .minInt32Value = 0,
609 .maxInt32Value = 10},
610 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
611 .minInt32Value = 0,
612 .maxInt32Value = 10},
613 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
614 .minInt32Value = 0,
615 .maxInt32Value = 10},
616 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
617 .minInt32Value = 0,
618 .maxInt32Value = 10}}},
619 .initialValue = {.int32Values = {0}}},
620
621 {.config = {.prop = toInt(VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE),
622 .access = VehiclePropertyAccess::READ_WRITE,
623 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
624 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
625 .minInt32Value = -1,
626 .maxInt32Value = 1},
627 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
628 .minInt32Value = -1,
629 .maxInt32Value = 1},
630 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
631 .minInt32Value = -1,
632 .maxInt32Value = 1},
633 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
634 .minInt32Value = -1,
635 .maxInt32Value = 1},
636 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
637 .minInt32Value = -1,
638 .maxInt32Value = 1}}},
639 .initialValue = {.int32Values = {0}}},
640
641 {.config = {.prop = toInt(VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE),
642 .access = VehiclePropertyAccess::READ_WRITE,
643 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
644 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
645 .minInt32Value = -1,
646 .maxInt32Value = 1},
647 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
648 .minInt32Value = -1,
649 .maxInt32Value = 1},
650 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
651 .minInt32Value = -1,
652 .maxInt32Value = 1},
653 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
654 .minInt32Value = -1,
655 .maxInt32Value = 1},
656 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
657 .minInt32Value = -1,
658 .maxInt32Value = 1}}},
659 .initialValue = {.int32Values = {0}}},
660
661 {.config = {.prop = toInt(VehicleProperty::SEAT_HEADREST_ANGLE_POS),
662 .access = VehiclePropertyAccess::READ_WRITE,
663 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
664 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
665 .minInt32Value = 0,
666 .maxInt32Value = 10},
667 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
668 .minInt32Value = 0,
669 .maxInt32Value = 10},
670 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
671 .minInt32Value = 0,
672 .maxInt32Value = 10},
673 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
674 .minInt32Value = 0,
675 .maxInt32Value = 10},
676 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
677 .minInt32Value = 0,
678 .maxInt32Value = 10}}},
679 .initialValue = {.int32Values = {0}}},
680
681 {.config = {.prop = toInt(VehicleProperty::SEAT_HEADREST_ANGLE_MOVE),
682 .access = VehiclePropertyAccess::READ_WRITE,
683 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
684 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
685 .minInt32Value = -1,
686 .maxInt32Value = 1},
687 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
688 .minInt32Value = -1,
689 .maxInt32Value = 1},
690 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
691 .minInt32Value = -1,
692 .maxInt32Value = 1},
693 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
694 .minInt32Value = -1,
695 .maxInt32Value = 1},
696 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
697 .minInt32Value = -1,
698 .maxInt32Value = 1}}},
699 .initialValue = {.int32Values = {0}}},
700
701 {.config = {.prop = toInt(VehicleProperty::SEAT_HEADREST_FORE_AFT_POS),
702 .access = VehiclePropertyAccess::READ_WRITE,
703 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
704 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
705 .minInt32Value = 0,
706 .maxInt32Value = 10},
707 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
708 .minInt32Value = 0,
709 .maxInt32Value = 10},
710 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
711 .minInt32Value = 0,
712 .maxInt32Value = 10},
713 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
714 .minInt32Value = 0,
715 .maxInt32Value = 10},
716 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
717 .minInt32Value = 0,
718 .maxInt32Value = 10}}},
719 .initialValue = {.int32Values = {0}}},
720
721 {.config = {.prop = toInt(VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE),
722 .access = VehiclePropertyAccess::READ_WRITE,
723 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
724 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT,
725 .minInt32Value = -1,
726 .maxInt32Value = 1},
727 VehicleAreaConfig{.areaId = SEAT_1_RIGHT,
728 .minInt32Value = -1,
729 .maxInt32Value = 1},
730 VehicleAreaConfig{.areaId = SEAT_2_LEFT,
731 .minInt32Value = -1,
732 .maxInt32Value = 1},
733 VehicleAreaConfig{.areaId = SEAT_2_RIGHT,
734 .minInt32Value = -1,
735 .maxInt32Value = 1},
736 VehicleAreaConfig{.areaId = SEAT_2_CENTER,
737 .minInt32Value = -1,
738 .maxInt32Value = 1}}},
739 .initialValue = {.int32Values = {0}}},
740
741 {.config =
742 {
743 .prop = toInt(VehicleProperty::SEAT_OCCUPANCY),
744 .access = VehiclePropertyAccess::READ,
745 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
746 .areaConfigs = {VehicleAreaConfig{.areaId = (SEAT_1_LEFT)},
747 VehicleAreaConfig{.areaId = (SEAT_1_RIGHT)}},
748 },
749 .initialAreaValues = {{SEAT_1_LEFT,
750 {.int32Values = {toInt(VehicleSeatOccupancyState::VACANT)}}},
751 {SEAT_1_RIGHT,
752 {.int32Values = {toInt(VehicleSeatOccupancyState::VACANT)}}}}},
753
754 {.config =
755 {
756 .prop = toInt(VehicleProperty::INFO_DRIVER_SEAT),
757 .access = VehiclePropertyAccess::READ,
758 .changeMode = VehiclePropertyChangeMode::STATIC,
759 // this was a zoned property on an old vhal, but it is meant to be global
760 .areaConfigs = {VehicleAreaConfig{.areaId = (0)}},
761 },
762 .initialValue = {.int32Values = {SEAT_1_LEFT}}},
763
764 {.config =
765 {
766 .prop = toInt(VehicleProperty::PERF_ODOMETER),
767 .access = VehiclePropertyAccess::READ,
768 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
769 .minSampleRate = 1.0f,
770 .maxSampleRate = 10.0f,
771 },
772 .initialValue = {.floatValues = {0.0f}}},
773 {.config =
774 {
775 .prop = toInt(VehicleProperty::PERF_STEERING_ANGLE),
776 .access = VehiclePropertyAccess::READ,
777 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
778 .minSampleRate = 1.0f,
779 .maxSampleRate = 10.0f,
780 },
781 .initialValue = {.floatValues = {0.0f}}},
782 {.config =
783 {
784 .prop = toInt(VehicleProperty::PERF_REAR_STEERING_ANGLE),
785 .access = VehiclePropertyAccess::READ,
786 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
787 .minSampleRate = 1.0f,
788 .maxSampleRate = 10.0f,
789 },
790 .initialValue = {.floatValues = {0.0f}}},
791 {
792 .config =
793 {
794 .prop = toInt(VehicleProperty::ENGINE_RPM),
795 .access = VehiclePropertyAccess::READ,
796 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
797 .minSampleRate = 1.0f,
798 .maxSampleRate = 10.0f,
799 },
800 .initialValue = {.floatValues = {0.0f}},
801 },
802
803 {.config =
804 {
805 .prop = toInt(VehicleProperty::FUEL_LEVEL),
806 .access = VehiclePropertyAccess::READ,
807 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
808 .minSampleRate = 1.0f,
809 .maxSampleRate = 100.0f,
810 },
811 .initialValue = {.floatValues = {15000.0f}}},
812
813 {.config =
814 {
815 .prop = toInt(VehicleProperty::FUEL_DOOR_OPEN),
816 .access = VehiclePropertyAccess::READ_WRITE,
817 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
818 },
819 .initialValue = {.int32Values = {0}}},
820
821 {.config =
822 {
823 .prop = toInt(VehicleProperty::EV_BATTERY_LEVEL),
824 .access = VehiclePropertyAccess::READ,
825 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
826 .minSampleRate = 1.0f,
827 .maxSampleRate = 100.0f,
828 },
829 .initialValue = {.floatValues = {150000.0f}}},
830
831 {.config =
832 {
833 .prop = toInt(VehicleProperty::EV_CHARGE_PORT_OPEN),
834 .access = VehiclePropertyAccess::READ_WRITE,
835 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
836 },
837 .initialValue = {.int32Values = {0}}},
838
839 {.config =
840 {
841 .prop = toInt(VehicleProperty::EV_CHARGE_PORT_CONNECTED),
842 .access = VehiclePropertyAccess::READ,
843 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
844 },
845 .initialValue = {.int32Values = {0}}},
846
847 {.config =
848 {
849 .prop = toInt(VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE),
850 .access = VehiclePropertyAccess::READ,
851 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
852 .minSampleRate = 1.0f,
853 .maxSampleRate = 10.0f,
854 },
855 .initialValue = {.floatValues = {0.0f}}},
856
857 {.config =
858 {
859 .prop = toInt(VehicleProperty::EV_CHARGE_CURRENT_DRAW_LIMIT),
860 .access = VehiclePropertyAccess::READ_WRITE,
861 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
862 .configArray = {/*max current draw allowed by vehicle in amperes=*/20},
863 },
864 .initialValue = {.floatValues = {(float)12.5}}},
865
866 {.config =
867 {
868 .prop = toInt(VehicleProperty::EV_CHARGE_PERCENT_LIMIT),
869 .access = VehiclePropertyAccess::READ_WRITE,
870 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
871 .configArray = {20, 40, 60, 80, 100},
872 },
873 .initialValue = {.floatValues = {40}}},
874
875 {.config =
876 {
877 .prop = toInt(VehicleProperty::EV_CHARGE_STATE),
878 .access = VehiclePropertyAccess::READ,
879 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
880 },
881 .initialValue = {.int32Values = {2}}},
882
883 {.config =
884 {
885 .prop = toInt(VehicleProperty::EV_CHARGE_SWITCH),
886 .access = VehiclePropertyAccess::READ_WRITE,
887 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
888 },
889 .initialValue = {.int32Values = {0 /* false */}}},
890
891 {.config =
892 {
893 .prop = toInt(VehicleProperty::EV_CHARGE_TIME_REMAINING),
894 .access = VehiclePropertyAccess::READ,
895 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
896 .minSampleRate = 1.0f,
897 .maxSampleRate = 10.0f,
898 },
899 .initialValue = {.int32Values = {20}}},
900
901 {.config =
902 {
903 .prop = toInt(VehicleProperty::EV_REGENERATIVE_BRAKING_STATE),
904 .access = VehiclePropertyAccess::READ,
905 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
906 },
907 .initialValue = {.int32Values = {2}}},
908
909 {.config =
910 {
911 .prop = toInt(VehicleProperty::TRAILER_PRESENT),
912 .access = VehiclePropertyAccess::READ,
913 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
914 },
915 .initialValue = {.int32Values = {2}}},
916
917 {.config =
918 {
919 .prop = toInt(VehicleProperty::VEHICLE_CURB_WEIGHT),
920 .access = VehiclePropertyAccess::READ,
921 .changeMode = VehiclePropertyChangeMode::STATIC,
922 .configArray = {/*gross weight kg=*/2948},
923 },
924 .initialValue = {.int32Values = {2211 /*kg*/}}},
925
926 {.config =
927 {
928 .prop = toInt(VehicleProperty::RANGE_REMAINING),
929 .access = VehiclePropertyAccess::READ_WRITE,
930 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
931 .minSampleRate = 1.0f,
932 .maxSampleRate = 2.0f,
933 },
934 .initialValue = {.floatValues = {50000.0f}}}, // units in meters
935
936 {.config =
937 {
938 .prop = toInt(VehicleProperty::TIRE_PRESSURE),
939 .access = VehiclePropertyAccess::READ,
940 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
941 .areaConfigs = {VehicleAreaConfig{
942 .areaId = WHEEL_FRONT_LEFT,
943 .minFloatValue = 193.0f,
944 .maxFloatValue = 300.0f,
945 },
946 VehicleAreaConfig{
947 .areaId = WHEEL_FRONT_RIGHT,
948 .minFloatValue = 193.0f,
949 .maxFloatValue = 300.0f,
950 },
951 VehicleAreaConfig{
952 .areaId = WHEEL_REAR_LEFT,
953 .minFloatValue = 193.0f,
954 .maxFloatValue = 300.0f,
955 },
956 VehicleAreaConfig{
957 .areaId = WHEEL_REAR_RIGHT,
958 .minFloatValue = 193.0f,
959 .maxFloatValue = 300.0f,
960 }},
961 .minSampleRate = 1.0f,
962 .maxSampleRate = 2.0f,
963 },
964 .initialValue = {.floatValues = {200.0f}}}, // units in kPa
965
966 {.config =
967 {
968 .prop = toInt(VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE),
969 .access = VehiclePropertyAccess::READ,
970 .changeMode = VehiclePropertyChangeMode::STATIC,
971 .areaConfigs = {VehicleAreaConfig{.areaId = WHEEL_FRONT_LEFT},
972 VehicleAreaConfig{.areaId = WHEEL_FRONT_RIGHT},
973 VehicleAreaConfig{.areaId = WHEEL_REAR_RIGHT},
974 VehicleAreaConfig{.areaId = WHEEL_REAR_LEFT}},
975 },
976 .initialAreaValues = {{WHEEL_FRONT_LEFT, {.floatValues = {137.0f}}},
977 {WHEEL_FRONT_RIGHT, {.floatValues = {137.0f}}},
978 {WHEEL_REAR_RIGHT, {.floatValues = {137.0f}}},
979 {WHEEL_REAR_LEFT, {.floatValues = {137.0f}}}}},
980
981 {.config =
982 {
983 .prop = toInt(VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS),
984 .access = VehiclePropertyAccess::READ_WRITE,
985 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
986 .configArray = {toInt(VehicleUnit::KILOPASCAL), toInt(VehicleUnit::PSI),
987 toInt(VehicleUnit::BAR)},
988 },
989 .initialValue = {.int32Values = {toInt(VehicleUnit::PSI)}}},
990
991 {.config =
992 {
993 .prop = toInt(VehicleProperty::CURRENT_GEAR),
994 .access = VehiclePropertyAccess::READ,
995 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
996 .configArray = {toInt(VehicleGear::GEAR_PARK),
997 toInt(VehicleGear::GEAR_NEUTRAL),
998 toInt(VehicleGear::GEAR_REVERSE),
999 toInt(VehicleGear::GEAR_1), toInt(VehicleGear::GEAR_2),
1000 toInt(VehicleGear::GEAR_3), toInt(VehicleGear::GEAR_4),
1001 toInt(VehicleGear::GEAR_5)},
1002 },
1003 .initialValue = {.int32Values = {toInt(VehicleGear::GEAR_PARK)}}},
1004
1005 {.config =
1006 {
1007 .prop = toInt(VehicleProperty::PARKING_BRAKE_ON),
1008 .access = VehiclePropertyAccess::READ,
1009 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1010 },
1011 .initialValue = {.int32Values = {1}}},
1012
1013 {.config =
1014 {
1015 .prop = toInt(VehicleProperty::PARKING_BRAKE_AUTO_APPLY),
1016 .access = VehiclePropertyAccess::READ,
1017 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1018 },
1019 .initialValue = {.int32Values = {1}}},
1020
1021 {.config =
1022 {
1023 .prop = toInt(VehicleProperty::FUEL_LEVEL_LOW),
1024 .access = VehiclePropertyAccess::READ,
1025 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1026 },
1027 .initialValue = {.int32Values = {0}}},
1028
1029 {.config =
1030 {
1031 .prop = toInt(VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS),
1032 .access = VehiclePropertyAccess::READ_WRITE,
1033 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1034 .configArray = {(int)VehicleUnit::LITER, (int)VehicleUnit::US_GALLON},
1035 },
1036 .initialValue = {.int32Values = {(int)VehicleUnit::US_GALLON}}},
1037
1038 {.config =
1039 {
1040 .prop = toInt(
1041 VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME),
1042 .access = VehiclePropertyAccess::READ_WRITE,
1043 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1044 },
1045 .initialValue = {.int32Values = {1}}},
1046
1047 {.config =
1048 {
1049 .prop = toInt(VehicleProperty::HW_KEY_INPUT),
1050 .access = VehiclePropertyAccess::READ,
1051 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1052 },
1053 .initialValue = {.int32Values = {0, 0, 0}}},
1054
1055 {.config =
1056 {
1057 .prop = toInt(VehicleProperty::HW_ROTARY_INPUT),
1058 .access = VehiclePropertyAccess::READ,
1059 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1060 },
1061 .initialValue = {.int32Values = {0, 0, 0}}},
1062
1063 {.config =
1064 {
1065 .prop = toInt(VehicleProperty::HW_CUSTOM_INPUT),
1066 .access = VehiclePropertyAccess::READ,
1067 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1068 .configArray = {0, 0, 0, 3, 0, 0, 0, 0, 0},
1069 },
1070 .initialValue =
1071 {
1072 .int32Values = {0, 0, 0},
1073 }},
1074
1075 {.config = {.prop = toInt(VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM),
1076 .access = VehiclePropertyAccess::READ,
1077 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1078 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1079 .initialValue = {.int32Values = {50}}},
1080
1081 {.config = {.prop = toInt(VehicleProperty::HVAC_POWER_ON),
1082 .access = VehiclePropertyAccess::READ_WRITE,
1083 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1084 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}},
1085 // TODO(bryaneyler): Ideally, this is generated dynamically from
1086 // kHvacPowerProperties.
1087 .configArray = {toInt(VehicleProperty::HVAC_FAN_SPEED),
1088 toInt(VehicleProperty::HVAC_FAN_DIRECTION)}},
1089 .initialValue = {.int32Values = {1}}},
1090
1091 {
1092 .config = {.prop = toInt(VehicleProperty::HVAC_DEFROSTER),
1093 .access = VehiclePropertyAccess::READ_WRITE,
1094 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1095 .areaConfigs =
1096 {VehicleAreaConfig{
1097 .areaId = toInt(VehicleAreaWindow::FRONT_WINDSHIELD)},
1098 VehicleAreaConfig{
1099 .areaId = toInt(VehicleAreaWindow::REAR_WINDSHIELD)}}},
1100 .initialValue = {.int32Values = {0}} // Will be used for all areas.
1101 },
1102 {
1103 .config = {.prop = toInt(VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON),
1104 .access = VehiclePropertyAccess::READ_WRITE,
1105 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1106 .areaConfigs =
1107 {VehicleAreaConfig{
1108 .areaId = toInt(VehicleAreaWindow::FRONT_WINDSHIELD)},
1109 VehicleAreaConfig{
1110 .areaId = toInt(VehicleAreaWindow::REAR_WINDSHIELD)}}},
1111 .initialValue = {.int32Values = {0}} // Will be used for all areas.
1112 },
1113
1114 {.config = {.prop = toInt(VehicleProperty::HVAC_MAX_DEFROST_ON),
1115 .access = VehiclePropertyAccess::READ_WRITE,
1116 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1117 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1118 .initialValue = {.int32Values = {0}}},
1119
1120 {.config = {.prop = toInt(VehicleProperty::HVAC_RECIRC_ON),
1121 .access = VehiclePropertyAccess::READ_WRITE,
1122 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1123 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1124 .initialValue = {.int32Values = {1}}},
1125
1126 {.config = {.prop = toInt(VehicleProperty::HVAC_AUTO_RECIRC_ON),
1127 .access = VehiclePropertyAccess::READ_WRITE,
1128 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1129 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1130 .initialValue = {.int32Values = {0}}},
1131
1132 {.config = {.prop = toInt(VehicleProperty::HVAC_AC_ON),
1133 .access = VehiclePropertyAccess::READ_WRITE,
1134 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1135 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1136 .initialValue = {.int32Values = {1}}},
1137
1138 {.config = {.prop = toInt(VehicleProperty::HVAC_MAX_AC_ON),
1139 .access = VehiclePropertyAccess::READ_WRITE,
1140 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1141 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1142 .initialValue = {.int32Values = {0}}},
1143
1144 {.config = {.prop = toInt(VehicleProperty::HVAC_AUTO_ON),
1145 .access = VehiclePropertyAccess::READ_WRITE,
1146 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1147 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1148 .initialValue = {.int32Values = {1}}},
1149
1150 {.config = {.prop = toInt(VehicleProperty::HVAC_DUAL_ON),
1151 .access = VehiclePropertyAccess::READ_WRITE,
1152 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1153 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1154 .initialValue = {.int32Values = {0}}},
1155
1156 {.config = {.prop = toInt(VehicleProperty::HVAC_FAN_SPEED),
1157 .access = VehiclePropertyAccess::READ_WRITE,
1158 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1159 .areaConfigs = {VehicleAreaConfig{
1160 .areaId = HVAC_ALL, .minInt32Value = 1, .maxInt32Value = 7}}},
1161 .initialValue = {.int32Values = {3}}},
1162
1163 {.config = {.prop = toInt(VehicleProperty::HVAC_FAN_DIRECTION),
1164 .access = VehiclePropertyAccess::READ_WRITE,
1165 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1166 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1167 .initialValue = {.int32Values = {toInt(VehicleHvacFanDirection::FACE)}}},
1168
1169 {.config = {.prop = toInt(VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE),
1170 .access = VehiclePropertyAccess::READ,
1171 .changeMode = VehiclePropertyChangeMode::STATIC,
1172 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}},
1173 .initialValue = {.int32Values = {FAN_DIRECTION_FACE, FAN_DIRECTION_FLOOR,
1174 FAN_DIRECTION_FACE | FAN_DIRECTION_FLOOR,
1175 FAN_DIRECTION_DEFROST,
1176 FAN_DIRECTION_FACE | FAN_DIRECTION_DEFROST,
1177 FAN_DIRECTION_FLOOR | FAN_DIRECTION_DEFROST,
1178 FAN_DIRECTION_FLOOR | FAN_DIRECTION_DEFROST |
1179 FAN_DIRECTION_FACE}}},
1180 {.config = {.prop = toInt(VehicleProperty::HVAC_SEAT_VENTILATION),
1181 .access = VehiclePropertyAccess::READ_WRITE,
1182 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1183 .areaConfigs = {VehicleAreaConfig{
1184 .areaId = SEAT_1_LEFT,
1185 .minInt32Value = 0,
1186 .maxInt32Value = 3,
1187 },
1188 VehicleAreaConfig{
1189 .areaId = SEAT_1_RIGHT,
1190 .minInt32Value = 0,
1191 .maxInt32Value = 3,
1192 }}},
1193 .initialValue =
1194 {.int32Values = {0}}}, // 0 is off and +ve values indicate ventilation level.
1195
1196 {.config = {.prop = toInt(VehicleProperty::HVAC_STEERING_WHEEL_HEAT),
1197 .access = VehiclePropertyAccess::READ_WRITE,
1198 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1199 .areaConfigs = {VehicleAreaConfig{
1200 .areaId = (0), .minInt32Value = -2, .maxInt32Value = 2}}},
1201 .initialValue = {.int32Values = {0}}}, // +ve values for heating and -ve for cooling
1202
1203 {.config = {.prop = toInt(VehicleProperty::HVAC_SEAT_TEMPERATURE),
1204 .access = VehiclePropertyAccess::READ_WRITE,
1205 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1206 .areaConfigs = {VehicleAreaConfig{
1207 .areaId = SEAT_1_LEFT,
1208 .minInt32Value = -2,
1209 .maxInt32Value = 2,
1210 },
1211 VehicleAreaConfig{
1212 .areaId = SEAT_1_RIGHT,
1213 .minInt32Value = -2,
1214 .maxInt32Value = 2,
1215 }}},
1216 .initialValue = {.int32Values = {0}}}, // +ve values for heating and -ve for cooling
1217
1218 {.config = {.prop = toInt(VehicleProperty::HVAC_SIDE_MIRROR_HEAT),
1219 .access = VehiclePropertyAccess::READ_WRITE,
1220 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1221 .areaConfigs = {VehicleAreaConfig{
1222 .areaId = toInt(VehicleAreaMirror::DRIVER_LEFT) |
1223 toInt(VehicleAreaMirror::DRIVER_RIGHT),
1224 .minInt32Value = 0,
1225 .maxInt32Value = 2,
1226 }}},
1227 .initialValue = {.int32Values = {0}}},
1228
1229 {.config = {.prop = toInt(VehicleProperty::HVAC_TEMPERATURE_CURRENT),
1230 .access = VehiclePropertyAccess::READ,
1231 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1232 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_LEFT},
1233 VehicleAreaConfig{.areaId = HVAC_RIGHT}}},
1234 .initialAreaValues = {{HVAC_LEFT, {.floatValues = {17.3f}}},
1235 {HVAC_RIGHT, {.floatValues = {19.1f}}}}},
1236
1237 {.config = {.prop = toInt(VehicleProperty::HVAC_TEMPERATURE_SET),
1238 .access = VehiclePropertyAccess::READ_WRITE,
1239 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1240 .configArray = {160, 280, 5, 605, 825, 10},
1241 .areaConfigs = {VehicleAreaConfig{
1242 .areaId = HVAC_LEFT,
1243 .minFloatValue = 16,
1244 .maxFloatValue = 32,
1245 },
1246 VehicleAreaConfig{
1247 .areaId = HVAC_RIGHT,
1248 .minFloatValue = 16,
1249 .maxFloatValue = 32,
1250 }}},
1251 .initialAreaValues = {{HVAC_LEFT, {.floatValues = {16}}},
1252 {HVAC_RIGHT, {.floatValues = {20}}}}},
1253
1254 {.config =
1255 {
1256 .prop = toInt(VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION),
1257 .access = VehiclePropertyAccess::READ_WRITE,
1258 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1259 },
1260 .initialValue = {.floatValues = {66.2f, (float)VehicleUnit::FAHRENHEIT, 19.0f, 66.5f}}},
1261
1262 {.config =
1263 {
1264 .prop = toInt(VehicleProperty::ENV_OUTSIDE_TEMPERATURE),
1265 .access = VehiclePropertyAccess::READ,
1266 // TODO(bryaneyler): Support ON_CHANGE as well.
1267 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
1268 .minSampleRate = 1.0f,
1269 .maxSampleRate = 2.0f,
1270 },
1271 .initialValue = {.floatValues = {25.0f}}},
1272
1273 {.config = {.prop = toInt(VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS),
1274 .access = VehiclePropertyAccess::READ_WRITE,
1275 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1276 .configArray = {toInt(VehicleUnit::FAHRENHEIT), toInt(VehicleUnit::CELSIUS)}},
1277 .initialValue = {.int32Values = {toInt(VehicleUnit::FAHRENHEIT)}}},
1278
1279 {.config =
1280 {
1281 .prop = toInt(VehicleProperty::DISTANCE_DISPLAY_UNITS),
1282 .access = VehiclePropertyAccess::READ_WRITE,
1283 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1284 .areaConfigs = {VehicleAreaConfig{.areaId = (0)}},
1285 .configArray = {toInt(VehicleUnit::KILOMETER), toInt(VehicleUnit::MILE)},
1286 },
1287 .initialValue = {.int32Values = {toInt(VehicleUnit::MILE)}}},
1288
1289 {.config =
1290 {
1291 .prop = toInt(VehicleProperty::NIGHT_MODE),
1292 .access = VehiclePropertyAccess::READ,
1293 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1294 },
1295 .initialValue = {.int32Values = {0}}},
1296
1297 {.config =
1298 {
1299 .prop = toInt(VehicleProperty::GEAR_SELECTION),
1300 .access = VehiclePropertyAccess::READ,
1301 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1302 .configArray = {toInt(VehicleGear::GEAR_PARK),
1303 toInt(VehicleGear::GEAR_NEUTRAL),
1304 toInt(VehicleGear::GEAR_REVERSE),
1305 toInt(VehicleGear::GEAR_DRIVE), toInt(VehicleGear::GEAR_1),
1306 toInt(VehicleGear::GEAR_2), toInt(VehicleGear::GEAR_3),
1307 toInt(VehicleGear::GEAR_4), toInt(VehicleGear::GEAR_5)},
1308 },
1309 .initialValue = {.int32Values = {toInt(VehicleGear::GEAR_PARK)}}},
1310
1311 {.config =
1312 {
1313 .prop = toInt(VehicleProperty::TURN_SIGNAL_STATE),
1314 .access = VehiclePropertyAccess::READ,
1315 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1316 },
1317 .initialValue = {.int32Values = {toInt(VehicleTurnSignal::NONE)}}},
1318
1319 {.config =
1320 {
1321 .prop = toInt(VehicleProperty::IGNITION_STATE),
1322 .access = VehiclePropertyAccess::READ,
1323 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1324 },
1325 .initialValue = {.int32Values = {toInt(VehicleIgnitionState::ON)}}},
1326
1327 {.config =
1328 {
1329 .prop = toInt(VehicleProperty::ENGINE_COOLANT_TEMP),
1330 .access = VehiclePropertyAccess::READ,
1331 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
1332 .minSampleRate = 1.0f,
1333 .maxSampleRate = 10.0f,
1334 },
1335 .initialValue = {.floatValues = {75.0f}}},
1336
1337 {.config =
1338 {
1339 .prop = toInt(VehicleProperty::ENGINE_OIL_LEVEL),
1340 .access = VehiclePropertyAccess::READ,
1341 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1342 },
1343 .initialValue = {.int32Values = {toInt(VehicleOilLevel::NORMAL)}}},
1344
1345 {.config =
1346 {
1347 .prop = toInt(VehicleProperty::ENGINE_OIL_TEMP),
1348 .access = VehiclePropertyAccess::READ,
1349 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
1350 .minSampleRate = 0.1, // 0.1 Hz, every 10 seconds
1351 .maxSampleRate = 10, // 10 Hz, every 100 ms
1352 },
1353 .initialValue = {.floatValues = {101.0f}}},
1354
1355 {
1356 .config = {.prop = kMixedTypePropertyForTest,
1357 .access = VehiclePropertyAccess::READ_WRITE,
1358 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1359 .configArray = {1, 1, 0, 2, 0, 0, 1, 0, 0}},
1360 .initialValue =
1361 {
1362 .int32Values = {1 /* indicate TRUE boolean value */, 2, 3},
1363 .floatValues = {4.5f},
1364 .stringValue = "MIXED property",
1365 },
1366 },
1367
1368 {.config = {.prop = toInt(VehicleProperty::DOOR_LOCK),
1369 .access = VehiclePropertyAccess::READ_WRITE,
1370 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1371 .areaConfigs = {VehicleAreaConfig{.areaId = DOOR_1_LEFT},
1372 VehicleAreaConfig{.areaId = DOOR_1_RIGHT},
1373 VehicleAreaConfig{.areaId = DOOR_2_LEFT},
1374 VehicleAreaConfig{.areaId = DOOR_2_RIGHT}}},
1375 .initialAreaValues = {{DOOR_1_LEFT, {.int32Values = {1}}},
1376 {DOOR_1_RIGHT, {.int32Values = {1}}},
1377 {DOOR_2_LEFT, {.int32Values = {1}}},
1378 {DOOR_2_RIGHT, {.int32Values = {1}}}}},
1379
1380 {.config = {.prop = toInt(VehicleProperty::DOOR_POS),
1381 .access = VehiclePropertyAccess::READ_WRITE,
1382 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1383 .areaConfigs =
1384 {VehicleAreaConfig{
1385 .areaId = DOOR_1_LEFT, .minInt32Value = 0, .maxInt32Value = 1},
1386 VehicleAreaConfig{.areaId = DOOR_1_RIGHT,
1387 .minInt32Value = 0,
1388 .maxInt32Value = 1},
1389 VehicleAreaConfig{
1390 .areaId = DOOR_2_LEFT, .minInt32Value = 0, .maxInt32Value = 1},
1391 VehicleAreaConfig{.areaId = DOOR_2_RIGHT,
1392 .minInt32Value = 0,
1393 .maxInt32Value = 1},
1394 VehicleAreaConfig{
1395 .areaId = DOOR_REAR, .minInt32Value = 0, .maxInt32Value = 1}}},
1396 .initialValue = {.int32Values = {0}}},
1397
1398 {.config = {.prop = toInt(VehicleProperty::MIRROR_Z_POS),
1399 .access = VehiclePropertyAccess::READ_WRITE,
1400 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1401 .areaConfigs =
1402 {VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_LEFT),
1403 .minInt32Value = -3,
1404 .maxInt32Value = 3},
1405 VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_RIGHT),
1406 .minInt32Value = -3,
1407 .maxInt32Value = 3},
1408 VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_CENTER),
1409 .minInt32Value = -3,
1410 .maxInt32Value = 3}}},
1411 .initialValue = {.int32Values = {0}}},
1412
1413 {.config = {.prop = toInt(VehicleProperty::MIRROR_Z_MOVE),
1414 .access = VehiclePropertyAccess::READ_WRITE,
1415 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1416 .areaConfigs =
1417 {VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_LEFT),
1418 .minInt32Value = -1,
1419 .maxInt32Value = 1},
1420 VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_RIGHT),
1421 .minInt32Value = -1,
1422 .maxInt32Value = 1},
1423 VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_CENTER),
1424 .minInt32Value = -1,
1425 .maxInt32Value = 1}}},
1426 .initialValue = {.int32Values = {0}}},
1427
1428 {.config = {.prop = toInt(VehicleProperty::MIRROR_Y_POS),
1429 .access = VehiclePropertyAccess::READ_WRITE,
1430 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1431 .areaConfigs =
1432 {VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_LEFT),
1433 .minInt32Value = -3,
1434 .maxInt32Value = 3},
1435 VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_RIGHT),
1436 .minInt32Value = -3,
1437 .maxInt32Value = 3},
1438 VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_CENTER),
1439 .minInt32Value = -3,
1440 .maxInt32Value = 3}}},
1441 .initialValue = {.int32Values = {0}}},
1442
1443 {.config = {.prop = toInt(VehicleProperty::MIRROR_Y_MOVE),
1444 .access = VehiclePropertyAccess::READ_WRITE,
1445 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1446 .areaConfigs =
1447 {VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_LEFT),
1448 .minInt32Value = -1,
1449 .maxInt32Value = 1},
1450 VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_RIGHT),
1451 .minInt32Value = -1,
1452 .maxInt32Value = 1},
1453 VehicleAreaConfig{.areaId = toInt(VehicleAreaMirror::DRIVER_CENTER),
1454 .minInt32Value = -1,
1455 .maxInt32Value = 1}}},
1456 .initialValue = {.int32Values = {0}}},
1457
1458 {.config = {.prop = toInt(VehicleProperty::MIRROR_LOCK),
1459 .access = VehiclePropertyAccess::READ_WRITE,
1460 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1461 .initialValue = {.int32Values = {1}}},
1462
1463 {.config = {.prop = toInt(VehicleProperty::MIRROR_FOLD),
1464 .access = VehiclePropertyAccess::READ_WRITE,
1465 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1466 .initialValue = {.int32Values = {1}}},
1467
1468 {.config = {.prop = toInt(VehicleProperty::WINDOW_LOCK),
1469 .access = VehiclePropertyAccess::READ_WRITE,
1470 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1471 .areaConfigs = {VehicleAreaConfig{.areaId = WINDOW_1_RIGHT | WINDOW_2_LEFT |
1472 WINDOW_2_RIGHT}}},
1473 .initialAreaValues = {{WINDOW_1_RIGHT | WINDOW_2_LEFT | WINDOW_2_RIGHT,
1474 {.int32Values = {0}}}}},
1475
1476 {.config = {.prop = toInt(VehicleProperty::WINDOW_POS),
1477 .access = VehiclePropertyAccess::READ_WRITE,
1478 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1479 .areaConfigs = {VehicleAreaConfig{.areaId = WINDOW_1_LEFT,
1480 .minInt32Value = 0,
1481 .maxInt32Value = 10},
1482 VehicleAreaConfig{.areaId = WINDOW_1_RIGHT,
1483 .minInt32Value = 0,
1484 .maxInt32Value = 10},
1485 VehicleAreaConfig{.areaId = WINDOW_2_LEFT,
1486 .minInt32Value = 0,
1487 .maxInt32Value = 10},
1488 VehicleAreaConfig{.areaId = WINDOW_2_RIGHT,
1489 .minInt32Value = 0,
1490 .maxInt32Value = 10},
1491 VehicleAreaConfig{.areaId = WINDOW_ROOF_TOP_1,
1492 .minInt32Value = -10,
1493 .maxInt32Value = 10}}},
1494 .initialValue = {.int32Values = {0}}},
1495
1496 {.config = {.prop = toInt(VehicleProperty::WINDOW_MOVE),
1497 .access = VehiclePropertyAccess::READ_WRITE,
1498 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1499 .areaConfigs = {VehicleAreaConfig{.areaId = WINDOW_1_LEFT,
1500 .minInt32Value = -1,
1501 .maxInt32Value = 1},
1502 VehicleAreaConfig{.areaId = WINDOW_1_RIGHT,
1503 .minInt32Value = -1,
1504 .maxInt32Value = 1},
1505 VehicleAreaConfig{.areaId = WINDOW_2_LEFT,
1506 .minInt32Value = -1,
1507 .maxInt32Value = 1},
1508 VehicleAreaConfig{.areaId = WINDOW_2_RIGHT,
1509 .minInt32Value = -1,
1510 .maxInt32Value = 1},
1511 VehicleAreaConfig{.areaId = WINDOW_ROOF_TOP_1,
1512 .minInt32Value = -1,
1513 .maxInt32Value = 1}}},
1514 .initialValue = {.int32Values = {0}}},
1515
1516 {.config =
1517 {
1518 .prop = WHEEL_TICK,
1519 .access = VehiclePropertyAccess::READ,
1520 .changeMode = VehiclePropertyChangeMode::CONTINUOUS,
1521 .configArray = {ALL_WHEELS, 50000, 50000, 50000, 50000},
1522 .minSampleRate = 1.0f,
1523 .maxSampleRate = 10.0f,
1524 },
1525 .initialValue = {.int64Values = {0, 100000, 200000, 300000, 400000}}},
1526
1527 {.config = {.prop = ABS_ACTIVE,
1528 .access = VehiclePropertyAccess::READ,
1529 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1530 .initialValue = {.int32Values = {0}}},
1531
1532 {.config = {.prop = TRACTION_CONTROL_ACTIVE,
1533 .access = VehiclePropertyAccess::READ,
1534 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1535 .initialValue = {.int32Values = {0}}},
1536
1537 {.config = {.prop = toInt(VehicleProperty::AP_POWER_STATE_REQ),
1538 .access = VehiclePropertyAccess::READ,
1539 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1540 .configArray = {3}}},
1541
1542 {.config = {.prop = toInt(VehicleProperty::AP_POWER_STATE_REPORT),
1543 .access = VehiclePropertyAccess::READ_WRITE,
1544 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1545 .initialValue = {.int32Values = {toInt(VehicleApPowerStateReport::WAIT_FOR_VHAL), 0}}},
1546
1547 {.config = {.prop = toInt(VehicleProperty::DISPLAY_BRIGHTNESS),
1548 .access = VehiclePropertyAccess::READ_WRITE,
1549 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1550 .areaConfigs = {VehicleAreaConfig{.minInt32Value = 0, .maxInt32Value = 100}}},
1551 .initialValue = {.int32Values = {100}}},
1552
1553 {
1554 .config = {.prop = OBD2_LIVE_FRAME,
1555 .access = VehiclePropertyAccess::READ,
1556 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1557 .configArray = {0, 0}},
1558 },
1559
1560 {
1561 .config = {.prop = OBD2_FREEZE_FRAME,
1562 .access = VehiclePropertyAccess::READ,
1563 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1564 .configArray = {0, 0}},
1565 },
1566
1567 {
1568 .config = {.prop = OBD2_FREEZE_FRAME_INFO,
1569 .access = VehiclePropertyAccess::READ,
1570 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1571 },
1572
1573 {
1574 .config = {.prop = OBD2_FREEZE_FRAME_CLEAR,
1575 .access = VehiclePropertyAccess::WRITE,
1576 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1577 .configArray = {1}},
1578 },
1579
1580 {.config =
1581 {
1582 .prop = toInt(VehicleProperty::HEADLIGHTS_STATE),
1583 .access = VehiclePropertyAccess::READ,
1584 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1585 },
1586 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1587
1588 {.config =
1589 {
1590 .prop = toInt(VehicleProperty::HIGH_BEAM_LIGHTS_STATE),
1591 .access = VehiclePropertyAccess::READ,
1592 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1593 },
1594 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1595
1596 {.config =
1597 {
1598 .prop = toInt(VehicleProperty::FRONT_FOG_LIGHTS_STATE),
1599 .access = VehiclePropertyAccess::READ,
1600 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1601 },
1602 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1603
1604 {.config =
1605 {
1606 .prop = toInt(VehicleProperty::REAR_FOG_LIGHTS_STATE),
1607 .access = VehiclePropertyAccess::READ,
1608 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1609 },
1610 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1611
1612 {.config =
1613 {
1614 .prop = toInt(VehicleProperty::HAZARD_LIGHTS_STATE),
1615 .access = VehiclePropertyAccess::READ,
1616 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1617 },
1618 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1619
1620 {.config =
1621 {
1622 .prop = toInt(VehicleProperty::CABIN_LIGHTS_STATE),
1623 .access = VehiclePropertyAccess::READ,
1624 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1625 },
1626 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1627
1628 {.config = {.prop = toInt(VehicleProperty::READING_LIGHTS_STATE),
1629 .access = VehiclePropertyAccess::READ,
1630 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1631 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT},
1632 VehicleAreaConfig{.areaId = SEAT_1_RIGHT},
1633 VehicleAreaConfig{.areaId = SEAT_2_LEFT},
1634 VehicleAreaConfig{.areaId = SEAT_2_RIGHT},
1635 VehicleAreaConfig{.areaId = SEAT_2_CENTER}}},
1636 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1637
1638 {.config =
1639 {
1640 .prop = toInt(VehicleProperty::HEADLIGHTS_SWITCH),
1641 .access = VehiclePropertyAccess::READ_WRITE,
1642 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1643 },
1644 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}},
1645
1646 {.config =
1647 {
1648 .prop = toInt(VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH),
1649 .access = VehiclePropertyAccess::READ_WRITE,
1650 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1651 },
1652 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}},
1653
1654 // FOG_LIGHTS_SWITCH must not be implemented when FRONT_FOG_LIGHTS_SWITCH is implemented
1655 {.config =
1656 {
1657 .prop = toInt(VehicleProperty::FRONT_FOG_LIGHTS_SWITCH),
1658 .access = VehiclePropertyAccess::READ_WRITE,
1659 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1660 },
1661 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}},
1662
1663 // FOG_LIGHTS_SWITCH must not be implemented when REAR_FOG_LIGHTS_SWITCH is implemented
1664 {.config =
1665 {
1666 .prop = toInt(VehicleProperty::REAR_FOG_LIGHTS_SWITCH),
1667 .access = VehiclePropertyAccess::READ_WRITE,
1668 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1669 },
1670 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}},
1671
1672 {.config =
1673 {
1674 .prop = toInt(VehicleProperty::HAZARD_LIGHTS_SWITCH),
1675 .access = VehiclePropertyAccess::READ_WRITE,
1676 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1677 },
1678 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}},
1679
1680 {.config =
1681 {
1682 .prop = toInt(VehicleProperty::CABIN_LIGHTS_SWITCH),
1683 .access = VehiclePropertyAccess::READ_WRITE,
1684 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1685 },
1686 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1687
1688 {.config = {.prop = toInt(VehicleProperty::READING_LIGHTS_SWITCH),
1689 .access = VehiclePropertyAccess::READ_WRITE,
1690 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1691 .areaConfigs = {VehicleAreaConfig{.areaId = SEAT_1_LEFT},
1692 VehicleAreaConfig{.areaId = SEAT_1_RIGHT},
1693 VehicleAreaConfig{.areaId = SEAT_2_LEFT},
1694 VehicleAreaConfig{.areaId = SEAT_2_RIGHT},
1695 VehicleAreaConfig{.areaId = SEAT_2_CENTER}}},
1696 .initialValue = {.int32Values = {LIGHT_STATE_ON}}},
1697
1698 {.config =
1699 {
1700 .prop = toInt(VehicleProperty::EVS_SERVICE_REQUEST),
1701 .access = VehiclePropertyAccess::READ,
1702 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1703 },
1704 .initialValue = {.int32Values = {toInt(EvsServiceType::REARVIEW),
1705 toInt(EvsServiceState::OFF)}}},
1706
1707 {.config = {.prop = VEHICLE_MAP_SERVICE,
1708 .access = VehiclePropertyAccess::READ_WRITE,
1709 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}},
1710
1711 // Example Vendor Extension properties for testing
1712 {.config = {.prop = VENDOR_EXTENSION_BOOLEAN_PROPERTY,
1713 .access = VehiclePropertyAccess::READ_WRITE,
1714 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1715 .areaConfigs = {VehicleAreaConfig{.areaId = DOOR_1_LEFT},
1716 VehicleAreaConfig{.areaId = DOOR_1_RIGHT},
1717 VehicleAreaConfig{.areaId = DOOR_2_LEFT},
1718 VehicleAreaConfig{.areaId = DOOR_2_RIGHT}}},
1719 .initialAreaValues = {{DOOR_1_LEFT, {.int32Values = {1}}},
1720 {DOOR_1_RIGHT, {.int32Values = {1}}},
1721 {DOOR_2_LEFT, {.int32Values = {0}}},
1722 {DOOR_2_RIGHT, {.int32Values = {0}}}}},
1723
1724 {.config = {.prop = VENDOR_EXTENSION_FLOAT_PROPERTY,
1725 .access = VehiclePropertyAccess::READ_WRITE,
1726 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1727 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_LEFT,
1728 .minFloatValue = -10,
1729 .maxFloatValue = 10},
1730 VehicleAreaConfig{.areaId = HVAC_RIGHT,
1731 .minFloatValue = -10,
1732 .maxFloatValue = 10}}},
1733 .initialAreaValues = {{HVAC_LEFT, {.floatValues = {1}}},
1734 {HVAC_RIGHT, {.floatValues = {2}}}}},
1735
1736 {.config = {.prop = VENDOR_EXTENSION_INT_PROPERTY,
1737 .access = VehiclePropertyAccess::READ_WRITE,
1738 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1739 .areaConfigs =
1740 {VehicleAreaConfig{.areaId = toInt(VehicleAreaWindow::FRONT_WINDSHIELD),
1741 .minInt32Value = -100,
1742 .maxInt32Value = 100},
1743 VehicleAreaConfig{.areaId = toInt(VehicleAreaWindow::REAR_WINDSHIELD),
1744 .minInt32Value = -100,
1745 .maxInt32Value = 100},
1746 VehicleAreaConfig{.areaId = toInt(VehicleAreaWindow::ROOF_TOP_1),
1747 .minInt32Value = -100,
1748 .maxInt32Value = 100}}},
1749 .initialAreaValues = {{toInt(VehicleAreaWindow::FRONT_WINDSHIELD), {.int32Values = {1}}},
1750 {toInt(VehicleAreaWindow::REAR_WINDSHIELD), {.int32Values = {0}}},
1751 {toInt(VehicleAreaWindow::ROOF_TOP_1), {.int32Values = {-1}}}}},
1752
1753 {.config = {.prop = VENDOR_EXTENSION_STRING_PROPERTY,
1754 .access = VehiclePropertyAccess::READ_WRITE,
1755 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1756 .initialValue = {.stringValue = "Vendor String Property"}},
1757
1758 {.config = {.prop = toInt(VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE),
1759 .access = VehiclePropertyAccess::READ,
1760 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1761 .initialValue = {.int32Values = {0}}},
1762
1763 {.config = {.prop = toInt(VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_STATUS),
1764 .access = VehiclePropertyAccess::READ,
1765 .changeMode = VehiclePropertyChangeMode::ON_CHANGE},
1766 .initialValue = {.int32Values = {0}}},
1767
1768 {.config =
1769 {
1770 .prop = toInt(VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION),
1771 .access = VehiclePropertyAccess::READ,
1772 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1773 .configArray = {kMixedTypePropertyForTest,
1774 toInt(VehicleVendorPermission::
1775 PERMISSION_GET_VENDOR_CATEGORY_INFO),
1776 toInt(VehicleVendorPermission::
1777 PERMISSION_SET_VENDOR_CATEGORY_INFO),
1778 VENDOR_EXTENSION_INT_PROPERTY,
1779 toInt(VehicleVendorPermission::
1780 PERMISSION_GET_VENDOR_CATEGORY_SEAT),
1781 toInt(VehicleVendorPermission::PERMISSION_NOT_ACCESSIBLE),
1782 VENDOR_EXTENSION_FLOAT_PROPERTY,
1783 toInt(VehicleVendorPermission::PERMISSION_DEFAULT),
1784 toInt(VehicleVendorPermission::PERMISSION_DEFAULT)},
1785 },
1786 .initialValue = {.int32Values = {1}}},
1787
1788 {
1789 .config =
1790 {
1791 .prop = toInt(VehicleProperty::INITIAL_USER_INFO),
1792 .access = VehiclePropertyAccess::READ_WRITE,
1793 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1794 },
1795 },
1796 {
1797 .config =
1798 {
1799 .prop = toInt(VehicleProperty::SWITCH_USER),
1800 .access = VehiclePropertyAccess::READ_WRITE,
1801 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1802 },
1803 },
1804 {
1805 .config =
1806 {
1807 .prop = toInt(VehicleProperty::CREATE_USER),
1808 .access = VehiclePropertyAccess::READ_WRITE,
1809 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1810 },
1811 },
1812 {
1813 .config =
1814 {
1815 .prop = toInt(VehicleProperty::REMOVE_USER),
1816 .access = VehiclePropertyAccess::READ_WRITE,
1817 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1818 },
1819 },
1820 {
1821 .config =
1822 {
1823 .prop = toInt(VehicleProperty::USER_IDENTIFICATION_ASSOCIATION),
1824 .access = VehiclePropertyAccess::READ_WRITE,
1825 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1826 },
1827 },
1828 {
1829 .config =
1830 {
1831 .prop = toInt(VehicleProperty::POWER_POLICY_REQ),
1832 .access = VehiclePropertyAccess::READ,
1833 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1834 },
1835 },
1836 {
1837 .config =
1838 {
1839 .prop = toInt(VehicleProperty::POWER_POLICY_GROUP_REQ),
1840 .access = VehiclePropertyAccess::READ,
1841 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1842 },
1843 },
1844 {
1845 .config =
1846 {
1847 .prop = toInt(VehicleProperty::CURRENT_POWER_POLICY),
1848 .access = VehiclePropertyAccess::READ_WRITE,
1849 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1850 },
1851 },
1852 {
1853 .config =
1854 {
1855 .prop = toInt(VehicleProperty::ANDROID_EPOCH_TIME),
1856 .access = VehiclePropertyAccess::WRITE,
1857 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1858 },
1859 },
1860 {
1861 .config =
1862 {
1863 .prop = toInt(VehicleProperty::WATCHDOG_ALIVE),
1864 .access = VehiclePropertyAccess::WRITE,
1865 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1866 },
1867 },
1868 {
1869 .config =
1870 {
1871 .prop = toInt(VehicleProperty::WATCHDOG_TERMINATED_PROCESS),
1872 .access = VehiclePropertyAccess::WRITE,
1873 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1874 },
1875 },
1876 {
1877 .config =
1878 {
1879 .prop = toInt(VehicleProperty::VHAL_HEARTBEAT),
1880 .access = VehiclePropertyAccess::READ,
1881 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1882 },
1883 },
1884 {
1885 .config =
1886 {
1887 .prop = toInt(VehicleProperty::CLUSTER_SWITCH_UI),
1888 .access = VehiclePropertyAccess::READ,
1889 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1890 },
1891 .initialValue = {.int32Values = {0 /* ClusterHome */}},
1892 },
1893 {
1894 .config =
1895 {
1896 .prop = toInt(VehicleProperty::CLUSTER_DISPLAY_STATE),
1897 .access = VehiclePropertyAccess::READ,
1898 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1899 },
1900 .initialValue = {.int32Values = {0 /* Off */, -1, -1, -1, -1 /* Bounds */, -1, -1,
1901 -1, -1 /* Insets */}},
1902 },
1903 {
1904 .config =
1905 {
1906 .prop = toInt(VehicleProperty::CLUSTER_REPORT_STATE),
1907 .access = VehiclePropertyAccess::WRITE,
1908 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1909 .configArray = {0, 0, 0, 11, 0, 0, 0, 0, 16},
1910 },
1911 },
1912 {
1913 .config =
1914 {
1915 .prop = toInt(VehicleProperty::CLUSTER_REQUEST_DISPLAY),
1916 .access = VehiclePropertyAccess::WRITE,
1917 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1918 },
1919 },
1920 {
1921 .config =
1922 {
1923 .prop = toInt(VehicleProperty::CLUSTER_NAVIGATION_STATE),
1924 .access = VehiclePropertyAccess::WRITE,
1925 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1926 },
1927 },
1928 {
1929 .config =
1930 {
1931 .prop = PLACEHOLDER_PROPERTY_INT,
1932 .access = VehiclePropertyAccess::READ_WRITE,
1933 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1934 },
1935 .initialValue = {.int32Values = {0}},
1936 },
1937 {
1938 .config =
1939 {
1940 .prop = PLACEHOLDER_PROPERTY_FLOAT,
1941 .access = VehiclePropertyAccess::READ_WRITE,
1942 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1943 },
1944 .initialValue = {.floatValues = {0.0f}},
1945 },
1946 {
1947 .config =
1948 {
1949 .prop = PLACEHOLDER_PROPERTY_BOOLEAN,
1950 .access = VehiclePropertyAccess::READ_WRITE,
1951 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1952 },
1953 .initialValue = {.int32Values = {0 /* false */}},
1954 },
1955 {
1956 .config =
1957 {
1958 .prop = PLACEHOLDER_PROPERTY_STRING,
1959 .access = VehiclePropertyAccess::READ_WRITE,
1960 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1961 },
1962 .initialValue = {.stringValue = {"Test"}},
1963 },
1964 {
1965 .config =
1966 {
1967 .prop = ECHO_REVERSE_BYTES,
1968 .access = VehiclePropertyAccess::READ_WRITE,
1969 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1970 },
1971 },
1972 #ifdef ENABLE_VENDOR_CLUSTER_PROPERTY_FOR_TESTING
1973 // Vendor propetry for E2E ClusterHomeService testing.
1974 {
1975 .config =
1976 {
1977 .prop = VENDOR_CLUSTER_SWITCH_UI,
1978 .access = VehiclePropertyAccess::WRITE,
1979 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1980 },
1981 },
1982 {
1983 .config =
1984 {
1985 .prop = VENDOR_CLUSTER_DISPLAY_STATE,
1986 .access = VehiclePropertyAccess::WRITE,
1987 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1988 },
1989 },
1990 {
1991 .config =
1992 {
1993 .prop = VENDOR_CLUSTER_REPORT_STATE,
1994 .access = VehiclePropertyAccess::READ,
1995 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
1996 .configArray = {0, 0, 0, 11, 0, 0, 0, 0, 16},
1997 },
1998 .initialValue = {.int32Values = {0 /* Off */, -1, -1, -1, -1 /* Bounds */, -1, -1,
1999 -1, -1 /* Insets */, 0 /* ClusterHome */,
2000 -1 /* ClusterNone */}},
2001 },
2002 {
2003 .config =
2004 {
2005 .prop = VENDOR_CLUSTER_REQUEST_DISPLAY,
2006 .access = VehiclePropertyAccess::READ,
2007 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
2008 },
2009 .initialValue = {.int32Values = {0 /* ClusterHome */}},
2010 },
2011 {
2012 .config =
2013 {
2014 .prop = VENDOR_CLUSTER_NAVIGATION_STATE,
2015 .access = VehiclePropertyAccess::READ,
2016 .changeMode = VehiclePropertyChangeMode::ON_CHANGE,
2017 },
2018 },
2019 #endif // ENABLE_VENDOR_CLUSTER_PROPERTY_FOR_TESTING
2020 };
2021
2022 } // namespace defaultconfig_impl
2023
2024 // public namespace
2025 namespace defaultconfig {
2026
2027 typedef defaultconfig_impl::ConfigDeclaration ConfigDeclaration;
2028
getDefaultConfigs()2029 inline constexpr const std::vector<ConfigDeclaration>& getDefaultConfigs() {
2030 return defaultconfig_impl::kVehicleProperties;
2031 }
2032
2033 } // namespace defaultconfig
2034
2035 } // namespace vehicle
2036 } // namespace automotive
2037 } // namespace hardware
2038 } // namespace android
2039
2040 #endif // android_hardware_automotive_vehicle_aidl_impl_default_config_include_DefaultConfig_H_
2041