Merge "VtsHalLoudnessEnhancerTargetTest: Reset signal history during gain test" into main
diff --git a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/include/ConfigDeclaration.h b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/include/ConfigDeclaration.h
index 40ac129..c4b794a 100644
--- a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/include/ConfigDeclaration.h
+++ b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/include/ConfigDeclaration.h
@@ -39,6 +39,9 @@
std::unordered_map<int32_t, aidl::android::hardware::automotive::vehicle::RawPropValues>
initialAreaValues;
+ // The optional supported values for each areaId.
+ std::unordered_map<int32_t, std::vector<float>> supportedValuesForAreaId;
+
inline bool operator==(const ConfigDeclaration& other) const {
return (config == other.config && initialValue == other.initialValue &&
initialAreaValues == other.initialAreaValues);
diff --git a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/include/JsonConfigLoader.h b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/include/JsonConfigLoader.h
index 00c497f..9901db2 100644
--- a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/include/JsonConfigLoader.h
+++ b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/include/JsonConfigLoader.h
@@ -108,11 +108,23 @@
// @param fieldIsOptional Whether the field is optional.
// @param outPtr The pointer to output to if the field exists and parsing succeeded.
// @param errors The error array to append error to if errors are found.
- // @return true if the field is optional and does not exist or parsed successfully.
+ // @param found if not nullptr, this will be set to true if the field is found.
+ // @return true if parsed successfully or the field is optional and is not found.
template <class T>
bool tryParseJsonValueToVariable(const Json::Value& parentJsonNode,
const std::string& fieldName, bool fieldIsOptional, T* outPtr,
+ std::vector<std::string>* errors, bool* found = nullptr);
+
+ // Tries to parse a JSON value to a specific type.
+ //
+ // This is similar to the previous version except that it tries to find the field in multiple
+ // parent nodes and will return early if the field is found in one parent node. This is useful
+ // when we allow the field to either come from vehicleArea fields or vehicleProperty fields.
+ template <class T>
+ bool tryParseJsonValueToVariable(std::vector<const Json::Value*> parentJsonNodePtrs,
+ const std::string& fieldName, bool fieldIsOptional, T* outPtr,
std::vector<std::string>* errors);
+
// Tries to parse a JSON value to an array of specific type.
//
// If fieldIsOptional is True, then if the field specified by "fieldName" does not exist,
@@ -127,7 +139,19 @@
template <class T>
bool tryParseJsonArrayToVariable(const Json::Value& parentJsonNode,
const std::string& fieldName, bool fieldIsOptional,
+ std::vector<T>* outPtr, std::vector<std::string>* errors,
+ bool* found = nullptr);
+
+ // Tries to parse a JSON value to an array of specific type.
+ //
+ // This is similar to the previous version except that it tries to find the field in multiple
+ // parent nodes and will return early if the field is found in one parent node. This is useful
+ // when we allow the field to either come from vehicleArea fields or vehicleProperty fields.
+ template <class T>
+ bool tryParseJsonArrayToVariable(std::vector<const Json::Value*> parentJsonNodePtrs,
+ const std::string& fieldName, bool fieldIsOptional,
std::vector<T>* outPtr, std::vector<std::string>* errors);
+
// Parses a JSON field to VehiclePropertyAccess or VehiclePropertyChangeMode.
template <class T>
void parseAccessChangeMode(const Json::Value& parentJsonNode, const std::string& fieldName,
diff --git a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
index 5b945b2..fdccaec 100644
--- a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
+++ b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
@@ -95,6 +95,12 @@
using ::android::base::Error;
using ::android::base::Result;
+int32_t COMPATIBLE_API_VERSIONS[] = {
+ // The base version.
+ 1,
+ // V2 supports inherit areaId fields from parent property fields.
+ 2};
+
// Defines a map from constant names to constant values, the values defined here corresponds to
// the "Constants::XXXX" used in JSON config file.
const std::unordered_map<std::string, int> CONSTANTS_BY_NAME = {
@@ -148,6 +154,17 @@
toInt(VehicleAreaMirror::DRIVER_LEFT) | toInt(VehicleAreaMirror::DRIVER_RIGHT)},
};
+std::string nodesToStr(const std::vector<const Json::Value*>& nodePtrs) {
+ std::string nodesStr = "";
+ for (const Json::Value* nodePtr : nodePtrs) {
+ if (nodesStr != "") {
+ nodesStr += ", ";
+ }
+ nodesStr += nodePtr->toStyledString();
+ }
+ return nodesStr;
+}
+
// A class to parse constant values for type T where T is defined as an enum in NDK AIDL backend.
template <class T>
class ConstantParser final : public ConstantParserInterface {
@@ -447,10 +464,33 @@
}
template <class T>
+bool JsonConfigParser::tryParseJsonValueToVariable(
+ std::vector<const Json::Value*> parentJsonNodePtrs, const std::string& fieldName,
+ bool fieldIsOptional, T* outPtr, std::vector<std::string>* errors) {
+ bool found = false;
+ for (const Json::Value* parentJsonNodePtr : parentJsonNodePtrs) {
+ bool result = tryParseJsonValueToVariable(*parentJsonNodePtr, fieldName,
+ /*fieldIsOptional=*/true, outPtr, errors, &found);
+ if (!result) {
+ return result;
+ }
+ if (found) {
+ return true;
+ }
+ }
+ if (!fieldIsOptional && !found) {
+ errors->push_back("Missing required field: " + fieldName +
+ " in nodes: " + nodesToStr(parentJsonNodePtrs));
+ return false;
+ }
+ return true;
+}
+
+template <class T>
bool JsonConfigParser::tryParseJsonValueToVariable(const Json::Value& parentJsonNode,
const std::string& fieldName,
bool fieldIsOptional, T* outPtr,
- std::vector<std::string>* errors) {
+ std::vector<std::string>* errors, bool* found) {
if (!parentJsonNode.isObject()) {
errors->push_back("Node: " + parentJsonNode.toStyledString() + " is not an object");
return false;
@@ -469,6 +509,32 @@
return false;
}
*outPtr = std::move(result.value());
+ if (found != nullptr) {
+ *found = true;
+ }
+ return true;
+}
+
+template <class T>
+bool JsonConfigParser::tryParseJsonArrayToVariable(
+ std::vector<const Json::Value*> parentJsonNodePtrs, const std::string& fieldName,
+ bool fieldIsOptional, std::vector<T>* outPtr, std::vector<std::string>* errors) {
+ bool found = false;
+ for (const Json::Value* parentJsonNodePtr : parentJsonNodePtrs) {
+ bool result = tryParseJsonArrayToVariable(*parentJsonNodePtr, fieldName,
+ /*fieldIsOptional=*/true, outPtr, errors, &found);
+ if (!result) {
+ return result;
+ }
+ if (found) {
+ return true;
+ }
+ }
+ if (!fieldIsOptional && !found) {
+ errors->push_back("Missing required field: " + fieldName +
+ " in nodes: " + nodesToStr(parentJsonNodePtrs));
+ return false;
+ }
return true;
}
@@ -476,7 +542,7 @@
bool JsonConfigParser::tryParseJsonArrayToVariable(const Json::Value& parentJsonNode,
const std::string& fieldName,
bool fieldIsOptional, std::vector<T>* outPtr,
- std::vector<std::string>* errors) {
+ std::vector<std::string>* errors, bool* found) {
if (!parentJsonNode.isObject()) {
errors->push_back("Node: " + parentJsonNode.toStyledString() + " is not an object");
return false;
@@ -495,6 +561,9 @@
return false;
}
*outPtr = std::move(result.value());
+ if (found != nullptr) {
+ *found = true;
+ }
return true;
}
@@ -574,44 +643,60 @@
}
VehicleAreaConfig areaConfig = {};
areaConfig.areaId = areaId;
+ // We have already parsed the access in parentJsonNode into config, so we do not have to
+ // parse parentNode again here.
parseAccessChangeMode(jsonAreaConfig, "access", propStr, &(config->config.access),
&areaConfig.access, errors);
- tryParseJsonValueToVariable(jsonAreaConfig, "minInt32Value", /*optional=*/true,
- &areaConfig.minInt32Value, errors);
- tryParseJsonValueToVariable(jsonAreaConfig, "maxInt32Value", /*optional=*/true,
- &areaConfig.maxInt32Value, errors);
- tryParseJsonValueToVariable(jsonAreaConfig, "minInt64Value", /*optional=*/true,
- &areaConfig.minInt64Value, errors);
- tryParseJsonValueToVariable(jsonAreaConfig, "maxInt64Value", /*optional=*/true,
- &areaConfig.maxInt64Value, errors);
- tryParseJsonValueToVariable(jsonAreaConfig, "minFloatValue", /*optional=*/true,
- &areaConfig.minFloatValue, errors);
- tryParseJsonValueToVariable(jsonAreaConfig, "maxFloatValue", /*optional=*/true,
- &areaConfig.maxFloatValue, errors);
+ // All the following fields may come from area config or from parent node (property config).
+ tryParseJsonValueToVariable({&jsonAreaConfig, &parentJsonNode}, "minInt32Value",
+ /*optional=*/true, &areaConfig.minInt32Value, errors);
+ tryParseJsonValueToVariable({&jsonAreaConfig, &parentJsonNode}, "maxInt32Value",
+ /*optional=*/true, &areaConfig.maxInt32Value, errors);
+ tryParseJsonValueToVariable({&jsonAreaConfig, &parentJsonNode}, "minInt64Value",
+ /*optional=*/true, &areaConfig.minInt64Value, errors);
+ tryParseJsonValueToVariable({&jsonAreaConfig, &parentJsonNode}, "maxInt64Value",
+ /*optional=*/true, &areaConfig.maxInt64Value, errors);
+ tryParseJsonValueToVariable({&jsonAreaConfig, &parentJsonNode}, "minFloatValue",
+ /*optional=*/true, &areaConfig.minFloatValue, errors);
+ tryParseJsonValueToVariable({&jsonAreaConfig, &parentJsonNode}, "maxFloatValue",
+ /*optional=*/true, &areaConfig.maxFloatValue, errors);
// By default we support variable update rate for all properties except it is explicitly
// disabled.
areaConfig.supportVariableUpdateRate = true;
- tryParseJsonValueToVariable(jsonAreaConfig, "supportVariableUpdateRate", /*optional=*/true,
- &areaConfig.supportVariableUpdateRate, errors);
+ tryParseJsonValueToVariable({&jsonAreaConfig, &parentJsonNode}, "supportVariableUpdateRate",
+ /*optional=*/true, &areaConfig.supportVariableUpdateRate,
+ errors);
std::vector<int64_t> supportedEnumValues;
- tryParseJsonArrayToVariable(jsonAreaConfig, "supportedEnumValues", /*optional=*/true,
- &supportedEnumValues, errors);
+ tryParseJsonArrayToVariable({&jsonAreaConfig, &parentJsonNode}, "supportedEnumValues",
+ /*optional=*/true, &supportedEnumValues, errors);
if (!supportedEnumValues.empty()) {
areaConfig.supportedEnumValues = std::move(supportedEnumValues);
}
+ std::vector<float> supportedValues;
+ tryParseJsonArrayToVariable({&jsonAreaConfig, &parentJsonNode}, "supportedValues",
+ /*optional=*/true, &supportedValues, errors);
+ if (!supportedValues.empty()) {
+ config->supportedValuesForAreaId[areaId] = std::move(supportedValues);
+ }
+
+ const Json::Value* jsonHasSupportedValueInfo = nullptr;
if (jsonAreaConfig.isMember("hasSupportedValueInfo")) {
+ jsonHasSupportedValueInfo = &jsonAreaConfig["hasSupportedValueInfo"];
+ } else if (parentJsonNode.isMember("hasSupportedValueInfo")) {
+ jsonHasSupportedValueInfo = &parentJsonNode["hasSupportedValueInfo"];
+ }
+ if (jsonHasSupportedValueInfo != nullptr) {
HasSupportedValueInfo hasSupportedValueInfo = HasSupportedValueInfo{};
- const Json::Value& jsonHasSupportedValueInfo = jsonAreaConfig["hasSupportedValueInfo"];
- tryParseJsonValueToVariable(jsonHasSupportedValueInfo, "hasMinSupportedValue",
+ tryParseJsonValueToVariable(*jsonHasSupportedValueInfo, "hasMinSupportedValue",
/*optional=*/true,
&hasSupportedValueInfo.hasMinSupportedValue, errors);
- tryParseJsonValueToVariable(jsonHasSupportedValueInfo, "hasMaxSupportedValue",
+ tryParseJsonValueToVariable(*jsonHasSupportedValueInfo, "hasMaxSupportedValue",
/*optional=*/true,
&hasSupportedValueInfo.hasMaxSupportedValue, errors);
- tryParseJsonValueToVariable(jsonHasSupportedValueInfo, "hasSupportedValuesList",
+ tryParseJsonValueToVariable(*jsonHasSupportedValueInfo, "hasSupportedValuesList",
/*optional=*/true,
&hasSupportedValueInfo.hasSupportedValuesList, errors);
areaConfig.hasSupportedValueInfo = std::move(hasSupportedValueInfo);
@@ -622,6 +707,11 @@
RawPropValues areaValue = {};
if (parsePropValues(jsonAreaConfig, "defaultValue", &areaValue, errors)) {
config->initialAreaValues[areaId] = std::move(areaValue);
+ } else {
+ if (config->initialValue != RawPropValues{}) {
+ // Skip empty initial values.
+ config->initialAreaValues[areaId] = config->initialValue;
+ }
}
}
}
@@ -701,6 +791,21 @@
if (!root.isObject()) {
return Error() << "root element must be an object";
}
+ // Default API version is 1.
+ int32_t apiVersion = 1;
+ if (root.isMember("apiVersion")) {
+ apiVersion = static_cast<int32_t>(root["apiVersion"].asInt());
+ }
+ bool compatible = false;
+ for (int32_t compatibleApiVersion : COMPATIBLE_API_VERSIONS) {
+ if (compatibleApiVersion == apiVersion) {
+ compatible = true;
+ break;
+ }
+ }
+ if (!compatible) {
+ return Error() << "The JSON file is not compatible with the JSON loader version";
+ }
if (!root.isMember("properties") || !root["properties"].isArray()) {
return Error() << "Missing 'properties' field in root or the field is not an array";
}
diff --git a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp
index 595c2ed..3b4720b 100644
--- a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp
+++ b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/test/JsonConfigLoaderUnitTest.cpp
@@ -314,6 +314,33 @@
ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::STATIC);
}
+TEST_F(JsonConfigLoaderUnitTest, testAccessAreaOverride) {
+ std::istringstream iss(R"(
+ {
+ "properties": [{
+ "property": "VehicleProperty::INFO_FUEL_CAPACITY",
+ "areas": [
+ {
+ "areaId": 0,
+ "access": "VehiclePropertyAccess::WRITE"
+ }
+ ]
+ }]
+ }
+ )");
+
+ auto result = mLoader.loadPropConfig(iss);
+
+ ASSERT_TRUE(result.ok()) << result.error().message();
+ auto configs = result.value();
+ ASSERT_EQ(configs.size(), 1u);
+
+ const VehiclePropConfig& propConfig = configs.begin()->second.config;
+ ASSERT_EQ(propConfig.access, VehiclePropertyAccess::READ);
+ ASSERT_EQ(propConfig.areaConfigs[0].access, VehiclePropertyAccess::WRITE);
+ ASSERT_EQ(propConfig.changeMode, VehiclePropertyChangeMode::STATIC);
+}
+
TEST_F(JsonConfigLoaderUnitTest, testChangeModeOverride) {
std::istringstream iss(R"(
{
@@ -564,6 +591,148 @@
ASSERT_EQ(areaConfig.areaId, HVAC_ALL);
}
+TEST_F(JsonConfigLoaderUnitTest, testAreas_InheritFromProperty) {
+ std::istringstream iss(R"(
+ {
+ "properties": [{
+ "property": "VehicleProperty::INFO_FUEL_CAPACITY",
+ "minInt32Value": 1,
+ "maxInt32Value": 7,
+ "minInt64Value": 2,
+ "maxInt64Value": 6,
+ "minFloatValue": 1.1,
+ "maxFloatValue": 2.2,
+ "supportVariableUpdateRate": true,
+ "supportedEnumValues": [1, 2, 3],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true,
+ "hasSupportedValuesList": true
+ },
+ "defaultValue": {
+ "int32Values": [
+ 1
+ ]
+ },
+ "areas": [{
+ "areaId": "Constants::HVAC_ALL"
+ }]
+ }]
+ }
+ )");
+
+ auto result = mLoader.loadPropConfig(iss);
+
+ ASSERT_RESULT_OK(result);
+
+ auto configs = result.value();
+ ASSERT_EQ(configs.size(), 1u);
+
+ const auto& configDecl = configs.begin()->second;
+ const VehiclePropConfig& config = configDecl.config;
+ EXPECT_EQ(config.access, VehiclePropertyAccess::READ);
+ ASSERT_EQ(config.areaConfigs.size(), 1u);
+ const VehicleAreaConfig& areaConfig = config.areaConfigs[0];
+ EXPECT_EQ(areaConfig.minInt32Value, 1);
+ EXPECT_EQ(areaConfig.maxInt32Value, 7);
+ EXPECT_EQ(areaConfig.minInt64Value, 2);
+ EXPECT_EQ(areaConfig.maxInt64Value, 6);
+ EXPECT_EQ(areaConfig.minFloatValue, 1.1f);
+ EXPECT_EQ(areaConfig.maxFloatValue, 2.2f);
+ EXPECT_EQ(areaConfig.access, VehiclePropertyAccess::READ);
+ EXPECT_EQ(areaConfig.areaId, HVAC_ALL);
+ EXPECT_EQ(areaConfig.supportVariableUpdateRate, true);
+ ASSERT_TRUE(areaConfig.supportedEnumValues.has_value());
+ EXPECT_EQ(areaConfig.supportedEnumValues.value(), std::vector<int64_t>({1, 2, 3}));
+ ASSERT_TRUE(areaConfig.hasSupportedValueInfo.has_value());
+ EXPECT_TRUE(areaConfig.hasSupportedValueInfo->hasMinSupportedValue);
+ EXPECT_TRUE(areaConfig.hasSupportedValueInfo->hasMaxSupportedValue);
+ EXPECT_TRUE(areaConfig.hasSupportedValueInfo->hasSupportedValuesList);
+ ASSERT_FALSE(configDecl.initialAreaValues.find(HVAC_ALL) == configDecl.initialAreaValues.end());
+ EXPECT_EQ(configDecl.initialAreaValues.find(HVAC_ALL)->second,
+ RawPropValues{.int32Values = {1}});
+}
+
+TEST_F(JsonConfigLoaderUnitTest, testAreas_InheritFromProperty_override) {
+ std::istringstream iss(R"(
+ {
+ "properties": [{
+ "property": "VehicleProperty::INFO_FUEL_CAPACITY",
+ "minInt32Value": 100,
+ "maxInt32Value": 100,
+ "minInt64Value": 100,
+ "maxInt64Value": 100,
+ "minFloatValue": 100.1,
+ "maxFloatValue": 100.2,
+ "supportVariableUpdateRate": false,
+ "supportedEnumValues": [3, 2, 1],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": false,
+ "hasMaxSupportedValue": false,
+ "hasSupportedValuesList": false
+ },
+ "defaultValue": {
+ "int32Values": [
+ 2
+ ]
+ },
+ "areas": [{
+ "areaId": "Constants::HVAC_ALL",
+ "minInt32Value": 1,
+ "maxInt32Value": 7,
+ "minInt64Value": 2,
+ "maxInt64Value": 6,
+ "minFloatValue": 1.1,
+ "maxFloatValue": 2.2,
+ "supportVariableUpdateRate": true,
+ "supportedEnumValues": [1, 2, 3],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true,
+ "hasSupportedValuesList": true
+ },
+ "defaultValue": {
+ "int32Values": [
+ 1
+ ]
+ }
+ }]
+ }]
+ }
+ )");
+
+ auto result = mLoader.loadPropConfig(iss);
+
+ ASSERT_RESULT_OK(result);
+
+ auto configs = result.value();
+ ASSERT_EQ(configs.size(), 1u);
+
+ const auto& configDecl = configs.begin()->second;
+ const VehiclePropConfig& config = configDecl.config;
+ EXPECT_EQ(config.access, VehiclePropertyAccess::READ);
+ ASSERT_EQ(config.areaConfigs.size(), 1u);
+ const VehicleAreaConfig& areaConfig = config.areaConfigs[0];
+ EXPECT_EQ(areaConfig.minInt32Value, 1);
+ EXPECT_EQ(areaConfig.maxInt32Value, 7);
+ EXPECT_EQ(areaConfig.minInt64Value, 2);
+ EXPECT_EQ(areaConfig.maxInt64Value, 6);
+ EXPECT_EQ(areaConfig.minFloatValue, 1.1f);
+ EXPECT_EQ(areaConfig.maxFloatValue, 2.2f);
+ EXPECT_EQ(areaConfig.access, VehiclePropertyAccess::READ);
+ EXPECT_EQ(areaConfig.areaId, HVAC_ALL);
+ EXPECT_EQ(areaConfig.supportVariableUpdateRate, true);
+ ASSERT_TRUE(areaConfig.supportedEnumValues.has_value());
+ EXPECT_EQ(areaConfig.supportedEnumValues.value(), std::vector<int64_t>({1, 2, 3}));
+ ASSERT_TRUE(areaConfig.hasSupportedValueInfo.has_value());
+ EXPECT_TRUE(areaConfig.hasSupportedValueInfo->hasMinSupportedValue);
+ EXPECT_TRUE(areaConfig.hasSupportedValueInfo->hasMaxSupportedValue);
+ EXPECT_TRUE(areaConfig.hasSupportedValueInfo->hasSupportedValuesList);
+ ASSERT_FALSE(configDecl.initialAreaValues.find(HVAC_ALL) == configDecl.initialAreaValues.end());
+ EXPECT_EQ(configDecl.initialAreaValues.find(HVAC_ALL)->second,
+ RawPropValues{.int32Values = {1}});
+}
+
TEST_F(JsonConfigLoaderUnitTest, testAreas_DefaultValueForEachArea) {
std::istringstream iss(R"(
{
diff --git a/automotive/vehicle/aidl/impl/current/default_config/config/DefaultProperties.json b/automotive/vehicle/aidl/impl/current/default_config/config/DefaultProperties.json
index 2915cc1..c3e12f6 100644
--- a/automotive/vehicle/aidl/impl/current/default_config/config/DefaultProperties.json
+++ b/automotive/vehicle/aidl/impl/current/default_config/config/DefaultProperties.json
@@ -1,5 +1,5 @@
{
- "apiVersion": 1,
+ "apiVersion": 2,
"properties": [
{
"property": "VehicleProperty::INFO_FUEL_CAPACITY",
@@ -164,83 +164,47 @@
"property": "VehicleProperty::SEAT_MEMORY_SELECT",
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 3
},
{
"property": "VehicleProperty::SEAT_MEMORY_SET",
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 3
},
{
"property": "VehicleProperty::SEAT_BELT_BUCKLED",
@@ -276,51 +240,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_BELT_HEIGHT_MOVE",
@@ -331,51 +271,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_FORE_AFT_POS",
@@ -386,51 +302,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_FORE_AFT_MOVE",
@@ -441,51 +333,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_BACKREST_ANGLE_1_POS",
@@ -496,51 +364,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE",
@@ -551,51 +395,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_BACKREST_ANGLE_2_POS",
@@ -606,51 +426,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE",
@@ -661,51 +457,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_HEIGHT_POS",
@@ -716,51 +488,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_HEIGHT_MOVE",
@@ -771,51 +519,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_DEPTH_POS",
@@ -826,51 +550,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_DEPTH_MOVE",
@@ -881,51 +581,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_TILT_POS",
@@ -936,51 +612,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_TILT_MOVE",
@@ -991,51 +643,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS",
@@ -1046,51 +674,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE",
@@ -1101,51 +705,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS",
@@ -1156,51 +736,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE",
@@ -1211,51 +767,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_HEADREST_HEIGHT_POS_V2",
@@ -1266,51 +798,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE",
@@ -1321,51 +829,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_HEADREST_ANGLE_POS",
@@ -1376,51 +860,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_HEADREST_ANGLE_MOVE",
@@ -1431,51 +891,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_HEADREST_FORE_AFT_POS",
@@ -1486,51 +922,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE",
@@ -1541,51 +953,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_FOOTWELL_LIGHTS_STATE",
@@ -1596,26 +984,21 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "supportedEnumValues": [
- "Constants::LIGHT_STATE_OFF",
- "Constants::LIGHT_STATE_ON"
- ]
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "supportedEnumValues": [
- "Constants::LIGHT_STATE_OFF",
- "Constants::LIGHT_STATE_ON"
- ]
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT_2_RIGHT_2_CENTER",
- "supportedEnumValues": [
- "Constants::LIGHT_STATE_OFF",
- "Constants::LIGHT_STATE_ON"
- ]
+ "areaId": "Constants::SEAT_2_LEFT_2_RIGHT_2_CENTER"
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "Constants::LIGHT_STATE_OFF",
+ "Constants::LIGHT_STATE_ON"
]
},
{
@@ -1627,29 +1010,22 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "supportedEnumValues": [
- "Constants::LIGHT_SWITCH_OFF",
- "Constants::LIGHT_SWITCH_ON",
- "Constants::LIGHT_SWITCH_AUTO"
- ]
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "supportedEnumValues": [
- "Constants::LIGHT_SWITCH_OFF",
- "Constants::LIGHT_SWITCH_ON",
- "Constants::LIGHT_SWITCH_AUTO"
- ]
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT_2_RIGHT_2_CENTER",
- "supportedEnumValues": [
- "Constants::LIGHT_SWITCH_OFF",
- "Constants::LIGHT_SWITCH_ON",
- "Constants::LIGHT_SWITCH_AUTO"
- ]
+ "areaId": "Constants::SEAT_2_LEFT_2_RIGHT_2_CENTER"
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "Constants::LIGHT_SWITCH_OFF",
+ "Constants::LIGHT_SWITCH_ON",
+ "Constants::LIGHT_SWITCH_AUTO"
]
},
{
@@ -1693,51 +1069,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_MOVE",
@@ -1748,51 +1100,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_LUMBAR_VERTICAL_POS",
@@ -1803,51 +1131,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -10,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -10,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::SEAT_LUMBAR_VERTICAL_MOVE",
@@ -1858,51 +1162,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::SEAT_WALK_IN_POS",
@@ -1913,24 +1193,18 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 5,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 5,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 5
},
{
"property": "VehicleProperty::SEAT_AIRBAGS_DEPLOYED",
@@ -1948,7 +1222,10 @@
"VehicleAirbagLocation::LEFT_SIDE",
"VehicleAirbagLocation::RIGHT_SIDE",
"VehicleAirbagLocation::CURTAIN"
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ }
},
{
"areaId": "Constants::SEAT_1_RIGHT",
@@ -1958,21 +1235,30 @@
"VehicleAirbagLocation::LEFT_SIDE",
"VehicleAirbagLocation::RIGHT_SIDE",
"VehicleAirbagLocation::CURTAIN"
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ }
},
{
"areaId": "Constants::SEAT_2_LEFT",
"supportedEnumValues": [
"VehicleAirbagLocation::FRONT",
"VehicleAirbagLocation::CURTAIN"
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ }
},
{
"areaId": "Constants::SEAT_2_RIGHT",
"supportedEnumValues": [
"VehicleAirbagLocation::FRONT",
"VehicleAirbagLocation::CURTAIN"
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ }
}
]
},
@@ -2186,6 +1472,21 @@
60,
80,
100
+ ],
+ "areas": [
+ {
+ "areaId": 0
+ }
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedValues": [
+ 20,
+ 40,
+ 60,
+ 80,
+ 100
]
},
{
@@ -2272,45 +1573,27 @@
},
"areas": [
{
- "areaId": "Constants::WHEEL_FRONT_LEFT",
- "minFloatValue": 193.0,
- "maxFloatValue": 300.0,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WHEEL_FRONT_LEFT"
},
{
- "areaId": "Constants::WHEEL_FRONT_RIGHT",
- "minFloatValue": 193.0,
- "maxFloatValue": 300.0,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WHEEL_FRONT_RIGHT"
},
{
- "areaId": "Constants::WHEEL_REAR_LEFT",
- "minFloatValue": 193.0,
- "maxFloatValue": 300.0,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WHEEL_REAR_LEFT"
},
{
- "areaId": "Constants::WHEEL_REAR_RIGHT",
- "minFloatValue": 193.0,
- "maxFloatValue": 300.0,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WHEEL_REAR_RIGHT"
}
],
"comment": "Units in kpa",
"maxSampleRate": 2.0,
- "minSampleRate": 1.0
+ "minSampleRate": 1.0,
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minFloatValue": 193.0,
+ "maxFloatValue": 300.0
},
{
"property": "VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE",
@@ -2423,13 +1706,7 @@
0
]
},
- "areaId": "Constants::WHEEL_FRONT_LEFT",
- "minInt32Value": -100,
- "maxInt32Value": 100,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WHEEL_FRONT_LEFT"
},
{
"defaultValue": {
@@ -2437,13 +1714,7 @@
0
]
},
- "areaId": "Constants::WHEEL_FRONT_RIGHT",
- "minInt32Value": -100,
- "maxInt32Value": 100,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WHEEL_FRONT_RIGHT"
},
{
"defaultValue": {
@@ -2451,13 +1722,7 @@
0
]
},
- "areaId": "Constants::WHEEL_REAR_RIGHT",
- "minInt32Value": -100,
- "maxInt32Value": 100,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WHEEL_REAR_RIGHT"
},
{
"defaultValue": {
@@ -2465,17 +1730,17 @@
0
]
},
- "areaId": "Constants::WHEEL_REAR_LEFT",
- "minInt32Value": -100,
- "maxInt32Value": 100,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WHEEL_REAR_LEFT"
}
],
"maxSampleRate": 10.0,
- "minSampleRate": 1.0
+ "minSampleRate": 1.0,
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -100,
+ "maxInt32Value": 100
},
{
"property": "VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS",
@@ -2533,15 +1798,15 @@
},
"areas": [
{
- "areaId": 0,
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": 0
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 3
},
{
"property": "VehicleProperty::EV_STOPPING_MODE",
@@ -2552,13 +1817,16 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "Constants::EV_STOPPING_MODE_CREEP",
- "Constants::EV_STOPPING_MODE_ROLL",
- "Constants::EV_STOPPING_MODE_HOLD"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "Constants::EV_STOPPING_MODE_CREEP",
+ "Constants::EV_STOPPING_MODE_ROLL",
+ "Constants::EV_STOPPING_MODE_HOLD"
]
},
{
@@ -2960,51 +2228,27 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": 1,
- "maxInt32Value": 7,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": 1,
- "maxInt32Value": 7,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": 1,
- "maxInt32Value": 7,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": 1,
- "maxInt32Value": 7,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": 1,
- "maxInt32Value": 7,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 1,
+ "maxInt32Value": 7
},
{
"property": "VehicleProperty::HVAC_FAN_DIRECTION",
@@ -3072,52 +2316,28 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": 0,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
],
- "comment": "0 is off and +ve values indicate ventilation level."
+ "comment": "0 is off and +ve values indicate ventilation level.",
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 3
},
{
"property": "VehicleProperty::HVAC_STEERING_WHEEL_HEAT",
@@ -3128,16 +2348,16 @@
},
"areas": [
{
- "areaId": 0,
- "minInt32Value": -2,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": 0
}
],
- "comment": "+ve values for heating and -ve for cooling"
+ "comment": "+ve values for heating and -ve for cooling",
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -2,
+ "maxInt32Value": 2
},
{
"property": "VehicleProperty::HVAC_SEAT_TEMPERATURE",
@@ -3148,52 +2368,28 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minInt32Value": -2,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": -2,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minInt32Value": -2,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minInt32Value": -2,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minInt32Value": -2,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
],
- "comment": "+ve values for heating and -ve for cooling"
+ "comment": "+ve values for heating and -ve for cooling",
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -2,
+ "maxInt32Value": 2
},
{
"property": "VehicleProperty::HVAC_SIDE_MIRROR_HEAT",
@@ -3204,15 +2400,15 @@
},
"areas": [
{
- "areaId": "Constants::MIRROR_DRIVER_LEFT_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::MIRROR_DRIVER_LEFT_RIGHT"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 2
},
{
"property": "VehicleProperty::HVAC_TEMPERATURE_CURRENT",
@@ -3248,49 +2444,19 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_LEFT",
- "minFloatValue": 17.5,
- "maxFloatValue": 32.5,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_LEFT"
},
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minFloatValue": 17.5,
- "maxFloatValue": 32.5,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_LEFT",
- "minFloatValue": 17.5,
- "maxFloatValue": 32.5,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_LEFT"
},
{
- "areaId": "Constants::SEAT_2_RIGHT",
- "minFloatValue": 17.5,
- "maxFloatValue": 32.5,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_RIGHT"
},
{
- "areaId": "Constants::SEAT_2_CENTER",
- "minFloatValue": 17.5,
- "maxFloatValue": 32.5,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_2_CENTER"
}
],
"comment":
@@ -3302,6 +2468,46 @@
600,
900,
10
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true,
+ "hasSupportedValuesList": true
+ },
+ "minFloatValue": 17.5,
+ "maxFloatValue": 32.5,
+ "supportedValues": [
+ 17.5,
+ 18,
+ 18.5,
+ 19,
+ 19.5,
+ 20,
+ 20.5,
+ 21,
+ 21.5,
+ 22,
+ 22.5,
+ 23,
+ 23.5,
+ 24,
+ 24.5,
+ 25,
+ 25.5,
+ 26,
+ 26.5,
+ 27,
+ 27.5,
+ 28,
+ 28.5,
+ 29,
+ 29.5,
+ 30,
+ 30.5,
+ 31,
+ 31.5,
+ 32,
+ 32.5
]
},
{
@@ -3442,16 +2648,19 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ImpactSensorLocation::FRONT",
- "ImpactSensorLocation::FRONT_LEFT_DOOR_SIDE",
- "ImpactSensorLocation::FRONT_RIGHT_DOOR_SIDE",
- "ImpactSensorLocation::REAR_LEFT_DOOR_SIDE",
- "ImpactSensorLocation::REAR_RIGHT_DOOR_SIDE",
- "ImpactSensorLocation::REAR"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ImpactSensorLocation::FRONT",
+ "ImpactSensorLocation::FRONT_LEFT_DOOR_SIDE",
+ "ImpactSensorLocation::FRONT_RIGHT_DOOR_SIDE",
+ "ImpactSensorLocation::REAR_LEFT_DOOR_SIDE",
+ "ImpactSensorLocation::REAR_RIGHT_DOOR_SIDE",
+ "ImpactSensorLocation::REAR"
]
},
{
@@ -3524,51 +2733,27 @@
},
"areas": [
{
- "areaId": "Constants::DOOR_1_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_1_LEFT"
},
{
- "areaId": "Constants::DOOR_1_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_1_RIGHT"
},
{
- "areaId": "Constants::DOOR_2_LEFT",
- "minInt32Value": 0,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_2_LEFT"
},
{
- "areaId": "Constants::DOOR_2_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_2_RIGHT"
},
{
- "areaId": "Constants::DOOR_REAR",
- "minInt32Value": 0,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_REAR"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::DOOR_MOVE",
@@ -3579,42 +2764,24 @@
},
"areas": [
{
- "areaId": "Constants::DOOR_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_1_LEFT"
},
{
- "areaId": "Constants::DOOR_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_1_RIGHT"
},
{
- "areaId": "Constants::DOOR_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_2_LEFT"
},
{
- "areaId": "Constants::DOOR_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::DOOR_2_RIGHT"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::MIRROR_Z_POS",
@@ -3625,33 +2792,21 @@
},
"areas": [
{
- "areaId": "VehicleAreaMirror::DRIVER_LEFT",
- "minInt32Value": -3,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_LEFT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_RIGHT",
- "minInt32Value": -3,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_RIGHT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_CENTER",
- "minInt32Value": -3,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -3,
+ "maxInt32Value": 3
},
{
"property": "VehicleProperty::MIRROR_Z_MOVE",
@@ -3662,33 +2817,21 @@
},
"areas": [
{
- "areaId": "VehicleAreaMirror::DRIVER_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_LEFT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_RIGHT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::MIRROR_Y_POS",
@@ -3699,33 +2842,21 @@
},
"areas": [
{
- "areaId": "VehicleAreaMirror::DRIVER_LEFT",
- "minInt32Value": -3,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_LEFT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_RIGHT",
- "minInt32Value": -3,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_RIGHT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_CENTER",
- "minInt32Value": -3,
- "maxInt32Value": 3,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -3,
+ "maxInt32Value": 3
},
{
"property": "VehicleProperty::MIRROR_Y_MOVE",
@@ -3736,33 +2867,21 @@
},
"areas": [
{
- "areaId": "VehicleAreaMirror::DRIVER_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_LEFT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_RIGHT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_CENTER",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaMirror::DRIVER_CENTER"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::MIRROR_LOCK",
@@ -3883,51 +3002,27 @@
},
"areas": [
{
- "areaId": "Constants::WINDOW_1_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WINDOW_1_LEFT"
},
{
- "areaId": "Constants::WINDOW_1_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WINDOW_1_RIGHT"
},
{
- "areaId": "Constants::WINDOW_2_LEFT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WINDOW_2_LEFT"
},
{
- "areaId": "Constants::WINDOW_2_RIGHT",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WINDOW_2_RIGHT"
},
{
- "areaId": "Constants::WINDOW_ROOF_TOP_1",
- "minInt32Value": -1,
- "maxInt32Value": 1,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::WINDOW_ROOF_TOP_1"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -1,
+ "maxInt32Value": 1
},
{
"property": "VehicleProperty::WINDSHIELD_WIPERS_PERIOD",
@@ -3938,24 +3033,18 @@
},
"areas": [
{
- "areaId": "VehicleAreaWindow::FRONT_WINDSHIELD",
- "minInt32Value": 0,
- "maxInt32Value": 3000,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaWindow::FRONT_WINDSHIELD"
},
{
- "areaId": "VehicleAreaWindow::REAR_WINDSHIELD",
- "minInt32Value": 0,
- "maxInt32Value": 3000,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "VehicleAreaWindow::REAR_WINDSHIELD"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 3000
},
{
"property": "VehicleProperty::WINDSHIELD_WIPERS_STATE",
@@ -3971,14 +3060,20 @@
"WindshieldWipersState::OFF",
"WindshieldWipersState::ON",
"WindshieldWipersState::SERVICE"
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ }
},
{
"areaId": "VehicleAreaWindow::REAR_WINDSHIELD",
"supportedEnumValues": [
"WindshieldWipersState::OFF",
"WindshieldWipersState::ON"
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ }
}
]
},
@@ -4007,7 +3102,10 @@
"WindshieldWipersSwitch::CONTINUOUS_LEVEL_5",
"WindshieldWipersSwitch::AUTO",
"WindshieldWipersSwitch::SERVICE"
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ }
},
{
"areaId": "VehicleAreaWindow::REAR_WINDSHIELD",
@@ -4019,7 +3117,10 @@
"WindshieldWipersSwitch::CONTINUOUS_LEVEL_2",
"WindshieldWipersSwitch::AUTO",
"WindshieldWipersSwitch::SERVICE"
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ }
}
]
},
@@ -4032,15 +3133,15 @@
},
"areas": [
{
- "areaId": 0,
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": 0
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::STEERING_WHEEL_DEPTH_MOVE",
@@ -4051,15 +3152,15 @@
},
"areas": [
{
- "areaId": 0,
- "minInt32Value": -2,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": 0
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -2,
+ "maxInt32Value": 2
},
{
"property": "VehicleProperty::STEERING_WHEEL_HEIGHT_POS",
@@ -4070,15 +3171,15 @@
},
"areas": [
{
- "areaId": 0,
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": 0
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::STEERING_WHEEL_HEIGHT_MOVE",
@@ -4089,15 +3190,15 @@
},
"areas": [
{
- "areaId": 0,
- "minInt32Value": -2,
- "maxInt32Value": 2,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": 0
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": -2,
+ "maxInt32Value": 2
},
{
"property": "VehicleProperty::STEERING_WHEEL_THEFT_LOCK_ENABLED",
@@ -4132,15 +3233,15 @@
},
"areas": [
{
- "areaId": "Constants::SEAT_1_RIGHT",
- "minInt32Value": 0,
- "maxInt32Value": 10,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::SEAT_1_RIGHT"
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 10
},
{
"property": "VehicleProperty::GLOVE_BOX_LOCKED",
@@ -4359,12 +3460,15 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "Constants::LIGHT_STATE_OFF",
- "Constants::LIGHT_STATE_ON"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "Constants::LIGHT_STATE_OFF",
+ "Constants::LIGHT_STATE_ON"
]
},
{
@@ -4449,13 +3553,16 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "Constants::LIGHT_SWITCH_OFF",
- "Constants::LIGHT_SWITCH_ON",
- "Constants::LIGHT_SWITCH_AUTO"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "Constants::LIGHT_SWITCH_OFF",
+ "Constants::LIGHT_SWITCH_ON",
+ "Constants::LIGHT_SWITCH_AUTO"
]
},
{
@@ -5344,20 +4451,23 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "EmergencyLaneKeepAssistState::ENABLED",
- "EmergencyLaneKeepAssistState::WARNING_LEFT",
- "EmergencyLaneKeepAssistState::WARNING_RIGHT",
- "EmergencyLaneKeepAssistState::ACTIVATED_STEER_LEFT",
- "EmergencyLaneKeepAssistState::ACTIVATED_STEER_RIGHT",
- "EmergencyLaneKeepAssistState::USER_OVERRIDE"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "EmergencyLaneKeepAssistState::ENABLED",
+ "EmergencyLaneKeepAssistState::WARNING_LEFT",
+ "EmergencyLaneKeepAssistState::WARNING_RIGHT",
+ "EmergencyLaneKeepAssistState::ACTIVATED_STEER_LEFT",
+ "EmergencyLaneKeepAssistState::ACTIVATED_STEER_RIGHT",
+ "EmergencyLaneKeepAssistState::USER_OVERRIDE"
]
},
{
@@ -5377,17 +4487,20 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "CruiseControlType::STANDARD",
- "CruiseControlType::ADAPTIVE",
- "CruiseControlType::PREDICTIVE"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "CruiseControlType::STANDARD",
+ "CruiseControlType::ADAPTIVE",
+ "CruiseControlType::PREDICTIVE"
]
},
{
@@ -5399,35 +4512,41 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "CruiseControlState::ENABLED",
- "CruiseControlState::ACTIVATED",
- "CruiseControlState::USER_OVERRIDE",
- "CruiseControlState::SUSPENDED",
- "CruiseControlState::FORCED_DEACTIVATION_WARNING"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "CruiseControlState::ENABLED",
+ "CruiseControlState::ACTIVATED",
+ "CruiseControlState::USER_OVERRIDE",
+ "CruiseControlState::SUSPENDED",
+ "CruiseControlState::FORCED_DEACTIVATION_WARNING"
]
},
{
"property": "VehicleProperty::CRUISE_CONTROL_COMMAND",
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "CruiseControlCommand::ACTIVATE",
- "CruiseControlCommand::SUSPEND",
- "CruiseControlCommand::INCREASE_TARGET_SPEED",
- "CruiseControlCommand::DECREASE_TARGET_SPEED",
- "CruiseControlCommand::INCREASE_TARGET_TIME_GAP",
- "CruiseControlCommand::DECREASE_TARGET_TIME_GAP"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "CruiseControlCommand::ACTIVATE",
+ "CruiseControlCommand::SUSPEND",
+ "CruiseControlCommand::INCREASE_TARGET_SPEED",
+ "CruiseControlCommand::DECREASE_TARGET_SPEED",
+ "CruiseControlCommand::INCREASE_TARGET_TIME_GAP",
+ "CruiseControlCommand::DECREASE_TARGET_TIME_GAP"
]
},
{
@@ -5439,15 +4558,15 @@
},
"areas": [
{
- "areaId": 0,
- "minFloatValue": 20.0,
- "maxFloatValue": 35.0,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": 0
}
- ]
+ ],
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minFloatValue": 20.0,
+ "maxFloatValue": 35.0
},
{
"property": "VehicleProperty::ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP",
@@ -5474,17 +4593,17 @@
},
"areas": [
{
- "areaId": 0,
- "minInt32Value": 0,
- "maxInt32Value": 200000,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": 0
}
],
"maxSampleRate": 10.0,
- "minSampleRate": 1.0
+ "minSampleRate": 1.0,
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minInt32Value": 0,
+ "maxInt32Value": 200000
},
{
"property": "VehicleProperty::HANDS_ON_DETECTION_ENABLED",
@@ -5503,13 +4622,16 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "HandsOnDetectionDriverState::HANDS_ON",
- "HandsOnDetectionDriverState::HANDS_OFF"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "HandsOnDetectionDriverState::HANDS_ON",
+ "HandsOnDetectionDriverState::HANDS_OFF"
]
},
{
@@ -5521,13 +4643,16 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "HandsOnDetectionWarning::NO_WARNING",
- "HandsOnDetectionWarning::WARNING"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "HandsOnDetectionWarning::NO_WARNING",
+ "HandsOnDetectionWarning::WARNING"
]
},
{
@@ -5547,20 +4672,23 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "DriverDrowsinessAttentionState::KSS_RATING_1_EXTREMELY_ALERT",
- "DriverDrowsinessAttentionState::KSS_RATING_2_VERY_ALERT",
- "DriverDrowsinessAttentionState::KSS_RATING_3_ALERT",
- "DriverDrowsinessAttentionState::KSS_RATING_4_RATHER_ALERT",
- "DriverDrowsinessAttentionState::KSS_RATING_5_NEITHER_ALERT_NOR_SLEEPY",
- "DriverDrowsinessAttentionState::KSS_RATING_6_SOME_SLEEPINESS",
- "DriverDrowsinessAttentionState::KSS_RATING_7_SLEEPY_NO_EFFORT",
- "DriverDrowsinessAttentionState::KSS_RATING_8_SLEEPY_SOME_EFFORT",
- "DriverDrowsinessAttentionState::KSS_RATING_9_VERY_SLEEPY"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "DriverDrowsinessAttentionState::KSS_RATING_1_EXTREMELY_ALERT",
+ "DriverDrowsinessAttentionState::KSS_RATING_2_VERY_ALERT",
+ "DriverDrowsinessAttentionState::KSS_RATING_3_ALERT",
+ "DriverDrowsinessAttentionState::KSS_RATING_4_RATHER_ALERT",
+ "DriverDrowsinessAttentionState::KSS_RATING_5_NEITHER_ALERT_NOR_SLEEPY",
+ "DriverDrowsinessAttentionState::KSS_RATING_6_SOME_SLEEPINESS",
+ "DriverDrowsinessAttentionState::KSS_RATING_7_SLEEPY_NO_EFFORT",
+ "DriverDrowsinessAttentionState::KSS_RATING_8_SLEEPY_SOME_EFFORT",
+ "DriverDrowsinessAttentionState::KSS_RATING_9_VERY_SLEEPY"
]
},
{
@@ -5580,13 +4708,16 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "DriverDrowsinessAttentionWarning::NO_WARNING",
- "DriverDrowsinessAttentionWarning::WARNING"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "DriverDrowsinessAttentionWarning::NO_WARNING",
+ "DriverDrowsinessAttentionWarning::WARNING"
]
},
{
@@ -5606,13 +4737,16 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "DriverDistractionState::NOT_DISTRACTED",
- "DriverDistractionState::DISTRACTED"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "DriverDistractionState::NOT_DISTRACTED",
+ "DriverDistractionState::DISTRACTED"
]
},
{
@@ -5632,13 +4766,16 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "DriverDistractionWarning::NO_WARNING",
- "DriverDistractionWarning::WARNING"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "DriverDistractionWarning::NO_WARNING",
+ "DriverDistractionWarning::WARNING"
]
},
{
@@ -5678,10 +4815,10 @@
"property": "VehicleProperty::VHAL_HEARTBEAT",
"areas": [
{
- "areaId": 0,
- "supportVariableUpdateRate": false
+ "areaId": 0
}
- ]
+ ],
+ "supportVariableUpdateRate": false
},
{
"property": "VehicleProperty::CLUSTER_SWITCH_UI",
@@ -5745,11 +4882,11 @@
],
"areas": [
{
- "areaId": 0,
- "supportVariableUpdateRate": false
+ "areaId": 0
}
],
- "comment": "configArray specifies it consists of int64[2] and byte[16]."
+ "comment": "configArray specifies it consists of int64[2] and byte[16].",
+ "supportVariableUpdateRate": false
},
{
"property": "VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT",
@@ -5803,18 +4940,21 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "AutomaticEmergencyBrakingState::ENABLED",
- "AutomaticEmergencyBrakingState::ACTIVATED",
- "AutomaticEmergencyBrakingState::USER_OVERRIDE"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "AutomaticEmergencyBrakingState::ENABLED",
+ "AutomaticEmergencyBrakingState::ACTIVATED",
+ "AutomaticEmergencyBrakingState::USER_OVERRIDE"
]
},
{
@@ -5834,17 +4974,20 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "ForwardCollisionWarningState::NO_WARNING",
- "ForwardCollisionWarningState::WARNING"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "ForwardCollisionWarningState::NO_WARNING",
+ "ForwardCollisionWarningState::WARNING"
]
},
{
@@ -5864,29 +5007,23 @@
},
"areas": [
{
- "areaId": "VehicleAreaMirror::DRIVER_LEFT",
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "BlindSpotWarningState::NO_WARNING",
- "BlindSpotWarningState::WARNING"
- ]
+ "areaId": "VehicleAreaMirror::DRIVER_LEFT"
},
{
- "areaId": "VehicleAreaMirror::DRIVER_RIGHT",
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "BlindSpotWarningState::NO_WARNING",
- "BlindSpotWarningState::WARNING"
- ]
+ "areaId": "VehicleAreaMirror::DRIVER_RIGHT"
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "BlindSpotWarningState::NO_WARNING",
+ "BlindSpotWarningState::WARNING"
]
},
{
@@ -5906,17 +5043,20 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "LaneDepartureWarningState::NO_WARNING",
- "LaneDepartureWarningState::WARNING_LEFT",
- "LaneDepartureWarningState::WARNING_RIGHT"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "LaneDepartureWarningState::NO_WARNING",
+ "LaneDepartureWarningState::WARNING_LEFT",
+ "LaneDepartureWarningState::WARNING_RIGHT"
]
},
{
@@ -5936,18 +5076,21 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "LaneKeepAssistState::ENABLED",
- "LaneKeepAssistState::ACTIVATED_STEER_LEFT",
- "LaneKeepAssistState::ACTIVATED_STEER_RIGHT",
- "LaneKeepAssistState::USER_OVERRIDE"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "LaneKeepAssistState::ENABLED",
+ "LaneKeepAssistState::ACTIVATED_STEER_LEFT",
+ "LaneKeepAssistState::ACTIVATED_STEER_RIGHT",
+ "LaneKeepAssistState::USER_OVERRIDE"
]
},
{
@@ -5970,19 +5113,22 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "LaneCenteringAssistState::ENABLED",
- "LaneCenteringAssistState::ACTIVATION_REQUESTED",
- "LaneCenteringAssistState::ACTIVATED",
- "LaneCenteringAssistState::USER_OVERRIDE",
- "LaneCenteringAssistState::FORCED_DEACTIVATION_WARNING"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "LaneCenteringAssistState::ENABLED",
+ "LaneCenteringAssistState::ACTIVATION_REQUESTED",
+ "LaneCenteringAssistState::ACTIVATED",
+ "LaneCenteringAssistState::USER_OVERRIDE",
+ "LaneCenteringAssistState::FORCED_DEACTIVATION_WARNING"
]
},
{
@@ -6002,16 +5148,19 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "LowSpeedCollisionWarningState::NO_WARNING",
- "LowSpeedCollisionWarningState::WARNING"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "LowSpeedCollisionWarningState::NO_WARNING",
+ "LowSpeedCollisionWarningState::WARNING"
]
},
{
@@ -6031,16 +5180,19 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_SPEED_LOW",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "ElectronicStabilityControlState::ENABLED",
- "ElectronicStabilityControlState::ACTIVATED"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_SPEED_LOW",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "ElectronicStabilityControlState::ENABLED",
+ "ElectronicStabilityControlState::ACTIVATED"
]
},
{
@@ -6060,21 +5212,24 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "CrossTrafficMonitoringWarningState::NO_WARNING",
- "CrossTrafficMonitoringWarningState::WARNING_FRONT_LEFT",
- "CrossTrafficMonitoringWarningState::WARNING_FRONT_RIGHT",
- "CrossTrafficMonitoringWarningState::WARNING_FRONT_BOTH",
- "CrossTrafficMonitoringWarningState::WARNING_REAR_LEFT",
- "CrossTrafficMonitoringWarningState::WARNING_REAR_RIGHT",
- "CrossTrafficMonitoringWarningState::WARNING_REAR_BOTH"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "CrossTrafficMonitoringWarningState::NO_WARNING",
+ "CrossTrafficMonitoringWarningState::WARNING_FRONT_LEFT",
+ "CrossTrafficMonitoringWarningState::WARNING_FRONT_RIGHT",
+ "CrossTrafficMonitoringWarningState::WARNING_FRONT_BOTH",
+ "CrossTrafficMonitoringWarningState::WARNING_REAR_LEFT",
+ "CrossTrafficMonitoringWarningState::WARNING_REAR_RIGHT",
+ "CrossTrafficMonitoringWarningState::WARNING_REAR_BOTH"
]
},
{
@@ -6094,17 +5249,20 @@
},
"areas": [
{
- "areaId": 0,
- "supportedEnumValues": [
- "ErrorState::NOT_AVAILABLE_SAFETY",
- "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
- "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
- "ErrorState::NOT_AVAILABLE_DISABLED",
- "LowSpeedAutomaticEmergencyBrakingState::ENABLED",
- "LowSpeedAutomaticEmergencyBrakingState::ACTIVATED",
- "LowSpeedAutomaticEmergencyBrakingState::USER_OVERRIDE"
- ]
+ "areaId": 0
}
+ ],
+ "hasSupportedValueInfo": {
+ "hasSupportedValuesList": true
+ },
+ "supportedEnumValues": [
+ "ErrorState::NOT_AVAILABLE_SAFETY",
+ "ErrorState::NOT_AVAILABLE_POOR_VISIBILITY",
+ "ErrorState::NOT_AVAILABLE_SPEED_HIGH",
+ "ErrorState::NOT_AVAILABLE_DISABLED",
+ "LowSpeedAutomaticEmergencyBrakingState::ENABLED",
+ "LowSpeedAutomaticEmergencyBrakingState::ACTIVATED",
+ "LowSpeedAutomaticEmergencyBrakingState::USER_OVERRIDE"
]
},
{
diff --git a/automotive/vehicle/aidl/impl/current/default_config/config/TestProperties.json b/automotive/vehicle/aidl/impl/current/default_config/config/TestProperties.json
index 5779050..e3da23b 100644
--- a/automotive/vehicle/aidl/impl/current/default_config/config/TestProperties.json
+++ b/automotive/vehicle/aidl/impl/current/default_config/config/TestProperties.json
@@ -1,4 +1,5 @@
{
+ "apiVersion": 2,
"properties": [
{
"property": "TestVendorProperty::MIXED_TYPE_PROPERTY_FOR_TEST",
@@ -75,13 +76,7 @@
1.0
]
},
- "areaId": "Constants::HVAC_LEFT",
- "minFloatValue": -10.0,
- "maxFloatValue": 10.0,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::HVAC_LEFT"
},
{
"defaultValue": {
@@ -89,17 +84,17 @@
2.0
]
},
- "areaId": "Constants::HVAC_RIGHT",
- "minFloatValue": -10.0,
- "maxFloatValue": 10.0,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true
- }
+ "areaId": "Constants::HVAC_RIGHT"
}
],
"access": "VehiclePropertyAccess::READ_WRITE",
- "changeMode": "VehiclePropertyChangeMode::ON_CHANGE"
+ "changeMode": "VehiclePropertyChangeMode::ON_CHANGE",
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true
+ },
+ "minFloatValue": -10.0,
+ "maxFloatValue": 10.0
},
{
"property": "TestVendorProperty::VENDOR_EXTENSION_INT_PROPERTY",
@@ -110,14 +105,7 @@
2
]
},
- "areaId": "VehicleAreaWindow::FRONT_WINDSHIELD",
- "minInt32Value": -100,
- "maxInt32Value": 100,
- "hasSupportedValueInfo": {
- "hasMinSupportedValue": true,
- "hasMaxSupportedValue": true,
- "hasSupportedValuesList": true
- }
+ "areaId": "VehicleAreaWindow::FRONT_WINDSHIELD"
},
{
"defaultValue": {
@@ -125,9 +113,7 @@
0
]
},
- "areaId": "VehicleAreaWindow::REAR_WINDSHIELD",
- "minInt32Value": -100,
- "maxInt32Value": 100
+ "areaId": "VehicleAreaWindow::REAR_WINDSHIELD"
},
{
"defaultValue": {
@@ -135,13 +121,23 @@
-1
]
},
- "areaId": "VehicleAreaWindow::ROOF_TOP_1",
- "minInt32Value": -100,
- "maxInt32Value": 100
+ "areaId": "VehicleAreaWindow::ROOF_TOP_1"
}
],
"access": "VehiclePropertyAccess::READ_WRITE",
- "changeMode": "VehiclePropertyChangeMode::ON_CHANGE"
+ "changeMode": "VehiclePropertyChangeMode::ON_CHANGE",
+ "hasSupportedValueInfo": {
+ "hasMinSupportedValue": true,
+ "hasMaxSupportedValue": true,
+ "hasSupportedValuesList": true
+ },
+ "minInt32Value": -100,
+ "maxInt32Value": 100,
+ "supportedValues": [
+ 1,
+ 2,
+ 3
+ ]
},
{
"property": "TestVendorProperty::VENDOR_EXTENSION_STRING_PROPERTY",
@@ -219,4 +215,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/automotive/vehicle/aidl/impl/current/fake_impl/hardware/include/FakeVehicleHardware.h b/automotive/vehicle/aidl/impl/current/fake_impl/hardware/include/FakeVehicleHardware.h
index b9d315a..d51e430 100644
--- a/automotive/vehicle/aidl/impl/current/fake_impl/hardware/include/FakeVehicleHardware.h
+++ b/automotive/vehicle/aidl/impl/current/fake_impl/hardware/include/FakeVehicleHardware.h
@@ -170,6 +170,13 @@
std::shared_ptr<RecurrentTimer::Callback> recurrentAction;
};
+ struct DumpOptionPropIdAreaIdInfo {
+ int32_t propId;
+ int32_t areaId;
+ std::string propIdStr;
+ std::string areaIdStr;
+ };
+
const std::unique_ptr<obd2frame::FakeObd2Frame> mFakeObd2Frame;
const std::unique_ptr<FakeUserHal> mFakeUserHal;
// RecurrentTimer is thread-safe.
@@ -189,9 +196,6 @@
std::unordered_map<PropIdAreaId, VehiclePropValuePool::RecyclableType, PropIdAreaIdHash>
mSavedProps GUARDED_BY(mLock);
std::unordered_set<PropIdAreaId, PropIdAreaIdHash> mSubOnChangePropIdAreaIds GUARDED_BY(mLock);
- int32_t mMinSupportedValueForTestIntProp GUARDED_BY(mLock) = 0;
- int32_t mMaxSupportedValueForTestIntProp GUARDED_BY(mLock) = 10;
- std::vector<int32_t> mSupportedValuesListForTestIntProp GUARDED_BY(mLock) = {0, 2, 4, 6, 8, 10};
std::unordered_map<PropIdAreaId, aidl::android::hardware::automotive::vehicle::RawPropValues,
PropIdAreaIdHash>
@@ -199,6 +203,10 @@
std::unordered_map<PropIdAreaId, aidl::android::hardware::automotive::vehicle::RawPropValues,
PropIdAreaIdHash>
mMaxSupportedValueByPropIdAreaId GUARDED_BY(mLock);
+ std::unordered_map<PropIdAreaId,
+ std::vector<aidl::android::hardware::automotive::vehicle::RawPropValues>,
+ PropIdAreaIdHash>
+ mSupportedValuesByPropIdAreaId GUARDED_BY(mLock);
// PendingRequestHandler is thread-safe.
mutable PendingRequestHandler<GetValuesCallback,
@@ -327,9 +335,6 @@
float sampleRateHz) REQUIRES(mLock);
void unregisterRefreshLocked(PropIdAreaId propIdAreaId) REQUIRES(mLock);
void refreshTimestampForInterval(int64_t intervalInNanos) EXCLUDES(mLock);
- void triggerSupportedValueChange(
- const aidl::android::hardware::automotive::vehicle::VehiclePropConfig& config)
- EXCLUDES(mLock);
void triggerSupportedValueChange(int32_t propId, int32_t areaId) EXCLUDES(mLock);
template <class T>
void setMinSupportedValueLocked(int32_t propId, int32_t areaId, T minValue) REQUIRES(mLock);
@@ -339,6 +344,8 @@
android::base::Result<void> parseAndSetMinMaxValue(int32_t propId, int32_t areaId,
const std::vector<std::string>& options,
size_t index) EXCLUDES(mLock);
+ android::base::Result<DumpOptionPropIdAreaIdInfo> parseDumpOptionPropIdAreaId(
+ const std::vector<std::string>& options, size_t& index);
static aidl::android::hardware::automotive::vehicle::VehiclePropValue createHwInputKeyProp(
aidl::android::hardware::automotive::vehicle::VehicleHwKeyInputAction action,
@@ -372,8 +379,13 @@
static android::base::Result<int32_t> parseAreaId(const std::vector<std::string>& options,
size_t index, int32_t propId);
template <class T>
- static android::base::Result<std::vector<T>> parseValues(
- const std::vector<std::string>& options, size_t index);
+ static android::base::Result<std::vector<T>> parseOptionValues(
+ const std::vector<std::string>& options, size_t index, size_t count);
+
+ template <class T>
+ static android::base::Result<
+ std::vector<aidl::android::hardware::automotive::vehicle::RawPropValues>>
+ parseOptionsToSupportedValuesList(const std::vector<std::string>& options, size_t index);
};
} // namespace fake
diff --git a/automotive/vehicle/aidl/impl/current/fake_impl/hardware/src/FakeVehicleHardware.cpp b/automotive/vehicle/aidl/impl/current/fake_impl/hardware/src/FakeVehicleHardware.cpp
index c174e92..4eb84dd 100644
--- a/automotive/vehicle/aidl/impl/current/fake_impl/hardware/src/FakeVehicleHardware.cpp
+++ b/automotive/vehicle/aidl/impl/current/fake_impl/hardware/src/FakeVehicleHardware.cpp
@@ -297,6 +297,24 @@
return ss.str();
}
+template <class T>
+RawPropValues createRawPropValues(T value);
+
+template <>
+RawPropValues createRawPropValues(int32_t value) {
+ return RawPropValues{.int32Values = {value}};
+}
+
+template <>
+RawPropValues createRawPropValues(int64_t value) {
+ return RawPropValues{.int64Values = {value}};
+}
+
+template <>
+RawPropValues createRawPropValues(float value) {
+ return RawPropValues{.floatValues = {value}};
+}
+
} // namespace
void FakeVehicleHardware::storePropInitialValue(const ConfigDeclaration& config) {
@@ -398,46 +416,16 @@
return configsByPropId;
}
-template <>
-void FakeVehicleHardware::setMinSupportedValueLocked(int32_t propId, int32_t areaId,
- int32_t minValue) {
+template <class T>
+void FakeVehicleHardware::setMinSupportedValueLocked(int32_t propId, int32_t areaId, T minValue) {
mMinSupportedValueByPropIdAreaId[PropIdAreaId{.propId = propId, .areaId = areaId}] =
- RawPropValues{.int32Values = {minValue}};
+ createRawPropValues<T>(minValue);
}
-template <>
-void FakeVehicleHardware::setMaxSupportedValueLocked(int32_t propId, int32_t areaId,
- int32_t maxValue) {
+template <class T>
+void FakeVehicleHardware::setMaxSupportedValueLocked(int32_t propId, int32_t areaId, T maxValue) {
mMaxSupportedValueByPropIdAreaId[PropIdAreaId{.propId = propId, .areaId = areaId}] =
- RawPropValues{.int32Values = {maxValue}};
-}
-
-template <>
-void FakeVehicleHardware::setMinSupportedValueLocked(int32_t propId, int32_t areaId,
- int64_t minValue) {
- mMinSupportedValueByPropIdAreaId[PropIdAreaId{.propId = propId, .areaId = areaId}] =
- RawPropValues{.int64Values = {minValue}};
-}
-
-template <>
-void FakeVehicleHardware::setMaxSupportedValueLocked(int32_t propId, int32_t areaId,
- int64_t maxValue) {
- mMaxSupportedValueByPropIdAreaId[PropIdAreaId{.propId = propId, .areaId = areaId}] =
- RawPropValues{.int64Values = {maxValue}};
-}
-
-template <>
-void FakeVehicleHardware::setMinSupportedValueLocked(int32_t propId, int32_t areaId,
- float minValue) {
- mMinSupportedValueByPropIdAreaId[PropIdAreaId{.propId = propId, .areaId = areaId}] =
- RawPropValues{.floatValues = {minValue}};
-}
-
-template <>
-void FakeVehicleHardware::setMaxSupportedValueLocked(int32_t propId, int32_t areaId,
- float maxValue) {
- mMaxSupportedValueByPropIdAreaId[PropIdAreaId{.propId = propId, .areaId = areaId}] =
- RawPropValues{.floatValues = {maxValue}};
+ createRawPropValues<T>(maxValue);
}
void FakeVehicleHardware::init(int32_t s2rS2dConfig) {
@@ -470,12 +458,7 @@
if (!areaConfig.hasSupportedValueInfo.has_value()) {
continue;
}
- if (!areaConfig.hasSupportedValueInfo->hasMinSupportedValue &&
- !areaConfig.hasSupportedValueInfo->hasMaxSupportedValue) {
- continue;
- }
if (areaConfig.hasSupportedValueInfo->hasMinSupportedValue) {
- RawPropValues rawPropValues = {};
switch (propertyType) {
case toInt(VehiclePropertyType::INT32):
setMinSupportedValueLocked(cfg.prop, areaConfig.areaId,
@@ -497,7 +480,6 @@
}
}
if (areaConfig.hasSupportedValueInfo->hasMaxSupportedValue) {
- RawPropValues rawPropValues = {};
switch (propertyType) {
case toInt(VehiclePropertyType::INT32):
setMaxSupportedValueLocked(cfg.prop, areaConfig.areaId,
@@ -513,11 +495,71 @@
break;
default:
ALOGE("hasMaxSupportedValue must only be true for INT32, INT64 or "
- "FLOAT "
- "type property");
+ "FLOAT type property");
continue;
}
}
+ if (areaConfig.hasSupportedValueInfo->hasSupportedValuesList) {
+ std::vector<RawPropValues> supportedValuesList;
+ // We first check "supportedValues" field to populate supported values list.
+ const auto& supportedValuesForAreaId =
+ configDeclaration.supportedValuesForAreaId;
+ const auto it = supportedValuesForAreaId.find(areaConfig.areaId);
+ if (it != supportedValuesForAreaId.end()) {
+ for (float supportedValueFloat : it->second) {
+ switch (propertyType) {
+ case toInt(VehiclePropertyType::INT32):
+ supportedValuesList.push_back(createRawPropValues(
+ static_cast<int32_t>(supportedValueFloat)));
+ break;
+ case toInt(VehiclePropertyType::INT64):
+ supportedValuesList.push_back(createRawPropValues(
+ static_cast<int64_t>(supportedValueFloat)));
+ break;
+ case toInt(VehiclePropertyType::FLOAT):
+ supportedValuesList.push_back(
+ createRawPropValues(supportedValueFloat));
+ break;
+ default:
+ ALOGE("supportedValues field is only supported for INT32, "
+ "INT64 or FLOAT type "
+ "property");
+ }
+ }
+ } else {
+ // If "supportedValues" is not specified, try to use "supportedEnumValues".
+ switch (propertyType) {
+ case toInt(VehiclePropertyType::INT32):
+ if (areaConfig.supportedEnumValues.has_value()) {
+ for (int64_t supportedEnumValue :
+ *areaConfig.supportedEnumValues) {
+ int32_t supportedValue =
+ static_cast<int32_t>(supportedEnumValue);
+ supportedValuesList.push_back(
+ createRawPropValues(supportedValue));
+ }
+ }
+ break;
+ case toInt(VehiclePropertyType::INT64):
+ if (areaConfig.supportedEnumValues.has_value()) {
+ for (int64_t supportedEnumValue :
+ *areaConfig.supportedEnumValues) {
+ supportedValuesList.push_back(
+ createRawPropValues(supportedEnumValue));
+ }
+ }
+ break;
+ default:
+ // Do nothing
+ break;
+ }
+ }
+ if (!supportedValuesList.empty()) {
+ mSupportedValuesByPropIdAreaId[PropIdAreaId{.propId = cfg.prop,
+ .areaId = areaConfig.areaId}] =
+ std::move(supportedValuesList);
+ }
+ }
}
}
}
@@ -1901,44 +1943,131 @@
return result;
}
-std::string FakeVehicleHardware::dumpSetMinMaxValue(const std::vector<std::string>& options) {
- // Requires at least --set-minmaxvalue <PropId> <MinValue> <MaxValue>
- if (auto result = checkArgumentsSize(options, /*minSize=*/4); !result.ok()) {
- return StringPrintf("Not enough arguments\n");
- }
- size_t index = 1;
+Result<FakeVehicleHardware::DumpOptionPropIdAreaIdInfo>
+FakeVehicleHardware::parseDumpOptionPropIdAreaId(const std::vector<std::string>& options,
+ size_t& index) {
const std::string& propIdStr = options[index];
auto maybePropId = parsePropId(options, index);
index++;
if (!maybePropId.ok()) {
- return StringPrintf("Failed to set min/max supported value: propId not valid: %s\n",
- propIdStr.c_str());
+ return Error() << "propId not valid: " << propIdStr;
}
int32_t propId = maybePropId.value();
auto configResult = mServerSidePropStore->getPropConfig(propId);
if (!configResult.ok()) {
- return "Failed to set min/max supported value: property not supported\n";
+ return Error() << "property not supported";
}
std::string areaIdStr = "0";
int32_t areaId = 0;
if (EqualsIgnoreCase(options[index], "-a")) {
index++;
if (index >= options.size()) {
- return StringPrintf("Not enough arguments\n");
+ return Error() << "Not enough arguments";
}
areaIdStr = options[index];
auto maybeAreaId = parseAreaId(options, index, propId);
if (!maybeAreaId.ok()) {
- return StringPrintf("Failed to set min/max supported value: areaId not valid: %s\n",
- areaIdStr.c_str());
+ return Error() << "areaId not valid: " << areaIdStr;
}
areaId = maybeAreaId.value();
index++;
}
+ return DumpOptionPropIdAreaIdInfo{
+ .propId = propId, .areaId = areaId, .propIdStr = propIdStr, .areaIdStr = areaIdStr};
+}
- if (index + 1 >= options.size()) {
- return StringPrintf("Not enough arguments\n");
+template <class T>
+Result<void> FakeVehicleHardware::parseAndSetMinMaxValue(int32_t propId, int32_t areaId,
+ const std::vector<std::string>& options,
+ size_t index) {
+ auto valuesResult = parseOptionValues<T>(options, index, /*count= */ 2);
+ if (!valuesResult.ok()) {
+ return Error() << "Failed to set min/max supported value: "
+ << valuesResult.error().message();
}
+ T minValue = (*valuesResult)[0];
+ T maxValue = (*valuesResult)[1];
+ if (minValue > maxValue) {
+ return Error() << "Failed to set min/max supported value: MinValue: " << minValue
+ << " must not > MaxValue: " << maxValue;
+ }
+ {
+ std::scoped_lock<std::mutex> lockGuard(mLock);
+ setMinSupportedValueLocked(propId, areaId, minValue);
+ setMaxSupportedValueLocked(propId, areaId, maxValue);
+ }
+ return {};
+}
+
+template <class T>
+Result<std::vector<T>> FakeVehicleHardware::parseOptionValues(
+ const std::vector<std::string>& options, size_t index, size_t count) {
+ if (index + count > options.size()) {
+ return Error() << "Not enough arguments";
+ }
+ std::vector<T> values;
+ for (size_t i = index; i < index + count; i++) {
+ auto result = safelyParseInt<T>(i, options[i]);
+ if (!result.ok()) {
+ return Error() << StringPrintf("Value: \"%s\" is not a valid int: %s",
+ options[i].c_str(), getErrorMsg(result).c_str());
+ }
+ values.push_back(result.value());
+ }
+ return values;
+}
+
+// This is a special version of parseOptionValues for float type.
+template <>
+Result<std::vector<float>> FakeVehicleHardware::parseOptionValues(
+ const std::vector<std::string>& options, size_t index, size_t count) {
+ if (index + count > options.size()) {
+ return Error() << "Not enough arguments";
+ }
+ std::vector<float> values;
+ for (size_t i = index; i < index + count; i++) {
+ auto result = safelyParseFloat(i, options[i]);
+ if (!result.ok()) {
+ return Error() << StringPrintf("Value: \"%s\" is not a valid float: %s",
+ options[i].c_str(), getErrorMsg(result).c_str());
+ }
+ values.push_back(result.value());
+ }
+ return values;
+}
+
+template <class T>
+Result<std::vector<RawPropValues>> FakeVehicleHardware::parseOptionsToSupportedValuesList(
+ const std::vector<std::string>& options, size_t index) {
+ std::vector<RawPropValues> supportedValuesList;
+ auto valuesResult = parseOptionValues<T>(options, index, options.size() - index);
+ if (!valuesResult.ok()) {
+ return Error() << valuesResult.error().message();
+ }
+ std::vector<T> values = *valuesResult;
+ if (values.size() == 0) {
+ return Error() << "Not enough arguments";
+ }
+ for (T value : *valuesResult) {
+ supportedValuesList.push_back(createRawPropValues(value));
+ }
+ return supportedValuesList;
+}
+
+std::string FakeVehicleHardware::dumpSetMinMaxValue(const std::vector<std::string>& options) {
+ // Requires at least --set-minmaxvalue <PropId> <MinValue> <MaxValue>
+ if (auto result = checkArgumentsSize(options, /*minSize=*/4); !result.ok()) {
+ return "Failed to set min/max supported value: Not enough arguments\n";
+ }
+ size_t index = 1;
+ Result<DumpOptionPropIdAreaIdInfo> maybeInfo = parseDumpOptionPropIdAreaId(options, index);
+ if (!maybeInfo.ok()) {
+ return StringPrintf("Failed to set min/max supported value: %s\n",
+ maybeInfo.error().message().c_str());
+ }
+ int32_t propId = maybeInfo->propId;
+ int32_t areaId = maybeInfo->areaId;
+
Result<void> parseAndSetValueResult = {};
switch (propId & toInt(VehiclePropertyType::MASK)) {
case toInt(VehiclePropertyType::INT32):
@@ -1962,90 +2091,52 @@
}
triggerSupportedValueChange(propId, areaId);
- return StringPrintf("Min/Max supported value for propId: %s, areaId: %s set", propIdStr.c_str(),
- areaIdStr.c_str());
-}
-
-template <class T>
-Result<void> FakeVehicleHardware::parseAndSetMinMaxValue(int32_t propId, int32_t areaId,
- const std::vector<std::string>& options,
- size_t index) {
- auto valuesResult = parseValues<T>(options, index);
- if (!valuesResult.ok()) {
- return Error() << "Failed to set min/max supported value: "
- << valuesResult.error().message();
- }
- T minValue = (*valuesResult)[0];
- T maxValue = (*valuesResult)[1];
- if (minValue > maxValue) {
- return Error() << "Failed to set min/max supported value: MinValue: " << minValue
- << " must not > MaxValue: " << maxValue;
- }
- {
- std::scoped_lock<std::mutex> lockGuard(mLock);
- setMinSupportedValueLocked(propId, areaId, minValue);
- setMaxSupportedValueLocked(propId, areaId, maxValue);
- }
- return {};
-}
-
-template <class T>
-Result<std::vector<T>> FakeVehicleHardware::parseValues(const std::vector<std::string>& options,
- size_t index) {
- std::vector<T> values;
- for (size_t i = index; i < index + 2; i++) {
- auto result = safelyParseInt<T>(i, options[i]);
- if (!result.ok()) {
- return Error() << StringPrintf("Value: \"%s\" is not a valid int: %s",
- options[i].c_str(), getErrorMsg(result).c_str());
- }
- values.push_back(result.value());
- }
- return values;
-}
-
-// This is a special version of parseValues for float type.
-template <>
-Result<std::vector<float>> FakeVehicleHardware::parseValues(const std::vector<std::string>& options,
- size_t index) {
- std::vector<float> values;
- for (size_t i = index; i < index + 2; i++) {
- auto result = safelyParseFloat(i, options[i]);
- if (!result.ok()) {
- return Error() << StringPrintf("Value: \"%s\" is not a valid float: %s",
- options[i].c_str(), getErrorMsg(result).c_str());
- }
- values.push_back(result.value());
- }
- return values;
+ return StringPrintf("Min/Max supported value for propId: %s, areaId: %s set",
+ maybeInfo->propIdStr.c_str(), maybeInfo->propIdStr.c_str());
}
std::string FakeVehicleHardware::dumpSetSupportedValues(const std::vector<std::string>& options) {
- if (auto result = checkArgumentsSize(options, /*minSize=*/2); !result.ok()) {
- return getErrorMsg(result);
- }
- int testPropId = toInt(TestVendorProperty::VENDOR_EXTENSION_INT_PROPERTY);
- auto configResult = mServerSidePropStore->getPropConfig(testPropId);
- if (!configResult.ok()) {
- return "Failed to set min/max supported value: VENDOR_EXTENSION_INT_PROPERTY not supported";
- }
- std::vector<int32_t> values;
- for (size_t i = 1; i < options.size(); i++) {
- auto int32Result = safelyParseInt<int32_t>(i, options[i]);
- if (!int32Result.ok()) {
- return StringPrintf(
- "Failed to set supported values: Value: \"%s\" is not a valid int: %s\n",
- options[i].c_str(), getErrorMsg(int32Result).c_str());
- }
- values.push_back(int32Result.value());
+ // We at least requires set-supportedvalues <PROP> <SUPPORTED_VALUE>
+ if (auto result = checkArgumentsSize(options, /*minSize=*/3); !result.ok()) {
+ return "Failed to set supported values list: Not enough arguments\n";
}
- {
- std::scoped_lock<std::mutex> lockGuard(mLock);
- mSupportedValuesListForTestIntProp = values;
+ size_t index = 1;
+ Result<DumpOptionPropIdAreaIdInfo> maybeInfo = parseDumpOptionPropIdAreaId(options, index);
+ if (!maybeInfo.ok()) {
+ return StringPrintf("Failed to set supported values list: %s\n",
+ maybeInfo.error().message().c_str());
}
- triggerSupportedValueChange(configResult.value());
- return "Supported values list for VENDOR_EXTENSION_INT_PROPERTY set";
+ int32_t propId = maybeInfo->propId;
+ int32_t areaId = maybeInfo->areaId;
+ Result<std::vector<RawPropValues>> maybeSupportedValues;
+ switch (propId & toInt(VehiclePropertyType::MASK)) {
+ case toInt(VehiclePropertyType::INT32):
+ maybeSupportedValues = parseOptionsToSupportedValuesList<int32_t>(options, index);
+ break;
+ case toInt(VehiclePropertyType::INT64):
+ maybeSupportedValues = parseOptionsToSupportedValuesList<int64_t>(options, index);
+ break;
+ case toInt(VehiclePropertyType::FLOAT):
+ maybeSupportedValues = parseOptionsToSupportedValuesList<float>(options, index);
+ break;
+ default:
+ return StringPrintf(
+ "Failed to set supported values list: only int32/int64/float type"
+ " property is supported\n");
+ }
+ if (!maybeSupportedValues.ok()) {
+ return StringPrintf("Failed to set supported values list: %s\n",
+ maybeSupportedValues.error().message().c_str());
+ }
+ {
+ std::lock_guard<std::mutex> lock(mLock);
+ mSupportedValuesByPropIdAreaId[PropIdAreaId{.propId = propId, .areaId = areaId}] =
+ *maybeSupportedValues;
+ }
+ triggerSupportedValueChange(maybeInfo->propId, maybeInfo->areaId);
+ return StringPrintf("Supported values list for propId: %s, areaId: %s set",
+ maybeInfo->propIdStr.c_str(), maybeInfo->propIdStr.c_str());
}
void FakeVehicleHardware::triggerSupportedValueChange(int32_t propId, int32_t areaId) {
@@ -2060,56 +2151,44 @@
}});
}
-// Triggers supported value change for all areaIds that specify hasSupportedValueInfo.
-void FakeVehicleHardware::triggerSupportedValueChange(const VehiclePropConfig& config) {
- if (mOnSupportedValueChangeCallback == nullptr) {
- ALOGE("onSupportedValueChangeCallback is not registered, ignore event");
- return;
- }
-
- std::vector<PropIdAreaId> propIdAreaIds;
- for (const VehicleAreaConfig& areaConfig : config.areaConfigs) {
- if (areaConfig.hasSupportedValueInfo != std::nullopt) {
- propIdAreaIds.push_back({
- .propId = config.prop,
- .areaId = areaConfig.areaId,
- });
- }
- }
- (*mOnSupportedValueChangeCallback)(std::move(propIdAreaIds));
-}
-
std::string FakeVehicleHardware::dumpHelp() {
- return "Usage: \n\n"
- "[no args]: dumps (id and value) all supported properties \n"
- "--help: shows this help\n"
- "--list: lists the property IDs and their supported area IDs for all supported "
- "properties\n"
- "--get <PROP_ID_1> [PROP_ID_2] [PROP_ID_N]: dumps the value of specific properties. \n"
- "--getWithArg <PROP_ID> [ValueArguments]: gets the value for a specific property. "
- "The value arguments constructs a VehiclePropValue used in the getValue request. \n"
- "--set <PROP_ID> [ValueArguments]: sets the value of property PROP_ID, the value "
- "arguments constructs a VehiclePropValue used in the setValue request. \n"
- "--set-minmaxvalue <PROP_ID> [-a AREA_ID] <MIN_VALUE> <MAX_VALUE>: sets the min max "
- "supported value e.g. --set-minmaxvalue HVAC_TEMPERATURE_SET -a ROW_1_LEFT -5.1 5.1\n"
- "--set-supportedvalues <VALUE_1(int)> [VALUE_2(int) ...]: sets the supported values list"
- "for VENDOR_EXTENSION_INT_PROPERTY\n"
- "--save-prop <PROP_ID> [-a AREA_ID]: saves the current value for PROP_ID, integration "
- "tests that modify prop value must call this before test and restore-prop after test. \n"
- "--restore-prop <PROP_ID> [-a AREA_ID]: restores a previously saved property value. \n"
- "--inject-event <PROP_ID> [ValueArguments]: inject a property update event from car\n\n"
- "ValueArguments are in the format of [-a OPTIONAL_AREA_ID] "
- "[-i INT_VALUE_1 [INT_VALUE_2 ...]] "
- "[-i64 INT64_VALUE_1 [INT64_VALUE_2 ...]] "
- "[-f FLOAT_VALUE_1 [FLOAT_VALUE_2 ...]] "
- "[-s STR_VALUE] "
- "[-b BYTES_VALUE].\n"
- "For example: to set property ID 0x1234, areaId 0x1 to int32 values: [1, 2, 3], "
- "use \"--set 0x1234 -a 0x1 -i 1 2 3\"\n"
- "Note that the string, bytes and area value can be set just once, while the other can"
- " have multiple values (so they're used in the respective array), "
- "BYTES_VALUE is in the form of 0xXXXX, e.g. 0xdeadbeef.\n" +
- genFakeDataHelp() + "Fake user HAL usage: \n" + mFakeUserHal->showDumpHelp();
+ return R"(Usage:
+[no args]: dumps (id and value) all supported properties
+
+--help: shows this help
+
+--list: lists the property IDs and their supported area IDs for all supported properties
+
+--get <PROP_ID_1> [PROP_ID_2] [PROP_ID_N]: dumps the value of specific properties.
+
+--getWithArg <PROP_ID> [ValueArguments]: gets the value for a specific property.
+The value arguments constructs a VehiclePropValue used in the getValue request.
+
+--set <PROP_ID> [ValueArguments]: sets the value of property PROP_ID
+The value arguments constructs a VehiclePropValue used in the setValue request.
+
+--set-minmaxvalue <PROP_ID> [-a AREA_ID] <MIN_VALUE> <MAX_VALUE>: sets the min max supported value
+e.g. --set-minmaxvalue HVAC_TEMPERATURE_SET -a ROW_1_LEFT 17 32
+
+--set-supportedvalues <PROP_ID> [-a AREA_ID] <VALUE_1> [VALUE_2 ...]: sets the supported values list
+e.g. --set-supportedvalues HVAC_TEMPERATURE_SET -a ROW_1_LEFT 17 17.5 18 18.5
+
+--save-prop <PROP_ID> [-a AREA_ID]: saves the current value for PROP_ID, integration tests that
+modify prop value must call this before test and restore-prop after test.
+
+--restore-prop <PROP_ID> [-a AREA_ID]: restores a previously saved property value.
+
+--inject-event <PROP_ID> [ValueArguments]: inject a property update event from car
+ValueArguments are in the format of
+[-a OPTIONAL_AREA_ID] [-i INT_VALUE_1 [INT_VALUE_2 ...]] [-i64 INT64_VALUE_1 [INT64_VALUE_2 ...]]
+[-f FLOAT_VALUE_1 [FLOAT_VALUE_2 ...]] [-s STR_VALUE] [-b BYTES_VALUE].
+For example: to set property ID 0x1234, areaId 0x1 to int32 values: [1, 2, 3]
+use "--set 0x1234 -a 0x1 -i 1 2 3"
+Note that the string, bytes and area value can be set just once, while the other can have multiple
+values (so they're used in the respective array), BYTES_VALUE is in the form of 0xXXXX,
+e.g. 0xdeadbeef.
+)" + genFakeDataHelp() +
+ "Fake user HAL usage: \n" + mFakeUserHal->showDumpHelp();
}
std::string FakeVehicleHardware::dumpAllProperties() {
@@ -2629,19 +2708,17 @@
const std::vector<PropIdAreaId>& propIdAreaIds) {
std::scoped_lock<std::mutex> lockGuard(mLock);
std::vector<SupportedValuesListResult> results;
- // We only support VENDOR_EXTENSION_INT_PROPERTY
for (const auto& propIdAreaId : propIdAreaIds) {
- int propId = propIdAreaId.propId;
- int areaId = propIdAreaId.areaId;
- if (propId != toInt(TestVendorProperty::VENDOR_EXTENSION_INT_PROPERTY)) {
+ const auto it = mSupportedValuesByPropIdAreaId.find(propIdAreaId);
+ if (it == mSupportedValuesByPropIdAreaId.end()) {
results.push_back(SupportedValuesListResult{
.status = StatusCode::INVALID_ARG,
});
continue;
}
std::vector<std::optional<RawPropValues>> supportedValuesList;
- for (int32_t value : mSupportedValuesListForTestIntProp) {
- supportedValuesList.push_back(RawPropValues{.int32Values = {value}});
+ for (const RawPropValues& supportedValue : it->second) {
+ supportedValuesList.push_back(supportedValue);
}
results.push_back(SupportedValuesListResult{
.status = StatusCode::OK,
diff --git a/automotive/vehicle/aidl/impl/current/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp b/automotive/vehicle/aidl/impl/current/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp
index 617d2d2..8262098 100644
--- a/automotive/vehicle/aidl/impl/current/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp
+++ b/automotive/vehicle/aidl/impl/current/fake_impl/hardware/test/FakeVehicleHardwareTest.cpp
@@ -80,6 +80,7 @@
using ::aidl::android::hardware::automotive::vehicle::VehicleApPowerStateShutdownParam;
using ::aidl::android::hardware::automotive::vehicle::VehicleAreaMirror;
using ::aidl::android::hardware::automotive::vehicle::VehicleAreaSeat;
+using ::aidl::android::hardware::automotive::vehicle::VehicleAreaWindow;
using ::aidl::android::hardware::automotive::vehicle::VehicleHwKeyInputAction;
using ::aidl::android::hardware::automotive::vehicle::VehiclePropConfig;
using ::aidl::android::hardware::automotive::vehicle::VehicleProperty;
@@ -2591,7 +2592,7 @@
DumpResult result = getHardware()->dump(options);
ASSERT_FALSE(result.callerShouldDumpState);
ASSERT_NE(result.buffer, "");
- ASSERT_THAT(result.buffer, ContainsRegex("Usage: "));
+ ASSERT_THAT(result.buffer, ContainsRegex("Usage:"));
}
TEST_F(FakeVehicleHardwareTest, testDumpListProperties) {
@@ -2892,8 +2893,9 @@
ASSERT_THAT(result.buffer, ContainsRegex("Failed"));
}
-TEST_F(FakeVehicleHardwareTest, testDumpSetSupportedValues) {
- std::vector<std::string> options = {"--set-supportedvalues", "1", "2", "3"};
+TEST_F(FakeVehicleHardwareTest, testDumpSetSupportedValues_Int) {
+ std::vector<std::string> options = {
+ "--set-supportedvalues", "EV_STOPPING_MODE", "-a", "0", "1", "2", "3"};
std::vector<PropIdAreaId> changedPropIdAreaIds;
getHardware()->registerSupportedValueChangeCallback(
@@ -2907,11 +2909,13 @@
ASSERT_THAT(result.buffer, ContainsRegex("Supported values list .* set"));
ASSERT_EQ(changedPropIdAreaIds.size(), 1u);
+ EXPECT_EQ(changedPropIdAreaIds[0], (PropIdAreaId{
+ .propId = toInt(VehicleProperty::EV_STOPPING_MODE),
+ .areaId = 0,
+ }));
- auto results = getHardware()->getSupportedValuesLists({PropIdAreaId{
- .propId = toInt(TestVendorProperty::VENDOR_EXTENSION_INT_PROPERTY), .areaId = 0}});
+ auto results = getHardware()->getSupportedValuesLists({changedPropIdAreaIds[0]});
- ASSERT_EQ(results.size(), 1u);
EXPECT_EQ(results[0].status, StatusCode::OK);
EXPECT_NE(results[0].supportedValuesList, std::nullopt);
EXPECT_EQ(results[0].supportedValuesList.value(), std::vector<std::optional<RawPropValues>>({
@@ -2921,13 +2925,108 @@
}));
}
+TEST_F(FakeVehicleHardwareTest, testDumpSetSupportedValues_forGlobalPropertySkipArea) {
+ std::vector<std::string> options = {"--set-supportedvalues", "EV_STOPPING_MODE", "1", "2", "3"};
+ std::vector<PropIdAreaId> changedPropIdAreaIds;
+
+ getHardware()->registerSupportedValueChangeCallback(
+ std::make_unique<IVehicleHardware::SupportedValueChangeCallback>(
+ [&changedPropIdAreaIds](std::vector<PropIdAreaId> propIdAreaIds) {
+ changedPropIdAreaIds = propIdAreaIds;
+ }));
+
+ DumpResult result = getHardware()->dump(options);
+ ASSERT_FALSE(result.callerShouldDumpState);
+ ASSERT_THAT(result.buffer, ContainsRegex("Supported values list .* set"));
+
+ ASSERT_EQ(changedPropIdAreaIds.size(), 1u);
+ EXPECT_EQ(changedPropIdAreaIds[0], (PropIdAreaId{
+ .propId = toInt(VehicleProperty::EV_STOPPING_MODE),
+ .areaId = 0,
+ }));
+
+ auto results = getHardware()->getSupportedValuesLists({changedPropIdAreaIds[0]});
+
+ EXPECT_EQ(results[0].status, StatusCode::OK);
+ EXPECT_NE(results[0].supportedValuesList, std::nullopt);
+ EXPECT_EQ(results[0].supportedValuesList.value(), std::vector<std::optional<RawPropValues>>({
+ RawPropValues{.int32Values = {1}},
+ RawPropValues{.int32Values = {2}},
+ RawPropValues{.int32Values = {3}},
+ }));
+}
+
+TEST_F(FakeVehicleHardwareTest, testDumpSetSupportedValues_Float) {
+ std::vector<std::string> options = {"--set-supportedvalues",
+ "HVAC_TEMPERATURE_SET",
+ "-a",
+ "ROW_1_LEFT",
+ "1.1",
+ "2.2",
+ "3.3"};
+ std::vector<PropIdAreaId> changedPropIdAreaIds;
+
+ getHardware()->registerSupportedValueChangeCallback(
+ std::make_unique<IVehicleHardware::SupportedValueChangeCallback>(
+ [&changedPropIdAreaIds](std::vector<PropIdAreaId> propIdAreaIds) {
+ changedPropIdAreaIds = propIdAreaIds;
+ }));
+
+ DumpResult result = getHardware()->dump(options);
+ ASSERT_FALSE(result.callerShouldDumpState);
+ ASSERT_THAT(result.buffer, ContainsRegex("Supported values list .* set"));
+
+ ASSERT_EQ(changedPropIdAreaIds.size(), 1u);
+ EXPECT_EQ(changedPropIdAreaIds[0],
+ (PropIdAreaId{
+ .propId = toInt(VehicleProperty::HVAC_TEMPERATURE_SET),
+ .areaId = toInt(VehicleAreaSeat::ROW_1_LEFT),
+ }));
+
+ auto results = getHardware()->getSupportedValuesLists({changedPropIdAreaIds[0]});
+
+ EXPECT_EQ(results[0].status, StatusCode::OK);
+ EXPECT_NE(results[0].supportedValuesList, std::nullopt);
+ EXPECT_EQ(results[0].supportedValuesList.value(), std::vector<std::optional<RawPropValues>>({
+ RawPropValues{.floatValues = {1.1}},
+ RawPropValues{.floatValues = {2.2}},
+ RawPropValues{.floatValues = {3.3}},
+ }));
+}
+
TEST_F(FakeVehicleHardwareTest, testDumpSetSupportedValues_invalidInt) {
- std::vector<std::string> options = {"--set-supportedvalues", "1", "2", "ab", "3"};
+ std::vector<std::string> options = {
+ "--set-supportedvalues", "EV_STOPPING_MODE", "1", "2", "ab", "3"};
DumpResult result = getHardware()->dump(options);
ASSERT_THAT(result.buffer, ContainsRegex("Failed"));
}
+TEST_F(FakeVehicleHardwareTest, testDumpSetSupportedValues_notEnoughArguments) {
+ std::vector<std::string> options = {"--set-supportedvalues", "EV_STOPPING_MODE"};
+
+ DumpResult result = getHardware()->dump(options);
+ ASSERT_THAT(result.buffer, ContainsRegex("Failed"));
+ ASSERT_THAT(result.buffer, ContainsRegex("Not enough arguments"));
+}
+
+TEST_F(FakeVehicleHardwareTest, testDumpSetSupportedValues_withAreaId_notEnoughArguments) {
+ std::vector<std::string> options = {"--set-supportedvalues", "EV_STOPPING_MODE", "-a", "0"};
+
+ DumpResult result = getHardware()->dump(options);
+ ASSERT_THAT(result.buffer, ContainsRegex("Failed"));
+ ASSERT_THAT(result.buffer, ContainsRegex("Not enough arguments"));
+}
+
+TEST_F(FakeVehicleHardwareTest, testDumpSetSupportedValues_invalidAreaId) {
+ std::vector<std::string> options = {"--set-supportedvalues", "EV_STOPPING_MODE", "-a", "blah",
+ "1"};
+
+ DumpResult result = getHardware()->dump(options);
+ ASSERT_THAT(result.buffer, ContainsRegex("Failed"));
+ ASSERT_THAT(result.buffer, ContainsRegex("areaId not valid"));
+}
+
struct SetPropTestCase {
std::string test_name;
std::vector<std::string> options;
@@ -4073,25 +4172,32 @@
TEST_F(FakeVehicleHardwareTest, testGetSupportedValuesLists) {
auto results = getHardware()->getSupportedValuesLists({
PropIdAreaId{.propId = toInt(TestVendorProperty::VENDOR_EXTENSION_INT_PROPERTY),
- .areaId = 0},
- PropIdAreaId{.propId = toInt(VehicleProperty::HVAC_TEMPERATURE_SET), .areaId = 0},
+ .areaId = toInt(VehicleAreaWindow::FRONT_WINDSHIELD)},
+ // This property does not specify supported values list.
+ PropIdAreaId{.propId = toInt(VehicleProperty::INFO_EV_BATTERY_CAPACITY), .areaId = 0},
});
ASSERT_EQ(results.size(), 2u);
EXPECT_EQ(results[0].status, StatusCode::OK);
EXPECT_NE(results[0].supportedValuesList, std::nullopt);
EXPECT_NE((results[0].supportedValuesList)->size(), 0u);
- EXPECT_EQ(results[0].supportedValuesList.value(), std::vector<std::optional<RawPropValues>>({
- RawPropValues{.int32Values = {0}},
- RawPropValues{.int32Values = {2}},
- RawPropValues{.int32Values = {4}},
- RawPropValues{.int32Values = {6}},
- RawPropValues{.int32Values = {8}},
- RawPropValues{.int32Values = {10}},
- }));
+ EXPECT_EQ(results[0].supportedValuesList.value(),
+ std::vector<std::optional<RawPropValues>>({RawPropValues{.int32Values = {1}},
+ RawPropValues{.int32Values = {2}},
+ RawPropValues{.int32Values = {3}}}));
EXPECT_EQ(results[1].status, StatusCode::INVALID_ARG);
}
+TEST_F(FakeVehicleHardwareTest, testGetSupportedValuesLists_populateFromSupportedEnumValues) {
+ auto results = getHardware()->getSupportedValuesLists({PropIdAreaId{
+ .propId = toInt(VehicleProperty::FORWARD_COLLISION_WARNING_STATE), .areaId = 0}});
+
+ ASSERT_EQ(results.size(), 1u);
+ EXPECT_EQ(results[0].status, StatusCode::OK);
+ ASSERT_NE(results[0].supportedValuesList, std::nullopt);
+ ASSERT_THAT(results[0].supportedValuesList.value(), ::testing::Not(::testing::IsEmpty()));
+}
+
} // namespace fake
} // namespace vehicle
} // namespace automotive
diff --git a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
index 49c8410..bfc2d90 100644
--- a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
+++ b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
@@ -8715,25 +8715,14 @@
ASSERT_NE(nullptr, bufferItemConsumer);
ASSERT_NE(nullptr, bufferHandler);
-#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
- *bufferItemConsumer = new BufferItemConsumer(
- GraphicBuffer::USAGE_HW_TEXTURE); // Use GLConsumer default usage flags
-#else
- sp<IGraphicBufferProducer> producer;
- sp<IGraphicBufferConsumer> consumer;
- BufferQueue::createBufferQueue(&producer, &consumer);
- *bufferItemConsumer = new BufferItemConsumer(consumer,
- GraphicBuffer::USAGE_HW_TEXTURE); //Use GLConsumer default usage flags
-#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
+ sp<Surface> surface;
+ std::tie(*bufferItemConsumer, surface) =
+ BufferItemConsumer::create(GraphicBuffer::USAGE_HW_TEXTURE);
+
ASSERT_NE(nullptr, (*bufferItemConsumer).get());
*bufferHandler = new BufferItemHander(*bufferItemConsumer);
ASSERT_NE(nullptr, (*bufferHandler).get());
(*bufferItemConsumer)->setFrameAvailableListener(*bufferHandler);
-#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
- sp<Surface> surface = (*bufferItemConsumer)->getSurface();
-#else
- sp<Surface> surface = new Surface(producer);
-#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
sp<PreviewWindowCb> previewCb = new PreviewWindowCb(surface);
auto rc = device->setPreviewWindow(previewCb);