1 /* 2 * Copyright (C) 2016 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_V2_0_impl_DefaultConfig_H_ 18 #define android_hardware_automotive_vehicle_V2_0_impl_DefaultConfig_H_ 19 20 #include "PropertyUtils.h" 21 22 #include <map> 23 24 namespace android { 25 namespace hardware { 26 namespace automotive { 27 namespace vehicle { 28 namespace V2_0 { 29 30 namespace impl { 31 32 struct ConfigDeclaration { 33 VehiclePropConfig config; 34 35 /* This value will be used as an initial value for the property. If this field is specified for 36 * property that supports multiple areas then it will be used for all areas unless particular 37 * area is overridden in initialAreaValue field. */ 38 VehiclePropValue::RawValue initialValue; 39 /* Use initialAreaValues if it is necessary to specify different values per each area. */ 40 std::map<int32_t, VehiclePropValue::RawValue> initialAreaValues; 41 }; 42 43 const ConfigDeclaration kVehicleProperties[]{ 44 {.config = 45 { 46 .prop = toInt(VehicleProperty::INFO_FUEL_CAPACITY), 47 .access = VehiclePropertyAccess::READ, 48 .changeMode = VehiclePropertyChangeMode::STATIC, 49 }, 50 .initialValue = {.floatValues = {15000.0f}}}, 51 52 {.config = 53 { 54 .prop = toInt(VehicleProperty::INFO_FUEL_TYPE), 55 .access = VehiclePropertyAccess::READ, 56 .changeMode = VehiclePropertyChangeMode::STATIC, 57 }, 58 .initialValue = {.int32Values = {(int)FuelType::FUEL_TYPE_UNLEADED}}}, 59 60 {.config = 61 { 62 .prop = toInt(VehicleProperty::INFO_EV_BATTERY_CAPACITY), 63 .access = VehiclePropertyAccess::READ, 64 .changeMode = VehiclePropertyChangeMode::STATIC, 65 }, 66 .initialValue = {.floatValues = {150000.0f}}}, 67 68 {.config = 69 { 70 .prop = toInt(VehicleProperty::INFO_EV_CONNECTOR_TYPE), 71 .access = VehiclePropertyAccess::READ, 72 .changeMode = VehiclePropertyChangeMode::STATIC, 73 }, 74 .initialValue = {.int32Values = {(int)EvConnectorType::IEC_TYPE_1_AC}}}, 75 76 {.config = 77 { 78 .prop = toInt(VehicleProperty::INFO_FUEL_DOOR_LOCATION), 79 .access = VehiclePropertyAccess::READ, 80 .changeMode = VehiclePropertyChangeMode::STATIC, 81 }, 82 .initialValue = {.int32Values = {FUEL_DOOR_REAR_LEFT}}}, 83 84 {.config = 85 { 86 .prop = toInt(VehicleProperty::INFO_EV_PORT_LOCATION), 87 .access = VehiclePropertyAccess::READ, 88 .changeMode = VehiclePropertyChangeMode::STATIC, 89 }, 90 .initialValue = {.int32Values = {CHARGE_PORT_FRONT_LEFT}}}, 91 92 {.config = 93 { 94 .prop = toInt(VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS), 95 .access = VehiclePropertyAccess::READ, 96 .changeMode = VehiclePropertyChangeMode::STATIC, 97 }, 98 .initialValue = {.int32Values = {CHARGE_PORT_FRONT_LEFT, CHARGE_PORT_REAR_LEFT}}}, 99 100 {.config = 101 { 102 .prop = toInt(VehicleProperty::INFO_MAKE), 103 .access = VehiclePropertyAccess::READ, 104 .changeMode = VehiclePropertyChangeMode::STATIC, 105 }, 106 .initialValue = {.stringValue = "Toy Vehicle"}}, 107 {.config = 108 { 109 .prop = toInt(VehicleProperty::INFO_MODEL), 110 .access = VehiclePropertyAccess::READ, 111 .changeMode = VehiclePropertyChangeMode::STATIC, 112 }, 113 .initialValue = {.stringValue = "Speedy Model"}}, 114 {.config = 115 { 116 .prop = toInt(VehicleProperty::INFO_MODEL_YEAR), 117 .access = VehiclePropertyAccess::READ, 118 .changeMode = VehiclePropertyChangeMode::STATIC, 119 }, 120 .initialValue = {.int32Values = {2020}}}, 121 {.config = 122 { 123 .prop = toInt(VehicleProperty::INFO_EXTERIOR_DIMENSIONS), 124 .access = VehiclePropertyAccess::READ, 125 .changeMode = VehiclePropertyChangeMode::STATIC, 126 }, 127 .initialValue = {.int32Values = {1776, 4950, 2008, 2140, 2984, 1665, 1667, 11800}}}, 128 {.config = 129 { 130 .prop = toInt(VehicleProperty::PERF_VEHICLE_SPEED), 131 .access = VehiclePropertyAccess::READ, 132 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 133 .minSampleRate = 1.0f, 134 .maxSampleRate = 10.0f, 135 }, 136 .initialValue = {.floatValues = {0.0f}}}, 137 138 {.config = 139 { 140 .prop = toInt(VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS), 141 .access = VehiclePropertyAccess::READ_WRITE, 142 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 143 .configArray = {(int)VehicleUnit::METER_PER_SEC, 144 (int)VehicleUnit::MILES_PER_HOUR, 145 (int)VehicleUnit::KILOMETERS_PER_HOUR}, 146 }, 147 .initialValue = {.int32Values = {(int)VehicleUnit::KILOMETERS_PER_HOUR}}}, 148 149 {.config = 150 { 151 .prop = toInt(VehicleProperty::SEAT_OCCUPANCY), 152 .access = VehiclePropertyAccess::READ, 153 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 154 .areaConfigs = {VehicleAreaConfig{.areaId = (SEAT_1_LEFT)}, 155 VehicleAreaConfig{.areaId = (SEAT_1_RIGHT)}}, 156 }, 157 .initialAreaValues = {{SEAT_1_LEFT, 158 {.int32Values = {(int)VehicleSeatOccupancyState::VACANT}}}, 159 {SEAT_1_RIGHT, 160 {.int32Values = {(int)VehicleSeatOccupancyState::VACANT}}}}}, 161 162 {.config = 163 { 164 .prop = toInt(VehicleProperty::INFO_DRIVER_SEAT), 165 .access = VehiclePropertyAccess::READ, 166 .changeMode = VehiclePropertyChangeMode::STATIC, 167 // this was a zoned property on an old vhal, but it is meant to be global 168 .areaConfigs = {VehicleAreaConfig{.areaId = (0)}}, 169 }, 170 .initialValue = {.int32Values = {SEAT_1_LEFT}}}, 171 172 {.config = 173 { 174 .prop = toInt(VehicleProperty::PERF_ODOMETER), 175 .access = VehiclePropertyAccess::READ, 176 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 177 .minSampleRate = 1.0f, 178 .maxSampleRate = 10.0f, 179 }, 180 .initialValue = {.floatValues = {0.0f}}}, 181 {.config = 182 { 183 .prop = toInt(VehicleProperty::PERF_STEERING_ANGLE), 184 .access = VehiclePropertyAccess::READ, 185 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 186 .minSampleRate = 1.0f, 187 .maxSampleRate = 10.0f, 188 }, 189 .initialValue = {.floatValues = {0.0f}}}, 190 {.config = 191 { 192 .prop = toInt(VehicleProperty::PERF_REAR_STEERING_ANGLE), 193 .access = VehiclePropertyAccess::READ, 194 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 195 .minSampleRate = 1.0f, 196 .maxSampleRate = 10.0f, 197 }, 198 .initialValue = {.floatValues = {0.0f}}}, 199 { 200 .config = 201 { 202 .prop = toInt(VehicleProperty::ENGINE_RPM), 203 .access = VehiclePropertyAccess::READ, 204 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 205 .minSampleRate = 1.0f, 206 .maxSampleRate = 10.0f, 207 }, 208 .initialValue = {.floatValues = {0.0f}}, 209 }, 210 211 {.config = 212 { 213 .prop = toInt(VehicleProperty::FUEL_LEVEL), 214 .access = VehiclePropertyAccess::READ, 215 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 216 .minSampleRate = 1.0f, 217 .maxSampleRate = 100.0f, 218 }, 219 .initialValue = {.floatValues = {15000.0f}}}, 220 221 {.config = 222 { 223 .prop = toInt(VehicleProperty::FUEL_DOOR_OPEN), 224 .access = VehiclePropertyAccess::READ_WRITE, 225 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 226 }, 227 .initialValue = {.int32Values = {0}}}, 228 229 {.config = 230 { 231 .prop = toInt(VehicleProperty::EV_BATTERY_LEVEL), 232 .access = VehiclePropertyAccess::READ, 233 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 234 .minSampleRate = 1.0f, 235 .maxSampleRate = 100.0f, 236 }, 237 .initialValue = {.floatValues = {150000.0f}}}, 238 239 {.config = 240 { 241 .prop = toInt(VehicleProperty::EV_CHARGE_PORT_OPEN), 242 .access = VehiclePropertyAccess::READ_WRITE, 243 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 244 }, 245 .initialValue = {.int32Values = {0}}}, 246 247 {.config = 248 { 249 .prop = toInt(VehicleProperty::EV_CHARGE_PORT_CONNECTED), 250 .access = VehiclePropertyAccess::READ, 251 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 252 }, 253 .initialValue = {.int32Values = {0}}}, 254 255 {.config = 256 { 257 .prop = toInt(VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE), 258 .access = VehiclePropertyAccess::READ, 259 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 260 .minSampleRate = 1.0f, 261 .maxSampleRate = 10.0f, 262 }, 263 .initialValue = {.floatValues = {0.0f}}}, 264 265 {.config = 266 { 267 .prop = toInt(VehicleProperty::RANGE_REMAINING), 268 .access = VehiclePropertyAccess::READ_WRITE, 269 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 270 .minSampleRate = 1.0f, 271 .maxSampleRate = 2.0f, 272 }, 273 .initialValue = {.floatValues = {50000.0f}}}, // units in meters 274 275 {.config = 276 { 277 .prop = toInt(VehicleProperty::TIRE_PRESSURE), 278 .access = VehiclePropertyAccess::READ, 279 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 280 .areaConfigs = {VehicleAreaConfig{ 281 .areaId = WHEEL_FRONT_LEFT, 282 .minFloatValue = 193.0f, 283 .maxFloatValue = 300.0f, 284 }, 285 VehicleAreaConfig{ 286 .areaId = WHEEL_FRONT_RIGHT, 287 .minFloatValue = 193.0f, 288 .maxFloatValue = 300.0f, 289 }, 290 VehicleAreaConfig{ 291 .areaId = WHEEL_REAR_LEFT, 292 .minFloatValue = 193.0f, 293 .maxFloatValue = 300.0f, 294 }, 295 VehicleAreaConfig{ 296 .areaId = WHEEL_REAR_RIGHT, 297 .minFloatValue = 193.0f, 298 .maxFloatValue = 300.0f, 299 }}, 300 .minSampleRate = 1.0f, 301 .maxSampleRate = 2.0f, 302 }, 303 .initialValue = {.floatValues = {200.0f}}}, // units in kPa 304 305 {.config = 306 { 307 .prop = toInt(VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE), 308 .access = VehiclePropertyAccess::READ, 309 .changeMode = VehiclePropertyChangeMode::STATIC, 310 .areaConfigs = {VehicleAreaConfig{ 311 .areaId = WHEEL_FRONT_LEFT, 312 }, 313 VehicleAreaConfig{ 314 .areaId = WHEEL_FRONT_RIGHT, 315 }, 316 VehicleAreaConfig{ 317 .areaId = WHEEL_REAR_LEFT, 318 }, 319 VehicleAreaConfig{ 320 .areaId = WHEEL_REAR_RIGHT, 321 }}, 322 }, 323 .initialAreaValues = {{WHEEL_FRONT_LEFT, {.floatValues = {137.0f}}}, 324 {WHEEL_FRONT_RIGHT, {.floatValues = {137.0f}}}, 325 {WHEEL_REAR_RIGHT, {.floatValues = {137.0f}}}, 326 {WHEEL_REAR_LEFT, {.floatValues = {137.0f}}}}}, 327 328 {.config = 329 { 330 .prop = toInt(VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS), 331 .access = VehiclePropertyAccess::READ_WRITE, 332 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 333 .configArray = {(int)VehicleUnit::KILOPASCAL, (int)VehicleUnit::PSI, 334 (int)VehicleUnit::BAR}, 335 }, 336 .initialValue = {.int32Values = {toInt(VehicleUnit::PSI)}}}, 337 338 {.config = 339 { 340 .prop = toInt(VehicleProperty::CURRENT_GEAR), 341 .access = VehiclePropertyAccess::READ, 342 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 343 .configArray = {(int)VehicleGear::GEAR_PARK, 344 (int)VehicleGear::GEAR_NEUTRAL, 345 (int)VehicleGear::GEAR_REVERSE, (int)VehicleGear::GEAR_1, 346 (int)VehicleGear::GEAR_2, (int)VehicleGear::GEAR_3, 347 (int)VehicleGear::GEAR_4, (int)VehicleGear::GEAR_5}, 348 }, 349 .initialValue = {.int32Values = {toInt(VehicleGear::GEAR_PARK)}}}, 350 351 {.config = 352 { 353 .prop = toInt(VehicleProperty::PARKING_BRAKE_ON), 354 .access = VehiclePropertyAccess::READ, 355 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 356 }, 357 .initialValue = {.int32Values = {1}}}, 358 359 {.config = 360 { 361 .prop = toInt(VehicleProperty::PARKING_BRAKE_AUTO_APPLY), 362 .access = VehiclePropertyAccess::READ, 363 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 364 }, 365 .initialValue = {.int32Values = {1}}}, 366 367 {.config = 368 { 369 .prop = toInt(VehicleProperty::FUEL_LEVEL_LOW), 370 .access = VehiclePropertyAccess::READ, 371 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 372 }, 373 .initialValue = {.int32Values = {0}}}, 374 375 {.config = 376 { 377 .prop = toInt(VehicleProperty::HW_KEY_INPUT), 378 .access = VehiclePropertyAccess::READ, 379 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 380 }, 381 .initialValue = {.int32Values = {0, 0, 0}}}, 382 383 {.config = 384 { 385 .prop = toInt(VehicleProperty::HW_ROTARY_INPUT), 386 .access = VehiclePropertyAccess::READ, 387 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 388 }, 389 .initialValue = {.int32Values = {0, 0, 0}}}, 390 391 {.config = 392 { 393 .prop = toInt(VehicleProperty::HW_CUSTOM_INPUT), 394 .access = VehiclePropertyAccess::READ, 395 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 396 .configArray = {0, 0, 0, 3, 0, 0, 0, 0, 0}, 397 }, 398 .initialValue = 399 { 400 .int32Values = {0, 0, 0}, 401 }}, 402 403 {.config = {.prop = toInt(VehicleProperty::HVAC_POWER_ON), 404 .access = VehiclePropertyAccess::READ_WRITE, 405 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 406 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}, 407 // TODO(bryaneyler): Ideally, this is generated dynamically from 408 // kHvacPowerProperties. 409 .configArray = {toInt(VehicleProperty::HVAC_FAN_SPEED), 410 toInt(VehicleProperty::HVAC_FAN_DIRECTION)}}, 411 .initialValue = {.int32Values = {1}}}, 412 413 { 414 .config = {.prop = toInt(VehicleProperty::HVAC_DEFROSTER), 415 .access = VehiclePropertyAccess::READ_WRITE, 416 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 417 .areaConfigs = 418 {VehicleAreaConfig{ 419 .areaId = toInt(VehicleAreaWindow::FRONT_WINDSHIELD)}, 420 VehicleAreaConfig{ 421 .areaId = toInt(VehicleAreaWindow::REAR_WINDSHIELD)}}}, 422 .initialValue = {.int32Values = {0}} // Will be used for all areas. 423 }, 424 { 425 .config = {.prop = toInt(VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON), 426 .access = VehiclePropertyAccess::READ_WRITE, 427 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 428 .areaConfigs = 429 {VehicleAreaConfig{ 430 .areaId = toInt(VehicleAreaWindow::FRONT_WINDSHIELD)}, 431 VehicleAreaConfig{ 432 .areaId = toInt(VehicleAreaWindow::REAR_WINDSHIELD)}}}, 433 .initialValue = {.int32Values = {0}} // Will be used for all areas. 434 }, 435 436 {.config = {.prop = toInt(VehicleProperty::HVAC_MAX_DEFROST_ON), 437 .access = VehiclePropertyAccess::READ_WRITE, 438 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 439 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 440 .initialValue = {.int32Values = {0}}}, 441 442 {.config = {.prop = toInt(VehicleProperty::HVAC_RECIRC_ON), 443 .access = VehiclePropertyAccess::READ_WRITE, 444 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 445 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 446 .initialValue = {.int32Values = {1}}}, 447 448 {.config = {.prop = toInt(VehicleProperty::HVAC_AUTO_RECIRC_ON), 449 .access = VehiclePropertyAccess::READ_WRITE, 450 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 451 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 452 .initialValue = {.int32Values = {0}}}, 453 454 {.config = {.prop = toInt(VehicleProperty::HVAC_AC_ON), 455 .access = VehiclePropertyAccess::READ_WRITE, 456 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 457 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 458 .initialValue = {.int32Values = {1}}}, 459 460 {.config = {.prop = toInt(VehicleProperty::HVAC_MAX_AC_ON), 461 .access = VehiclePropertyAccess::READ_WRITE, 462 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 463 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 464 .initialValue = {.int32Values = {0}}}, 465 466 {.config = {.prop = toInt(VehicleProperty::HVAC_AUTO_ON), 467 .access = VehiclePropertyAccess::READ_WRITE, 468 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 469 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 470 .initialValue = {.int32Values = {1}}}, 471 472 {.config = {.prop = toInt(VehicleProperty::HVAC_DUAL_ON), 473 .access = VehiclePropertyAccess::READ_WRITE, 474 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 475 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 476 .initialValue = {.int32Values = {0}}}, 477 478 {.config = {.prop = toInt(VehicleProperty::HVAC_FAN_SPEED), 479 .access = VehiclePropertyAccess::READ_WRITE, 480 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 481 .areaConfigs = {VehicleAreaConfig{ 482 .areaId = HVAC_ALL, .minInt32Value = 1, .maxInt32Value = 7}}}, 483 .initialValue = {.int32Values = {3}}}, 484 485 {.config = {.prop = toInt(VehicleProperty::HVAC_FAN_DIRECTION), 486 .access = VehiclePropertyAccess::READ_WRITE, 487 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 488 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 489 .initialValue = {.int32Values = {toInt(VehicleHvacFanDirection::FACE)}}}, 490 491 {.config = {.prop = toInt(VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE), 492 .access = VehiclePropertyAccess::READ, 493 .changeMode = VehiclePropertyChangeMode::STATIC, 494 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_ALL}}}, 495 .initialValue = {.int32Values = {FAN_DIRECTION_FACE, FAN_DIRECTION_FLOOR, 496 FAN_DIRECTION_FACE | FAN_DIRECTION_FLOOR, 497 FAN_DIRECTION_DEFROST, 498 FAN_DIRECTION_FACE | FAN_DIRECTION_DEFROST, 499 FAN_DIRECTION_FLOOR | FAN_DIRECTION_DEFROST, 500 FAN_DIRECTION_FLOOR | FAN_DIRECTION_DEFROST | 501 FAN_DIRECTION_FACE}}}, 502 {.config = {.prop = toInt(VehicleProperty::HVAC_SEAT_VENTILATION), 503 .access = VehiclePropertyAccess::READ_WRITE, 504 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 505 .areaConfigs = {VehicleAreaConfig{ 506 .areaId = SEAT_1_LEFT, 507 .minInt32Value = 0, 508 .maxInt32Value = 3, 509 }, 510 VehicleAreaConfig{ 511 .areaId = SEAT_1_RIGHT, 512 .minInt32Value = 0, 513 .maxInt32Value = 3, 514 }}}, 515 .initialValue = 516 {.int32Values = {0}}}, // 0 is off and +ve values indicate ventilation level. 517 518 {.config = {.prop = toInt(VehicleProperty::HVAC_STEERING_WHEEL_HEAT), 519 .access = VehiclePropertyAccess::READ_WRITE, 520 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 521 .areaConfigs = {VehicleAreaConfig{ 522 .areaId = (0), .minInt32Value = -2, .maxInt32Value = 2}}}, 523 .initialValue = {.int32Values = {0}}}, // +ve values for heating and -ve for cooling 524 525 {.config = {.prop = toInt(VehicleProperty::HVAC_SEAT_TEMPERATURE), 526 .access = VehiclePropertyAccess::READ_WRITE, 527 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 528 .areaConfigs = {VehicleAreaConfig{ 529 .areaId = SEAT_1_LEFT, 530 .minInt32Value = -2, 531 .maxInt32Value = 2, 532 }, 533 VehicleAreaConfig{ 534 .areaId = SEAT_1_RIGHT, 535 .minInt32Value = -2, 536 .maxInt32Value = 2, 537 }}}, 538 .initialValue = {.int32Values = {0}}}, // +ve values for heating and -ve for cooling 539 540 {.config = {.prop = toInt(VehicleProperty::HVAC_TEMPERATURE_SET), 541 .access = VehiclePropertyAccess::READ_WRITE, 542 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 543 .configArray = {160, 280, 5, 605, 825, 10}, 544 .areaConfigs = {VehicleAreaConfig{ 545 .areaId = HVAC_LEFT, 546 .minFloatValue = 16, 547 .maxFloatValue = 32, 548 }, 549 VehicleAreaConfig{ 550 .areaId = HVAC_RIGHT, 551 .minFloatValue = 16, 552 .maxFloatValue = 32, 553 }}}, 554 .initialAreaValues = {{HVAC_LEFT, {.floatValues = {16}}}, 555 {HVAC_RIGHT, {.floatValues = {20}}}}}, 556 557 {.config = 558 { 559 .prop = toInt(VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION), 560 .access = VehiclePropertyAccess::READ_WRITE, 561 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 562 }, 563 .initialValue = {.floatValues = {66.2f, (float)VehicleUnit::FAHRENHEIT, 19.0f, 66.5f}}}, 564 565 {.config = 566 { 567 .prop = toInt(VehicleProperty::ENV_OUTSIDE_TEMPERATURE), 568 .access = VehiclePropertyAccess::READ, 569 // TODO(bryaneyler): Support ON_CHANGE as well. 570 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 571 .minSampleRate = 1.0f, 572 .maxSampleRate = 2.0f, 573 }, 574 .initialValue = {.floatValues = {25.0f}}}, 575 576 {.config = {.prop = toInt(VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS), 577 .access = VehiclePropertyAccess::READ_WRITE, 578 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 579 .configArray = {(int)VehicleUnit::FAHRENHEIT, (int)VehicleUnit::CELSIUS}}, 580 .initialValue = {.int32Values = {(int)VehicleUnit::FAHRENHEIT}}}, 581 582 {.config = 583 { 584 .prop = toInt(VehicleProperty::DISTANCE_DISPLAY_UNITS), 585 .access = VehiclePropertyAccess::READ_WRITE, 586 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 587 .areaConfigs = {VehicleAreaConfig{.areaId = (0)}}, 588 .configArray = {(int)VehicleUnit::KILOMETER, (int)VehicleUnit::MILE}, 589 }, 590 .initialValue = {.int32Values = {(int)VehicleUnit::MILE}}}, 591 592 {.config = 593 { 594 .prop = toInt(VehicleProperty::NIGHT_MODE), 595 .access = VehiclePropertyAccess::READ, 596 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 597 }, 598 .initialValue = {.int32Values = {0}}}, 599 600 {.config = 601 { 602 .prop = toInt(VehicleProperty::GEAR_SELECTION), 603 .access = VehiclePropertyAccess::READ, 604 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 605 .configArray = {(int)VehicleGear::GEAR_PARK, 606 (int)VehicleGear::GEAR_NEUTRAL, 607 (int)VehicleGear::GEAR_REVERSE, 608 (int)VehicleGear::GEAR_DRIVE, (int)VehicleGear::GEAR_1, 609 (int)VehicleGear::GEAR_2, (int)VehicleGear::GEAR_3, 610 (int)VehicleGear::GEAR_4, (int)VehicleGear::GEAR_5}, 611 }, 612 .initialValue = {.int32Values = {toInt(VehicleGear::GEAR_PARK)}}}, 613 614 {.config = 615 { 616 .prop = toInt(VehicleProperty::TURN_SIGNAL_STATE), 617 .access = VehiclePropertyAccess::READ, 618 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 619 }, 620 .initialValue = {.int32Values = {toInt(VehicleTurnSignal::NONE)}}}, 621 622 {.config = 623 { 624 .prop = toInt(VehicleProperty::IGNITION_STATE), 625 .access = VehiclePropertyAccess::READ, 626 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 627 }, 628 .initialValue = {.int32Values = {toInt(VehicleIgnitionState::ON)}}}, 629 630 {.config = 631 { 632 .prop = toInt(VehicleProperty::ENGINE_OIL_LEVEL), 633 .access = VehiclePropertyAccess::READ, 634 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 635 }, 636 .initialValue = {.int32Values = {toInt(VehicleOilLevel::NORMAL)}}}, 637 638 {.config = 639 { 640 .prop = toInt(VehicleProperty::ENGINE_OIL_TEMP), 641 .access = VehiclePropertyAccess::READ, 642 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 643 .minSampleRate = 0.1, // 0.1 Hz, every 10 seconds 644 .maxSampleRate = 10, // 10 Hz, every 100 ms 645 }, 646 .initialValue = {.floatValues = {101.0f}}}, 647 648 { 649 .config = {.prop = kMixedTypePropertyForTest, 650 .access = VehiclePropertyAccess::READ_WRITE, 651 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 652 .configArray = {1, 1, 0, 2, 0, 0, 1, 0, 0}}, 653 .initialValue = 654 { 655 .int32Values = {1 /* indicate TRUE boolean value */, 2, 3}, 656 .floatValues = {4.5f}, 657 .stringValue = "MIXED property", 658 }, 659 }, 660 661 {.config = {.prop = toInt(VehicleProperty::DOOR_LOCK), 662 .access = VehiclePropertyAccess::READ_WRITE, 663 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 664 .areaConfigs = {VehicleAreaConfig{.areaId = DOOR_1_LEFT}, 665 VehicleAreaConfig{.areaId = DOOR_1_RIGHT}, 666 VehicleAreaConfig{.areaId = DOOR_2_LEFT}, 667 VehicleAreaConfig{.areaId = DOOR_2_RIGHT}}}, 668 .initialAreaValues = {{DOOR_1_LEFT, {.int32Values = {1}}}, 669 {DOOR_1_RIGHT, {.int32Values = {1}}}, 670 {DOOR_2_LEFT, {.int32Values = {1}}}, 671 {DOOR_2_RIGHT, {.int32Values = {1}}}}}, 672 673 {.config = {.prop = toInt(VehicleProperty::DOOR_POS), 674 .access = VehiclePropertyAccess::READ_WRITE, 675 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 676 .areaConfigs = 677 {VehicleAreaConfig{ 678 .areaId = DOOR_1_LEFT, .minInt32Value = 0, .maxInt32Value = 1}, 679 VehicleAreaConfig{.areaId = DOOR_1_RIGHT, 680 .minInt32Value = 0, 681 .maxInt32Value = 1}, 682 VehicleAreaConfig{ 683 .areaId = DOOR_2_LEFT, .minInt32Value = 0, .maxInt32Value = 1}, 684 VehicleAreaConfig{.areaId = DOOR_2_RIGHT, 685 .minInt32Value = 0, 686 .maxInt32Value = 1}, 687 VehicleAreaConfig{ 688 .areaId = DOOR_REAR, .minInt32Value = 0, .maxInt32Value = 1}}}, 689 .initialValue = {.int32Values = {0}}}, 690 691 {.config = {.prop = toInt(VehicleProperty::WINDOW_LOCK), 692 .access = VehiclePropertyAccess::READ_WRITE, 693 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 694 .areaConfigs = {VehicleAreaConfig{.areaId = WINDOW_1_RIGHT | WINDOW_2_LEFT | 695 WINDOW_2_RIGHT}}}, 696 .initialAreaValues = {{WINDOW_1_RIGHT | WINDOW_2_LEFT | WINDOW_2_RIGHT, 697 {.int32Values = {0}}}}}, 698 699 {.config = {.prop = toInt(VehicleProperty::WINDOW_POS), 700 .access = VehiclePropertyAccess::READ_WRITE, 701 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 702 .areaConfigs = {VehicleAreaConfig{.areaId = WINDOW_1_LEFT, 703 .minInt32Value = 0, 704 .maxInt32Value = 10}, 705 VehicleAreaConfig{.areaId = WINDOW_1_RIGHT, 706 .minInt32Value = 0, 707 .maxInt32Value = 10}, 708 VehicleAreaConfig{.areaId = WINDOW_2_LEFT, 709 .minInt32Value = 0, 710 .maxInt32Value = 10}, 711 VehicleAreaConfig{.areaId = WINDOW_2_RIGHT, 712 .minInt32Value = 0, 713 .maxInt32Value = 10}, 714 VehicleAreaConfig{.areaId = WINDOW_ROOF_TOP_1, 715 .minInt32Value = -10, 716 .maxInt32Value = 10}}}, 717 .initialValue = {.int32Values = {0}}}, 718 719 {.config = 720 { 721 .prop = WHEEL_TICK, 722 .access = VehiclePropertyAccess::READ, 723 .changeMode = VehiclePropertyChangeMode::CONTINUOUS, 724 .configArray = {ALL_WHEELS, 50000, 50000, 50000, 50000}, 725 .minSampleRate = 1.0f, 726 .maxSampleRate = 10.0f, 727 }, 728 .initialValue = {.int64Values = {0, 100000, 200000, 300000, 400000}}}, 729 730 {.config = {.prop = ABS_ACTIVE, 731 .access = VehiclePropertyAccess::READ, 732 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}, 733 .initialValue = {.int32Values = {0}}}, 734 735 {.config = {.prop = TRACTION_CONTROL_ACTIVE, 736 .access = VehiclePropertyAccess::READ, 737 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}, 738 .initialValue = {.int32Values = {0}}}, 739 740 {.config = {.prop = toInt(VehicleProperty::AP_POWER_STATE_REQ), 741 .access = VehiclePropertyAccess::READ, 742 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 743 .configArray = {3}}, 744 .initialValue = {.int32Values = {toInt(VehicleApPowerStateReq::ON), 0}}}, 745 746 {.config = {.prop = toInt(VehicleProperty::AP_POWER_STATE_REPORT), 747 .access = VehiclePropertyAccess::READ_WRITE, 748 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}, 749 .initialValue = {.int32Values = {toInt(VehicleApPowerStateReport::WAIT_FOR_VHAL), 0}}}, 750 751 {.config = {.prop = toInt(VehicleProperty::DISPLAY_BRIGHTNESS), 752 .access = VehiclePropertyAccess::READ_WRITE, 753 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 754 .areaConfigs = {VehicleAreaConfig{.minInt32Value = 0, .maxInt32Value = 100}}}, 755 .initialValue = {.int32Values = {100}}}, 756 757 { 758 .config = {.prop = OBD2_LIVE_FRAME, 759 .access = VehiclePropertyAccess::READ, 760 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 761 .configArray = {0, 0}}, 762 }, 763 764 { 765 .config = {.prop = OBD2_FREEZE_FRAME, 766 .access = VehiclePropertyAccess::READ, 767 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 768 .configArray = {0, 0}}, 769 }, 770 771 { 772 .config = {.prop = OBD2_FREEZE_FRAME_INFO, 773 .access = VehiclePropertyAccess::READ, 774 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}, 775 }, 776 777 { 778 .config = {.prop = OBD2_FREEZE_FRAME_CLEAR, 779 .access = VehiclePropertyAccess::WRITE, 780 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 781 .configArray = {1}}, 782 }, 783 784 {.config = 785 { 786 .prop = toInt(VehicleProperty::HEADLIGHTS_STATE), 787 .access = VehiclePropertyAccess::READ, 788 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 789 }, 790 .initialValue = {.int32Values = {LIGHT_STATE_ON}}}, 791 792 {.config = 793 { 794 .prop = toInt(VehicleProperty::HIGH_BEAM_LIGHTS_STATE), 795 .access = VehiclePropertyAccess::READ, 796 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 797 }, 798 .initialValue = {.int32Values = {LIGHT_STATE_ON}}}, 799 800 {.config = 801 { 802 .prop = toInt(VehicleProperty::FOG_LIGHTS_STATE), 803 .access = VehiclePropertyAccess::READ, 804 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 805 }, 806 .initialValue = {.int32Values = {LIGHT_STATE_ON}}}, 807 808 {.config = 809 { 810 .prop = toInt(VehicleProperty::HAZARD_LIGHTS_STATE), 811 .access = VehiclePropertyAccess::READ, 812 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 813 }, 814 .initialValue = {.int32Values = {LIGHT_STATE_ON}}}, 815 816 {.config = 817 { 818 .prop = toInt(VehicleProperty::HEADLIGHTS_SWITCH), 819 .access = VehiclePropertyAccess::READ_WRITE, 820 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 821 }, 822 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}}, 823 824 {.config = 825 { 826 .prop = toInt(VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH), 827 .access = VehiclePropertyAccess::READ_WRITE, 828 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 829 }, 830 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}}, 831 832 {.config = 833 { 834 .prop = toInt(VehicleProperty::FOG_LIGHTS_SWITCH), 835 .access = VehiclePropertyAccess::READ_WRITE, 836 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 837 }, 838 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}}, 839 840 {.config = 841 { 842 .prop = toInt(VehicleProperty::HAZARD_LIGHTS_SWITCH), 843 .access = VehiclePropertyAccess::READ_WRITE, 844 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 845 }, 846 .initialValue = {.int32Values = {LIGHT_SWITCH_AUTO}}}, 847 848 {.config = 849 { 850 .prop = toInt(VehicleProperty::EVS_SERVICE_REQUEST), 851 .access = VehiclePropertyAccess::READ, 852 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 853 }, 854 .initialValue = {.int32Values = {toInt(EvsServiceType::REARVIEW), 855 toInt(EvsServiceState::OFF)}}}, 856 857 {.config = {.prop = VEHICLE_MAP_SERVICE, 858 .access = VehiclePropertyAccess::READ_WRITE, 859 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}}, 860 861 // Example Vendor Extension properties for testing 862 {.config = {.prop = VENDOR_EXTENSION_BOOLEAN_PROPERTY, 863 .access = VehiclePropertyAccess::READ_WRITE, 864 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 865 .areaConfigs = {VehicleAreaConfig{.areaId = DOOR_1_LEFT}, 866 VehicleAreaConfig{.areaId = DOOR_1_RIGHT}, 867 VehicleAreaConfig{.areaId = DOOR_2_LEFT}, 868 VehicleAreaConfig{.areaId = DOOR_2_RIGHT}}}, 869 .initialAreaValues = {{DOOR_1_LEFT, {.int32Values = {1}}}, 870 {DOOR_1_RIGHT, {.int32Values = {1}}}, 871 {DOOR_2_LEFT, {.int32Values = {0}}}, 872 {DOOR_2_RIGHT, {.int32Values = {0}}}}}, 873 874 {.config = {.prop = VENDOR_EXTENSION_FLOAT_PROPERTY, 875 .access = VehiclePropertyAccess::READ_WRITE, 876 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 877 .areaConfigs = {VehicleAreaConfig{.areaId = HVAC_LEFT, 878 .minFloatValue = -10, 879 .maxFloatValue = 10}, 880 VehicleAreaConfig{.areaId = HVAC_RIGHT, 881 .minFloatValue = -10, 882 .maxFloatValue = 10}}}, 883 .initialAreaValues = {{HVAC_LEFT, {.floatValues = {1}}}, 884 {HVAC_RIGHT, {.floatValues = {2}}}}}, 885 886 {.config = {.prop = VENDOR_EXTENSION_INT_PROPERTY, 887 .access = VehiclePropertyAccess::READ_WRITE, 888 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 889 .areaConfigs = 890 {VehicleAreaConfig{.areaId = (int)VehicleAreaWindow::FRONT_WINDSHIELD, 891 .minInt32Value = -100, 892 .maxInt32Value = 100}, 893 VehicleAreaConfig{.areaId = (int)VehicleAreaWindow::REAR_WINDSHIELD, 894 .minInt32Value = -100, 895 .maxInt32Value = 100}, 896 VehicleAreaConfig{.areaId = (int)VehicleAreaWindow::ROOF_TOP_1, 897 .minInt32Value = -100, 898 .maxInt32Value = 100}}}, 899 .initialAreaValues = {{(int)VehicleAreaWindow::FRONT_WINDSHIELD, {.int32Values = {1}}}, 900 {(int)VehicleAreaWindow::REAR_WINDSHIELD, {.int32Values = {0}}}, 901 {(int)VehicleAreaWindow::ROOF_TOP_1, {.int32Values = {-1}}}}}, 902 903 {.config = {.prop = VENDOR_EXTENSION_STRING_PROPERTY, 904 .access = VehiclePropertyAccess::READ_WRITE, 905 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}, 906 .initialValue = {.stringValue = "Vendor String Property"}}, 907 908 {.config = {.prop = toInt(VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE), 909 .access = VehiclePropertyAccess::READ, 910 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}, 911 .initialValue = {.int32Values = {0}}}, 912 913 {.config = {.prop = toInt(VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_STATUS), 914 .access = VehiclePropertyAccess::READ, 915 .changeMode = VehiclePropertyChangeMode::ON_CHANGE}, 916 .initialValue = {.int32Values = {0}}}, 917 918 {.config = 919 { 920 .prop = toInt(VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION), 921 .access = VehiclePropertyAccess::READ, 922 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 923 .configArray = 924 {kMixedTypePropertyForTest, 925 (int)VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_INFO, 926 (int)VehicleVendorPermission::PERMISSION_SET_VENDOR_CATEGORY_INFO, 927 VENDOR_EXTENSION_INT_PROPERTY, 928 (int)VehicleVendorPermission::PERMISSION_GET_VENDOR_CATEGORY_SEAT, 929 (int)VehicleVendorPermission::PERMISSION_NOT_ACCESSIBLE, 930 VENDOR_EXTENSION_FLOAT_PROPERTY, 931 (int)VehicleVendorPermission::PERMISSION_DEFAULT, 932 (int)VehicleVendorPermission::PERMISSION_DEFAULT}, 933 }, 934 .initialValue = {.int32Values = {1}}}, 935 936 { 937 .config = 938 { 939 .prop = toInt(VehicleProperty::INITIAL_USER_INFO), 940 .access = VehiclePropertyAccess::READ_WRITE, 941 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 942 }, 943 }, 944 { 945 .config = 946 { 947 .prop = toInt(VehicleProperty::SWITCH_USER), 948 .access = VehiclePropertyAccess::READ_WRITE, 949 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 950 }, 951 }, 952 { 953 .config = 954 { 955 .prop = toInt(VehicleProperty::CREATE_USER), 956 .access = VehiclePropertyAccess::READ_WRITE, 957 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 958 }, 959 }, 960 { 961 .config = 962 { 963 .prop = toInt(VehicleProperty::REMOVE_USER), 964 .access = VehiclePropertyAccess::READ_WRITE, 965 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 966 }, 967 }, 968 { 969 .config = 970 { 971 .prop = toInt(VehicleProperty::USER_IDENTIFICATION_ASSOCIATION), 972 .access = VehiclePropertyAccess::READ_WRITE, 973 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 974 }, 975 }, 976 { 977 .config = 978 { 979 .prop = toInt(VehicleProperty::POWER_POLICY_REQ), 980 .access = VehiclePropertyAccess::READ, 981 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 982 }, 983 }, 984 { 985 .config = 986 { 987 .prop = toInt(VehicleProperty::POWER_POLICY_GROUP_REQ), 988 .access = VehiclePropertyAccess::READ, 989 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 990 }, 991 }, 992 { 993 .config = 994 { 995 .prop = toInt(VehicleProperty::CURRENT_POWER_POLICY), 996 .access = VehiclePropertyAccess::READ_WRITE, 997 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 998 }, 999 }, 1000 { 1001 .config = 1002 { 1003 .prop = toInt(VehicleProperty::EPOCH_TIME), 1004 .access = VehiclePropertyAccess::WRITE, 1005 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1006 }, 1007 }, 1008 { 1009 .config = 1010 { 1011 .prop = toInt(VehicleProperty::WATCHDOG_ALIVE), 1012 .access = VehiclePropertyAccess::WRITE, 1013 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1014 }, 1015 }, 1016 { 1017 .config = 1018 { 1019 .prop = toInt(VehicleProperty::WATCHDOG_TERMINATED_PROCESS), 1020 .access = VehiclePropertyAccess::WRITE, 1021 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1022 }, 1023 }, 1024 { 1025 .config = 1026 { 1027 .prop = toInt(VehicleProperty::VHAL_HEARTBEAT), 1028 .access = VehiclePropertyAccess::READ, 1029 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1030 }, 1031 }, 1032 { 1033 .config = 1034 { 1035 .prop = toInt(VehicleProperty::CLUSTER_SWITCH_UI), 1036 .access = VehiclePropertyAccess::READ, 1037 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1038 }, 1039 .initialValue = {.int32Values = {0 /* ClusterHome */}}, 1040 }, 1041 { 1042 .config = 1043 { 1044 .prop = toInt(VehicleProperty::CLUSTER_DISPLAY_STATE), 1045 .access = VehiclePropertyAccess::READ, 1046 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1047 }, 1048 .initialValue = {.int32Values = {0 /* Off */, -1, -1, -1, -1 /* Bounds */, -1, -1, 1049 -1, -1 /* Insets */}}, 1050 }, 1051 { 1052 .config = 1053 { 1054 .prop = toInt(VehicleProperty::CLUSTER_REPORT_STATE), 1055 .access = VehiclePropertyAccess::WRITE, 1056 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1057 .configArray = {0, 0, 0, 11, 0, 0, 0, 0, 16}, 1058 }, 1059 }, 1060 { 1061 .config = 1062 { 1063 .prop = toInt(VehicleProperty::CLUSTER_REQUEST_DISPLAY), 1064 .access = VehiclePropertyAccess::WRITE, 1065 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1066 }, 1067 }, 1068 { 1069 .config = 1070 { 1071 .prop = toInt(VehicleProperty::CLUSTER_NAVIGATION_STATE), 1072 .access = VehiclePropertyAccess::WRITE, 1073 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1074 }, 1075 }, 1076 { 1077 .config = 1078 { 1079 .prop = PLACEHOLDER_PROPERTY_INT, 1080 .access = VehiclePropertyAccess::READ_WRITE, 1081 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1082 }, 1083 .initialValue = {.int32Values = {0}}, 1084 }, 1085 { 1086 .config = 1087 { 1088 .prop = PLACEHOLDER_PROPERTY_FLOAT, 1089 .access = VehiclePropertyAccess::READ_WRITE, 1090 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1091 }, 1092 .initialValue = {.floatValues = {0.0f}}, 1093 }, 1094 { 1095 .config = 1096 { 1097 .prop = PLACEHOLDER_PROPERTY_BOOLEAN, 1098 .access = VehiclePropertyAccess::READ_WRITE, 1099 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1100 }, 1101 .initialValue = {.int32Values = {0 /* false */}}, 1102 }, 1103 { 1104 .config = 1105 { 1106 .prop = PLACEHOLDER_PROPERTY_STRING, 1107 .access = VehiclePropertyAccess::READ_WRITE, 1108 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1109 }, 1110 .initialValue = {.stringValue = {"Test"}}, 1111 }, 1112 // This property is later defined in the AIDL VHAL interface. However, HIDL VHAL might 1113 // require support for this property to meet EU regulation. 1114 { 1115 .config = 1116 { 1117 // GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT 1118 .prop = 0x11400F47, 1119 .access = VehiclePropertyAccess::READ, 1120 .changeMode = VehiclePropertyChangeMode::STATIC, 1121 }, 1122 // GsrComplianceRequirementType::GSR_COMPLIANCE_REQUIRED_V1 1123 .initialValue = {.int32Values = {1}}, 1124 }, 1125 #ifdef ENABLE_VENDOR_CLUSTER_PROPERTY_FOR_TESTING 1126 // Vendor propetry for E2E ClusterHomeService testing. 1127 { 1128 .config = 1129 { 1130 .prop = VENDOR_CLUSTER_SWITCH_UI, 1131 .access = VehiclePropertyAccess::WRITE, 1132 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1133 }, 1134 }, 1135 { 1136 .config = 1137 { 1138 .prop = VENDOR_CLUSTER_DISPLAY_STATE, 1139 .access = VehiclePropertyAccess::WRITE, 1140 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1141 }, 1142 }, 1143 { 1144 .config = 1145 { 1146 .prop = VENDOR_CLUSTER_REPORT_STATE, 1147 .access = VehiclePropertyAccess::READ, 1148 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1149 .configArray = {0, 0, 0, 11, 0, 0, 0, 0, 16}, 1150 }, 1151 .initialValue = {.int32Values = {0 /* Off */, -1, -1, -1, -1 /* Bounds */, -1, -1, 1152 -1, -1 /* Insets */, 0 /* ClusterHome */, 1153 -1 /* ClusterNone */}}, 1154 }, 1155 { 1156 .config = 1157 { 1158 .prop = VENDOR_CLUSTER_REQUEST_DISPLAY, 1159 .access = VehiclePropertyAccess::READ, 1160 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1161 }, 1162 .initialValue = {.int32Values = {0 /* ClusterHome */}}, 1163 }, 1164 { 1165 .config = 1166 { 1167 .prop = VENDOR_CLUSTER_NAVIGATION_STATE, 1168 .access = VehiclePropertyAccess::READ, 1169 .changeMode = VehiclePropertyChangeMode::ON_CHANGE, 1170 }, 1171 }, 1172 #endif // ENABLE_VENDOR_CLUSTER_PROPERTY_FOR_TESTING 1173 #ifdef ENABLE_GET_PROP_CONFIGS_BY_MULTIPLE_REQUESTS 1174 { 1175 .config = 1176 { 1177 // VHAL_SUPPORTED_PROPERTY_IDS 1178 .prop = 289476424, 1179 .access = VehiclePropertyAccess::READ, 1180 .changeMode = VehiclePropertyChangeMode::STATIC, 1181 // Fetch 100 configs in one request. This number is just arbitrarily 1182 // chosen here. But some HAL impl with bigger config data may need a 1183 // smaller number. 1184 .configArray = {100}, 1185 }, 1186 // All supported property IDs. This list is checked by 1187 // DefaultConfigSupportedPropertyIds_test. 1188 .initialValue = 1189 {.int32Values = 1190 {291504388, 289472773, 291504390, 289472775, 289407240, 289407241, 1191 289472780, 286261505, 286261506, 289407235, 289472779, 291504647, 1192 289408517, 356518832, 356516106, 291504644, 291504649, 291504656, 1193 291504901, 291504903, 287310600, 291504905, 287310602, 287310603, 1194 291504908, 291504904, 392168201, 392168202, 289408514, 289408001, 1195 287310850, 287310851, 287310853, 289475088, 289475104, 289475120, 1196 354419984, 320865540, 320865556, 354419975, 354419976, 354419986, 1197 354419973, 354419974, 354419978, 354419977, 356517120, 356517121, 1198 356582673, 356517139, 289408269, 356517131, 358614275, 291570965, 1199 291505923, 289408270, 289408512, 287310855, 289408000, 289408008, 1200 289408009, 289407747, 291504900, 568332561, 371198722, 373295872, 1201 320867268, 322964416, 290521862, 287310858, 287310859, 289475072, 1202 289475073, 289409539, 299896064, 299896065, 299896066, 299896067, 1203 289410560, 289410561, 289410562, 289410563, 289410576, 289410577, 1204 289410578, 289410579, 289476368, 299895808, 639631617, 627048706, 1205 591397123, 554696964, 289410873, 289410874, 287313669, 299896583, 1206 299896584, 299896585, 299896586, 299896587, 286265121, 286265122, 1207 286265123, 290457094, 290459441, 299896626, 290459443, 289410868, 1208 289476405, 299896630, 289410871, 292556600, 557853201, 559950353, 1209 555756049, 554707473, 289410887, 557846324, 557911861, 568332086, 1210 557846327, 560992056, 289476424}}, 1211 }, 1212 #endif // ENABLE_GET_PROP_CONFIGS_BY_MULTIPLE_REQUESTS 1213 }; 1214 1215 } // impl 1216 1217 } // namespace V2_0 1218 } // namespace vehicle 1219 } // namespace automotive 1220 } // namespace hardware 1221 } // namespace android 1222 1223 #endif // android_hardware_automotive_vehicle_V2_0_impl_DefaultConfig_H_ 1224