diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 03b9fd9..a88e69b 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -12,7 +12,8 @@ # ********************************************************************************/ # Download base image of Ubuntu -FROM kuksa.val.services/ci:latest +# NOTE: it may be required to build the image locally (check root README.md) +FROM oci_kuksa-val-services-ci:latest # If you get proxy errors, make sure Docker is configured correctly. # Hint: https://dev.to/zyfa/setup-the-proxy-for-dockerfile-building--4jc8 diff --git a/.vscode/scripts/run-feedercan.sh b/.vscode/scripts/run-feedercan.sh index 3d18552..276cc42 100755 --- a/.vscode/scripts/run-feedercan.sh +++ b/.vscode/scripts/run-feedercan.sh @@ -54,7 +54,20 @@ if [ ! -f "$FEEDERCAN_EXEC_PATH/dbcfeeder.py" ]; then fi cd "$FEEDERCAN_EXEC_PATH" || exit 1 -pip3 install -q -r requirements.txt + +if [ -z "$(which python3.9)" ]; then + echo "### WARNING! dbc2val requires python3.9" 1>&2 + echo "You may install 3.9 in pyenv. Check: https://github.com/pyenv/pyenv#installation" + echo "$ curl https://pyenv.run | bash" + echo "$ pyenv install 3.9.18" + echo "$ pyenv versions" + echo "$ pyenv global 3.9.18" + echo "$ python3.9 --version" +fi + +# PIP_OPT="--upgrade --retries 1 --timeout 3" +### IMPORTANT: dbc2val now requires python 9, does not work on python8 +pip3.9 install $PIP_OPT -q -r requirements.txt -r requirements-dev.txt #################################### ### feedercan environment setup #### @@ -65,14 +78,18 @@ CONFIG_DIR="$ROOT_DIRECTORY/integration_test/volumes/dbc2val" ### Override default files for feedercan to be consistent with tests export DBC_FILE="$CONFIG_DIR/it-can.dbc" -export MAPPING_FILE="$CONFIG_DIR/it-mapping.yml" +export MAPPING_FILE="$CONFIG_DIR/it-vss_4.0.json" +# uncomment if you need to test with DogMode datapoints (requires custom vss config for databroker) +#export MAPPING_FILE="$CONFIG_DIR/it-vss_4.0-dogmode.json" export CANDUMP_FILE="$CONFIG_DIR/it-candump0.log" -export USECASE="databroker" +# export USECASE="databroker" +export USE_DBC2VAL=1 +export NO_USE_VAL2DBC=1 + +export LOG_LEVEL="info" #,dbcfeeder=debug" ## Uncomment to enable most of the debug modules -# export LOG_LEVEL="info,databroker=debug,dbcfeeder.broker_client=debug,dbcfeeder=debug,dbcreader=debug" -## Uncomment for verbose dbcreader decoded can dumps, needs dbcreader=debug -# export CAN_VERBOSE=1 +#export LOG_LEVEL="debug,dbcfeeder=debug,kuksa_client.grpc=debug,dbcfeederlib.canplayer=debug,dbcfeederlib.canreader=debug,dbcfeederlib.dbc2vssmapper=debug" echo echo "*******************************************" @@ -95,4 +112,4 @@ dapr run \ --components-path "$ROOT_DIRECTORY/.dapr/components" \ --config "$ROOT_DIRECTORY/.dapr/config.yaml" & #-- -python3 -u ./dbcfeeder.py +python3.9 -u ./dbcfeeder.py diff --git a/.vscode/scripts/run-integrationtest.sh b/.vscode/scripts/run-integrationtest.sh index 9f81491..8026f88 100755 --- a/.vscode/scripts/run-integrationtest.sh +++ b/.vscode/scripts/run-integrationtest.sh @@ -34,8 +34,8 @@ else echo fi -pip3 install -q -U -r "${ROOT_DIRECTORY}/integration_test/requirements-dev.txt" -pip3 install -q -U -r "${ROOT_DIRECTORY}/integration_test/requirements.txt" +pip3 install -q -r "${ROOT_DIRECTORY}/integration_test/requirements-dev.txt" +pip3 install -q -r "${ROOT_DIRECTORY}/integration_test/requirements.txt" pip3 install -q -e "${ROOT_DIRECTORY}/integration_test/" pip3 install -q -e "${ROOT_DIRECTORY}/hvac_service/" diff --git a/.vscode/scripts/run-kuksa-cli.sh b/.vscode/scripts/run-kuksa-cli.sh index 2a1b063..4f6ea7b 100755 --- a/.vscode/scripts/run-kuksa-cli.sh +++ b/.vscode/scripts/run-kuksa-cli.sh @@ -42,5 +42,5 @@ if [ "$STANDALONE" = "1" ]; then # prevent warning dumps GRPC_ENABLE_FORK_SUPPORT=true kuksa-client --ip 127.0.0.1 --port "$DATABROKER_PORT" --protocol grpc --insecure else - docker run -it --rm -e GRPC_ENABLE_FORK_SUPPORT=true --net=host "ghcr.io/eclipse/kuksa.val/kuksa-client:$KUKSACLIENT_VERSION" --ip 127.0.0.1 --port "$DATABROKER_PORT" --protocol grpc --insecure + docker run -it --rm -e GRPC_ENABLE_FORK_SUPPORT=true --net=host "ghcr.io/eclipse/kuksa.val/kuksa-client:$KUKSACLIENT_VERSION" # get--ip 127.0.0.1 --port "$DATABROKER_PORT" --protocol grpc #--insecure fi \ No newline at end of file diff --git a/hvac_service/kuksa/val/v1/types_pb2.py b/hvac_service/kuksa/val/v1/types_pb2.py index dfc09fb..a083fbd 100644 --- a/hvac_service/kuksa/val/v1/types_pb2.py +++ b/hvac_service/kuksa/val/v1/types_pb2.py @@ -2,12 +2,10 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: kuksa/val/v1/types.proto """Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -16,290 +14,62 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18kuksa/val/v1/types.proto\x12\x0ckuksa.val.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9d\x01\n\tDataEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.kuksa.val.v1.Datapoint\x12\x30\n\x0f\x61\x63tuator_target\x18\x03 \x01(\x0b\x32\x17.kuksa.val.v1.Datapoint\x12(\n\x08metadata\x18\n \x01(\x0b\x32\x16.kuksa.val.v1.Metadata\"\xdc\x04\n\tDatapoint\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x06string\x18\x0b \x01(\tH\x00\x12\x0e\n\x04\x62ool\x18\x0c \x01(\x08H\x00\x12\x0f\n\x05int32\x18\r \x01(\x11H\x00\x12\x0f\n\x05int64\x18\x0e \x01(\x12H\x00\x12\x10\n\x06uint32\x18\x0f \x01(\rH\x00\x12\x10\n\x06uint64\x18\x10 \x01(\x04H\x00\x12\x0f\n\x05\x66loat\x18\x11 \x01(\x02H\x00\x12\x10\n\x06\x64ouble\x18\x12 \x01(\x01H\x00\x12\x31\n\x0cstring_array\x18\x15 \x01(\x0b\x32\x19.kuksa.val.v1.StringArrayH\x00\x12-\n\nbool_array\x18\x16 \x01(\x0b\x32\x17.kuksa.val.v1.BoolArrayH\x00\x12/\n\x0bint32_array\x18\x17 \x01(\x0b\x32\x18.kuksa.val.v1.Int32ArrayH\x00\x12/\n\x0bint64_array\x18\x18 \x01(\x0b\x32\x18.kuksa.val.v1.Int64ArrayH\x00\x12\x31\n\x0cuint32_array\x18\x19 \x01(\x0b\x32\x19.kuksa.val.v1.Uint32ArrayH\x00\x12\x31\n\x0cuint64_array\x18\x1a \x01(\x0b\x32\x19.kuksa.val.v1.Uint64ArrayH\x00\x12/\n\x0b\x66loat_array\x18\x1b \x01(\x0b\x32\x18.kuksa.val.v1.FloatArrayH\x00\x12\x31\n\x0c\x64ouble_array\x18\x1c \x01(\x0b\x32\x19.kuksa.val.v1.DoubleArrayH\x00\x42\x07\n\x05value\"\xc3\x03\n\x08Metadata\x12)\n\tdata_type\x18\x0b \x01(\x0e\x32\x16.kuksa.val.v1.DataType\x12+\n\nentry_type\x18\x0c \x01(\x0e\x32\x17.kuksa.val.v1.EntryType\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x63omment\x18\x0e \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65precation\x18\x0f \x01(\tH\x03\x88\x01\x01\x12\x11\n\x04unit\x18\x10 \x01(\tH\x04\x88\x01\x01\x12\x39\n\x11value_restriction\x18\x11 \x01(\x0b\x32\x1e.kuksa.val.v1.ValueRestriction\x12*\n\x08\x61\x63tuator\x18\x14 \x01(\x0b\x32\x16.kuksa.val.v1.ActuatorH\x00\x12&\n\x06sensor\x18\x1e \x01(\x0b\x32\x14.kuksa.val.v1.SensorH\x00\x12,\n\tattribute\x18( \x01(\x0b\x32\x17.kuksa.val.v1.AttributeH\x00\x42\x10\n\x0e\x65ntry_specificB\x0e\n\x0c_descriptionB\n\n\x08_commentB\x0e\n\x0c_deprecationB\x07\n\x05_unit\"\n\n\x08\x41\x63tuator\"\x08\n\x06Sensor\"\x0b\n\tAttribute\"\xfe\x01\n\x10ValueRestriction\x12\x36\n\x06string\x18\x15 \x01(\x0b\x32$.kuksa.val.v1.ValueRestrictionStringH\x00\x12\x33\n\x06signed\x18\x16 \x01(\x0b\x32!.kuksa.val.v1.ValueRestrictionIntH\x00\x12\x36\n\x08unsigned\x18\x17 \x01(\x0b\x32\".kuksa.val.v1.ValueRestrictionUintH\x00\x12=\n\x0e\x66loating_point\x18\x18 \x01(\x0b\x32#.kuksa.val.v1.ValueRestrictionFloatH\x00\x42\x06\n\x04type\"a\n\x13ValueRestrictionInt\x12\x10\n\x03min\x18\x01 \x01(\x12H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x12H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x12\x42\x06\n\x04_minB\x06\n\x04_max\"b\n\x14ValueRestrictionUint\x12\x10\n\x03min\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x04\x42\x06\n\x04_minB\x06\n\x04_max\"c\n\x15ValueRestrictionFloat\x12\x10\n\x03min\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x01\x42\x06\n\x04_minB\x06\n\x04_max\"0\n\x16ValueRestrictionString\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\t\"6\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\"B\n\x0e\x44\x61taEntryError\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\"\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x13.kuksa.val.v1.Error\"\x1d\n\x0bStringArray\x12\x0e\n\x06values\x18\x01 \x03(\t\"\x1b\n\tBoolArray\x12\x0e\n\x06values\x18\x01 \x03(\x08\"\x1c\n\nInt32Array\x12\x0e\n\x06values\x18\x01 \x03(\x11\"\x1c\n\nInt64Array\x12\x0e\n\x06values\x18\x01 \x03(\x12\"\x1d\n\x0bUint32Array\x12\x0e\n\x06values\x18\x01 \x03(\r\"\x1d\n\x0bUint64Array\x12\x0e\n\x06values\x18\x01 \x03(\x04\"\x1c\n\nFloatArray\x12\x0e\n\x06values\x18\x01 \x03(\x02\"\x1d\n\x0b\x44oubleArray\x12\x0e\n\x06values\x18\x01 \x03(\x01*\xa9\x05\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x44\x41TA_TYPE_STRING\x10\x01\x12\x15\n\x11\x44\x41TA_TYPE_BOOLEAN\x10\x02\x12\x12\n\x0e\x44\x41TA_TYPE_INT8\x10\x03\x12\x13\n\x0f\x44\x41TA_TYPE_INT16\x10\x04\x12\x13\n\x0f\x44\x41TA_TYPE_INT32\x10\x05\x12\x13\n\x0f\x44\x41TA_TYPE_INT64\x10\x06\x12\x13\n\x0f\x44\x41TA_TYPE_UINT8\x10\x07\x12\x14\n\x10\x44\x41TA_TYPE_UINT16\x10\x08\x12\x14\n\x10\x44\x41TA_TYPE_UINT32\x10\t\x12\x14\n\x10\x44\x41TA_TYPE_UINT64\x10\n\x12\x13\n\x0f\x44\x41TA_TYPE_FLOAT\x10\x0b\x12\x14\n\x10\x44\x41TA_TYPE_DOUBLE\x10\x0c\x12\x17\n\x13\x44\x41TA_TYPE_TIMESTAMP\x10\r\x12\x1a\n\x16\x44\x41TA_TYPE_STRING_ARRAY\x10\x14\x12\x1b\n\x17\x44\x41TA_TYPE_BOOLEAN_ARRAY\x10\x15\x12\x18\n\x14\x44\x41TA_TYPE_INT8_ARRAY\x10\x16\x12\x19\n\x15\x44\x41TA_TYPE_INT16_ARRAY\x10\x17\x12\x19\n\x15\x44\x41TA_TYPE_INT32_ARRAY\x10\x18\x12\x19\n\x15\x44\x41TA_TYPE_INT64_ARRAY\x10\x19\x12\x19\n\x15\x44\x41TA_TYPE_UINT8_ARRAY\x10\x1a\x12\x1a\n\x16\x44\x41TA_TYPE_UINT16_ARRAY\x10\x1b\x12\x1a\n\x16\x44\x41TA_TYPE_UINT32_ARRAY\x10\x1c\x12\x1a\n\x16\x44\x41TA_TYPE_UINT64_ARRAY\x10\x1d\x12\x19\n\x15\x44\x41TA_TYPE_FLOAT_ARRAY\x10\x1e\x12\x1a\n\x16\x44\x41TA_TYPE_DOUBLE_ARRAY\x10\x1f\x12\x1d\n\x19\x44\x41TA_TYPE_TIMESTAMP_ARRAY\x10 *q\n\tEntryType\x12\x1a\n\x16\x45NTRY_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x45NTRY_TYPE_ATTRIBUTE\x10\x01\x12\x15\n\x11\x45NTRY_TYPE_SENSOR\x10\x02\x12\x17\n\x13\x45NTRY_TYPE_ACTUATOR\x10\x03*}\n\x04View\x12\x14\n\x10VIEW_UNSPECIFIED\x10\x00\x12\x16\n\x12VIEW_CURRENT_VALUE\x10\x01\x12\x15\n\x11VIEW_TARGET_VALUE\x10\x02\x12\x11\n\rVIEW_METADATA\x10\x03\x12\x0f\n\x0bVIEW_FIELDS\x10\n\x12\x0c\n\x08VIEW_ALL\x10\x14*\x9c\x03\n\x05\x46ield\x12\x15\n\x11\x46IELD_UNSPECIFIED\x10\x00\x12\x0e\n\nFIELD_PATH\x10\x01\x12\x0f\n\x0b\x46IELD_VALUE\x10\x02\x12\x19\n\x15\x46IELD_ACTUATOR_TARGET\x10\x03\x12\x12\n\x0e\x46IELD_METADATA\x10\n\x12\x1c\n\x18\x46IELD_METADATA_DATA_TYPE\x10\x0b\x12\x1e\n\x1a\x46IELD_METADATA_DESCRIPTION\x10\x0c\x12\x1d\n\x19\x46IELD_METADATA_ENTRY_TYPE\x10\r\x12\x1a\n\x16\x46IELD_METADATA_COMMENT\x10\x0e\x12\x1e\n\x1a\x46IELD_METADATA_DEPRECATION\x10\x0f\x12\x17\n\x13\x46IELD_METADATA_UNIT\x10\x10\x12$\n FIELD_METADATA_VALUE_RESTRICTION\x10\x11\x12\x1b\n\x17\x46IELD_METADATA_ACTUATOR\x10\x14\x12\x19\n\x15\x46IELD_METADATA_SENSOR\x10\x1e\x12\x1c\n\x18\x46IELD_METADATA_ATTRIBUTE\x10(B\x13Z\x11/kuksa_grpc_protob\x06proto3') - -_DATATYPE = DESCRIPTOR.enum_types_by_name['DataType'] -DataType = enum_type_wrapper.EnumTypeWrapper(_DATATYPE) -_ENTRYTYPE = DESCRIPTOR.enum_types_by_name['EntryType'] -EntryType = enum_type_wrapper.EnumTypeWrapper(_ENTRYTYPE) -_VIEW = DESCRIPTOR.enum_types_by_name['View'] -View = enum_type_wrapper.EnumTypeWrapper(_VIEW) -_FIELD = DESCRIPTOR.enum_types_by_name['Field'] -Field = enum_type_wrapper.EnumTypeWrapper(_FIELD) -DATA_TYPE_UNSPECIFIED = 0 -DATA_TYPE_STRING = 1 -DATA_TYPE_BOOLEAN = 2 -DATA_TYPE_INT8 = 3 -DATA_TYPE_INT16 = 4 -DATA_TYPE_INT32 = 5 -DATA_TYPE_INT64 = 6 -DATA_TYPE_UINT8 = 7 -DATA_TYPE_UINT16 = 8 -DATA_TYPE_UINT32 = 9 -DATA_TYPE_UINT64 = 10 -DATA_TYPE_FLOAT = 11 -DATA_TYPE_DOUBLE = 12 -DATA_TYPE_TIMESTAMP = 13 -DATA_TYPE_STRING_ARRAY = 20 -DATA_TYPE_BOOLEAN_ARRAY = 21 -DATA_TYPE_INT8_ARRAY = 22 -DATA_TYPE_INT16_ARRAY = 23 -DATA_TYPE_INT32_ARRAY = 24 -DATA_TYPE_INT64_ARRAY = 25 -DATA_TYPE_UINT8_ARRAY = 26 -DATA_TYPE_UINT16_ARRAY = 27 -DATA_TYPE_UINT32_ARRAY = 28 -DATA_TYPE_UINT64_ARRAY = 29 -DATA_TYPE_FLOAT_ARRAY = 30 -DATA_TYPE_DOUBLE_ARRAY = 31 -DATA_TYPE_TIMESTAMP_ARRAY = 32 -ENTRY_TYPE_UNSPECIFIED = 0 -ENTRY_TYPE_ATTRIBUTE = 1 -ENTRY_TYPE_SENSOR = 2 -ENTRY_TYPE_ACTUATOR = 3 -VIEW_UNSPECIFIED = 0 -VIEW_CURRENT_VALUE = 1 -VIEW_TARGET_VALUE = 2 -VIEW_METADATA = 3 -VIEW_FIELDS = 10 -VIEW_ALL = 20 -FIELD_UNSPECIFIED = 0 -FIELD_PATH = 1 -FIELD_VALUE = 2 -FIELD_ACTUATOR_TARGET = 3 -FIELD_METADATA = 10 -FIELD_METADATA_DATA_TYPE = 11 -FIELD_METADATA_DESCRIPTION = 12 -FIELD_METADATA_ENTRY_TYPE = 13 -FIELD_METADATA_COMMENT = 14 -FIELD_METADATA_DEPRECATION = 15 -FIELD_METADATA_UNIT = 16 -FIELD_METADATA_VALUE_RESTRICTION = 17 -FIELD_METADATA_ACTUATOR = 20 -FIELD_METADATA_SENSOR = 30 -FIELD_METADATA_ATTRIBUTE = 40 - - -_DATAENTRY = DESCRIPTOR.message_types_by_name['DataEntry'] -_DATAPOINT = DESCRIPTOR.message_types_by_name['Datapoint'] -_METADATA = DESCRIPTOR.message_types_by_name['Metadata'] -_ACTUATOR = DESCRIPTOR.message_types_by_name['Actuator'] -_SENSOR = DESCRIPTOR.message_types_by_name['Sensor'] -_ATTRIBUTE = DESCRIPTOR.message_types_by_name['Attribute'] -_VALUERESTRICTION = DESCRIPTOR.message_types_by_name['ValueRestriction'] -_VALUERESTRICTIONINT = DESCRIPTOR.message_types_by_name['ValueRestrictionInt'] -_VALUERESTRICTIONUINT = DESCRIPTOR.message_types_by_name['ValueRestrictionUint'] -_VALUERESTRICTIONFLOAT = DESCRIPTOR.message_types_by_name['ValueRestrictionFloat'] -_VALUERESTRICTIONSTRING = DESCRIPTOR.message_types_by_name['ValueRestrictionString'] -_ERROR = DESCRIPTOR.message_types_by_name['Error'] -_DATAENTRYERROR = DESCRIPTOR.message_types_by_name['DataEntryError'] -_STRINGARRAY = DESCRIPTOR.message_types_by_name['StringArray'] -_BOOLARRAY = DESCRIPTOR.message_types_by_name['BoolArray'] -_INT32ARRAY = DESCRIPTOR.message_types_by_name['Int32Array'] -_INT64ARRAY = DESCRIPTOR.message_types_by_name['Int64Array'] -_UINT32ARRAY = DESCRIPTOR.message_types_by_name['Uint32Array'] -_UINT64ARRAY = DESCRIPTOR.message_types_by_name['Uint64Array'] -_FLOATARRAY = DESCRIPTOR.message_types_by_name['FloatArray'] -_DOUBLEARRAY = DESCRIPTOR.message_types_by_name['DoubleArray'] -DataEntry = _reflection.GeneratedProtocolMessageType('DataEntry', (_message.Message,), { - 'DESCRIPTOR' : _DATAENTRY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.DataEntry) - }) -_sym_db.RegisterMessage(DataEntry) - -Datapoint = _reflection.GeneratedProtocolMessageType('Datapoint', (_message.Message,), { - 'DESCRIPTOR' : _DATAPOINT, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Datapoint) - }) -_sym_db.RegisterMessage(Datapoint) - -Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), { - 'DESCRIPTOR' : _METADATA, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Metadata) - }) -_sym_db.RegisterMessage(Metadata) - -Actuator = _reflection.GeneratedProtocolMessageType('Actuator', (_message.Message,), { - 'DESCRIPTOR' : _ACTUATOR, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Actuator) - }) -_sym_db.RegisterMessage(Actuator) - -Sensor = _reflection.GeneratedProtocolMessageType('Sensor', (_message.Message,), { - 'DESCRIPTOR' : _SENSOR, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Sensor) - }) -_sym_db.RegisterMessage(Sensor) - -Attribute = _reflection.GeneratedProtocolMessageType('Attribute', (_message.Message,), { - 'DESCRIPTOR' : _ATTRIBUTE, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Attribute) - }) -_sym_db.RegisterMessage(Attribute) - -ValueRestriction = _reflection.GeneratedProtocolMessageType('ValueRestriction', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTION, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestriction) - }) -_sym_db.RegisterMessage(ValueRestriction) - -ValueRestrictionInt = _reflection.GeneratedProtocolMessageType('ValueRestrictionInt', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTIONINT, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestrictionInt) - }) -_sym_db.RegisterMessage(ValueRestrictionInt) - -ValueRestrictionUint = _reflection.GeneratedProtocolMessageType('ValueRestrictionUint', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTIONUINT, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestrictionUint) - }) -_sym_db.RegisterMessage(ValueRestrictionUint) - -ValueRestrictionFloat = _reflection.GeneratedProtocolMessageType('ValueRestrictionFloat', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTIONFLOAT, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestrictionFloat) - }) -_sym_db.RegisterMessage(ValueRestrictionFloat) - -ValueRestrictionString = _reflection.GeneratedProtocolMessageType('ValueRestrictionString', (_message.Message,), { - 'DESCRIPTOR' : _VALUERESTRICTIONSTRING, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.ValueRestrictionString) - }) -_sym_db.RegisterMessage(ValueRestrictionString) - -Error = _reflection.GeneratedProtocolMessageType('Error', (_message.Message,), { - 'DESCRIPTOR' : _ERROR, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Error) - }) -_sym_db.RegisterMessage(Error) - -DataEntryError = _reflection.GeneratedProtocolMessageType('DataEntryError', (_message.Message,), { - 'DESCRIPTOR' : _DATAENTRYERROR, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.DataEntryError) - }) -_sym_db.RegisterMessage(DataEntryError) - -StringArray = _reflection.GeneratedProtocolMessageType('StringArray', (_message.Message,), { - 'DESCRIPTOR' : _STRINGARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.StringArray) - }) -_sym_db.RegisterMessage(StringArray) - -BoolArray = _reflection.GeneratedProtocolMessageType('BoolArray', (_message.Message,), { - 'DESCRIPTOR' : _BOOLARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.BoolArray) - }) -_sym_db.RegisterMessage(BoolArray) - -Int32Array = _reflection.GeneratedProtocolMessageType('Int32Array', (_message.Message,), { - 'DESCRIPTOR' : _INT32ARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Int32Array) - }) -_sym_db.RegisterMessage(Int32Array) - -Int64Array = _reflection.GeneratedProtocolMessageType('Int64Array', (_message.Message,), { - 'DESCRIPTOR' : _INT64ARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Int64Array) - }) -_sym_db.RegisterMessage(Int64Array) - -Uint32Array = _reflection.GeneratedProtocolMessageType('Uint32Array', (_message.Message,), { - 'DESCRIPTOR' : _UINT32ARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Uint32Array) - }) -_sym_db.RegisterMessage(Uint32Array) - -Uint64Array = _reflection.GeneratedProtocolMessageType('Uint64Array', (_message.Message,), { - 'DESCRIPTOR' : _UINT64ARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.Uint64Array) - }) -_sym_db.RegisterMessage(Uint64Array) - -FloatArray = _reflection.GeneratedProtocolMessageType('FloatArray', (_message.Message,), { - 'DESCRIPTOR' : _FLOATARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.FloatArray) - }) -_sym_db.RegisterMessage(FloatArray) - -DoubleArray = _reflection.GeneratedProtocolMessageType('DoubleArray', (_message.Message,), { - 'DESCRIPTOR' : _DOUBLEARRAY, - '__module__' : 'kuksa.val.v1.types_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.DoubleArray) - }) -_sym_db.RegisterMessage(DoubleArray) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18kuksa/val/v1/types.proto\x12\x0ckuksa.val.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x9d\x01\n\tDataEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.kuksa.val.v1.Datapoint\x12\x30\n\x0f\x61\x63tuator_target\x18\x03 \x01(\x0b\x32\x17.kuksa.val.v1.Datapoint\x12(\n\x08metadata\x18\n \x01(\x0b\x32\x16.kuksa.val.v1.Metadata\"\xdc\x04\n\tDatapoint\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x10\n\x06string\x18\x0b \x01(\tH\x00\x12\x0e\n\x04\x62ool\x18\x0c \x01(\x08H\x00\x12\x0f\n\x05int32\x18\r \x01(\x11H\x00\x12\x0f\n\x05int64\x18\x0e \x01(\x12H\x00\x12\x10\n\x06uint32\x18\x0f \x01(\rH\x00\x12\x10\n\x06uint64\x18\x10 \x01(\x04H\x00\x12\x0f\n\x05\x66loat\x18\x11 \x01(\x02H\x00\x12\x10\n\x06\x64ouble\x18\x12 \x01(\x01H\x00\x12\x31\n\x0cstring_array\x18\x15 \x01(\x0b\x32\x19.kuksa.val.v1.StringArrayH\x00\x12-\n\nbool_array\x18\x16 \x01(\x0b\x32\x17.kuksa.val.v1.BoolArrayH\x00\x12/\n\x0bint32_array\x18\x17 \x01(\x0b\x32\x18.kuksa.val.v1.Int32ArrayH\x00\x12/\n\x0bint64_array\x18\x18 \x01(\x0b\x32\x18.kuksa.val.v1.Int64ArrayH\x00\x12\x31\n\x0cuint32_array\x18\x19 \x01(\x0b\x32\x19.kuksa.val.v1.Uint32ArrayH\x00\x12\x31\n\x0cuint64_array\x18\x1a \x01(\x0b\x32\x19.kuksa.val.v1.Uint64ArrayH\x00\x12/\n\x0b\x66loat_array\x18\x1b \x01(\x0b\x32\x18.kuksa.val.v1.FloatArrayH\x00\x12\x31\n\x0c\x64ouble_array\x18\x1c \x01(\x0b\x32\x19.kuksa.val.v1.DoubleArrayH\x00\x42\x07\n\x05value\"\xc3\x03\n\x08Metadata\x12)\n\tdata_type\x18\x0b \x01(\x0e\x32\x16.kuksa.val.v1.DataType\x12+\n\nentry_type\x18\x0c \x01(\x0e\x32\x17.kuksa.val.v1.EntryType\x12\x18\n\x0b\x64\x65scription\x18\r \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07\x63omment\x18\x0e \x01(\tH\x02\x88\x01\x01\x12\x18\n\x0b\x64\x65precation\x18\x0f \x01(\tH\x03\x88\x01\x01\x12\x11\n\x04unit\x18\x10 \x01(\tH\x04\x88\x01\x01\x12\x39\n\x11value_restriction\x18\x11 \x01(\x0b\x32\x1e.kuksa.val.v1.ValueRestriction\x12*\n\x08\x61\x63tuator\x18\x14 \x01(\x0b\x32\x16.kuksa.val.v1.ActuatorH\x00\x12&\n\x06sensor\x18\x1e \x01(\x0b\x32\x14.kuksa.val.v1.SensorH\x00\x12,\n\tattribute\x18( \x01(\x0b\x32\x17.kuksa.val.v1.AttributeH\x00\x42\x10\n\x0e\x65ntry_specificB\x0e\n\x0c_descriptionB\n\n\x08_commentB\x0e\n\x0c_deprecationB\x07\n\x05_unit\"\n\n\x08\x41\x63tuator\"\x08\n\x06Sensor\"\x0b\n\tAttribute\"\xfe\x01\n\x10ValueRestriction\x12\x36\n\x06string\x18\x15 \x01(\x0b\x32$.kuksa.val.v1.ValueRestrictionStringH\x00\x12\x33\n\x06signed\x18\x16 \x01(\x0b\x32!.kuksa.val.v1.ValueRestrictionIntH\x00\x12\x36\n\x08unsigned\x18\x17 \x01(\x0b\x32\".kuksa.val.v1.ValueRestrictionUintH\x00\x12=\n\x0e\x66loating_point\x18\x18 \x01(\x0b\x32#.kuksa.val.v1.ValueRestrictionFloatH\x00\x42\x06\n\x04type\"a\n\x13ValueRestrictionInt\x12\x10\n\x03min\x18\x01 \x01(\x12H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x12H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x12\x42\x06\n\x04_minB\x06\n\x04_max\"b\n\x14ValueRestrictionUint\x12\x10\n\x03min\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x04\x42\x06\n\x04_minB\x06\n\x04_max\"c\n\x15ValueRestrictionFloat\x12\x10\n\x03min\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\x01\x42\x06\n\x04_minB\x06\n\x04_max\"0\n\x16ValueRestrictionString\x12\x16\n\x0e\x61llowed_values\x18\x03 \x03(\t\"6\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x0f\n\x07message\x18\x03 \x01(\t\"B\n\x0e\x44\x61taEntryError\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\"\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x13.kuksa.val.v1.Error\"\x1d\n\x0bStringArray\x12\x0e\n\x06values\x18\x01 \x03(\t\"\x1b\n\tBoolArray\x12\x0e\n\x06values\x18\x01 \x03(\x08\"\x1c\n\nInt32Array\x12\x0e\n\x06values\x18\x01 \x03(\x11\"\x1c\n\nInt64Array\x12\x0e\n\x06values\x18\x01 \x03(\x12\"\x1d\n\x0bUint32Array\x12\x0e\n\x06values\x18\x01 \x03(\r\"\x1d\n\x0bUint64Array\x12\x0e\n\x06values\x18\x01 \x03(\x04\"\x1c\n\nFloatArray\x12\x0e\n\x06values\x18\x01 \x03(\x02\"\x1d\n\x0b\x44oubleArray\x12\x0e\n\x06values\x18\x01 \x03(\x01*\xa9\x05\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x44\x41TA_TYPE_STRING\x10\x01\x12\x15\n\x11\x44\x41TA_TYPE_BOOLEAN\x10\x02\x12\x12\n\x0e\x44\x41TA_TYPE_INT8\x10\x03\x12\x13\n\x0f\x44\x41TA_TYPE_INT16\x10\x04\x12\x13\n\x0f\x44\x41TA_TYPE_INT32\x10\x05\x12\x13\n\x0f\x44\x41TA_TYPE_INT64\x10\x06\x12\x13\n\x0f\x44\x41TA_TYPE_UINT8\x10\x07\x12\x14\n\x10\x44\x41TA_TYPE_UINT16\x10\x08\x12\x14\n\x10\x44\x41TA_TYPE_UINT32\x10\t\x12\x14\n\x10\x44\x41TA_TYPE_UINT64\x10\n\x12\x13\n\x0f\x44\x41TA_TYPE_FLOAT\x10\x0b\x12\x14\n\x10\x44\x41TA_TYPE_DOUBLE\x10\x0c\x12\x17\n\x13\x44\x41TA_TYPE_TIMESTAMP\x10\r\x12\x1a\n\x16\x44\x41TA_TYPE_STRING_ARRAY\x10\x14\x12\x1b\n\x17\x44\x41TA_TYPE_BOOLEAN_ARRAY\x10\x15\x12\x18\n\x14\x44\x41TA_TYPE_INT8_ARRAY\x10\x16\x12\x19\n\x15\x44\x41TA_TYPE_INT16_ARRAY\x10\x17\x12\x19\n\x15\x44\x41TA_TYPE_INT32_ARRAY\x10\x18\x12\x19\n\x15\x44\x41TA_TYPE_INT64_ARRAY\x10\x19\x12\x19\n\x15\x44\x41TA_TYPE_UINT8_ARRAY\x10\x1a\x12\x1a\n\x16\x44\x41TA_TYPE_UINT16_ARRAY\x10\x1b\x12\x1a\n\x16\x44\x41TA_TYPE_UINT32_ARRAY\x10\x1c\x12\x1a\n\x16\x44\x41TA_TYPE_UINT64_ARRAY\x10\x1d\x12\x19\n\x15\x44\x41TA_TYPE_FLOAT_ARRAY\x10\x1e\x12\x1a\n\x16\x44\x41TA_TYPE_DOUBLE_ARRAY\x10\x1f\x12\x1d\n\x19\x44\x41TA_TYPE_TIMESTAMP_ARRAY\x10 *q\n\tEntryType\x12\x1a\n\x16\x45NTRY_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x45NTRY_TYPE_ATTRIBUTE\x10\x01\x12\x15\n\x11\x45NTRY_TYPE_SENSOR\x10\x02\x12\x17\n\x13\x45NTRY_TYPE_ACTUATOR\x10\x03*}\n\x04View\x12\x14\n\x10VIEW_UNSPECIFIED\x10\x00\x12\x16\n\x12VIEW_CURRENT_VALUE\x10\x01\x12\x15\n\x11VIEW_TARGET_VALUE\x10\x02\x12\x11\n\rVIEW_METADATA\x10\x03\x12\x0f\n\x0bVIEW_FIELDS\x10\n\x12\x0c\n\x08VIEW_ALL\x10\x14*\x9c\x03\n\x05\x46ield\x12\x15\n\x11\x46IELD_UNSPECIFIED\x10\x00\x12\x0e\n\nFIELD_PATH\x10\x01\x12\x0f\n\x0b\x46IELD_VALUE\x10\x02\x12\x19\n\x15\x46IELD_ACTUATOR_TARGET\x10\x03\x12\x12\n\x0e\x46IELD_METADATA\x10\n\x12\x1c\n\x18\x46IELD_METADATA_DATA_TYPE\x10\x0b\x12\x1e\n\x1a\x46IELD_METADATA_DESCRIPTION\x10\x0c\x12\x1d\n\x19\x46IELD_METADATA_ENTRY_TYPE\x10\r\x12\x1a\n\x16\x46IELD_METADATA_COMMENT\x10\x0e\x12\x1e\n\x1a\x46IELD_METADATA_DEPRECATION\x10\x0f\x12\x17\n\x13\x46IELD_METADATA_UNIT\x10\x10\x12$\n FIELD_METADATA_VALUE_RESTRICTION\x10\x11\x12\x1b\n\x17\x46IELD_METADATA_ACTUATOR\x10\x14\x12\x19\n\x15\x46IELD_METADATA_SENSOR\x10\x1e\x12\x1c\n\x18\x46IELD_METADATA_ATTRIBUTE\x10(B\x0eZ\x0ckuksa/val/v1b\x06proto3') +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'kuksa.val.v1.types_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'Z\021/kuksa_grpc_proto' - _DATATYPE._serialized_start=2306 - _DATATYPE._serialized_end=2987 - _ENTRYTYPE._serialized_start=2989 - _ENTRYTYPE._serialized_end=3102 - _VIEW._serialized_start=3104 - _VIEW._serialized_end=3229 - _FIELD._serialized_start=3232 - _FIELD._serialized_end=3644 - _DATAENTRY._serialized_start=76 - _DATAENTRY._serialized_end=233 - _DATAPOINT._serialized_start=236 - _DATAPOINT._serialized_end=840 - _METADATA._serialized_start=843 - _METADATA._serialized_end=1294 - _ACTUATOR._serialized_start=1296 - _ACTUATOR._serialized_end=1306 - _SENSOR._serialized_start=1308 - _SENSOR._serialized_end=1316 - _ATTRIBUTE._serialized_start=1318 - _ATTRIBUTE._serialized_end=1329 - _VALUERESTRICTION._serialized_start=1332 - _VALUERESTRICTION._serialized_end=1586 - _VALUERESTRICTIONINT._serialized_start=1588 - _VALUERESTRICTIONINT._serialized_end=1685 - _VALUERESTRICTIONUINT._serialized_start=1687 - _VALUERESTRICTIONUINT._serialized_end=1785 - _VALUERESTRICTIONFLOAT._serialized_start=1787 - _VALUERESTRICTIONFLOAT._serialized_end=1886 - _VALUERESTRICTIONSTRING._serialized_start=1888 - _VALUERESTRICTIONSTRING._serialized_end=1936 - _ERROR._serialized_start=1938 - _ERROR._serialized_end=1992 - _DATAENTRYERROR._serialized_start=1994 - _DATAENTRYERROR._serialized_end=2060 - _STRINGARRAY._serialized_start=2062 - _STRINGARRAY._serialized_end=2091 - _BOOLARRAY._serialized_start=2093 - _BOOLARRAY._serialized_end=2120 - _INT32ARRAY._serialized_start=2122 - _INT32ARRAY._serialized_end=2150 - _INT64ARRAY._serialized_start=2152 - _INT64ARRAY._serialized_end=2180 - _UINT32ARRAY._serialized_start=2182 - _UINT32ARRAY._serialized_end=2211 - _UINT64ARRAY._serialized_start=2213 - _UINT64ARRAY._serialized_end=2242 - _FLOATARRAY._serialized_start=2244 - _FLOATARRAY._serialized_end=2272 - _DOUBLEARRAY._serialized_start=2274 - _DOUBLEARRAY._serialized_end=2303 + DESCRIPTOR._serialized_options = b'Z\014kuksa/val/v1' + _globals['_DATATYPE']._serialized_start=2306 + _globals['_DATATYPE']._serialized_end=2987 + _globals['_ENTRYTYPE']._serialized_start=2989 + _globals['_ENTRYTYPE']._serialized_end=3102 + _globals['_VIEW']._serialized_start=3104 + _globals['_VIEW']._serialized_end=3229 + _globals['_FIELD']._serialized_start=3232 + _globals['_FIELD']._serialized_end=3644 + _globals['_DATAENTRY']._serialized_start=76 + _globals['_DATAENTRY']._serialized_end=233 + _globals['_DATAPOINT']._serialized_start=236 + _globals['_DATAPOINT']._serialized_end=840 + _globals['_METADATA']._serialized_start=843 + _globals['_METADATA']._serialized_end=1294 + _globals['_ACTUATOR']._serialized_start=1296 + _globals['_ACTUATOR']._serialized_end=1306 + _globals['_SENSOR']._serialized_start=1308 + _globals['_SENSOR']._serialized_end=1316 + _globals['_ATTRIBUTE']._serialized_start=1318 + _globals['_ATTRIBUTE']._serialized_end=1329 + _globals['_VALUERESTRICTION']._serialized_start=1332 + _globals['_VALUERESTRICTION']._serialized_end=1586 + _globals['_VALUERESTRICTIONINT']._serialized_start=1588 + _globals['_VALUERESTRICTIONINT']._serialized_end=1685 + _globals['_VALUERESTRICTIONUINT']._serialized_start=1687 + _globals['_VALUERESTRICTIONUINT']._serialized_end=1785 + _globals['_VALUERESTRICTIONFLOAT']._serialized_start=1787 + _globals['_VALUERESTRICTIONFLOAT']._serialized_end=1886 + _globals['_VALUERESTRICTIONSTRING']._serialized_start=1888 + _globals['_VALUERESTRICTIONSTRING']._serialized_end=1936 + _globals['_ERROR']._serialized_start=1938 + _globals['_ERROR']._serialized_end=1992 + _globals['_DATAENTRYERROR']._serialized_start=1994 + _globals['_DATAENTRYERROR']._serialized_end=2060 + _globals['_STRINGARRAY']._serialized_start=2062 + _globals['_STRINGARRAY']._serialized_end=2091 + _globals['_BOOLARRAY']._serialized_start=2093 + _globals['_BOOLARRAY']._serialized_end=2120 + _globals['_INT32ARRAY']._serialized_start=2122 + _globals['_INT32ARRAY']._serialized_end=2150 + _globals['_INT64ARRAY']._serialized_start=2152 + _globals['_INT64ARRAY']._serialized_end=2180 + _globals['_UINT32ARRAY']._serialized_start=2182 + _globals['_UINT32ARRAY']._serialized_end=2211 + _globals['_UINT64ARRAY']._serialized_start=2213 + _globals['_UINT64ARRAY']._serialized_end=2242 + _globals['_FLOATARRAY']._serialized_start=2244 + _globals['_FLOATARRAY']._serialized_end=2272 + _globals['_DOUBLEARRAY']._serialized_start=2274 + _globals['_DOUBLEARRAY']._serialized_end=2303 # @@protoc_insertion_point(module_scope) diff --git a/integration_test/gen_proto/kuksa/val/v1/types_pb2.pyi b/hvac_service/kuksa/val/v1/types_pb2.pyi similarity index 100% rename from integration_test/gen_proto/kuksa/val/v1/types_pb2.pyi rename to hvac_service/kuksa/val/v1/types_pb2.pyi diff --git a/hvac_service/kuksa/val/v1/val_pb2.py b/hvac_service/kuksa/val/v1/val_pb2.py index 6f2f535..e8cc022 100644 --- a/hvac_service/kuksa/val/v1/val_pb2.py +++ b/hvac_service/kuksa/val/v1/val_pb2.py @@ -4,9 +4,8 @@ """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,125 +14,36 @@ from kuksa.val.v1 import types_pb2 as kuksa_dot_val_dot_v1_dot_types__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16kuksa/val/v1/val.proto\x12\x0ckuksa.val.v1\x1a\x18kuksa/val/v1/types.proto\"c\n\x0c\x45ntryRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12 \n\x04view\x18\x02 \x01(\x0e\x32\x12.kuksa.val.v1.View\x12#\n\x06\x66ields\x18\x03 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"9\n\nGetRequest\x12+\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1a.kuksa.val.v1.EntryRequest\"\x89\x01\n\x0bGetResponse\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.kuksa.val.v1.DataEntry\x12,\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x1c.kuksa.val.v1.DataEntryError\x12\"\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x13.kuksa.val.v1.Error\"Z\n\x0b\x45ntryUpdate\x12&\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x17.kuksa.val.v1.DataEntry\x12#\n\x06\x66ields\x18\x02 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"8\n\nSetRequest\x12*\n\x07updates\x18\x01 \x03(\x0b\x32\x19.kuksa.val.v1.EntryUpdate\"_\n\x0bSetResponse\x12\"\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x13.kuksa.val.v1.Error\x12,\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x1c.kuksa.val.v1.DataEntryError\"e\n\x0eSubscribeEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12 \n\x04view\x18\x02 \x01(\x0e\x32\x12.kuksa.val.v1.View\x12#\n\x06\x66ields\x18\x03 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"A\n\x10SubscribeRequest\x12-\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1c.kuksa.val.v1.SubscribeEntry\"?\n\x11SubscribeResponse\x12*\n\x07updates\x18\x01 \x03(\x0b\x32\x19.kuksa.val.v1.EntryUpdate\"\x16\n\x14GetServerInfoRequest\"6\n\x15GetServerInfoResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t2\xa7\x02\n\x03VAL\x12:\n\x03Get\x12\x18.kuksa.val.v1.GetRequest\x1a\x19.kuksa.val.v1.GetResponse\x12:\n\x03Set\x12\x18.kuksa.val.v1.SetRequest\x1a\x19.kuksa.val.v1.SetResponse\x12N\n\tSubscribe\x12\x1e.kuksa.val.v1.SubscribeRequest\x1a\x1f.kuksa.val.v1.SubscribeResponse0\x01\x12X\n\rGetServerInfo\x12\".kuksa.val.v1.GetServerInfoRequest\x1a#.kuksa.val.v1.GetServerInfoResponseB\x13Z\x11/kuksa_grpc_protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16kuksa/val/v1/val.proto\x12\x0ckuksa.val.v1\x1a\x18kuksa/val/v1/types.proto\"c\n\x0c\x45ntryRequest\x12\x0c\n\x04path\x18\x01 \x01(\t\x12 \n\x04view\x18\x02 \x01(\x0e\x32\x12.kuksa.val.v1.View\x12#\n\x06\x66ields\x18\x03 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"9\n\nGetRequest\x12+\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1a.kuksa.val.v1.EntryRequest\"\x89\x01\n\x0bGetResponse\x12(\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x17.kuksa.val.v1.DataEntry\x12,\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x1c.kuksa.val.v1.DataEntryError\x12\"\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x13.kuksa.val.v1.Error\"Z\n\x0b\x45ntryUpdate\x12&\n\x05\x65ntry\x18\x01 \x01(\x0b\x32\x17.kuksa.val.v1.DataEntry\x12#\n\x06\x66ields\x18\x02 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"8\n\nSetRequest\x12*\n\x07updates\x18\x01 \x03(\x0b\x32\x19.kuksa.val.v1.EntryUpdate\"_\n\x0bSetResponse\x12\"\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x13.kuksa.val.v1.Error\x12,\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x1c.kuksa.val.v1.DataEntryError\"e\n\x0eSubscribeEntry\x12\x0c\n\x04path\x18\x01 \x01(\t\x12 \n\x04view\x18\x02 \x01(\x0e\x32\x12.kuksa.val.v1.View\x12#\n\x06\x66ields\x18\x03 \x03(\x0e\x32\x13.kuksa.val.v1.Field\"A\n\x10SubscribeRequest\x12-\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1c.kuksa.val.v1.SubscribeEntry\"?\n\x11SubscribeResponse\x12*\n\x07updates\x18\x01 \x03(\x0b\x32\x19.kuksa.val.v1.EntryUpdate\"\x16\n\x14GetServerInfoRequest\"6\n\x15GetServerInfoResponse\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t2\xa7\x02\n\x03VAL\x12:\n\x03Get\x12\x18.kuksa.val.v1.GetRequest\x1a\x19.kuksa.val.v1.GetResponse\x12:\n\x03Set\x12\x18.kuksa.val.v1.SetRequest\x1a\x19.kuksa.val.v1.SetResponse\x12N\n\tSubscribe\x12\x1e.kuksa.val.v1.SubscribeRequest\x1a\x1f.kuksa.val.v1.SubscribeResponse0\x01\x12X\n\rGetServerInfo\x12\".kuksa.val.v1.GetServerInfoRequest\x1a#.kuksa.val.v1.GetServerInfoResponseB\x0eZ\x0ckuksa/val/v1b\x06proto3') - - -_ENTRYREQUEST = DESCRIPTOR.message_types_by_name['EntryRequest'] -_GETREQUEST = DESCRIPTOR.message_types_by_name['GetRequest'] -_GETRESPONSE = DESCRIPTOR.message_types_by_name['GetResponse'] -_ENTRYUPDATE = DESCRIPTOR.message_types_by_name['EntryUpdate'] -_SETREQUEST = DESCRIPTOR.message_types_by_name['SetRequest'] -_SETRESPONSE = DESCRIPTOR.message_types_by_name['SetResponse'] -_SUBSCRIBEENTRY = DESCRIPTOR.message_types_by_name['SubscribeEntry'] -_SUBSCRIBEREQUEST = DESCRIPTOR.message_types_by_name['SubscribeRequest'] -_SUBSCRIBERESPONSE = DESCRIPTOR.message_types_by_name['SubscribeResponse'] -_GETSERVERINFOREQUEST = DESCRIPTOR.message_types_by_name['GetServerInfoRequest'] -_GETSERVERINFORESPONSE = DESCRIPTOR.message_types_by_name['GetServerInfoResponse'] -EntryRequest = _reflection.GeneratedProtocolMessageType('EntryRequest', (_message.Message,), { - 'DESCRIPTOR' : _ENTRYREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.EntryRequest) - }) -_sym_db.RegisterMessage(EntryRequest) - -GetRequest = _reflection.GeneratedProtocolMessageType('GetRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.GetRequest) - }) -_sym_db.RegisterMessage(GetRequest) - -GetResponse = _reflection.GeneratedProtocolMessageType('GetResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETRESPONSE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.GetResponse) - }) -_sym_db.RegisterMessage(GetResponse) - -EntryUpdate = _reflection.GeneratedProtocolMessageType('EntryUpdate', (_message.Message,), { - 'DESCRIPTOR' : _ENTRYUPDATE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.EntryUpdate) - }) -_sym_db.RegisterMessage(EntryUpdate) - -SetRequest = _reflection.GeneratedProtocolMessageType('SetRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SetRequest) - }) -_sym_db.RegisterMessage(SetRequest) - -SetResponse = _reflection.GeneratedProtocolMessageType('SetResponse', (_message.Message,), { - 'DESCRIPTOR' : _SETRESPONSE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SetResponse) - }) -_sym_db.RegisterMessage(SetResponse) - -SubscribeEntry = _reflection.GeneratedProtocolMessageType('SubscribeEntry', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEENTRY, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SubscribeEntry) - }) -_sym_db.RegisterMessage(SubscribeEntry) - -SubscribeRequest = _reflection.GeneratedProtocolMessageType('SubscribeRequest', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SubscribeRequest) - }) -_sym_db.RegisterMessage(SubscribeRequest) - -SubscribeResponse = _reflection.GeneratedProtocolMessageType('SubscribeResponse', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBERESPONSE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.SubscribeResponse) - }) -_sym_db.RegisterMessage(SubscribeResponse) - -GetServerInfoRequest = _reflection.GeneratedProtocolMessageType('GetServerInfoRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETSERVERINFOREQUEST, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.GetServerInfoRequest) - }) -_sym_db.RegisterMessage(GetServerInfoRequest) - -GetServerInfoResponse = _reflection.GeneratedProtocolMessageType('GetServerInfoResponse', (_message.Message,), { - 'DESCRIPTOR' : _GETSERVERINFORESPONSE, - '__module__' : 'kuksa.val.v1.val_pb2' - # @@protoc_insertion_point(class_scope:kuksa.val.v1.GetServerInfoResponse) - }) -_sym_db.RegisterMessage(GetServerInfoResponse) - -_VAL = DESCRIPTOR.services_by_name['VAL'] +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'kuksa.val.v1.val_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'Z\021/kuksa_grpc_proto' - _ENTRYREQUEST._serialized_start=66 - _ENTRYREQUEST._serialized_end=165 - _GETREQUEST._serialized_start=167 - _GETREQUEST._serialized_end=224 - _GETRESPONSE._serialized_start=227 - _GETRESPONSE._serialized_end=364 - _ENTRYUPDATE._serialized_start=366 - _ENTRYUPDATE._serialized_end=456 - _SETREQUEST._serialized_start=458 - _SETREQUEST._serialized_end=514 - _SETRESPONSE._serialized_start=516 - _SETRESPONSE._serialized_end=611 - _SUBSCRIBEENTRY._serialized_start=613 - _SUBSCRIBEENTRY._serialized_end=714 - _SUBSCRIBEREQUEST._serialized_start=716 - _SUBSCRIBEREQUEST._serialized_end=781 - _SUBSCRIBERESPONSE._serialized_start=783 - _SUBSCRIBERESPONSE._serialized_end=846 - _GETSERVERINFOREQUEST._serialized_start=848 - _GETSERVERINFOREQUEST._serialized_end=870 - _GETSERVERINFORESPONSE._serialized_start=872 - _GETSERVERINFORESPONSE._serialized_end=926 - _VAL._serialized_start=929 - _VAL._serialized_end=1224 + DESCRIPTOR._serialized_options = b'Z\014kuksa/val/v1' + _globals['_ENTRYREQUEST']._serialized_start=66 + _globals['_ENTRYREQUEST']._serialized_end=165 + _globals['_GETREQUEST']._serialized_start=167 + _globals['_GETREQUEST']._serialized_end=224 + _globals['_GETRESPONSE']._serialized_start=227 + _globals['_GETRESPONSE']._serialized_end=364 + _globals['_ENTRYUPDATE']._serialized_start=366 + _globals['_ENTRYUPDATE']._serialized_end=456 + _globals['_SETREQUEST']._serialized_start=458 + _globals['_SETREQUEST']._serialized_end=514 + _globals['_SETRESPONSE']._serialized_start=516 + _globals['_SETRESPONSE']._serialized_end=611 + _globals['_SUBSCRIBEENTRY']._serialized_start=613 + _globals['_SUBSCRIBEENTRY']._serialized_end=714 + _globals['_SUBSCRIBEREQUEST']._serialized_start=716 + _globals['_SUBSCRIBEREQUEST']._serialized_end=781 + _globals['_SUBSCRIBERESPONSE']._serialized_start=783 + _globals['_SUBSCRIBERESPONSE']._serialized_end=846 + _globals['_GETSERVERINFOREQUEST']._serialized_start=848 + _globals['_GETSERVERINFOREQUEST']._serialized_end=870 + _globals['_GETSERVERINFORESPONSE']._serialized_start=872 + _globals['_GETSERVERINFORESPONSE']._serialized_end=926 + _globals['_VAL']._serialized_start=929 + _globals['_VAL']._serialized_end=1224 # @@protoc_insertion_point(module_scope) diff --git a/integration_test/gen_proto/kuksa/val/v1/val_pb2.pyi b/hvac_service/kuksa/val/v1/val_pb2.pyi similarity index 100% rename from integration_test/gen_proto/kuksa/val/v1/val_pb2.pyi rename to hvac_service/kuksa/val/v1/val_pb2.pyi diff --git a/hvac_service/sdv/databroker/v1/broker_pb2.py b/hvac_service/sdv/databroker/v1/broker_pb2.py index debd695..117a3e1 100644 --- a/hvac_service/sdv/databroker/v1/broker_pb2.py +++ b/hvac_service/sdv/databroker/v1/broker_pb2.py @@ -4,9 +4,8 @@ """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,100 +14,45 @@ from sdv.databroker.v1 import types_pb2 as sdv_dot_databroker_dot_v1_dot_types__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1esdv/databroker/v1/broker.proto\x12\x11sdv.databroker.v1\x1a\x1dsdv/databroker/v1/types.proto\"*\n\x14GetDatapointsRequest\x12\x12\n\ndatapoints\x18\x01 \x03(\t\"\xb0\x01\n\x12GetDatapointsReply\x12I\n\ndatapoints\x18\x01 \x03(\x0b\x32\x35.sdv.databroker.v1.GetDatapointsReply.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"!\n\x10SubscribeRequest\x12\r\n\x05query\x18\x02 \x01(\t\"\x9c\x01\n\x0eSubscribeReply\x12=\n\x06\x66ields\x18\x01 \x03(\x0b\x32-.sdv.databroker.v1.SubscribeReply.FieldsEntry\x1aK\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"#\n\x12GetMetadataRequest\x12\r\n\x05names\x18\x01 \x03(\t\"=\n\x10GetMetadataReply\x12)\n\x04list\x18\x01 \x03(\x0b\x32\x1b.sdv.databroker.v1.Metadata2\x9b\x02\n\x06\x42roker\x12_\n\rGetDatapoints\x12\'.sdv.databroker.v1.GetDatapointsRequest\x1a%.sdv.databroker.v1.GetDatapointsReply\x12U\n\tSubscribe\x12#.sdv.databroker.v1.SubscribeRequest\x1a!.sdv.databroker.v1.SubscribeReply0\x01\x12Y\n\x0bGetMetadata\x12%.sdv.databroker.v1.GetMetadataRequest\x1a#.sdv.databroker.v1.GetMetadataReplyb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1esdv/databroker/v1/broker.proto\x12\x11sdv.databroker.v1\x1a\x1dsdv/databroker/v1/types.proto\"*\n\x14GetDatapointsRequest\x12\x12\n\ndatapoints\x18\x01 \x03(\t\"\xb0\x01\n\x12GetDatapointsReply\x12I\n\ndatapoints\x18\x01 \x03(\x0b\x32\x35.sdv.databroker.v1.GetDatapointsReply.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xb4\x01\n\x14SetDatapointsRequest\x12K\n\ndatapoints\x18\x01 \x03(\x0b\x32\x37.sdv.databroker.v1.SetDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xa9\x01\n\x12SetDatapointsReply\x12\x41\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x31.sdv.databroker.v1.SetDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"!\n\x10SubscribeRequest\x12\r\n\x05query\x18\x02 \x01(\t\"\x9c\x01\n\x0eSubscribeReply\x12=\n\x06\x66ields\x18\x01 \x03(\x0b\x32-.sdv.databroker.v1.SubscribeReply.FieldsEntry\x1aK\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"#\n\x12GetMetadataRequest\x12\r\n\x05names\x18\x01 \x03(\t\"=\n\x10GetMetadataReply\x12)\n\x04list\x18\x01 \x03(\x0b\x32\x1b.sdv.databroker.v1.Metadata2\xfc\x02\n\x06\x42roker\x12_\n\rGetDatapoints\x12\'.sdv.databroker.v1.GetDatapointsRequest\x1a%.sdv.databroker.v1.GetDatapointsReply\x12_\n\rSetDatapoints\x12\'.sdv.databroker.v1.SetDatapointsRequest\x1a%.sdv.databroker.v1.SetDatapointsReply\x12U\n\tSubscribe\x12#.sdv.databroker.v1.SubscribeRequest\x1a!.sdv.databroker.v1.SubscribeReply0\x01\x12Y\n\x0bGetMetadata\x12%.sdv.databroker.v1.GetMetadataRequest\x1a#.sdv.databroker.v1.GetMetadataReplyb\x06proto3') - - -_GETDATAPOINTSREQUEST = DESCRIPTOR.message_types_by_name['GetDatapointsRequest'] -_GETDATAPOINTSREPLY = DESCRIPTOR.message_types_by_name['GetDatapointsReply'] -_GETDATAPOINTSREPLY_DATAPOINTSENTRY = _GETDATAPOINTSREPLY.nested_types_by_name['DatapointsEntry'] -_SUBSCRIBEREQUEST = DESCRIPTOR.message_types_by_name['SubscribeRequest'] -_SUBSCRIBEREPLY = DESCRIPTOR.message_types_by_name['SubscribeReply'] -_SUBSCRIBEREPLY_FIELDSENTRY = _SUBSCRIBEREPLY.nested_types_by_name['FieldsEntry'] -_GETMETADATAREQUEST = DESCRIPTOR.message_types_by_name['GetMetadataRequest'] -_GETMETADATAREPLY = DESCRIPTOR.message_types_by_name['GetMetadataReply'] -GetDatapointsRequest = _reflection.GeneratedProtocolMessageType('GetDatapointsRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETDATAPOINTSREQUEST, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetDatapointsRequest) - }) -_sym_db.RegisterMessage(GetDatapointsRequest) - -GetDatapointsReply = _reflection.GeneratedProtocolMessageType('GetDatapointsReply', (_message.Message,), { - - 'DatapointsEntry' : _reflection.GeneratedProtocolMessageType('DatapointsEntry', (_message.Message,), { - 'DESCRIPTOR' : _GETDATAPOINTSREPLY_DATAPOINTSENTRY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetDatapointsReply.DatapointsEntry) - }) - , - 'DESCRIPTOR' : _GETDATAPOINTSREPLY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetDatapointsReply) - }) -_sym_db.RegisterMessage(GetDatapointsReply) -_sym_db.RegisterMessage(GetDatapointsReply.DatapointsEntry) - -SubscribeRequest = _reflection.GeneratedProtocolMessageType('SubscribeRequest', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEREQUEST, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeRequest) - }) -_sym_db.RegisterMessage(SubscribeRequest) - -SubscribeReply = _reflection.GeneratedProtocolMessageType('SubscribeReply', (_message.Message,), { - - 'FieldsEntry' : _reflection.GeneratedProtocolMessageType('FieldsEntry', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEREPLY_FIELDSENTRY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeReply.FieldsEntry) - }) - , - 'DESCRIPTOR' : _SUBSCRIBEREPLY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeReply) - }) -_sym_db.RegisterMessage(SubscribeReply) -_sym_db.RegisterMessage(SubscribeReply.FieldsEntry) - -GetMetadataRequest = _reflection.GeneratedProtocolMessageType('GetMetadataRequest', (_message.Message,), { - 'DESCRIPTOR' : _GETMETADATAREQUEST, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetMetadataRequest) - }) -_sym_db.RegisterMessage(GetMetadataRequest) - -GetMetadataReply = _reflection.GeneratedProtocolMessageType('GetMetadataReply', (_message.Message,), { - 'DESCRIPTOR' : _GETMETADATAREPLY, - '__module__' : 'sdv.databroker.v1.broker_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.GetMetadataReply) - }) -_sym_db.RegisterMessage(GetMetadataReply) - -_BROKER = DESCRIPTOR.services_by_name['Broker'] +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sdv.databroker.v1.broker_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None _GETDATAPOINTSREPLY_DATAPOINTSENTRY._options = None _GETDATAPOINTSREPLY_DATAPOINTSENTRY._serialized_options = b'8\001' + _SETDATAPOINTSREQUEST_DATAPOINTSENTRY._options = None + _SETDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_options = b'8\001' + _SETDATAPOINTSREPLY_ERRORSENTRY._options = None + _SETDATAPOINTSREPLY_ERRORSENTRY._serialized_options = b'8\001' _SUBSCRIBEREPLY_FIELDSENTRY._options = None _SUBSCRIBEREPLY_FIELDSENTRY._serialized_options = b'8\001' - _GETDATAPOINTSREQUEST._serialized_start=84 - _GETDATAPOINTSREQUEST._serialized_end=126 - _GETDATAPOINTSREPLY._serialized_start=129 - _GETDATAPOINTSREPLY._serialized_end=305 - _GETDATAPOINTSREPLY_DATAPOINTSENTRY._serialized_start=226 - _GETDATAPOINTSREPLY_DATAPOINTSENTRY._serialized_end=305 - _SUBSCRIBEREQUEST._serialized_start=307 - _SUBSCRIBEREQUEST._serialized_end=340 - _SUBSCRIBEREPLY._serialized_start=343 - _SUBSCRIBEREPLY._serialized_end=499 - _SUBSCRIBEREPLY_FIELDSENTRY._serialized_start=424 - _SUBSCRIBEREPLY_FIELDSENTRY._serialized_end=499 - _GETMETADATAREQUEST._serialized_start=501 - _GETMETADATAREQUEST._serialized_end=536 - _GETMETADATAREPLY._serialized_start=538 - _GETMETADATAREPLY._serialized_end=599 - _BROKER._serialized_start=602 - _BROKER._serialized_end=885 + _globals['_GETDATAPOINTSREQUEST']._serialized_start=84 + _globals['_GETDATAPOINTSREQUEST']._serialized_end=126 + _globals['_GETDATAPOINTSREPLY']._serialized_start=129 + _globals['_GETDATAPOINTSREPLY']._serialized_end=305 + _globals['_GETDATAPOINTSREPLY_DATAPOINTSENTRY']._serialized_start=226 + _globals['_GETDATAPOINTSREPLY_DATAPOINTSENTRY']._serialized_end=305 + _globals['_SETDATAPOINTSREQUEST']._serialized_start=308 + _globals['_SETDATAPOINTSREQUEST']._serialized_end=488 + _globals['_SETDATAPOINTSREQUEST_DATAPOINTSENTRY']._serialized_start=226 + _globals['_SETDATAPOINTSREQUEST_DATAPOINTSENTRY']._serialized_end=305 + _globals['_SETDATAPOINTSREPLY']._serialized_start=491 + _globals['_SETDATAPOINTSREPLY']._serialized_end=660 + _globals['_SETDATAPOINTSREPLY_ERRORSENTRY']._serialized_start=580 + _globals['_SETDATAPOINTSREPLY_ERRORSENTRY']._serialized_end=660 + _globals['_SUBSCRIBEREQUEST']._serialized_start=662 + _globals['_SUBSCRIBEREQUEST']._serialized_end=695 + _globals['_SUBSCRIBEREPLY']._serialized_start=698 + _globals['_SUBSCRIBEREPLY']._serialized_end=854 + _globals['_SUBSCRIBEREPLY_FIELDSENTRY']._serialized_start=779 + _globals['_SUBSCRIBEREPLY_FIELDSENTRY']._serialized_end=854 + _globals['_GETMETADATAREQUEST']._serialized_start=856 + _globals['_GETMETADATAREQUEST']._serialized_end=891 + _globals['_GETMETADATAREPLY']._serialized_start=893 + _globals['_GETMETADATAREPLY']._serialized_end=954 + _globals['_BROKER']._serialized_start=957 + _globals['_BROKER']._serialized_end=1337 # @@protoc_insertion_point(module_scope) diff --git a/integration_test/gen_proto/sdv/databroker/v1/broker_pb2.pyi b/hvac_service/sdv/databroker/v1/broker_pb2.pyi similarity index 99% rename from integration_test/gen_proto/sdv/databroker/v1/broker_pb2.pyi rename to hvac_service/sdv/databroker/v1/broker_pb2.pyi index acc7fe7..cd930fb 100644 --- a/integration_test/gen_proto/sdv/databroker/v1/broker_pb2.pyi +++ b/hvac_service/sdv/databroker/v1/broker_pb2.pyi @@ -19,7 +19,7 @@ import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message -import gen_proto.sdv.databroker.v1.types_pb2 +import sdv.databroker.v1.types_pb2 import sys if sys.version_info >= (3, 8): diff --git a/hvac_service/sdv/databroker/v1/broker_pb2_grpc.py b/hvac_service/sdv/databroker/v1/broker_pb2_grpc.py index fb8bb19..f8536ea 100644 --- a/hvac_service/sdv/databroker/v1/broker_pb2_grpc.py +++ b/hvac_service/sdv/databroker/v1/broker_pb2_grpc.py @@ -19,6 +19,11 @@ def __init__(self, channel): request_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsRequest.SerializeToString, response_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsReply.FromString, ) + self.SetDatapoints = channel.unary_unary( + '/sdv.databroker.v1.Broker/SetDatapoints', + request_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SetDatapointsRequest.SerializeToString, + response_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SetDatapointsReply.FromString, + ) self.Subscribe = channel.unary_stream( '/sdv.databroker.v1.Broker/Subscribe', request_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SubscribeRequest.SerializeToString, @@ -45,6 +50,13 @@ def GetDatapoints(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def SetDatapoints(self, request, context): + """Set a datapoint (values) + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def Subscribe(self, request, context): """Subscribe to a set of data points or conditional expressions using the Data Broker Query Syntax (described in QUERY.md) @@ -74,6 +86,11 @@ def add_BrokerServicer_to_server(servicer, server): request_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsRequest.FromString, response_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.GetDatapointsReply.SerializeToString, ), + 'SetDatapoints': grpc.unary_unary_rpc_method_handler( + servicer.SetDatapoints, + request_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SetDatapointsRequest.FromString, + response_serializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SetDatapointsReply.SerializeToString, + ), 'Subscribe': grpc.unary_stream_rpc_method_handler( servicer.Subscribe, request_deserializer=sdv_dot_databroker_dot_v1_dot_broker__pb2.SubscribeRequest.FromString, @@ -111,6 +128,23 @@ def GetDatapoints(request, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod + def SetDatapoints(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary(request, target, '/sdv.databroker.v1.Broker/SetDatapoints', + sdv_dot_databroker_dot_v1_dot_broker__pb2.SetDatapointsRequest.SerializeToString, + sdv_dot_databroker_dot_v1_dot_broker__pb2.SetDatapointsReply.FromString, + options, channel_credentials, + insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + @staticmethod def Subscribe(request, target, diff --git a/hvac_service/sdv/databroker/v1/collector_pb2.py b/hvac_service/sdv/databroker/v1/collector_pb2.py index 13725b8..d3d8766 100644 --- a/hvac_service/sdv/databroker/v1/collector_pb2.py +++ b/hvac_service/sdv/databroker/v1/collector_pb2.py @@ -4,9 +4,8 @@ """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,139 +14,12 @@ from sdv.databroker.v1 import types_pb2 as sdv_dot_databroker_dot_v1_dot_types__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sdv/databroker/v1/collector.proto\x12\x11sdv.databroker.v1\x1a\x1dsdv/databroker/v1/types.proto\"\xba\x01\n\x17UpdateDatapointsRequest\x12N\n\ndatapoints\x18\x01 \x03(\x0b\x32:.sdv.databroker.v1.UpdateDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xaf\x01\n\x15UpdateDatapointsReply\x12\x44\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x34.sdv.databroker.v1.UpdateDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"\xba\x01\n\x17StreamDatapointsRequest\x12N\n\ndatapoints\x18\x01 \x03(\x0b\x32:.sdv.databroker.v1.StreamDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xaf\x01\n\x15StreamDatapointsReply\x12\x44\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x34.sdv.databroker.v1.StreamDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"R\n\x19RegisterDatapointsRequest\x12\x35\n\x04list\x18\x01 \x03(\x0b\x32\'.sdv.databroker.v1.RegistrationMetadata\"/\n\x1eSubscribeActuatorTargetRequest\x12\r\n\x05paths\x18\x01 \x03(\t\"\xd4\x01\n\x1cSubscribeActuatorTargetReply\x12^\n\x10\x61\x63tuator_targets\x18\x01 \x03(\x0b\x32\x44.sdv.databroker.v1.SubscribeActuatorTargetReply.ActuatorTargetsEntry\x1aT\n\x14\x41\x63tuatorTargetsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\x9d\x01\n\x14RegistrationMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\tdata_type\x18\x02 \x01(\x0e\x32\x1b.sdv.databroker.v1.DataType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x32\n\x0b\x63hange_type\x18\x04 \x01(\x0e\x32\x1d.sdv.databroker.v1.ChangeType\"\x93\x01\n\x17RegisterDatapointsReply\x12H\n\x07results\x18\x01 \x03(\x0b\x32\x37.sdv.databroker.v1.RegisterDatapointsReply.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x32\xd6\x03\n\tCollector\x12n\n\x12RegisterDatapoints\x12,.sdv.databroker.v1.RegisterDatapointsRequest\x1a*.sdv.databroker.v1.RegisterDatapointsReply\x12h\n\x10UpdateDatapoints\x12*.sdv.databroker.v1.UpdateDatapointsRequest\x1a(.sdv.databroker.v1.UpdateDatapointsReply\x12l\n\x10StreamDatapoints\x12*.sdv.databroker.v1.StreamDatapointsRequest\x1a(.sdv.databroker.v1.StreamDatapointsReply(\x01\x30\x01\x12\x80\x01\n\x18SubscribeActuatorTargets\x12\x31.sdv.databroker.v1.SubscribeActuatorTargetRequest\x1a/.sdv.databroker.v1.SubscribeActuatorTargetReply0\x01\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sdv/databroker/v1/collector.proto\x12\x11sdv.databroker.v1\x1a\x1dsdv/databroker/v1/types.proto\"\xba\x01\n\x17UpdateDatapointsRequest\x12N\n\ndatapoints\x18\x01 \x03(\x0b\x32:.sdv.databroker.v1.UpdateDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xaf\x01\n\x15UpdateDatapointsReply\x12\x44\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x34.sdv.databroker.v1.UpdateDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"\xba\x01\n\x17StreamDatapointsRequest\x12N\n\ndatapoints\x18\x01 \x03(\x0b\x32:.sdv.databroker.v1.StreamDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xaf\x01\n\x15StreamDatapointsReply\x12\x44\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x34.sdv.databroker.v1.StreamDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"R\n\x19RegisterDatapointsRequest\x12\x35\n\x04list\x18\x01 \x03(\x0b\x32\'.sdv.databroker.v1.RegistrationMetadata\"\x9d\x01\n\x14RegistrationMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\tdata_type\x18\x02 \x01(\x0e\x32\x1b.sdv.databroker.v1.DataType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x32\n\x0b\x63hange_type\x18\x04 \x01(\x0e\x32\x1d.sdv.databroker.v1.ChangeType\"\x93\x01\n\x17RegisterDatapointsReply\x12H\n\x07results\x18\x01 \x03(\x0b\x32\x37.sdv.databroker.v1.RegisterDatapointsReply.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x32\xd3\x02\n\tCollector\x12n\n\x12RegisterDatapoints\x12,.sdv.databroker.v1.RegisterDatapointsRequest\x1a*.sdv.databroker.v1.RegisterDatapointsReply\x12h\n\x10UpdateDatapoints\x12*.sdv.databroker.v1.UpdateDatapointsRequest\x1a(.sdv.databroker.v1.UpdateDatapointsReply\x12l\n\x10StreamDatapoints\x12*.sdv.databroker.v1.StreamDatapointsRequest\x1a(.sdv.databroker.v1.StreamDatapointsReply(\x01\x30\x01\x62\x06proto3') - - -_UPDATEDATAPOINTSREQUEST = DESCRIPTOR.message_types_by_name['UpdateDatapointsRequest'] -_UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY = _UPDATEDATAPOINTSREQUEST.nested_types_by_name['DatapointsEntry'] -_UPDATEDATAPOINTSREPLY = DESCRIPTOR.message_types_by_name['UpdateDatapointsReply'] -_UPDATEDATAPOINTSREPLY_ERRORSENTRY = _UPDATEDATAPOINTSREPLY.nested_types_by_name['ErrorsEntry'] -_STREAMDATAPOINTSREQUEST = DESCRIPTOR.message_types_by_name['StreamDatapointsRequest'] -_STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY = _STREAMDATAPOINTSREQUEST.nested_types_by_name['DatapointsEntry'] -_STREAMDATAPOINTSREPLY = DESCRIPTOR.message_types_by_name['StreamDatapointsReply'] -_STREAMDATAPOINTSREPLY_ERRORSENTRY = _STREAMDATAPOINTSREPLY.nested_types_by_name['ErrorsEntry'] -_REGISTERDATAPOINTSREQUEST = DESCRIPTOR.message_types_by_name['RegisterDatapointsRequest'] -_SUBSCRIBEACTUATORTARGETREQUEST = DESCRIPTOR.message_types_by_name['SubscribeActuatorTargetRequest'] -_SUBSCRIBEACTUATORTARGETREPLY = DESCRIPTOR.message_types_by_name['SubscribeActuatorTargetReply'] -_SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY = _SUBSCRIBEACTUATORTARGETREPLY.nested_types_by_name['ActuatorTargetsEntry'] -_REGISTRATIONMETADATA = DESCRIPTOR.message_types_by_name['RegistrationMetadata'] -_REGISTERDATAPOINTSREPLY = DESCRIPTOR.message_types_by_name['RegisterDatapointsReply'] -_REGISTERDATAPOINTSREPLY_RESULTSENTRY = _REGISTERDATAPOINTSREPLY.nested_types_by_name['ResultsEntry'] -UpdateDatapointsRequest = _reflection.GeneratedProtocolMessageType('UpdateDatapointsRequest', (_message.Message,), { - - 'DatapointsEntry' : _reflection.GeneratedProtocolMessageType('DatapointsEntry', (_message.Message,), { - 'DESCRIPTOR' : _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.UpdateDatapointsRequest.DatapointsEntry) - }) - , - 'DESCRIPTOR' : _UPDATEDATAPOINTSREQUEST, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.UpdateDatapointsRequest) - }) -_sym_db.RegisterMessage(UpdateDatapointsRequest) -_sym_db.RegisterMessage(UpdateDatapointsRequest.DatapointsEntry) - -UpdateDatapointsReply = _reflection.GeneratedProtocolMessageType('UpdateDatapointsReply', (_message.Message,), { - - 'ErrorsEntry' : _reflection.GeneratedProtocolMessageType('ErrorsEntry', (_message.Message,), { - 'DESCRIPTOR' : _UPDATEDATAPOINTSREPLY_ERRORSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.UpdateDatapointsReply.ErrorsEntry) - }) - , - 'DESCRIPTOR' : _UPDATEDATAPOINTSREPLY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.UpdateDatapointsReply) - }) -_sym_db.RegisterMessage(UpdateDatapointsReply) -_sym_db.RegisterMessage(UpdateDatapointsReply.ErrorsEntry) - -StreamDatapointsRequest = _reflection.GeneratedProtocolMessageType('StreamDatapointsRequest', (_message.Message,), { - - 'DatapointsEntry' : _reflection.GeneratedProtocolMessageType('DatapointsEntry', (_message.Message,), { - 'DESCRIPTOR' : _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StreamDatapointsRequest.DatapointsEntry) - }) - , - 'DESCRIPTOR' : _STREAMDATAPOINTSREQUEST, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StreamDatapointsRequest) - }) -_sym_db.RegisterMessage(StreamDatapointsRequest) -_sym_db.RegisterMessage(StreamDatapointsRequest.DatapointsEntry) - -StreamDatapointsReply = _reflection.GeneratedProtocolMessageType('StreamDatapointsReply', (_message.Message,), { - - 'ErrorsEntry' : _reflection.GeneratedProtocolMessageType('ErrorsEntry', (_message.Message,), { - 'DESCRIPTOR' : _STREAMDATAPOINTSREPLY_ERRORSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StreamDatapointsReply.ErrorsEntry) - }) - , - 'DESCRIPTOR' : _STREAMDATAPOINTSREPLY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StreamDatapointsReply) - }) -_sym_db.RegisterMessage(StreamDatapointsReply) -_sym_db.RegisterMessage(StreamDatapointsReply.ErrorsEntry) - -RegisterDatapointsRequest = _reflection.GeneratedProtocolMessageType('RegisterDatapointsRequest', (_message.Message,), { - 'DESCRIPTOR' : _REGISTERDATAPOINTSREQUEST, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.RegisterDatapointsRequest) - }) -_sym_db.RegisterMessage(RegisterDatapointsRequest) - -SubscribeActuatorTargetRequest = _reflection.GeneratedProtocolMessageType('SubscribeActuatorTargetRequest', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEACTUATORTARGETREQUEST, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeActuatorTargetRequest) - }) -_sym_db.RegisterMessage(SubscribeActuatorTargetRequest) - -SubscribeActuatorTargetReply = _reflection.GeneratedProtocolMessageType('SubscribeActuatorTargetReply', (_message.Message,), { - - 'ActuatorTargetsEntry' : _reflection.GeneratedProtocolMessageType('ActuatorTargetsEntry', (_message.Message,), { - 'DESCRIPTOR' : _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeActuatorTargetReply.ActuatorTargetsEntry) - }) - , - 'DESCRIPTOR' : _SUBSCRIBEACTUATORTARGETREPLY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.SubscribeActuatorTargetReply) - }) -_sym_db.RegisterMessage(SubscribeActuatorTargetReply) -_sym_db.RegisterMessage(SubscribeActuatorTargetReply.ActuatorTargetsEntry) - -RegistrationMetadata = _reflection.GeneratedProtocolMessageType('RegistrationMetadata', (_message.Message,), { - 'DESCRIPTOR' : _REGISTRATIONMETADATA, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.RegistrationMetadata) - }) -_sym_db.RegisterMessage(RegistrationMetadata) - -RegisterDatapointsReply = _reflection.GeneratedProtocolMessageType('RegisterDatapointsReply', (_message.Message,), { - - 'ResultsEntry' : _reflection.GeneratedProtocolMessageType('ResultsEntry', (_message.Message,), { - 'DESCRIPTOR' : _REGISTERDATAPOINTSREPLY_RESULTSENTRY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.RegisterDatapointsReply.ResultsEntry) - }) - , - 'DESCRIPTOR' : _REGISTERDATAPOINTSREPLY, - '__module__' : 'sdv.databroker.v1.collector_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.RegisterDatapointsReply) - }) -_sym_db.RegisterMessage(RegisterDatapointsReply) -_sym_db.RegisterMessage(RegisterDatapointsReply.ResultsEntry) - -_COLLECTOR = DESCRIPTOR.services_by_name['Collector'] +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sdv.databroker.v1.collector_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY._options = None _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_options = b'8\001' @@ -157,40 +29,32 @@ _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_options = b'8\001' _STREAMDATAPOINTSREPLY_ERRORSENTRY._options = None _STREAMDATAPOINTSREPLY_ERRORSENTRY._serialized_options = b'8\001' - _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY._options = None - _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY._serialized_options = b'8\001' _REGISTERDATAPOINTSREPLY_RESULTSENTRY._options = None _REGISTERDATAPOINTSREPLY_RESULTSENTRY._serialized_options = b'8\001' - _UPDATEDATAPOINTSREQUEST._serialized_start=88 - _UPDATEDATAPOINTSREQUEST._serialized_end=274 - _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_start=195 - _UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_end=274 - _UPDATEDATAPOINTSREPLY._serialized_start=277 - _UPDATEDATAPOINTSREPLY._serialized_end=452 - _UPDATEDATAPOINTSREPLY_ERRORSENTRY._serialized_start=372 - _UPDATEDATAPOINTSREPLY_ERRORSENTRY._serialized_end=452 - _STREAMDATAPOINTSREQUEST._serialized_start=455 - _STREAMDATAPOINTSREQUEST._serialized_end=641 - _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_start=195 - _STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY._serialized_end=274 - _STREAMDATAPOINTSREPLY._serialized_start=644 - _STREAMDATAPOINTSREPLY._serialized_end=819 - _STREAMDATAPOINTSREPLY_ERRORSENTRY._serialized_start=372 - _STREAMDATAPOINTSREPLY_ERRORSENTRY._serialized_end=452 - _REGISTERDATAPOINTSREQUEST._serialized_start=821 - _REGISTERDATAPOINTSREQUEST._serialized_end=903 - _SUBSCRIBEACTUATORTARGETREQUEST._serialized_start=905 - _SUBSCRIBEACTUATORTARGETREQUEST._serialized_end=952 - _SUBSCRIBEACTUATORTARGETREPLY._serialized_start=955 - _SUBSCRIBEACTUATORTARGETREPLY._serialized_end=1167 - _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY._serialized_start=1083 - _SUBSCRIBEACTUATORTARGETREPLY_ACTUATORTARGETSENTRY._serialized_end=1167 - _REGISTRATIONMETADATA._serialized_start=1170 - _REGISTRATIONMETADATA._serialized_end=1327 - _REGISTERDATAPOINTSREPLY._serialized_start=1330 - _REGISTERDATAPOINTSREPLY._serialized_end=1477 - _REGISTERDATAPOINTSREPLY_RESULTSENTRY._serialized_start=1431 - _REGISTERDATAPOINTSREPLY_RESULTSENTRY._serialized_end=1477 - _COLLECTOR._serialized_start=1480 - _COLLECTOR._serialized_end=1950 + _globals['_UPDATEDATAPOINTSREQUEST']._serialized_start=88 + _globals['_UPDATEDATAPOINTSREQUEST']._serialized_end=274 + _globals['_UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY']._serialized_start=195 + _globals['_UPDATEDATAPOINTSREQUEST_DATAPOINTSENTRY']._serialized_end=274 + _globals['_UPDATEDATAPOINTSREPLY']._serialized_start=277 + _globals['_UPDATEDATAPOINTSREPLY']._serialized_end=452 + _globals['_UPDATEDATAPOINTSREPLY_ERRORSENTRY']._serialized_start=372 + _globals['_UPDATEDATAPOINTSREPLY_ERRORSENTRY']._serialized_end=452 + _globals['_STREAMDATAPOINTSREQUEST']._serialized_start=455 + _globals['_STREAMDATAPOINTSREQUEST']._serialized_end=641 + _globals['_STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY']._serialized_start=195 + _globals['_STREAMDATAPOINTSREQUEST_DATAPOINTSENTRY']._serialized_end=274 + _globals['_STREAMDATAPOINTSREPLY']._serialized_start=644 + _globals['_STREAMDATAPOINTSREPLY']._serialized_end=819 + _globals['_STREAMDATAPOINTSREPLY_ERRORSENTRY']._serialized_start=372 + _globals['_STREAMDATAPOINTSREPLY_ERRORSENTRY']._serialized_end=452 + _globals['_REGISTERDATAPOINTSREQUEST']._serialized_start=821 + _globals['_REGISTERDATAPOINTSREQUEST']._serialized_end=903 + _globals['_REGISTRATIONMETADATA']._serialized_start=906 + _globals['_REGISTRATIONMETADATA']._serialized_end=1063 + _globals['_REGISTERDATAPOINTSREPLY']._serialized_start=1066 + _globals['_REGISTERDATAPOINTSREPLY']._serialized_end=1213 + _globals['_REGISTERDATAPOINTSREPLY_RESULTSENTRY']._serialized_start=1167 + _globals['_REGISTERDATAPOINTSREPLY_RESULTSENTRY']._serialized_end=1213 + _globals['_COLLECTOR']._serialized_start=1216 + _globals['_COLLECTOR']._serialized_end=1555 # @@protoc_insertion_point(module_scope) diff --git a/integration_test/gen_proto/sdv/databroker/v1/collector_pb2.pyi b/hvac_service/sdv/databroker/v1/collector_pb2.pyi similarity index 99% rename from integration_test/gen_proto/sdv/databroker/v1/collector_pb2.pyi rename to hvac_service/sdv/databroker/v1/collector_pb2.pyi index 023dbfe..297470b 100644 --- a/integration_test/gen_proto/sdv/databroker/v1/collector_pb2.pyi +++ b/hvac_service/sdv/databroker/v1/collector_pb2.pyi @@ -19,7 +19,7 @@ import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message -import gen_proto.sdv.databroker.v1.types_pb2 +import sdv.databroker.v1.types_pb2 import sys if sys.version_info >= (3, 8): diff --git a/hvac_service/sdv/databroker/v1/collector_pb2_grpc.py b/hvac_service/sdv/databroker/v1/collector_pb2_grpc.py index d66462e..d6ed07c 100644 --- a/hvac_service/sdv/databroker/v1/collector_pb2_grpc.py +++ b/hvac_service/sdv/databroker/v1/collector_pb2_grpc.py @@ -29,11 +29,6 @@ def __init__(self, channel): request_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsRequest.SerializeToString, response_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsReply.FromString, ) - self.SubscribeActuatorTargets = channel.unary_stream( - '/sdv.databroker.v1.Collector/SubscribeActuatorTargets', - request_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetRequest.SerializeToString, - response_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetReply.FromString, - ) class CollectorServicer(object): @@ -91,12 +86,6 @@ def StreamDatapoints(self, request_iterator, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def SubscribeActuatorTargets(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def add_CollectorServicer_to_server(servicer, server): rpc_method_handlers = { @@ -115,11 +104,6 @@ def add_CollectorServicer_to_server(servicer, server): request_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsRequest.FromString, response_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsReply.SerializeToString, ), - 'SubscribeActuatorTargets': grpc.unary_stream_rpc_method_handler( - servicer.SubscribeActuatorTargets, - request_deserializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetRequest.FromString, - response_serializer=sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetReply.SerializeToString, - ), } generic_handler = grpc.method_handlers_generic_handler( 'sdv.databroker.v1.Collector', rpc_method_handlers) @@ -180,20 +164,3 @@ def StreamDatapoints(request_iterator, sdv_dot_databroker_dot_v1_dot_collector__pb2.StreamDatapointsReply.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def SubscribeActuatorTargets(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_stream(request, target, '/sdv.databroker.v1.Collector/SubscribeActuatorTargets', - sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetRequest.SerializeToString, - sdv_dot_databroker_dot_v1_dot_collector__pb2.SubscribeActuatorTargetReply.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/hvac_service/sdv/databroker/v1/types_pb2.py b/hvac_service/sdv/databroker/v1/types_pb2.py index 7cf9bc4..fe7ec4b 100644 --- a/hvac_service/sdv/databroker/v1/types_pb2.py +++ b/hvac_service/sdv/databroker/v1/types_pb2.py @@ -2,12 +2,10 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: sdv/databroker/v1/types.proto """Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -16,160 +14,41 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsdv/databroker/v1/types.proto\x12\x11sdv.databroker.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x1d\n\x0bStringArray\x12\x0e\n\x06values\x18\x01 \x03(\t\"\x1b\n\tBoolArray\x12\x0e\n\x06values\x18\x01 \x03(\x08\"\x1c\n\nInt32Array\x12\x0e\n\x06values\x18\x01 \x03(\x11\"\x1c\n\nInt64Array\x12\x0e\n\x06values\x18\x01 \x03(\x12\"\x1d\n\x0bUint32Array\x12\x0e\n\x06values\x18\x01 \x03(\r\"\x1d\n\x0bUint64Array\x12\x0e\n\x06values\x18\x01 \x03(\x04\"\x1c\n\nFloatArray\x12\x0e\n\x06values\x18\x01 \x03(\x02\"\x1d\n\x0b\x44oubleArray\x12\x0e\n\x06values\x18\x01 \x03(\x01\"\xe2\x06\n\tDatapoint\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\rfailure_value\x18\n \x01(\x0e\x32$.sdv.databroker.v1.Datapoint.FailureH\x00\x12\x16\n\x0cstring_value\x18\x0b \x01(\tH\x00\x12\x14\n\nbool_value\x18\x0c \x01(\x08H\x00\x12\x15\n\x0bint32_value\x18\r \x01(\x11H\x00\x12\x15\n\x0bint64_value\x18\x0e \x01(\x12H\x00\x12\x16\n\x0cuint32_value\x18\x0f \x01(\rH\x00\x12\x16\n\x0cuint64_value\x18\x10 \x01(\x04H\x00\x12\x15\n\x0b\x66loat_value\x18\x11 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x12 \x01(\x01H\x00\x12\x36\n\x0cstring_array\x18\x15 \x01(\x0b\x32\x1e.sdv.databroker.v1.StringArrayH\x00\x12\x32\n\nbool_array\x18\x16 \x01(\x0b\x32\x1c.sdv.databroker.v1.BoolArrayH\x00\x12\x34\n\x0bint32_array\x18\x17 \x01(\x0b\x32\x1d.sdv.databroker.v1.Int32ArrayH\x00\x12\x34\n\x0bint64_array\x18\x18 \x01(\x0b\x32\x1d.sdv.databroker.v1.Int64ArrayH\x00\x12\x36\n\x0cuint32_array\x18\x19 \x01(\x0b\x32\x1e.sdv.databroker.v1.Uint32ArrayH\x00\x12\x36\n\x0cuint64_array\x18\x1a \x01(\x0b\x32\x1e.sdv.databroker.v1.Uint64ArrayH\x00\x12\x34\n\x0b\x66loat_array\x18\x1b \x01(\x0b\x32\x1d.sdv.databroker.v1.FloatArrayH\x00\x12\x36\n\x0c\x64ouble_array\x18\x1c \x01(\x0b\x32\x1e.sdv.databroker.v1.DoubleArrayH\x00\"m\n\x07\x46\x61ilure\x12\x11\n\rINVALID_VALUE\x10\x00\x12\x11\n\rNOT_AVAILABLE\x10\x01\x12\x15\n\x11UNKNOWN_DATAPOINT\x10\x02\x12\x11\n\rACCESS_DENIED\x10\x03\x12\x12\n\x0eINTERNAL_ERROR\x10\x04\x42\x07\n\x05value\"\x9d\x01\n\x08Metadata\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\t\x12.\n\tdata_type\x18\x05 \x01(\x0e\x32\x1b.sdv.databroker.v1.DataType\x12\x32\n\x0b\x63hange_type\x18\x06 \x01(\x0e\x32\x1d.sdv.databroker.v1.ChangeType\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t*\x84\x03\n\x08\x44\x61taType\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04\x42OOL\x10\x01\x12\x08\n\x04INT8\x10\x02\x12\t\n\x05INT16\x10\x03\x12\t\n\x05INT32\x10\x04\x12\t\n\x05INT64\x10\x05\x12\t\n\x05UINT8\x10\x06\x12\n\n\x06UINT16\x10\x07\x12\n\n\x06UINT32\x10\x08\x12\n\n\x06UINT64\x10\t\x12\t\n\x05\x46LOAT\x10\n\x12\n\n\x06\x44OUBLE\x10\x0b\x12\r\n\tTIMESTAMP\x10\x0c\x12\x10\n\x0cSTRING_ARRAY\x10\x14\x12\x0e\n\nBOOL_ARRAY\x10\x15\x12\x0e\n\nINT8_ARRAY\x10\x16\x12\x0f\n\x0bINT16_ARRAY\x10\x17\x12\x0f\n\x0bINT32_ARRAY\x10\x18\x12\x0f\n\x0bINT64_ARRAY\x10\x19\x12\x0f\n\x0bUINT8_ARRAY\x10\x1a\x12\x10\n\x0cUINT16_ARRAY\x10\x1b\x12\x10\n\x0cUINT32_ARRAY\x10\x1c\x12\x10\n\x0cUINT64_ARRAY\x10\x1d\x12\x0f\n\x0b\x46LOAT_ARRAY\x10\x1e\x12\x10\n\x0c\x44OUBLE_ARRAY\x10\x1f\x12\x13\n\x0fTIMESTAMP_ARRAY\x10 *s\n\x0e\x44\x61tapointError\x12\x15\n\x11UNKNOWN_DATAPOINT\x10\x00\x12\x10\n\x0cINVALID_TYPE\x10\x01\x12\x11\n\rACCESS_DENIED\x10\x02\x12\x12\n\x0eINTERNAL_ERROR\x10\x03\x12\x11\n\rOUT_OF_BOUNDS\x10\x04*7\n\nChangeType\x12\n\n\x06STATIC\x10\x00\x12\r\n\tON_CHANGE\x10\x01\x12\x0e\n\nCONTINUOUS\x10\x02\x62\x06proto3') - -_DATATYPE = DESCRIPTOR.enum_types_by_name['DataType'] -DataType = enum_type_wrapper.EnumTypeWrapper(_DATATYPE) -_DATAPOINTERROR = DESCRIPTOR.enum_types_by_name['DatapointError'] -DatapointError = enum_type_wrapper.EnumTypeWrapper(_DATAPOINTERROR) -_CHANGETYPE = DESCRIPTOR.enum_types_by_name['ChangeType'] -ChangeType = enum_type_wrapper.EnumTypeWrapper(_CHANGETYPE) -STRING = 0 -BOOL = 1 -INT8 = 2 -INT16 = 3 -INT32 = 4 -INT64 = 5 -UINT8 = 6 -UINT16 = 7 -UINT32 = 8 -UINT64 = 9 -FLOAT = 10 -DOUBLE = 11 -TIMESTAMP = 12 -STRING_ARRAY = 20 -BOOL_ARRAY = 21 -INT8_ARRAY = 22 -INT16_ARRAY = 23 -INT32_ARRAY = 24 -INT64_ARRAY = 25 -UINT8_ARRAY = 26 -UINT16_ARRAY = 27 -UINT32_ARRAY = 28 -UINT64_ARRAY = 29 -FLOAT_ARRAY = 30 -DOUBLE_ARRAY = 31 -TIMESTAMP_ARRAY = 32 -UNKNOWN_DATAPOINT = 0 -INVALID_TYPE = 1 -ACCESS_DENIED = 2 -INTERNAL_ERROR = 3 -OUT_OF_BOUNDS = 4 -STATIC = 0 -ON_CHANGE = 1 -CONTINUOUS = 2 - - -_STRINGARRAY = DESCRIPTOR.message_types_by_name['StringArray'] -_BOOLARRAY = DESCRIPTOR.message_types_by_name['BoolArray'] -_INT32ARRAY = DESCRIPTOR.message_types_by_name['Int32Array'] -_INT64ARRAY = DESCRIPTOR.message_types_by_name['Int64Array'] -_UINT32ARRAY = DESCRIPTOR.message_types_by_name['Uint32Array'] -_UINT64ARRAY = DESCRIPTOR.message_types_by_name['Uint64Array'] -_FLOATARRAY = DESCRIPTOR.message_types_by_name['FloatArray'] -_DOUBLEARRAY = DESCRIPTOR.message_types_by_name['DoubleArray'] -_DATAPOINT = DESCRIPTOR.message_types_by_name['Datapoint'] -_METADATA = DESCRIPTOR.message_types_by_name['Metadata'] -_DATAPOINT_FAILURE = _DATAPOINT.enum_types_by_name['Failure'] -StringArray = _reflection.GeneratedProtocolMessageType('StringArray', (_message.Message,), { - 'DESCRIPTOR' : _STRINGARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.StringArray) - }) -_sym_db.RegisterMessage(StringArray) - -BoolArray = _reflection.GeneratedProtocolMessageType('BoolArray', (_message.Message,), { - 'DESCRIPTOR' : _BOOLARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.BoolArray) - }) -_sym_db.RegisterMessage(BoolArray) - -Int32Array = _reflection.GeneratedProtocolMessageType('Int32Array', (_message.Message,), { - 'DESCRIPTOR' : _INT32ARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Int32Array) - }) -_sym_db.RegisterMessage(Int32Array) - -Int64Array = _reflection.GeneratedProtocolMessageType('Int64Array', (_message.Message,), { - 'DESCRIPTOR' : _INT64ARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Int64Array) - }) -_sym_db.RegisterMessage(Int64Array) - -Uint32Array = _reflection.GeneratedProtocolMessageType('Uint32Array', (_message.Message,), { - 'DESCRIPTOR' : _UINT32ARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Uint32Array) - }) -_sym_db.RegisterMessage(Uint32Array) - -Uint64Array = _reflection.GeneratedProtocolMessageType('Uint64Array', (_message.Message,), { - 'DESCRIPTOR' : _UINT64ARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Uint64Array) - }) -_sym_db.RegisterMessage(Uint64Array) - -FloatArray = _reflection.GeneratedProtocolMessageType('FloatArray', (_message.Message,), { - 'DESCRIPTOR' : _FLOATARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.FloatArray) - }) -_sym_db.RegisterMessage(FloatArray) - -DoubleArray = _reflection.GeneratedProtocolMessageType('DoubleArray', (_message.Message,), { - 'DESCRIPTOR' : _DOUBLEARRAY, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.DoubleArray) - }) -_sym_db.RegisterMessage(DoubleArray) - -Datapoint = _reflection.GeneratedProtocolMessageType('Datapoint', (_message.Message,), { - 'DESCRIPTOR' : _DATAPOINT, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Datapoint) - }) -_sym_db.RegisterMessage(Datapoint) - -Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), { - 'DESCRIPTOR' : _METADATA, - '__module__' : 'sdv.databroker.v1.types_pb2' - # @@protoc_insertion_point(class_scope:sdv.databroker.v1.Metadata) - }) -_sym_db.RegisterMessage(Metadata) +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dsdv/databroker/v1/types.proto\x12\x11sdv.databroker.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\x1d\n\x0bStringArray\x12\x0e\n\x06values\x18\x01 \x03(\t\"\x1b\n\tBoolArray\x12\x0e\n\x06values\x18\x01 \x03(\x08\"\x1c\n\nInt32Array\x12\x0e\n\x06values\x18\x01 \x03(\x11\"\x1c\n\nInt64Array\x12\x0e\n\x06values\x18\x01 \x03(\x12\"\x1d\n\x0bUint32Array\x12\x0e\n\x06values\x18\x01 \x03(\r\"\x1d\n\x0bUint64Array\x12\x0e\n\x06values\x18\x01 \x03(\x04\"\x1c\n\nFloatArray\x12\x0e\n\x06values\x18\x01 \x03(\x02\"\x1d\n\x0b\x44oubleArray\x12\x0e\n\x06values\x18\x01 \x03(\x01\"\xe2\x06\n\tDatapoint\x12-\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\rfailure_value\x18\n \x01(\x0e\x32$.sdv.databroker.v1.Datapoint.FailureH\x00\x12\x16\n\x0cstring_value\x18\x0b \x01(\tH\x00\x12\x14\n\nbool_value\x18\x0c \x01(\x08H\x00\x12\x15\n\x0bint32_value\x18\r \x01(\x11H\x00\x12\x15\n\x0bint64_value\x18\x0e \x01(\x12H\x00\x12\x16\n\x0cuint32_value\x18\x0f \x01(\rH\x00\x12\x16\n\x0cuint64_value\x18\x10 \x01(\x04H\x00\x12\x15\n\x0b\x66loat_value\x18\x11 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x12 \x01(\x01H\x00\x12\x36\n\x0cstring_array\x18\x15 \x01(\x0b\x32\x1e.sdv.databroker.v1.StringArrayH\x00\x12\x32\n\nbool_array\x18\x16 \x01(\x0b\x32\x1c.sdv.databroker.v1.BoolArrayH\x00\x12\x34\n\x0bint32_array\x18\x17 \x01(\x0b\x32\x1d.sdv.databroker.v1.Int32ArrayH\x00\x12\x34\n\x0bint64_array\x18\x18 \x01(\x0b\x32\x1d.sdv.databroker.v1.Int64ArrayH\x00\x12\x36\n\x0cuint32_array\x18\x19 \x01(\x0b\x32\x1e.sdv.databroker.v1.Uint32ArrayH\x00\x12\x36\n\x0cuint64_array\x18\x1a \x01(\x0b\x32\x1e.sdv.databroker.v1.Uint64ArrayH\x00\x12\x34\n\x0b\x66loat_array\x18\x1b \x01(\x0b\x32\x1d.sdv.databroker.v1.FloatArrayH\x00\x12\x36\n\x0c\x64ouble_array\x18\x1c \x01(\x0b\x32\x1e.sdv.databroker.v1.DoubleArrayH\x00\"m\n\x07\x46\x61ilure\x12\x11\n\rINVALID_VALUE\x10\x00\x12\x11\n\rNOT_AVAILABLE\x10\x01\x12\x15\n\x11UNKNOWN_DATAPOINT\x10\x02\x12\x11\n\rACCESS_DENIED\x10\x03\x12\x12\n\x0eINTERNAL_ERROR\x10\x04\x42\x07\n\x05value\"\xcf\x01\n\x08Metadata\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x30\n\nentry_type\x18\x02 \x01(\x0e\x32\x1c.sdv.databroker.v1.EntryType\x12\x0c\n\x04name\x18\x04 \x01(\t\x12.\n\tdata_type\x18\x05 \x01(\x0e\x32\x1b.sdv.databroker.v1.DataType\x12\x32\n\x0b\x63hange_type\x18\x06 \x01(\x0e\x32\x1d.sdv.databroker.v1.ChangeType\x12\x13\n\x0b\x64\x65scription\x18\x07 \x01(\t*\xe0\x02\n\x08\x44\x61taType\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04\x42OOL\x10\x01\x12\x08\n\x04INT8\x10\x02\x12\t\n\x05INT16\x10\x03\x12\t\n\x05INT32\x10\x04\x12\t\n\x05INT64\x10\x05\x12\t\n\x05UINT8\x10\x06\x12\n\n\x06UINT16\x10\x07\x12\n\n\x06UINT32\x10\x08\x12\n\n\x06UINT64\x10\t\x12\t\n\x05\x46LOAT\x10\n\x12\n\n\x06\x44OUBLE\x10\x0b\x12\x10\n\x0cSTRING_ARRAY\x10\x14\x12\x0e\n\nBOOL_ARRAY\x10\x15\x12\x0e\n\nINT8_ARRAY\x10\x16\x12\x0f\n\x0bINT16_ARRAY\x10\x17\x12\x0f\n\x0bINT32_ARRAY\x10\x18\x12\x0f\n\x0bINT64_ARRAY\x10\x19\x12\x0f\n\x0bUINT8_ARRAY\x10\x1a\x12\x10\n\x0cUINT16_ARRAY\x10\x1b\x12\x10\n\x0cUINT32_ARRAY\x10\x1c\x12\x10\n\x0cUINT64_ARRAY\x10\x1d\x12\x0f\n\x0b\x46LOAT_ARRAY\x10\x1e\x12\x10\n\x0c\x44OUBLE_ARRAY\x10\x1f*s\n\x0e\x44\x61tapointError\x12\x15\n\x11UNKNOWN_DATAPOINT\x10\x00\x12\x10\n\x0cINVALID_TYPE\x10\x01\x12\x11\n\rACCESS_DENIED\x10\x02\x12\x12\n\x0eINTERNAL_ERROR\x10\x03\x12\x11\n\rOUT_OF_BOUNDS\x10\x04*q\n\tEntryType\x12\x1a\n\x16\x45NTRY_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x45NTRY_TYPE_SENSOR\x10\x01\x12\x17\n\x13\x45NTRY_TYPE_ACTUATOR\x10\x02\x12\x18\n\x14\x45NTRY_TYPE_ATTRIBUTE\x10\x03*7\n\nChangeType\x12\n\n\x06STATIC\x10\x00\x12\r\n\tON_CHANGE\x10\x01\x12\x0e\n\nCONTINUOUS\x10\x02\x62\x06proto3') +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sdv.databroker.v1.types_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - _DATATYPE._serialized_start=1358 - _DATATYPE._serialized_end=1746 - _DATAPOINTERROR._serialized_start=1748 - _DATAPOINTERROR._serialized_end=1863 - _CHANGETYPE._serialized_start=1865 - _CHANGETYPE._serialized_end=1920 - _STRINGARRAY._serialized_start=85 - _STRINGARRAY._serialized_end=114 - _BOOLARRAY._serialized_start=116 - _BOOLARRAY._serialized_end=143 - _INT32ARRAY._serialized_start=145 - _INT32ARRAY._serialized_end=173 - _INT64ARRAY._serialized_start=175 - _INT64ARRAY._serialized_end=203 - _UINT32ARRAY._serialized_start=205 - _UINT32ARRAY._serialized_end=234 - _UINT64ARRAY._serialized_start=236 - _UINT64ARRAY._serialized_end=265 - _FLOATARRAY._serialized_start=267 - _FLOATARRAY._serialized_end=295 - _DOUBLEARRAY._serialized_start=297 - _DOUBLEARRAY._serialized_end=326 - _DATAPOINT._serialized_start=329 - _DATAPOINT._serialized_end=1195 - _DATAPOINT_FAILURE._serialized_start=1077 - _DATAPOINT_FAILURE._serialized_end=1186 - _METADATA._serialized_start=1198 - _METADATA._serialized_end=1355 + _globals['_DATATYPE']._serialized_start=1408 + _globals['_DATATYPE']._serialized_end=1760 + _globals['_DATAPOINTERROR']._serialized_start=1762 + _globals['_DATAPOINTERROR']._serialized_end=1877 + _globals['_ENTRYTYPE']._serialized_start=1879 + _globals['_ENTRYTYPE']._serialized_end=1992 + _globals['_CHANGETYPE']._serialized_start=1994 + _globals['_CHANGETYPE']._serialized_end=2049 + _globals['_STRINGARRAY']._serialized_start=85 + _globals['_STRINGARRAY']._serialized_end=114 + _globals['_BOOLARRAY']._serialized_start=116 + _globals['_BOOLARRAY']._serialized_end=143 + _globals['_INT32ARRAY']._serialized_start=145 + _globals['_INT32ARRAY']._serialized_end=173 + _globals['_INT64ARRAY']._serialized_start=175 + _globals['_INT64ARRAY']._serialized_end=203 + _globals['_UINT32ARRAY']._serialized_start=205 + _globals['_UINT32ARRAY']._serialized_end=234 + _globals['_UINT64ARRAY']._serialized_start=236 + _globals['_UINT64ARRAY']._serialized_end=265 + _globals['_FLOATARRAY']._serialized_start=267 + _globals['_FLOATARRAY']._serialized_end=295 + _globals['_DOUBLEARRAY']._serialized_start=297 + _globals['_DOUBLEARRAY']._serialized_end=326 + _globals['_DATAPOINT']._serialized_start=329 + _globals['_DATAPOINT']._serialized_end=1195 + _globals['_DATAPOINT_FAILURE']._serialized_start=1077 + _globals['_DATAPOINT_FAILURE']._serialized_end=1186 + _globals['_METADATA']._serialized_start=1198 + _globals['_METADATA']._serialized_end=1405 # @@protoc_insertion_point(module_scope) diff --git a/integration_test/gen_proto/sdv/databroker/v1/types_pb2.pyi b/hvac_service/sdv/databroker/v1/types_pb2.pyi similarity index 100% rename from integration_test/gen_proto/sdv/databroker/v1/types_pb2.pyi rename to hvac_service/sdv/databroker/v1/types_pb2.pyi diff --git a/hvac_service/sdv/edge/comfort/hvac/v1/hvac_pb2.py b/hvac_service/sdv/edge/comfort/hvac/v1/hvac_pb2.py index 53c2fdd..1c6e778 100644 --- a/hvac_service/sdv/edge/comfort/hvac/v1/hvac_pb2.py +++ b/hvac_service/sdv/edge/comfort/hvac/v1/hvac_pb2.py @@ -2,12 +2,10 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: sdv/edge/comfort/hvac/v1/hvac.proto """Generated protocol buffer code.""" -from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -17,58 +15,21 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#sdv/edge/comfort/hvac/v1/hvac.proto\x12\x18sdv.edge.comfort.hvac.v1\"H\n\x12SetAcStatusRequest\x12\x32\n\x06status\x18\x01 \x01(\x0e\x32\".sdv.edge.comfort.hvac.v1.AcStatus\"\x12\n\x10SetAcStatusReply\",\n\x15SetTemperatureRequest\x12\x13\n\x0btemperature\x18\x01 \x01(\x02\"\x15\n\x13SetTemperatureReply*\x1b\n\x08\x41\x63Status\x12\x07\n\x03OFF\x10\x00\x12\x06\n\x02ON\x10\x01\x32\xe1\x01\n\x04Hvac\x12g\n\x0bSetAcStatus\x12,.sdv.edge.comfort.hvac.v1.SetAcStatusRequest\x1a*.sdv.edge.comfort.hvac.v1.SetAcStatusReply\x12p\n\x0eSetTemperature\x12/.sdv.edge.comfort.hvac.v1.SetTemperatureRequest\x1a-.sdv.edge.comfort.hvac.v1.SetTemperatureReplyb\x06proto3') -_ACSTATUS = DESCRIPTOR.enum_types_by_name['AcStatus'] -AcStatus = enum_type_wrapper.EnumTypeWrapper(_ACSTATUS) -OFF = 0 -ON = 1 - - -_SETACSTATUSREQUEST = DESCRIPTOR.message_types_by_name['SetAcStatusRequest'] -_SETACSTATUSREPLY = DESCRIPTOR.message_types_by_name['SetAcStatusReply'] -_SETTEMPERATUREREQUEST = DESCRIPTOR.message_types_by_name['SetTemperatureRequest'] -_SETTEMPERATUREREPLY = DESCRIPTOR.message_types_by_name['SetTemperatureReply'] -SetAcStatusRequest = _reflection.GeneratedProtocolMessageType('SetAcStatusRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETACSTATUSREQUEST, - '__module__' : 'sdv.edge.comfort.hvac.v1.hvac_pb2' - # @@protoc_insertion_point(class_scope:sdv.edge.comfort.hvac.v1.SetAcStatusRequest) - }) -_sym_db.RegisterMessage(SetAcStatusRequest) - -SetAcStatusReply = _reflection.GeneratedProtocolMessageType('SetAcStatusReply', (_message.Message,), { - 'DESCRIPTOR' : _SETACSTATUSREPLY, - '__module__' : 'sdv.edge.comfort.hvac.v1.hvac_pb2' - # @@protoc_insertion_point(class_scope:sdv.edge.comfort.hvac.v1.SetAcStatusReply) - }) -_sym_db.RegisterMessage(SetAcStatusReply) - -SetTemperatureRequest = _reflection.GeneratedProtocolMessageType('SetTemperatureRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETTEMPERATUREREQUEST, - '__module__' : 'sdv.edge.comfort.hvac.v1.hvac_pb2' - # @@protoc_insertion_point(class_scope:sdv.edge.comfort.hvac.v1.SetTemperatureRequest) - }) -_sym_db.RegisterMessage(SetTemperatureRequest) - -SetTemperatureReply = _reflection.GeneratedProtocolMessageType('SetTemperatureReply', (_message.Message,), { - 'DESCRIPTOR' : _SETTEMPERATUREREPLY, - '__module__' : 'sdv.edge.comfort.hvac.v1.hvac_pb2' - # @@protoc_insertion_point(class_scope:sdv.edge.comfort.hvac.v1.SetTemperatureReply) - }) -_sym_db.RegisterMessage(SetTemperatureReply) - -_HVAC = DESCRIPTOR.services_by_name['Hvac'] +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sdv.edge.comfort.hvac.v1.hvac_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - _ACSTATUS._serialized_start=228 - _ACSTATUS._serialized_end=255 - _SETACSTATUSREQUEST._serialized_start=65 - _SETACSTATUSREQUEST._serialized_end=137 - _SETACSTATUSREPLY._serialized_start=139 - _SETACSTATUSREPLY._serialized_end=157 - _SETTEMPERATUREREQUEST._serialized_start=159 - _SETTEMPERATUREREQUEST._serialized_end=203 - _SETTEMPERATUREREPLY._serialized_start=205 - _SETTEMPERATUREREPLY._serialized_end=226 - _HVAC._serialized_start=258 - _HVAC._serialized_end=483 + _globals['_ACSTATUS']._serialized_start=228 + _globals['_ACSTATUS']._serialized_end=255 + _globals['_SETACSTATUSREQUEST']._serialized_start=65 + _globals['_SETACSTATUSREQUEST']._serialized_end=137 + _globals['_SETACSTATUSREPLY']._serialized_start=139 + _globals['_SETACSTATUSREPLY']._serialized_end=157 + _globals['_SETTEMPERATUREREQUEST']._serialized_start=159 + _globals['_SETTEMPERATUREREQUEST']._serialized_end=203 + _globals['_SETTEMPERATUREREPLY']._serialized_start=205 + _globals['_SETTEMPERATUREREPLY']._serialized_end=226 + _globals['_HVAC']._serialized_start=258 + _globals['_HVAC']._serialized_end=483 # @@protoc_insertion_point(module_scope) diff --git a/hvac_service/sdv/edge/comfort/hvac/v1/hvac_pb2.pyi b/hvac_service/sdv/edge/comfort/hvac/v1/hvac_pb2.pyi new file mode 100644 index 0000000..b1bca2f --- /dev/null +++ b/hvac_service/sdv/edge/comfort/hvac/v1/hvac_pb2.pyi @@ -0,0 +1,112 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +******************************************************************************* +Copyright (c) 2022 Contributors to the Eclipse Foundation + +See the NOTICE file(s) distributed with this work for additional +information regarding copyright ownership. + +This program and the accompanying materials are made available under the +terms of the Apache License 2.0 which is available at +http://www.apache.org/licenses/LICENSE-2.0 + +SPDX-License-Identifier: Apache-2.0 +****************************************************************************** +""" +import builtins +import google.protobuf.descriptor +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _AcStatus: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _AcStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AcStatus.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + OFF: _AcStatus.ValueType # 0 + ON: _AcStatus.ValueType # 1 + +class AcStatus(_AcStatus, metaclass=_AcStatusEnumTypeWrapper): ... + +OFF: AcStatus.ValueType # 0 +ON: AcStatus.ValueType # 1 +global___AcStatus = AcStatus + +@typing_extensions.final +class SetAcStatusRequest(google.protobuf.message.Message): + """* + @brief + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STATUS_FIELD_NUMBER: builtins.int + status: global___AcStatus.ValueType + """The desired status of A/C""" + def __init__( + self, + *, + status: global___AcStatus.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["status", b"status"]) -> None: ... + +global___SetAcStatusRequest = SetAcStatusRequest + +@typing_extensions.final +class SetAcStatusReply(google.protobuf.message.Message): + """* + @brief + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___SetAcStatusReply = SetAcStatusReply + +@typing_extensions.final +class SetTemperatureRequest(google.protobuf.message.Message): + """* + @brief + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TEMPERATURE_FIELD_NUMBER: builtins.int + temperature: builtins.float + """The desired cabin temperature in degree Celsius""" + def __init__( + self, + *, + temperature: builtins.float = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["temperature", b"temperature"]) -> None: ... + +global___SetTemperatureRequest = SetTemperatureRequest + +@typing_extensions.final +class SetTemperatureReply(google.protobuf.message.Message): + """* + @brief + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___SetTemperatureReply = SetTemperatureReply diff --git a/hvac_service/update-protobuf.sh b/hvac_service/update-protobuf.sh index fb8d159..19fc413 100755 --- a/hvac_service/update-protobuf.sh +++ b/hvac_service/update-protobuf.sh @@ -29,7 +29,7 @@ done echo "# Installing requirements.txt ..." pip3 install -q -r requirements-dev.txt -set -xe +set -e PROTO_FILES=$(find "${PROTO_DIRS[@]}" -name '*.proto') printf -v PROTO_PATH "%s:" "${PROTO_DIRS[@]}" @@ -39,6 +39,7 @@ echo "# Generating grpc stubs from: ${PROTO_PATH} ..." python3 -m grpc_tools.protoc \ --python_out=. \ --grpc_python_out=. \ + --mypy_out=. \ --proto_path="${PROTO_PATH}" \ $PROTO_FILES set +xe diff --git a/integration_test/broker_subscribe.py b/integration_test/broker_subscribe.py index 88e67c9..93b97c3 100755 --- a/integration_test/broker_subscribe.py +++ b/integration_test/broker_subscribe.py @@ -22,9 +22,9 @@ import time import grpc -from gen_proto.sdv.databroker.v1 import broker_pb2 -from gen_proto.sdv.databroker.v1.broker_pb2_grpc import BrokerStub -from gen_proto.sdv.databroker.v1.types_pb2 import DataType +from sdv.databroker.v1 import broker_pb2 +from sdv.databroker.v1.broker_pb2_grpc import BrokerStub +from sdv.databroker.v1.types_pb2 import DataType SEAT_POS = "Vehicle.Cabin.Seat.Row1.DriverSide.Position" @@ -178,7 +178,8 @@ def _parse_datapoint(self, dp): ts = ( dp.timestamp.seconds + int(dp.timestamp.nanos / 10**6) / 1000 ) # round to msec - + else: + ts = None logger.debug(" dp.timestamp: {}".format(ts)) value = None @@ -324,7 +325,7 @@ def get_registered_metadata(self, names=[]): self.print_meta_data(meta) return meta - async def subscribe_datapoints(self, query, sub_callback=None): + async def subscribe_datapoints(self, query: str, sub_callback=None): try: request = broker_pb2.SubscribeRequest() request.query = query diff --git a/integration_test/it-config b/integration_test/it-config index cba04eb..10fc894 100755 --- a/integration_test/it-config +++ b/integration_test/it-config @@ -46,20 +46,22 @@ export FEEDER_CONTAINER="it-feedercan" KDB_HOST_PORT="35555" SEAT_HOST_PORT="35051" HVAC_HOST_PORT="35052" -DOCKER_KDB_ADDRESS="${KDB_CONTAINER}:55555" +DOCKER_KDB_PORT="55555" +DOCKER_KDB_ADDRESS="${KDB_CONTAINER}:$DOCKER_KDB_PORT" ### dbc2val container setup. Have to map $FEEDER_HOST_DIR into $FEEDER_MOUNT_DIR in container and setup dbcfeeder to use custom config in databroker usecase FEEDER_HOST_DIR="$SCRIPT_DIR/volumes/dbc2val" FEEDER_MOUNT_DIR="/conf" # FEEDER_MOUNT_OPT="--mount type=bind,src=$FEEDER_HOST_DIR,dst=${FEEDER_MOUNT_DIR},readonly" FEEDER_MOUNT_OPT="-v $FEEDER_HOST_DIR:${FEEDER_MOUNT_DIR}" -FEEDER_ENV="-e DBC_FILE=$FEEDER_MOUNT_DIR/it-can.dbc -e MAPPING_FILE=$FEEDER_MOUNT_DIR/it-mapping.yml -e CANDUMP_FILE=$FEEDER_MOUNT_DIR/it-candump0.log -e USECASE=databroker" -FEEDER_LOG="info,databroker=debug" # ,dbcfeeder=debug,dbcfeeder.broker_client=debug" +# NOTE: for [dbc2val:v0.1.0] FEEDER_ENV="-e DBC_FILE=$FEEDER_MOUNT_DIR/it-can.dbc -e MAPPING_FILE=$FEEDER_MOUNT_DIR/it-mapping.yml -e CANDUMP_FILE=$FEEDER_MOUNT_DIR/it-candump0.log -e USECASE=databroker" +FEEDER_ENV="-e DBC_FILE=$FEEDER_MOUNT_DIR/it-can.dbc -e MAPPING_FILE=$FEEDER_MOUNT_DIR/it-vss_4.0.json -e CANDUMP_FILE=$FEEDER_MOUNT_DIR/it-candump0.log -e USE_DBC2VAL=1" +FEEDER_LOG="info,dbcfeeder=debug" # ,dbcfeeder=debug,kuksa_client.grpc=debug,dbcfeederlib.canplayer=debug,dbcfeederlib.canreader=debug,dbcfeederlib.dbc2vssmapper=debug" export KDB_DOCKER_OPT="-p ${KDB_HOST_PORT}:55555/tcp --expose ${KDB_HOST_PORT} -e RUST_LOG=info,databroker=debug,vehicle_data_broker=debug -e VEHICLEDATABROKER_DAPR_APP_ID=kdb --name ${KDB_CONTAINER}" export SEAT_DOCKER_OPT="-p ${SEAT_HOST_PORT}:50051/tcp --expose ${SEAT_HOST_PORT} -e BROKER_ADDR=${DOCKER_KDB_ADDRESS} -e SIM=cansim -e SC_RPM=100 -e VEHICLEDATABROKER_DAPR_APP_ID=kdb --name ${SEAT_CONTAINER}" export HVAC_DOCKER_OPT="-p ${HVAC_HOST_PORT}:50052/tcp --expose ${HVAC_HOST_PORT} -e VDB_ADDRESS=${DOCKER_KDB_ADDRESS} -e VEHICLEDATABROKER_DAPR_APP_ID=kdb -e LOG_LEVEL=debug --name ${HVAC_CONTAINER}" -export FEEDER_DOCKER_OPT="-e VDB_ADDRESS=${DOCKER_KDB_ADDRESS} ${FEEDER_ENV} ${FEEDER_MOUNT_OPT} -e LOG_LEVEL=${FEEDER_LOG} --name ${FEEDER_CONTAINER}" +export FEEDER_DOCKER_OPT="-e KUKSA_ADDRESS=${KDB_CONTAINER} -e KUKSA_PORT=$DOCKER_KDB_PORT ${FEEDER_ENV} ${FEEDER_MOUNT_OPT} -e LOG_LEVEL=${FEEDER_LOG} --name ${FEEDER_CONTAINER}" export DOCKER_NETWORK="val-int" # "host" diff --git a/integration_test/kuksa/__init__.py b/integration_test/kuksa/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/integration_test/kuksa/val/__init__.py b/integration_test/kuksa/val/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/integration_test/kuksa/val/v1/__init__.py b/integration_test/kuksa/val/v1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/integration_test/gen_proto/kuksa/val/v1/types_pb2.py b/integration_test/kuksa/val/v1/types_pb2.py similarity index 100% rename from integration_test/gen_proto/kuksa/val/v1/types_pb2.py rename to integration_test/kuksa/val/v1/types_pb2.py diff --git a/integration_test/kuksa/val/v1/types_pb2.pyi b/integration_test/kuksa/val/v1/types_pb2.pyi new file mode 100644 index 0000000..3dca797 --- /dev/null +++ b/integration_test/kuksa/val/v1/types_pb2.pyi @@ -0,0 +1,800 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +I added V1 as in databroker. Is this good practice?""" +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_pb2 +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _DataType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _DataTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DataType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + DATA_TYPE_UNSPECIFIED: _DataType.ValueType # 0 + DATA_TYPE_STRING: _DataType.ValueType # 1 + DATA_TYPE_BOOLEAN: _DataType.ValueType # 2 + DATA_TYPE_INT8: _DataType.ValueType # 3 + DATA_TYPE_INT16: _DataType.ValueType # 4 + DATA_TYPE_INT32: _DataType.ValueType # 5 + DATA_TYPE_INT64: _DataType.ValueType # 6 + DATA_TYPE_UINT8: _DataType.ValueType # 7 + DATA_TYPE_UINT16: _DataType.ValueType # 8 + DATA_TYPE_UINT32: _DataType.ValueType # 9 + DATA_TYPE_UINT64: _DataType.ValueType # 10 + DATA_TYPE_FLOAT: _DataType.ValueType # 11 + DATA_TYPE_DOUBLE: _DataType.ValueType # 12 + DATA_TYPE_TIMESTAMP: _DataType.ValueType # 13 + DATA_TYPE_STRING_ARRAY: _DataType.ValueType # 20 + DATA_TYPE_BOOLEAN_ARRAY: _DataType.ValueType # 21 + DATA_TYPE_INT8_ARRAY: _DataType.ValueType # 22 + DATA_TYPE_INT16_ARRAY: _DataType.ValueType # 23 + DATA_TYPE_INT32_ARRAY: _DataType.ValueType # 24 + DATA_TYPE_INT64_ARRAY: _DataType.ValueType # 25 + DATA_TYPE_UINT8_ARRAY: _DataType.ValueType # 26 + DATA_TYPE_UINT16_ARRAY: _DataType.ValueType # 27 + DATA_TYPE_UINT32_ARRAY: _DataType.ValueType # 28 + DATA_TYPE_UINT64_ARRAY: _DataType.ValueType # 29 + DATA_TYPE_FLOAT_ARRAY: _DataType.ValueType # 30 + DATA_TYPE_DOUBLE_ARRAY: _DataType.ValueType # 31 + DATA_TYPE_TIMESTAMP_ARRAY: _DataType.ValueType # 32 + +class DataType(_DataType, metaclass=_DataTypeEnumTypeWrapper): + """VSS Data type of a signal + + Protobuf doesn't support int8, int16, uint8 or uint16. + These are mapped to int32 and uint32 respectively. + """ + +DATA_TYPE_UNSPECIFIED: DataType.ValueType # 0 +DATA_TYPE_STRING: DataType.ValueType # 1 +DATA_TYPE_BOOLEAN: DataType.ValueType # 2 +DATA_TYPE_INT8: DataType.ValueType # 3 +DATA_TYPE_INT16: DataType.ValueType # 4 +DATA_TYPE_INT32: DataType.ValueType # 5 +DATA_TYPE_INT64: DataType.ValueType # 6 +DATA_TYPE_UINT8: DataType.ValueType # 7 +DATA_TYPE_UINT16: DataType.ValueType # 8 +DATA_TYPE_UINT32: DataType.ValueType # 9 +DATA_TYPE_UINT64: DataType.ValueType # 10 +DATA_TYPE_FLOAT: DataType.ValueType # 11 +DATA_TYPE_DOUBLE: DataType.ValueType # 12 +DATA_TYPE_TIMESTAMP: DataType.ValueType # 13 +DATA_TYPE_STRING_ARRAY: DataType.ValueType # 20 +DATA_TYPE_BOOLEAN_ARRAY: DataType.ValueType # 21 +DATA_TYPE_INT8_ARRAY: DataType.ValueType # 22 +DATA_TYPE_INT16_ARRAY: DataType.ValueType # 23 +DATA_TYPE_INT32_ARRAY: DataType.ValueType # 24 +DATA_TYPE_INT64_ARRAY: DataType.ValueType # 25 +DATA_TYPE_UINT8_ARRAY: DataType.ValueType # 26 +DATA_TYPE_UINT16_ARRAY: DataType.ValueType # 27 +DATA_TYPE_UINT32_ARRAY: DataType.ValueType # 28 +DATA_TYPE_UINT64_ARRAY: DataType.ValueType # 29 +DATA_TYPE_FLOAT_ARRAY: DataType.ValueType # 30 +DATA_TYPE_DOUBLE_ARRAY: DataType.ValueType # 31 +DATA_TYPE_TIMESTAMP_ARRAY: DataType.ValueType # 32 +global___DataType = DataType + +class _EntryType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _EntryTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_EntryType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + ENTRY_TYPE_UNSPECIFIED: _EntryType.ValueType # 0 + ENTRY_TYPE_ATTRIBUTE: _EntryType.ValueType # 1 + ENTRY_TYPE_SENSOR: _EntryType.ValueType # 2 + ENTRY_TYPE_ACTUATOR: _EntryType.ValueType # 3 + +class EntryType(_EntryType, metaclass=_EntryTypeEnumTypeWrapper): + """Entry type""" + +ENTRY_TYPE_UNSPECIFIED: EntryType.ValueType # 0 +ENTRY_TYPE_ATTRIBUTE: EntryType.ValueType # 1 +ENTRY_TYPE_SENSOR: EntryType.ValueType # 2 +ENTRY_TYPE_ACTUATOR: EntryType.ValueType # 3 +global___EntryType = EntryType + +class _View: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _ViewEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_View.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + VIEW_UNSPECIFIED: _View.ValueType # 0 + """Unspecified. Equivalent to VIEW_CURRENT_VALUE unless `fields` are explicitly set.""" + VIEW_CURRENT_VALUE: _View.ValueType # 1 + """Populate DataEntry with value.""" + VIEW_TARGET_VALUE: _View.ValueType # 2 + """Populate DataEntry with actuator target.""" + VIEW_METADATA: _View.ValueType # 3 + """Populate DataEntry with metadata.""" + VIEW_FIELDS: _View.ValueType # 10 + """Populate DataEntry only with requested fields.""" + VIEW_ALL: _View.ValueType # 20 + """Populate DataEntry with everything.""" + +class View(_View, metaclass=_ViewEnumTypeWrapper): + """A `View` specifies a set of fields which should + be populated in a `DataEntry` (in a response message) + """ + +VIEW_UNSPECIFIED: View.ValueType # 0 +"""Unspecified. Equivalent to VIEW_CURRENT_VALUE unless `fields` are explicitly set.""" +VIEW_CURRENT_VALUE: View.ValueType # 1 +"""Populate DataEntry with value.""" +VIEW_TARGET_VALUE: View.ValueType # 2 +"""Populate DataEntry with actuator target.""" +VIEW_METADATA: View.ValueType # 3 +"""Populate DataEntry with metadata.""" +VIEW_FIELDS: View.ValueType # 10 +"""Populate DataEntry only with requested fields.""" +VIEW_ALL: View.ValueType # 20 +"""Populate DataEntry with everything.""" +global___View = View + +class _Field: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _FieldEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Field.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + FIELD_UNSPECIFIED: _Field.ValueType # 0 + """"*" i.e. everything""" + FIELD_PATH: _Field.ValueType # 1 + """path""" + FIELD_VALUE: _Field.ValueType # 2 + """value""" + FIELD_ACTUATOR_TARGET: _Field.ValueType # 3 + """actuator_target""" + FIELD_METADATA: _Field.ValueType # 10 + """metadata.*""" + FIELD_METADATA_DATA_TYPE: _Field.ValueType # 11 + """metadata.data_type""" + FIELD_METADATA_DESCRIPTION: _Field.ValueType # 12 + """metadata.description""" + FIELD_METADATA_ENTRY_TYPE: _Field.ValueType # 13 + """metadata.entry_type""" + FIELD_METADATA_COMMENT: _Field.ValueType # 14 + """metadata.comment""" + FIELD_METADATA_DEPRECATION: _Field.ValueType # 15 + """metadata.deprecation""" + FIELD_METADATA_UNIT: _Field.ValueType # 16 + """metadata.unit""" + FIELD_METADATA_VALUE_RESTRICTION: _Field.ValueType # 17 + """metadata.value_restriction.*""" + FIELD_METADATA_ACTUATOR: _Field.ValueType # 20 + """metadata.actuator.*""" + FIELD_METADATA_SENSOR: _Field.ValueType # 30 + """metadata.sensor.*""" + FIELD_METADATA_ATTRIBUTE: _Field.ValueType # 40 + """metadata.attribute.*""" + +class Field(_Field, metaclass=_FieldEnumTypeWrapper): + """A `Field` corresponds to a specific field of a `DataEntry`. + + It can be used to: + * populate only specific fields of a `DataEntry` response. + * specify which fields of a `DataEntry` should be set as + part of a `Set` request. + * subscribe to only specific fields of a data entry. + * convey which fields of an updated `DataEntry` have changed. + """ + +FIELD_UNSPECIFIED: Field.ValueType # 0 +""""*" i.e. everything""" +FIELD_PATH: Field.ValueType # 1 +"""path""" +FIELD_VALUE: Field.ValueType # 2 +"""value""" +FIELD_ACTUATOR_TARGET: Field.ValueType # 3 +"""actuator_target""" +FIELD_METADATA: Field.ValueType # 10 +"""metadata.*""" +FIELD_METADATA_DATA_TYPE: Field.ValueType # 11 +"""metadata.data_type""" +FIELD_METADATA_DESCRIPTION: Field.ValueType # 12 +"""metadata.description""" +FIELD_METADATA_ENTRY_TYPE: Field.ValueType # 13 +"""metadata.entry_type""" +FIELD_METADATA_COMMENT: Field.ValueType # 14 +"""metadata.comment""" +FIELD_METADATA_DEPRECATION: Field.ValueType # 15 +"""metadata.deprecation""" +FIELD_METADATA_UNIT: Field.ValueType # 16 +"""metadata.unit""" +FIELD_METADATA_VALUE_RESTRICTION: Field.ValueType # 17 +"""metadata.value_restriction.*""" +FIELD_METADATA_ACTUATOR: Field.ValueType # 20 +"""metadata.actuator.*""" +FIELD_METADATA_SENSOR: Field.ValueType # 30 +"""metadata.sensor.*""" +FIELD_METADATA_ATTRIBUTE: Field.ValueType # 40 +"""metadata.attribute.*""" +global___Field = Field + +@typing_extensions.final +class DataEntry(google.protobuf.message.Message): + """Describes a VSS entry + When requesting an entry, the amount of information returned can + be controlled by specifying either a `View` or a set of `Field`s. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PATH_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + ACTUATOR_TARGET_FIELD_NUMBER: builtins.int + METADATA_FIELD_NUMBER: builtins.int + path: builtins.str + """Defines the full VSS path of the entry. + [field: FIELD_PATH] + """ + @property + def value(self) -> global___Datapoint: + """The value (datapoint) + [field: FIELD_VALUE] + """ + @property + def actuator_target(self) -> global___Datapoint: + """Actuator target (only used if the entry is an actuator) + [field: FIELD_ACTUATOR_TARGET] + """ + @property + def metadata(self) -> global___Metadata: + """Metadata for this entry + [field: FIELD_METADATA] + """ + def __init__( + self, + *, + path: builtins.str = ..., + value: global___Datapoint | None = ..., + actuator_target: global___Datapoint | None = ..., + metadata: global___Metadata | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["actuator_target", b"actuator_target", "metadata", b"metadata", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["actuator_target", b"actuator_target", "metadata", b"metadata", "path", b"path", "value", b"value"]) -> None: ... + +global___DataEntry = DataEntry + +@typing_extensions.final +class Datapoint(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TIMESTAMP_FIELD_NUMBER: builtins.int + STRING_FIELD_NUMBER: builtins.int + BOOL_FIELD_NUMBER: builtins.int + INT32_FIELD_NUMBER: builtins.int + INT64_FIELD_NUMBER: builtins.int + UINT32_FIELD_NUMBER: builtins.int + UINT64_FIELD_NUMBER: builtins.int + FLOAT_FIELD_NUMBER: builtins.int + DOUBLE_FIELD_NUMBER: builtins.int + STRING_ARRAY_FIELD_NUMBER: builtins.int + BOOL_ARRAY_FIELD_NUMBER: builtins.int + INT32_ARRAY_FIELD_NUMBER: builtins.int + INT64_ARRAY_FIELD_NUMBER: builtins.int + UINT32_ARRAY_FIELD_NUMBER: builtins.int + UINT64_ARRAY_FIELD_NUMBER: builtins.int + FLOAT_ARRAY_FIELD_NUMBER: builtins.int + DOUBLE_ARRAY_FIELD_NUMBER: builtins.int + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ... + string: builtins.str + bool: builtins.bool + int32: builtins.int + int64: builtins.int + uint32: builtins.int + uint64: builtins.int + float: builtins.float + double: builtins.float + @property + def string_array(self) -> global___StringArray: ... + @property + def bool_array(self) -> global___BoolArray: ... + @property + def int32_array(self) -> global___Int32Array: ... + @property + def int64_array(self) -> global___Int64Array: ... + @property + def uint32_array(self) -> global___Uint32Array: ... + @property + def uint64_array(self) -> global___Uint64Array: ... + @property + def float_array(self) -> global___FloatArray: ... + @property + def double_array(self) -> global___DoubleArray: ... + def __init__( + self, + *, + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + string: builtins.str = ..., + bool: builtins.bool = ..., + int32: builtins.int = ..., + int64: builtins.int = ..., + uint32: builtins.int = ..., + uint64: builtins.int = ..., + float: builtins.float = ..., + double: builtins.float = ..., + string_array: global___StringArray | None = ..., + bool_array: global___BoolArray | None = ..., + int32_array: global___Int32Array | None = ..., + int64_array: global___Int64Array | None = ..., + uint32_array: global___Uint32Array | None = ..., + uint64_array: global___Uint64Array | None = ..., + float_array: global___FloatArray | None = ..., + double_array: global___DoubleArray | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["bool", b"bool", "bool_array", b"bool_array", "double", b"double", "double_array", b"double_array", "float", b"float", "float_array", b"float_array", "int32", b"int32", "int32_array", b"int32_array", "int64", b"int64", "int64_array", b"int64_array", "string", b"string", "string_array", b"string_array", "timestamp", b"timestamp", "uint32", b"uint32", "uint32_array", b"uint32_array", "uint64", b"uint64", "uint64_array", b"uint64_array", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["bool", b"bool", "bool_array", b"bool_array", "double", b"double", "double_array", b"double_array", "float", b"float", "float_array", b"float_array", "int32", b"int32", "int32_array", b"int32_array", "int64", b"int64", "int64_array", b"int64_array", "string", b"string", "string_array", b"string_array", "timestamp", b"timestamp", "uint32", b"uint32", "uint32_array", b"uint32_array", "uint64", b"uint64", "uint64_array", b"uint64_array", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["string", "bool", "int32", "int64", "uint32", "uint64", "float", "double", "string_array", "bool_array", "int32_array", "int64_array", "uint32_array", "uint64_array", "float_array", "double_array"] | None: ... + +global___Datapoint = Datapoint + +@typing_extensions.final +class Metadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DATA_TYPE_FIELD_NUMBER: builtins.int + ENTRY_TYPE_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + COMMENT_FIELD_NUMBER: builtins.int + DEPRECATION_FIELD_NUMBER: builtins.int + UNIT_FIELD_NUMBER: builtins.int + VALUE_RESTRICTION_FIELD_NUMBER: builtins.int + ACTUATOR_FIELD_NUMBER: builtins.int + SENSOR_FIELD_NUMBER: builtins.int + ATTRIBUTE_FIELD_NUMBER: builtins.int + data_type: global___DataType.ValueType + """Data type + The VSS data type of the entry (i.e. the value, min, max etc). + + NOTE: protobuf doesn't have int8, int16, uint8 or uint16 which means + that these values must be serialized as int32 and uint32 respectively. + [field: FIELD_METADATA_DATA_TYPE] + """ + entry_type: global___EntryType.ValueType + """Entry type + [field: FIELD_METADATA_ENTRY_TYPE] + """ + description: builtins.str + """Description + Describes the meaning and content of the entry. + [field: FIELD_METADATA_DESCRIPTION] + """ + comment: builtins.str + """Comment [optional] + A comment can be used to provide additional informal information + on a entry. + [field: FIELD_METADATA_COMMENT] + """ + deprecation: builtins.str + """Deprecation [optional] + Whether this entry is deprecated. Can contain recommendations of what + to use instead. + [field: FIELD_METADATA_DEPRECATION] + """ + unit: builtins.str + """Unit [optional] + The unit of measurement + [field: FIELD_METADATA_UNIT] + """ + @property + def value_restriction(self) -> global___ValueRestriction: + """Value restrictions [optional] + Restrict which values are allowed. + Only restrictions matching the DataType {datatype} above are valid. + [field: FIELD_METADATA_VALUE_RESTRICTION] + """ + @property + def actuator(self) -> global___Actuator: + """[field: FIELD_METADATA_ACTUATOR]""" + @property + def sensor(self) -> global___Sensor: + """[field: FIELD_METADATA_SENSOR]""" + @property + def attribute(self) -> global___Attribute: + """[field: FIELD_METADATA_ATTRIBUTE]""" + def __init__( + self, + *, + data_type: global___DataType.ValueType = ..., + entry_type: global___EntryType.ValueType = ..., + description: builtins.str | None = ..., + comment: builtins.str | None = ..., + deprecation: builtins.str | None = ..., + unit: builtins.str | None = ..., + value_restriction: global___ValueRestriction | None = ..., + actuator: global___Actuator | None = ..., + sensor: global___Sensor | None = ..., + attribute: global___Attribute | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_comment", b"_comment", "_deprecation", b"_deprecation", "_description", b"_description", "_unit", b"_unit", "actuator", b"actuator", "attribute", b"attribute", "comment", b"comment", "deprecation", b"deprecation", "description", b"description", "entry_specific", b"entry_specific", "sensor", b"sensor", "unit", b"unit", "value_restriction", b"value_restriction"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_comment", b"_comment", "_deprecation", b"_deprecation", "_description", b"_description", "_unit", b"_unit", "actuator", b"actuator", "attribute", b"attribute", "comment", b"comment", "data_type", b"data_type", "deprecation", b"deprecation", "description", b"description", "entry_specific", b"entry_specific", "entry_type", b"entry_type", "sensor", b"sensor", "unit", b"unit", "value_restriction", b"value_restriction"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_comment", b"_comment"]) -> typing_extensions.Literal["comment"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_deprecation", b"_deprecation"]) -> typing_extensions.Literal["deprecation"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_description", b"_description"]) -> typing_extensions.Literal["description"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_unit", b"_unit"]) -> typing_extensions.Literal["unit"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["entry_specific", b"entry_specific"]) -> typing_extensions.Literal["actuator", "sensor", "attribute"] | None: ... + +global___Metadata = Metadata + +@typing_extensions.final +class Actuator(google.protobuf.message.Message): + """///////////////////// + Actuator specific fields + Nothing for now + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___Actuator = Actuator + +@typing_extensions.final +class Sensor(google.protobuf.message.Message): + """////////////////////// + Sensor specific + Nothing for now + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___Sensor = Sensor + +@typing_extensions.final +class Attribute(google.protobuf.message.Message): + """////////////////////// + Attribute specific + Nothing for now. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___Attribute = Attribute + +@typing_extensions.final +class ValueRestriction(google.protobuf.message.Message): + """Value restriction + + One ValueRestriction{type} for each type, since + they don't make sense unless the types match + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STRING_FIELD_NUMBER: builtins.int + SIGNED_FIELD_NUMBER: builtins.int + UNSIGNED_FIELD_NUMBER: builtins.int + FLOATING_POINT_FIELD_NUMBER: builtins.int + @property + def string(self) -> global___ValueRestrictionString: ... + @property + def signed(self) -> global___ValueRestrictionInt: + """For signed VSS integers""" + @property + def unsigned(self) -> global___ValueRestrictionUint: + """For unsigned VSS integers""" + @property + def floating_point(self) -> global___ValueRestrictionFloat: + """For floating point VSS values (float and double)""" + def __init__( + self, + *, + string: global___ValueRestrictionString | None = ..., + signed: global___ValueRestrictionInt | None = ..., + unsigned: global___ValueRestrictionUint | None = ..., + floating_point: global___ValueRestrictionFloat | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["floating_point", b"floating_point", "signed", b"signed", "string", b"string", "type", b"type", "unsigned", b"unsigned"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["floating_point", b"floating_point", "signed", b"signed", "string", b"string", "type", b"type", "unsigned", b"unsigned"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["string", "signed", "unsigned", "floating_point"] | None: ... + +global___ValueRestriction = ValueRestriction + +@typing_extensions.final +class ValueRestrictionInt(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + MIN_FIELD_NUMBER: builtins.int + MAX_FIELD_NUMBER: builtins.int + ALLOWED_VALUES_FIELD_NUMBER: builtins.int + min: builtins.int + max: builtins.int + @property + def allowed_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + min: builtins.int | None = ..., + max: builtins.int | None = ..., + allowed_values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_max", b"_max", "_min", b"_min", "max", b"max", "min", b"min"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_max", b"_max", "_min", b"_min", "allowed_values", b"allowed_values", "max", b"max", "min", b"min"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_max", b"_max"]) -> typing_extensions.Literal["max"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_min", b"_min"]) -> typing_extensions.Literal["min"] | None: ... + +global___ValueRestrictionInt = ValueRestrictionInt + +@typing_extensions.final +class ValueRestrictionUint(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + MIN_FIELD_NUMBER: builtins.int + MAX_FIELD_NUMBER: builtins.int + ALLOWED_VALUES_FIELD_NUMBER: builtins.int + min: builtins.int + max: builtins.int + @property + def allowed_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + min: builtins.int | None = ..., + max: builtins.int | None = ..., + allowed_values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_max", b"_max", "_min", b"_min", "max", b"max", "min", b"min"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_max", b"_max", "_min", b"_min", "allowed_values", b"allowed_values", "max", b"max", "min", b"min"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_max", b"_max"]) -> typing_extensions.Literal["max"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_min", b"_min"]) -> typing_extensions.Literal["min"] | None: ... + +global___ValueRestrictionUint = ValueRestrictionUint + +@typing_extensions.final +class ValueRestrictionFloat(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + MIN_FIELD_NUMBER: builtins.int + MAX_FIELD_NUMBER: builtins.int + ALLOWED_VALUES_FIELD_NUMBER: builtins.int + min: builtins.float + max: builtins.float + @property + def allowed_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + """allowed for doubles/floats not recommended""" + def __init__( + self, + *, + min: builtins.float | None = ..., + max: builtins.float | None = ..., + allowed_values: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_max", b"_max", "_min", b"_min", "max", b"max", "min", b"min"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_max", b"_max", "_min", b"_min", "allowed_values", b"allowed_values", "max", b"max", "min", b"min"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_max", b"_max"]) -> typing_extensions.Literal["max"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_min", b"_min"]) -> typing_extensions.Literal["min"] | None: ... + +global___ValueRestrictionFloat = ValueRestrictionFloat + +@typing_extensions.final +class ValueRestrictionString(google.protobuf.message.Message): + """min, max doesn't make much sense for a string""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ALLOWED_VALUES_FIELD_NUMBER: builtins.int + @property + def allowed_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + allowed_values: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["allowed_values", b"allowed_values"]) -> None: ... + +global___ValueRestrictionString = ValueRestrictionString + +@typing_extensions.final +class Error(google.protobuf.message.Message): + """Error response shall be an HTTP-like code. + Should follow https://www.w3.org/TR/viss2-transport/#status-codes. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CODE_FIELD_NUMBER: builtins.int + REASON_FIELD_NUMBER: builtins.int + MESSAGE_FIELD_NUMBER: builtins.int + code: builtins.int + reason: builtins.str + message: builtins.str + def __init__( + self, + *, + code: builtins.int = ..., + reason: builtins.str = ..., + message: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["code", b"code", "message", b"message", "reason", b"reason"]) -> None: ... + +global___Error = Error + +@typing_extensions.final +class DataEntryError(google.protobuf.message.Message): + """Used in get/set requests to report errors for specific entries""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PATH_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + path: builtins.str + """vss path""" + @property + def error(self) -> global___Error: ... + def __init__( + self, + *, + path: builtins.str = ..., + error: global___Error | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["error", b"error", "path", b"path"]) -> None: ... + +global___DataEntryError = DataEntryError + +@typing_extensions.final +class StringArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___StringArray = StringArray + +@typing_extensions.final +class BoolArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.bool] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___BoolArray = BoolArray + +@typing_extensions.final +class Int32Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___Int32Array = Int32Array + +@typing_extensions.final +class Int64Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___Int64Array = Int64Array + +@typing_extensions.final +class Uint32Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___Uint32Array = Uint32Array + +@typing_extensions.final +class Uint64Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___Uint64Array = Uint64Array + +@typing_extensions.final +class FloatArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___FloatArray = FloatArray + +@typing_extensions.final +class DoubleArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___DoubleArray = DoubleArray diff --git a/integration_test/gen_proto/kuksa/val/v1/types_pb2_grpc.py b/integration_test/kuksa/val/v1/types_pb2_grpc.py similarity index 100% rename from integration_test/gen_proto/kuksa/val/v1/types_pb2_grpc.py rename to integration_test/kuksa/val/v1/types_pb2_grpc.py diff --git a/integration_test/gen_proto/kuksa/val/v1/val_pb2.py b/integration_test/kuksa/val/v1/val_pb2.py similarity index 100% rename from integration_test/gen_proto/kuksa/val/v1/val_pb2.py rename to integration_test/kuksa/val/v1/val_pb2.py diff --git a/integration_test/kuksa/val/v1/val_pb2.pyi b/integration_test/kuksa/val/v1/val_pb2.pyi new file mode 100644 index 0000000..9e73bd4 --- /dev/null +++ b/integration_test/kuksa/val/v1/val_pb2.pyi @@ -0,0 +1,257 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +******************************************************************************* +Copyright (c) 2022 Contributors to the Eclipse Foundation + +See the NOTICE file(s) distributed with this work for additional +information regarding copyright ownership. + +This program and the accompanying materials are made available under the +terms of the Apache License 2.0 which is available at +http://www.apache.org/licenses/LICENSE-2.0 + +SPDX-License-Identifier: Apache-2.0 +****************************************************************************** +""" +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import kuksa.val.v1.types_pb2 +import sys + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class EntryRequest(google.protobuf.message.Message): + """Define which data we want""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PATH_FIELD_NUMBER: builtins.int + VIEW_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int + path: builtins.str + view: kuksa.val.v1.types_pb2.View.ValueType + @property + def fields(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[kuksa.val.v1.types_pb2.Field.ValueType]: ... + def __init__( + self, + *, + path: builtins.str = ..., + view: kuksa.val.v1.types_pb2.View.ValueType = ..., + fields: collections.abc.Iterable[kuksa.val.v1.types_pb2.Field.ValueType] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["fields", b"fields", "path", b"path", "view", b"view"]) -> None: ... + +global___EntryRequest = EntryRequest + +@typing_extensions.final +class GetRequest(google.protobuf.message.Message): + """Request a set of entries.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ENTRIES_FIELD_NUMBER: builtins.int + @property + def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntryRequest]: ... + def __init__( + self, + *, + entries: collections.abc.Iterable[global___EntryRequest] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entries", b"entries"]) -> None: ... + +global___GetRequest = GetRequest + +@typing_extensions.final +class GetResponse(google.protobuf.message.Message): + """Global errors are specified in `error`. + Errors for individual entries are specified in `errors`. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ENTRIES_FIELD_NUMBER: builtins.int + ERRORS_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + @property + def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[kuksa.val.v1.types_pb2.DataEntry]: ... + @property + def errors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[kuksa.val.v1.types_pb2.DataEntryError]: ... + @property + def error(self) -> kuksa.val.v1.types_pb2.Error: ... + def __init__( + self, + *, + entries: collections.abc.Iterable[kuksa.val.v1.types_pb2.DataEntry] | None = ..., + errors: collections.abc.Iterable[kuksa.val.v1.types_pb2.DataEntryError] | None = ..., + error: kuksa.val.v1.types_pb2.Error | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["entries", b"entries", "error", b"error", "errors", b"errors"]) -> None: ... + +global___GetResponse = GetResponse + +@typing_extensions.final +class EntryUpdate(google.protobuf.message.Message): + """Define the data we want to set""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ENTRY_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int + @property + def entry(self) -> kuksa.val.v1.types_pb2.DataEntry: ... + @property + def fields(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[kuksa.val.v1.types_pb2.Field.ValueType]: ... + def __init__( + self, + *, + entry: kuksa.val.v1.types_pb2.DataEntry | None = ..., + fields: collections.abc.Iterable[kuksa.val.v1.types_pb2.Field.ValueType] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["entry", b"entry"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["entry", b"entry", "fields", b"fields"]) -> None: ... + +global___EntryUpdate = EntryUpdate + +@typing_extensions.final +class SetRequest(google.protobuf.message.Message): + """A list of entries to be updated""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + UPDATES_FIELD_NUMBER: builtins.int + @property + def updates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntryUpdate]: ... + def __init__( + self, + *, + updates: collections.abc.Iterable[global___EntryUpdate] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["updates", b"updates"]) -> None: ... + +global___SetRequest = SetRequest + +@typing_extensions.final +class SetResponse(google.protobuf.message.Message): + """Global errors are specified in `error`. + Errors for individual entries are specified in `errors`. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ERROR_FIELD_NUMBER: builtins.int + ERRORS_FIELD_NUMBER: builtins.int + @property + def error(self) -> kuksa.val.v1.types_pb2.Error: ... + @property + def errors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[kuksa.val.v1.types_pb2.DataEntryError]: ... + def __init__( + self, + *, + error: kuksa.val.v1.types_pb2.Error | None = ..., + errors: collections.abc.Iterable[kuksa.val.v1.types_pb2.DataEntryError] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["error", b"error", "errors", b"errors"]) -> None: ... + +global___SetResponse = SetResponse + +@typing_extensions.final +class SubscribeEntry(google.protobuf.message.Message): + """Define what to subscribe to""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PATH_FIELD_NUMBER: builtins.int + VIEW_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int + path: builtins.str + view: kuksa.val.v1.types_pb2.View.ValueType + @property + def fields(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[kuksa.val.v1.types_pb2.Field.ValueType]: ... + def __init__( + self, + *, + path: builtins.str = ..., + view: kuksa.val.v1.types_pb2.View.ValueType = ..., + fields: collections.abc.Iterable[kuksa.val.v1.types_pb2.Field.ValueType] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["fields", b"fields", "path", b"path", "view", b"view"]) -> None: ... + +global___SubscribeEntry = SubscribeEntry + +@typing_extensions.final +class SubscribeRequest(google.protobuf.message.Message): + """Subscribe to changes in datapoints.""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ENTRIES_FIELD_NUMBER: builtins.int + @property + def entries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SubscribeEntry]: ... + def __init__( + self, + *, + entries: collections.abc.Iterable[global___SubscribeEntry] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["entries", b"entries"]) -> None: ... + +global___SubscribeRequest = SubscribeRequest + +@typing_extensions.final +class SubscribeResponse(google.protobuf.message.Message): + """A subscription response""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + UPDATES_FIELD_NUMBER: builtins.int + @property + def updates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntryUpdate]: ... + def __init__( + self, + *, + updates: collections.abc.Iterable[global___EntryUpdate] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["updates", b"updates"]) -> None: ... + +global___SubscribeResponse = SubscribeResponse + +@typing_extensions.final +class GetServerInfoRequest(google.protobuf.message.Message): + """Nothing yet""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___GetServerInfoRequest = GetServerInfoRequest + +@typing_extensions.final +class GetServerInfoResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + name: builtins.str + version: builtins.str + def __init__( + self, + *, + name: builtins.str = ..., + version: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "version", b"version"]) -> None: ... + +global___GetServerInfoResponse = GetServerInfoResponse diff --git a/integration_test/gen_proto/kuksa/val/v1/val_pb2_grpc.py b/integration_test/kuksa/val/v1/val_pb2_grpc.py similarity index 100% rename from integration_test/gen_proto/kuksa/val/v1/val_pb2_grpc.py rename to integration_test/kuksa/val/v1/val_pb2_grpc.py diff --git a/integration_test/requirements-dev.txt b/integration_test/requirements-dev.txt index b6cfda9..53f312d 100644 --- a/integration_test/requirements-dev.txt +++ b/integration_test/requirements-dev.txt @@ -1,5 +1,5 @@ grpcio>=1.44.0 -grpcio-tools +grpcio-tools>=1.54.2 protobuf>=3.19.4 pydocstyle mypy diff --git a/integration_test/sdv/__init__.py b/integration_test/sdv/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/integration_test/sdv/databroker/__init__.py b/integration_test/sdv/databroker/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/integration_test/sdv/databroker/v1/__init__.py b/integration_test/sdv/databroker/v1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/integration_test/gen_proto/sdv/databroker/v1/broker_pb2.py b/integration_test/sdv/databroker/v1/broker_pb2.py similarity index 98% rename from integration_test/gen_proto/sdv/databroker/v1/broker_pb2.py rename to integration_test/sdv/databroker/v1/broker_pb2.py index fdba4ac..117a3e1 100644 --- a/integration_test/gen_proto/sdv/databroker/v1/broker_pb2.py +++ b/integration_test/sdv/databroker/v1/broker_pb2.py @@ -11,7 +11,7 @@ _sym_db = _symbol_database.Default() -from gen_proto.sdv.databroker.v1 import types_pb2 as sdv_dot_databroker_dot_v1_dot_types__pb2 +from sdv.databroker.v1 import types_pb2 as sdv_dot_databroker_dot_v1_dot_types__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1esdv/databroker/v1/broker.proto\x12\x11sdv.databroker.v1\x1a\x1dsdv/databroker/v1/types.proto\"*\n\x14GetDatapointsRequest\x12\x12\n\ndatapoints\x18\x01 \x03(\t\"\xb0\x01\n\x12GetDatapointsReply\x12I\n\ndatapoints\x18\x01 \x03(\x0b\x32\x35.sdv.databroker.v1.GetDatapointsReply.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xb4\x01\n\x14SetDatapointsRequest\x12K\n\ndatapoints\x18\x01 \x03(\x0b\x32\x37.sdv.databroker.v1.SetDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xa9\x01\n\x12SetDatapointsReply\x12\x41\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x31.sdv.databroker.v1.SetDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"!\n\x10SubscribeRequest\x12\r\n\x05query\x18\x02 \x01(\t\"\x9c\x01\n\x0eSubscribeReply\x12=\n\x06\x66ields\x18\x01 \x03(\x0b\x32-.sdv.databroker.v1.SubscribeReply.FieldsEntry\x1aK\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"#\n\x12GetMetadataRequest\x12\r\n\x05names\x18\x01 \x03(\t\"=\n\x10GetMetadataReply\x12)\n\x04list\x18\x01 \x03(\x0b\x32\x1b.sdv.databroker.v1.Metadata2\xfc\x02\n\x06\x42roker\x12_\n\rGetDatapoints\x12\'.sdv.databroker.v1.GetDatapointsRequest\x1a%.sdv.databroker.v1.GetDatapointsReply\x12_\n\rSetDatapoints\x12\'.sdv.databroker.v1.SetDatapointsRequest\x1a%.sdv.databroker.v1.SetDatapointsReply\x12U\n\tSubscribe\x12#.sdv.databroker.v1.SubscribeRequest\x1a!.sdv.databroker.v1.SubscribeReply0\x01\x12Y\n\x0bGetMetadata\x12%.sdv.databroker.v1.GetMetadataRequest\x1a#.sdv.databroker.v1.GetMetadataReplyb\x06proto3') diff --git a/integration_test/sdv/databroker/v1/broker_pb2.pyi b/integration_test/sdv/databroker/v1/broker_pb2.pyi new file mode 100644 index 0000000..cd930fb --- /dev/null +++ b/integration_test/sdv/databroker/v1/broker_pb2.pyi @@ -0,0 +1,253 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +******************************************************************************* +Copyright (c) 2022 Contributors to the Eclipse Foundation + +See the NOTICE file(s) distributed with this work for additional +information regarding copyright ownership. + +This program and the accompanying materials are made available under the +terms of the Apache License 2.0 which is available at +http://www.apache.org/licenses/LICENSE-2.0 + +SPDX-License-Identifier: Apache-2.0 +****************************************************************************** +""" +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import sdv.databroker.v1.types_pb2 +import sys + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class GetDatapointsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + DATAPOINTS_FIELD_NUMBER: builtins.int + @property + def datapoints(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """A list of requested data points.""" + def __init__( + self, + *, + datapoints: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["datapoints", b"datapoints"]) -> None: ... + +global___GetDatapointsRequest = GetDatapointsRequest + +@typing_extensions.final +class GetDatapointsReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class DatapointsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> sdv.databroker.v1.types_pb2.Datapoint: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: sdv.databroker.v1.types_pb2.Datapoint | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + DATAPOINTS_FIELD_NUMBER: builtins.int + @property + def datapoints(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, sdv.databroker.v1.types_pb2.Datapoint]: + """Contains the values of the requested data points. + If a requested data point is not available, the corresponding Datapoint + will have the respective failure value set. + """ + def __init__( + self, + *, + datapoints: collections.abc.Mapping[builtins.str, sdv.databroker.v1.types_pb2.Datapoint] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["datapoints", b"datapoints"]) -> None: ... + +global___GetDatapointsReply = GetDatapointsReply + +@typing_extensions.final +class SetDatapointsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class DatapointsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> sdv.databroker.v1.types_pb2.Datapoint: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: sdv.databroker.v1.types_pb2.Datapoint | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + DATAPOINTS_FIELD_NUMBER: builtins.int + @property + def datapoints(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, sdv.databroker.v1.types_pb2.Datapoint]: + """A map of data points to set""" + def __init__( + self, + *, + datapoints: collections.abc.Mapping[builtins.str, sdv.databroker.v1.types_pb2.Datapoint] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["datapoints", b"datapoints"]) -> None: ... + +global___SetDatapointsRequest = SetDatapointsRequest + +@typing_extensions.final +class SetDatapointsReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class ErrorsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: sdv.databroker.v1.types_pb2.DatapointError.ValueType + def __init__( + self, + *, + key: builtins.str = ..., + value: sdv.databroker.v1.types_pb2.DatapointError.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + ERRORS_FIELD_NUMBER: builtins.int + @property + def errors(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, sdv.databroker.v1.types_pb2.DatapointError.ValueType]: + """A map of errors (if any)""" + def __init__( + self, + *, + errors: collections.abc.Mapping[builtins.str, sdv.databroker.v1.types_pb2.DatapointError.ValueType] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["errors", b"errors"]) -> None: ... + +global___SetDatapointsReply = SetDatapointsReply + +@typing_extensions.final +class SubscribeRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + QUERY_FIELD_NUMBER: builtins.int + query: builtins.str + """Subscribe to a set of data points (or expressions) described + by the provided query. + The query syntax is a subset of SQL and is described in more + detail in the QUERY.md file. + """ + def __init__( + self, + *, + query: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["query", b"query"]) -> None: ... + +global___SubscribeRequest = SubscribeRequest + +@typing_extensions.final +class SubscribeReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class FieldsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + @property + def value(self) -> sdv.databroker.v1.types_pb2.Datapoint: ... + def __init__( + self, + *, + key: builtins.str = ..., + value: sdv.databroker.v1.types_pb2.Datapoint | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + FIELDS_FIELD_NUMBER: builtins.int + @property + def fields(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, sdv.databroker.v1.types_pb2.Datapoint]: + """Contains the fields specified by the query. + If a requested data point value is not available, the corresponding + Datapoint will have it's respective failure value set. + """ + def __init__( + self, + *, + fields: collections.abc.Mapping[builtins.str, sdv.databroker.v1.types_pb2.Datapoint] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["fields", b"fields"]) -> None: ... + +global___SubscribeReply = SubscribeReply + +@typing_extensions.final +class GetMetadataRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAMES_FIELD_NUMBER: builtins.int + @property + def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """Request metadata for a list of data points referenced by their names. + e.g. "Vehicle.Cabin.Seat.Row1.Pos1.Position" or "Vehicle.Speed". + + If no names are provided, metadata for all known data points will be + returned. + """ + def __init__( + self, + *, + names: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["names", b"names"]) -> None: ... + +global___GetMetadataRequest = GetMetadataRequest + +@typing_extensions.final +class GetMetadataReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LIST_FIELD_NUMBER: builtins.int + @property + def list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[sdv.databroker.v1.types_pb2.Metadata]: + """Contains metadata of the requested data points. If a data point + doesn't exist (i.e. not known to the Data Broker) the corresponding + Metadata isn't part of the returned list. + """ + def __init__( + self, + *, + list: collections.abc.Iterable[sdv.databroker.v1.types_pb2.Metadata] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["list", b"list"]) -> None: ... + +global___GetMetadataReply = GetMetadataReply diff --git a/integration_test/gen_proto/sdv/databroker/v1/broker_pb2_grpc.py b/integration_test/sdv/databroker/v1/broker_pb2_grpc.py similarity index 98% rename from integration_test/gen_proto/sdv/databroker/v1/broker_pb2_grpc.py rename to integration_test/sdv/databroker/v1/broker_pb2_grpc.py index 31b6fcf..f8536ea 100644 --- a/integration_test/gen_proto/sdv/databroker/v1/broker_pb2_grpc.py +++ b/integration_test/sdv/databroker/v1/broker_pb2_grpc.py @@ -2,7 +2,7 @@ """Client and server classes corresponding to protobuf-defined services.""" import grpc -from gen_proto.sdv.databroker.v1 import broker_pb2 as sdv_dot_databroker_dot_v1_dot_broker__pb2 +from sdv.databroker.v1 import broker_pb2 as sdv_dot_databroker_dot_v1_dot_broker__pb2 class BrokerStub(object): diff --git a/integration_test/gen_proto/sdv/databroker/v1/collector_pb2.py b/integration_test/sdv/databroker/v1/collector_pb2.py similarity index 98% rename from integration_test/gen_proto/sdv/databroker/v1/collector_pb2.py rename to integration_test/sdv/databroker/v1/collector_pb2.py index be2450b..d3d8766 100644 --- a/integration_test/gen_proto/sdv/databroker/v1/collector_pb2.py +++ b/integration_test/sdv/databroker/v1/collector_pb2.py @@ -11,7 +11,7 @@ _sym_db = _symbol_database.Default() -from gen_proto.sdv.databroker.v1 import types_pb2 as sdv_dot_databroker_dot_v1_dot_types__pb2 +from sdv.databroker.v1 import types_pb2 as sdv_dot_databroker_dot_v1_dot_types__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!sdv/databroker/v1/collector.proto\x12\x11sdv.databroker.v1\x1a\x1dsdv/databroker/v1/types.proto\"\xba\x01\n\x17UpdateDatapointsRequest\x12N\n\ndatapoints\x18\x01 \x03(\x0b\x32:.sdv.databroker.v1.UpdateDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xaf\x01\n\x15UpdateDatapointsReply\x12\x44\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x34.sdv.databroker.v1.UpdateDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"\xba\x01\n\x17StreamDatapointsRequest\x12N\n\ndatapoints\x18\x01 \x03(\x0b\x32:.sdv.databroker.v1.StreamDatapointsRequest.DatapointsEntry\x1aO\n\x0f\x44\x61tapointsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x1c.sdv.databroker.v1.Datapoint:\x02\x38\x01\"\xaf\x01\n\x15StreamDatapointsReply\x12\x44\n\x06\x65rrors\x18\x01 \x03(\x0b\x32\x34.sdv.databroker.v1.StreamDatapointsReply.ErrorsEntry\x1aP\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0e\x32!.sdv.databroker.v1.DatapointError:\x02\x38\x01\"R\n\x19RegisterDatapointsRequest\x12\x35\n\x04list\x18\x01 \x03(\x0b\x32\'.sdv.databroker.v1.RegistrationMetadata\"\x9d\x01\n\x14RegistrationMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\tdata_type\x18\x02 \x01(\x0e\x32\x1b.sdv.databroker.v1.DataType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x32\n\x0b\x63hange_type\x18\x04 \x01(\x0e\x32\x1d.sdv.databroker.v1.ChangeType\"\x93\x01\n\x17RegisterDatapointsReply\x12H\n\x07results\x18\x01 \x03(\x0b\x32\x37.sdv.databroker.v1.RegisterDatapointsReply.ResultsEntry\x1a.\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x32\xd3\x02\n\tCollector\x12n\n\x12RegisterDatapoints\x12,.sdv.databroker.v1.RegisterDatapointsRequest\x1a*.sdv.databroker.v1.RegisterDatapointsReply\x12h\n\x10UpdateDatapoints\x12*.sdv.databroker.v1.UpdateDatapointsRequest\x1a(.sdv.databroker.v1.UpdateDatapointsReply\x12l\n\x10StreamDatapoints\x12*.sdv.databroker.v1.StreamDatapointsRequest\x1a(.sdv.databroker.v1.StreamDatapointsReply(\x01\x30\x01\x62\x06proto3') diff --git a/integration_test/sdv/databroker/v1/collector_pb2.pyi b/integration_test/sdv/databroker/v1/collector_pb2.pyi new file mode 100644 index 0000000..297470b --- /dev/null +++ b/integration_test/sdv/databroker/v1/collector_pb2.pyi @@ -0,0 +1,240 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +******************************************************************************* +Copyright (c) 2022 Contributors to the Eclipse Foundation + +See the NOTICE file(s) distributed with this work for additional +information regarding copyright ownership. + +This program and the accompanying materials are made available under the +terms of the Apache License 2.0 which is available at +http://www.apache.org/licenses/LICENSE-2.0 + +SPDX-License-Identifier: Apache-2.0 +****************************************************************************** +""" +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.message +import sdv.databroker.v1.types_pb2 +import sys + +if sys.version_info >= (3, 8): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing_extensions.final +class UpdateDatapointsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class DatapointsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + @property + def value(self) -> sdv.databroker.v1.types_pb2.Datapoint: ... + def __init__( + self, + *, + key: builtins.int = ..., + value: sdv.databroker.v1.types_pb2.Datapoint | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + DATAPOINTS_FIELD_NUMBER: builtins.int + @property + def datapoints(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, sdv.databroker.v1.types_pb2.Datapoint]: ... + def __init__( + self, + *, + datapoints: collections.abc.Mapping[builtins.int, sdv.databroker.v1.types_pb2.Datapoint] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["datapoints", b"datapoints"]) -> None: ... + +global___UpdateDatapointsRequest = UpdateDatapointsRequest + +@typing_extensions.final +class UpdateDatapointsReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class ErrorsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: sdv.databroker.v1.types_pb2.DatapointError.ValueType + def __init__( + self, + *, + key: builtins.int = ..., + value: sdv.databroker.v1.types_pb2.DatapointError.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + ERRORS_FIELD_NUMBER: builtins.int + @property + def errors(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, sdv.databroker.v1.types_pb2.DatapointError.ValueType]: + """If empty, everything went well""" + def __init__( + self, + *, + errors: collections.abc.Mapping[builtins.int, sdv.databroker.v1.types_pb2.DatapointError.ValueType] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["errors", b"errors"]) -> None: ... + +global___UpdateDatapointsReply = UpdateDatapointsReply + +@typing_extensions.final +class StreamDatapointsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class DatapointsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + @property + def value(self) -> sdv.databroker.v1.types_pb2.Datapoint: ... + def __init__( + self, + *, + key: builtins.int = ..., + value: sdv.databroker.v1.types_pb2.Datapoint | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + DATAPOINTS_FIELD_NUMBER: builtins.int + @property + def datapoints(self) -> google.protobuf.internal.containers.MessageMap[builtins.int, sdv.databroker.v1.types_pb2.Datapoint]: ... + def __init__( + self, + *, + datapoints: collections.abc.Mapping[builtins.int, sdv.databroker.v1.types_pb2.Datapoint] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["datapoints", b"datapoints"]) -> None: ... + +global___StreamDatapointsRequest = StreamDatapointsRequest + +@typing_extensions.final +class StreamDatapointsReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class ErrorsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.int + value: sdv.databroker.v1.types_pb2.DatapointError.ValueType + def __init__( + self, + *, + key: builtins.int = ..., + value: sdv.databroker.v1.types_pb2.DatapointError.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + ERRORS_FIELD_NUMBER: builtins.int + @property + def errors(self) -> google.protobuf.internal.containers.ScalarMap[builtins.int, sdv.databroker.v1.types_pb2.DatapointError.ValueType]: + """If empty, everything went well""" + def __init__( + self, + *, + errors: collections.abc.Mapping[builtins.int, sdv.databroker.v1.types_pb2.DatapointError.ValueType] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["errors", b"errors"]) -> None: ... + +global___StreamDatapointsReply = StreamDatapointsReply + +@typing_extensions.final +class RegisterDatapointsRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LIST_FIELD_NUMBER: builtins.int + @property + def list(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RegistrationMetadata]: ... + def __init__( + self, + *, + list: collections.abc.Iterable[global___RegistrationMetadata] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["list", b"list"]) -> None: ... + +global___RegisterDatapointsRequest = RegisterDatapointsRequest + +@typing_extensions.final +class RegistrationMetadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + NAME_FIELD_NUMBER: builtins.int + DATA_TYPE_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + CHANGE_TYPE_FIELD_NUMBER: builtins.int + name: builtins.str + """Name of the data point + (e.g. "Vehicle.Cabin.Seat.Row1.Pos1.Position" or "Vehicle.Speed") + """ + data_type: sdv.databroker.v1.types_pb2.DataType.ValueType + description: builtins.str + change_type: sdv.databroker.v1.types_pb2.ChangeType.ValueType + def __init__( + self, + *, + name: builtins.str = ..., + data_type: sdv.databroker.v1.types_pb2.DataType.ValueType = ..., + description: builtins.str = ..., + change_type: sdv.databroker.v1.types_pb2.ChangeType.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["change_type", b"change_type", "data_type", b"data_type", "description", b"description", "name", b"name"]) -> None: ... + +global___RegistrationMetadata = RegistrationMetadata + +@typing_extensions.final +class RegisterDatapointsReply(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class ResultsEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.int + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + RESULTS_FIELD_NUMBER: builtins.int + @property + def results(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.int]: + """Maps each data point name passed in RegisterDatapointsRequest to a data point id""" + def __init__( + self, + *, + results: collections.abc.Mapping[builtins.str, builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["results", b"results"]) -> None: ... + +global___RegisterDatapointsReply = RegisterDatapointsReply diff --git a/integration_test/gen_proto/sdv/databroker/v1/collector_pb2_grpc.py b/integration_test/sdv/databroker/v1/collector_pb2_grpc.py similarity index 98% rename from integration_test/gen_proto/sdv/databroker/v1/collector_pb2_grpc.py rename to integration_test/sdv/databroker/v1/collector_pb2_grpc.py index cb73b05..d6ed07c 100644 --- a/integration_test/gen_proto/sdv/databroker/v1/collector_pb2_grpc.py +++ b/integration_test/sdv/databroker/v1/collector_pb2_grpc.py @@ -2,7 +2,7 @@ """Client and server classes corresponding to protobuf-defined services.""" import grpc -from gen_proto.sdv.databroker.v1 import collector_pb2 as sdv_dot_databroker_dot_v1_dot_collector__pb2 +from sdv.databroker.v1 import collector_pb2 as sdv_dot_databroker_dot_v1_dot_collector__pb2 class CollectorStub(object): diff --git a/integration_test/gen_proto/sdv/databroker/v1/types_pb2.py b/integration_test/sdv/databroker/v1/types_pb2.py similarity index 100% rename from integration_test/gen_proto/sdv/databroker/v1/types_pb2.py rename to integration_test/sdv/databroker/v1/types_pb2.py diff --git a/integration_test/sdv/databroker/v1/types_pb2.pyi b/integration_test/sdv/databroker/v1/types_pb2.pyi new file mode 100644 index 0000000..e2d66ef --- /dev/null +++ b/integration_test/sdv/databroker/v1/types_pb2.pyi @@ -0,0 +1,432 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +******************************************************************************* +Copyright (c) 2022 Contributors to the Eclipse Foundation + +See the NOTICE file(s) distributed with this work for additional +information regarding copyright ownership. + +This program and the accompanying materials are made available under the +terms of the Apache License 2.0 which is available at +http://www.apache.org/licenses/LICENSE-2.0 + +SPDX-License-Identifier: Apache-2.0 +****************************************************************************** +""" +import builtins +import collections.abc +import google.protobuf.descriptor +import google.protobuf.internal.containers +import google.protobuf.internal.enum_type_wrapper +import google.protobuf.message +import google.protobuf.timestamp_pb2 +import sys +import typing + +if sys.version_info >= (3, 10): + import typing as typing_extensions +else: + import typing_extensions + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +class _DataType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _DataTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DataType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + STRING: _DataType.ValueType # 0 + BOOL: _DataType.ValueType # 1 + INT8: _DataType.ValueType # 2 + INT16: _DataType.ValueType # 3 + INT32: _DataType.ValueType # 4 + INT64: _DataType.ValueType # 5 + UINT8: _DataType.ValueType # 6 + UINT16: _DataType.ValueType # 7 + UINT32: _DataType.ValueType # 8 + UINT64: _DataType.ValueType # 9 + FLOAT: _DataType.ValueType # 10 + DOUBLE: _DataType.ValueType # 11 + STRING_ARRAY: _DataType.ValueType # 20 + BOOL_ARRAY: _DataType.ValueType # 21 + INT8_ARRAY: _DataType.ValueType # 22 + INT16_ARRAY: _DataType.ValueType # 23 + INT32_ARRAY: _DataType.ValueType # 24 + INT64_ARRAY: _DataType.ValueType # 25 + UINT8_ARRAY: _DataType.ValueType # 26 + UINT16_ARRAY: _DataType.ValueType # 27 + UINT32_ARRAY: _DataType.ValueType # 28 + UINT64_ARRAY: _DataType.ValueType # 29 + FLOAT_ARRAY: _DataType.ValueType # 30 + DOUBLE_ARRAY: _DataType.ValueType # 31 + +class DataType(_DataType, metaclass=_DataTypeEnumTypeWrapper): + """Data type of a signal + + Protobuf doesn't support int8, int16, uint8 or uint16. + These are mapped to sint32 and uint32 respectively. + """ + +STRING: DataType.ValueType # 0 +BOOL: DataType.ValueType # 1 +INT8: DataType.ValueType # 2 +INT16: DataType.ValueType # 3 +INT32: DataType.ValueType # 4 +INT64: DataType.ValueType # 5 +UINT8: DataType.ValueType # 6 +UINT16: DataType.ValueType # 7 +UINT32: DataType.ValueType # 8 +UINT64: DataType.ValueType # 9 +FLOAT: DataType.ValueType # 10 +DOUBLE: DataType.ValueType # 11 +STRING_ARRAY: DataType.ValueType # 20 +BOOL_ARRAY: DataType.ValueType # 21 +INT8_ARRAY: DataType.ValueType # 22 +INT16_ARRAY: DataType.ValueType # 23 +INT32_ARRAY: DataType.ValueType # 24 +INT64_ARRAY: DataType.ValueType # 25 +UINT8_ARRAY: DataType.ValueType # 26 +UINT16_ARRAY: DataType.ValueType # 27 +UINT32_ARRAY: DataType.ValueType # 28 +UINT64_ARRAY: DataType.ValueType # 29 +FLOAT_ARRAY: DataType.ValueType # 30 +DOUBLE_ARRAY: DataType.ValueType # 31 +global___DataType = DataType + +class _DatapointError: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _DatapointErrorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DatapointError.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNKNOWN_DATAPOINT: _DatapointError.ValueType # 0 + INVALID_TYPE: _DatapointError.ValueType # 1 + ACCESS_DENIED: _DatapointError.ValueType # 2 + INTERNAL_ERROR: _DatapointError.ValueType # 3 + OUT_OF_BOUNDS: _DatapointError.ValueType # 4 + +class DatapointError(_DatapointError, metaclass=_DatapointErrorEnumTypeWrapper): ... + +UNKNOWN_DATAPOINT: DatapointError.ValueType # 0 +INVALID_TYPE: DatapointError.ValueType # 1 +ACCESS_DENIED: DatapointError.ValueType # 2 +INTERNAL_ERROR: DatapointError.ValueType # 3 +OUT_OF_BOUNDS: DatapointError.ValueType # 4 +global___DatapointError = DatapointError + +class _EntryType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _EntryTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_EntryType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + ENTRY_TYPE_UNSPECIFIED: _EntryType.ValueType # 0 + ENTRY_TYPE_SENSOR: _EntryType.ValueType # 1 + ENTRY_TYPE_ACTUATOR: _EntryType.ValueType # 2 + ENTRY_TYPE_ATTRIBUTE: _EntryType.ValueType # 3 + +class EntryType(_EntryType, metaclass=_EntryTypeEnumTypeWrapper): ... + +ENTRY_TYPE_UNSPECIFIED: EntryType.ValueType # 0 +ENTRY_TYPE_SENSOR: EntryType.ValueType # 1 +ENTRY_TYPE_ACTUATOR: EntryType.ValueType # 2 +ENTRY_TYPE_ATTRIBUTE: EntryType.ValueType # 3 +global___EntryType = EntryType + +class _ChangeType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _ChangeTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ChangeType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + STATIC: _ChangeType.ValueType # 0 + """Value never changes""" + ON_CHANGE: _ChangeType.ValueType # 1 + """Updates are provided every time the value changes (i.e.""" + CONTINUOUS: _ChangeType.ValueType # 2 + """window is open / closed) + Value is updated continuously. Broker needs to tell + """ + +class ChangeType(_ChangeType, metaclass=_ChangeTypeEnumTypeWrapper): ... + +STATIC: ChangeType.ValueType # 0 +"""Value never changes""" +ON_CHANGE: ChangeType.ValueType # 1 +"""Updates are provided every time the value changes (i.e.""" +CONTINUOUS: ChangeType.ValueType # 2 +"""window is open / closed) +Value is updated continuously. Broker needs to tell +""" +global___ChangeType = ChangeType + +@typing_extensions.final +class StringArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___StringArray = StringArray + +@typing_extensions.final +class BoolArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.bool] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___BoolArray = BoolArray + +@typing_extensions.final +class Int32Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___Int32Array = Int32Array + +@typing_extensions.final +class Int64Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___Int64Array = Int64Array + +@typing_extensions.final +class Uint32Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___Uint32Array = Uint32Array + +@typing_extensions.final +class Uint64Array(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___Uint64Array = Uint64Array + +@typing_extensions.final +class FloatArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___FloatArray = FloatArray + +@typing_extensions.final +class DoubleArray(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + VALUES_FIELD_NUMBER: builtins.int + @property + def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[builtins.float] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["values", b"values"]) -> None: ... + +global___DoubleArray = DoubleArray + +@typing_extensions.final +class Datapoint(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _Failure: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _FailureEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Datapoint._Failure.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + INVALID_VALUE: Datapoint._Failure.ValueType # 0 + """The data point is known, but doesn't have a valid value""" + NOT_AVAILABLE: Datapoint._Failure.ValueType # 1 + """The data point is known, but no value is available""" + UNKNOWN_DATAPOINT: Datapoint._Failure.ValueType # 2 + """Unknown datapoint""" + ACCESS_DENIED: Datapoint._Failure.ValueType # 3 + """Access denied""" + INTERNAL_ERROR: Datapoint._Failure.ValueType # 4 + """Unexpected internal error""" + + class Failure(_Failure, metaclass=_FailureEnumTypeWrapper): ... + INVALID_VALUE: Datapoint.Failure.ValueType # 0 + """The data point is known, but doesn't have a valid value""" + NOT_AVAILABLE: Datapoint.Failure.ValueType # 1 + """The data point is known, but no value is available""" + UNKNOWN_DATAPOINT: Datapoint.Failure.ValueType # 2 + """Unknown datapoint""" + ACCESS_DENIED: Datapoint.Failure.ValueType # 3 + """Access denied""" + INTERNAL_ERROR: Datapoint.Failure.ValueType # 4 + """Unexpected internal error""" + + TIMESTAMP_FIELD_NUMBER: builtins.int + FAILURE_VALUE_FIELD_NUMBER: builtins.int + STRING_VALUE_FIELD_NUMBER: builtins.int + BOOL_VALUE_FIELD_NUMBER: builtins.int + INT32_VALUE_FIELD_NUMBER: builtins.int + INT64_VALUE_FIELD_NUMBER: builtins.int + UINT32_VALUE_FIELD_NUMBER: builtins.int + UINT64_VALUE_FIELD_NUMBER: builtins.int + FLOAT_VALUE_FIELD_NUMBER: builtins.int + DOUBLE_VALUE_FIELD_NUMBER: builtins.int + STRING_ARRAY_FIELD_NUMBER: builtins.int + BOOL_ARRAY_FIELD_NUMBER: builtins.int + INT32_ARRAY_FIELD_NUMBER: builtins.int + INT64_ARRAY_FIELD_NUMBER: builtins.int + UINT32_ARRAY_FIELD_NUMBER: builtins.int + UINT64_ARRAY_FIELD_NUMBER: builtins.int + FLOAT_ARRAY_FIELD_NUMBER: builtins.int + DOUBLE_ARRAY_FIELD_NUMBER: builtins.int + @property + def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + """Timestamp of the value""" + failure_value: global___Datapoint.Failure.ValueType + string_value: builtins.str + bool_value: builtins.bool + int32_value: builtins.int + int64_value: builtins.int + uint32_value: builtins.int + uint64_value: builtins.int + float_value: builtins.float + double_value: builtins.float + @property + def string_array(self) -> global___StringArray: ... + @property + def bool_array(self) -> global___BoolArray: ... + @property + def int32_array(self) -> global___Int32Array: ... + @property + def int64_array(self) -> global___Int64Array: ... + @property + def uint32_array(self) -> global___Uint32Array: ... + @property + def uint64_array(self) -> global___Uint64Array: ... + @property + def float_array(self) -> global___FloatArray: ... + @property + def double_array(self) -> global___DoubleArray: ... + def __init__( + self, + *, + timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ..., + failure_value: global___Datapoint.Failure.ValueType = ..., + string_value: builtins.str = ..., + bool_value: builtins.bool = ..., + int32_value: builtins.int = ..., + int64_value: builtins.int = ..., + uint32_value: builtins.int = ..., + uint64_value: builtins.int = ..., + float_value: builtins.float = ..., + double_value: builtins.float = ..., + string_array: global___StringArray | None = ..., + bool_array: global___BoolArray | None = ..., + int32_array: global___Int32Array | None = ..., + int64_array: global___Int64Array | None = ..., + uint32_array: global___Uint32Array | None = ..., + uint64_array: global___Uint64Array | None = ..., + float_array: global___FloatArray | None = ..., + double_array: global___DoubleArray | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["bool_array", b"bool_array", "bool_value", b"bool_value", "double_array", b"double_array", "double_value", b"double_value", "failure_value", b"failure_value", "float_array", b"float_array", "float_value", b"float_value", "int32_array", b"int32_array", "int32_value", b"int32_value", "int64_array", b"int64_array", "int64_value", b"int64_value", "string_array", b"string_array", "string_value", b"string_value", "timestamp", b"timestamp", "uint32_array", b"uint32_array", "uint32_value", b"uint32_value", "uint64_array", b"uint64_array", "uint64_value", b"uint64_value", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["bool_array", b"bool_array", "bool_value", b"bool_value", "double_array", b"double_array", "double_value", b"double_value", "failure_value", b"failure_value", "float_array", b"float_array", "float_value", b"float_value", "int32_array", b"int32_array", "int32_value", b"int32_value", "int64_array", b"int64_array", "int64_value", b"int64_value", "string_array", b"string_array", "string_value", b"string_value", "timestamp", b"timestamp", "uint32_array", b"uint32_array", "uint32_value", b"uint32_value", "uint64_array", b"uint64_array", "uint64_value", b"uint64_value", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["failure_value", "string_value", "bool_value", "int32_value", "int64_value", "uint32_value", "uint64_value", "float_value", "double_value", "string_array", "bool_array", "int32_array", "int64_array", "uint32_array", "uint64_array", "float_array", "double_array"] | None: ... + +global___Datapoint = Datapoint + +@typing_extensions.final +class Metadata(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + ENTRY_TYPE_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: builtins.int + DATA_TYPE_FIELD_NUMBER: builtins.int + CHANGE_TYPE_FIELD_NUMBER: builtins.int + DESCRIPTION_FIELD_NUMBER: builtins.int + id: builtins.int + """Id to be used in "get" and "subscribe" requests. Ids stay valid during + one power cycle, only. + """ + entry_type: global___EntryType.ValueType + name: builtins.str + data_type: global___DataType.ValueType + change_type: global___ChangeType.ValueType + """CONTINUOUS or STATIC or ON_CHANGE""" + description: builtins.str + def __init__( + self, + *, + id: builtins.int = ..., + entry_type: global___EntryType.ValueType = ..., + name: builtins.str = ..., + data_type: global___DataType.ValueType = ..., + change_type: global___ChangeType.ValueType = ..., + description: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["change_type", b"change_type", "data_type", b"data_type", "description", b"description", "entry_type", b"entry_type", "id", b"id", "name", b"name"]) -> None: ... + +global___Metadata = Metadata diff --git a/integration_test/gen_proto/sdv/databroker/v1/types_pb2_grpc.py b/integration_test/sdv/databroker/v1/types_pb2_grpc.py similarity index 100% rename from integration_test/gen_proto/sdv/databroker/v1/types_pb2_grpc.py rename to integration_test/sdv/databroker/v1/types_pb2_grpc.py diff --git a/integration_test/setup.py b/integration_test/setup.py index 014b91e..bfb7833 100644 --- a/integration_test/setup.py +++ b/integration_test/setup.py @@ -15,9 +15,11 @@ PKG_VERSION = "v0.1.0" +pkg_packages = find_packages() + setup( name="kuksa.val_integration", - packages=find_packages(), + packages=pkg_packages, version=PKG_VERSION, classifiers=[ 'License :: OSI Approved :: Apache Software License' diff --git a/integration_test/test_feeder.py b/integration_test/test_feeder.py index bed7c74..e92ffb3 100644 --- a/integration_test/test_feeder.py +++ b/integration_test/test_feeder.py @@ -15,9 +15,10 @@ import json import logging import os +from pickle import FALSE import pytest -from gen_proto.sdv.databroker.v1.types_pb2 import Datapoint +from sdv.databroker.v1.types_pb2 import Datapoint from vdb_helper import VDBHelper logger = logging.getLogger(__name__) @@ -53,11 +54,19 @@ async def test_feeder_vdb_connection() -> None: @pytest.mark.asyncio async def test_feeder_metadata_registered(setup_helper: VDBHelper) -> None: helper = setup_helper + + # register optional DogMode datapoints (disabled by default) + # logger.debug("# Registering optional DogMode datapoints...") + # await helper.set_bool_datapoint("Vehicle.Cabin.DogMode", False) + # await helper.set_float_datapoint("Vehicle.Cabin.DogModeTemperature", 25.0) + feeder_names = [ "Vehicle.OBD.Speed", - "Vehicle.Powertrain.Transmission.Gear", - "Vehicle.Chassis.ParkingBrake.IsEngaged", "Vehicle.OBD.EngineLoad", + "Vehicle.Powertrain.Transmission.CurrentGear", # [feedercan:v0.1.10]: "Vehicle.Powertrain.Transmission.Gear", + "Vehicle.Powertrain.Transmission.IsParkLockEngaged" # [feedercan:v0.1.10]: "Vehicle.Chassis.ParkingBrake.IsEngaged", + # "Vehicle.Cabin.DogMode", + # "Vehicle.Cabin.DogModeTemperature", ] meta = await helper.get_vdb_metadata(feeder_names) @@ -145,4 +154,4 @@ def inner_callback(name: str, dp: Datapoint): if __name__ == "__main__": - pytest.main(["-vvs", "--log-cli-level=INFO", os.path.abspath(__file__)]) + pytest.main(["-vvs", "--log-cli-level=DEBUG", os.path.abspath(__file__)]) diff --git a/integration_test/test_hvac.py b/integration_test/test_hvac.py index 0cedb88..ee11a09 100644 --- a/integration_test/test_hvac.py +++ b/integration_test/test_hvac.py @@ -20,7 +20,7 @@ from threading import Thread import pytest -from gen_proto.sdv.databroker.v1.types_pb2 import Datapoint +from sdv.databroker.v1.types_pb2 import Datapoint from vdb_helper import SubscribeRunner, VDBHelper # prevents dumping "E0617: Fork support is only compatible with the epoll1 and poll polling strategies" diff --git a/integration_test/test_val_seat.py b/integration_test/test_val_seat.py index 23c4c88..c14711d 100644 --- a/integration_test/test_val_seat.py +++ b/integration_test/test_val_seat.py @@ -19,9 +19,14 @@ import grpc import pytest -from gen_proto.sdv.databroker.v1.types_pb2 import Datapoint, DataType + +from sdv.databroker.v1.types_pb2 import Datapoint, DataType from vdb_helper import VDBHelper +# kuksa API imported as package as some types are with same name +import kuksa.val.v1.types_pb2 as kuksa_types +import kuksa.val.v1.val_pb2 as kuksa_val + logger = logging.getLogger(__name__) logger.setLevel(os.getenv("LOG_LEVEL", "INFO")) @@ -243,6 +248,119 @@ def inner_callback(name: str, dp: Datapoint): await helper.close() +@pytest.mark.asyncio +async def test_kuksa_actuator_meta(setup_helper: VDBHelper) -> None: + helper = setup_helper + name = os.getenv("TEST_NAME", DEFAULT_VSS_PATH) + + get_response: kuksa_val.GetResponse = await helper.kuksa_get([name]) + logger.debug("# kuksa_get({}) -> \n{}".format(name, str(get_response).replace("\n", " "))) + + assert not get_response.HasField("error"), "kuksa_get() Error: {}".format(str(get_response.error)) + assert len(get_response.errors) == 0, "kuksa_get() Errors: {}".format(str(get_response.errors)) + assert len(get_response.entries) == 1, "Unexpected entries count {}".format(str(get_response.entries + + + )) + entry: kuksa_types.DataEntry = get_response.entries[0] + assert entry.path == DEFAULT_VSS_PATH + assert entry.HasField("metadata") + # assert entry.HasField("actuator_target") + assert ( + entry.metadata.data_type == kuksa_types.DATA_TYPE_UINT16 + ), "Seat position data_type != UINT16: {}".format(entry.metadata.data_type) + assert ( + entry.metadata.entry_type == kuksa_types.ENTRY_TYPE_ACTUATOR + ), "Seat position entry_type != ACTUATOR: {}".format(entry.metadata.entry_type) + + """ + VAL.GetResponse(['Vehicle.Cabin.Seat.Row1.DriverSide.Position']) -> + entries { + path: "Vehicle.Cabin.Seat.Row1.DriverSide.Position" + value { + timestamp { + seconds: 1698920296 + nanos: 600480617 + } + uint32: 900 + } + actuator_target { + timestamp { + seconds: 1698920295 + nanos: 12134158 + } + uint32: 900 + } + metadata { + data_type: DATA_TYPE_UINT16 + entry_type: ENTRY_TYPE_ACTUATOR + description: "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported." + } + } + """ + + + await helper.close() + + + +@pytest.mark.asyncio +async def test_subscribe_actuator_pos(setup_helper: VDBHelper) -> None: + helper: VDBHelper = setup_helper + name = os.getenv("TEST_NAME", DEFAULT_VSS_PATH) + query = "SELECT {}".format(name) + + start_value = int(os.getenv("TEST_START_VALUE", "500")) + expected_value = int(os.getenv("TEST_VALUE", "0")) + timeout = int(os.getenv("TEST_TIMEOUT", "10")) + + # initiate seat move to 42 + logger.info(" -- moving seat to initial pos: {} (sync)".format(start_value)) + # sync move to predefined pos + execute_script([SCRIPT_SEAT_MOVE, str(start_value), "-w"]) + + events = [] + # inner function for collecting subscription events + + def inner_callback(name: str, dp: Datapoint): + dd = helper.datapoint_to_dict(name, dp) + events.append(dd) + + logger.info(" -- setting seat position {} (async) via actuator target...".format(expected_value)) + await helper.set_actuator_uint32_value(name, expected_value); + + logger.debug( + "\n# subscribing('{}', timeout={}), expecting:{}".format( + query, timeout, expected_value + ) + ) + await helper.subscribe_datapoints( + query, timeout=timeout, sub_callback=inner_callback + ) + + assert ( # nosec B101 + len(events) > 0 + ), "Not received events for '{}' in {} sec.".format(name, timeout) + # list of received names + event_names = set([e["name"] for e in events]) + # list of received values + event_values_name = [e["value"] for e in events if e["name"] == name] + + logger.debug(" --> names : {}".format(event_names)) + # event_values = [e['value'] for e in events] + # logger.debug(" --> values : {}".format(event_values)) + logger.debug(" --> <{}> : {}".format(name, event_values_name)) + + assert name in event_names, "{} event not received! {}".format( # nosec B101 + name, event_names + ) + + assert ( # nosec B101 + expected_value in event_values_name + ), "{} value {} missing! {}".format(name, expected_value, event_values_name) + + await helper.close() + async def main() -> None: log_level = os.environ.get("LOG_LEVEL", "INFO") logging.basicConfig(format="<%(levelname)s>\t%(message)s", level=log_level) @@ -250,4 +368,4 @@ async def main() -> None: if __name__ == "__main__": # execute_script([SCRIPT_SEAT_MOVE, "500", "-w"]) - pytest.main(["-vvs", "--log-cli-level=INFO", os.path.abspath(__file__)]) + pytest.main(["-vvs", "--log-cli-level=DEBUG", os.path.abspath(__file__)]) diff --git a/integration_test/update-protobuf.sh b/integration_test/update-protobuf.sh index 7920345..217c58c 100755 --- a/integration_test/update-protobuf.sh +++ b/integration_test/update-protobuf.sh @@ -16,7 +16,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" || exit 1 -GEN_DIR="./gen_proto" +GEN_DIR="." # "./gen_proto" [ -d "$GEN_DIR" ] || mkdir -p "$GEN_DIR" @@ -27,22 +27,9 @@ if [ ! -d "$DATABROKER_PROTO" ]; then exit 1 fi -if [ "$1" = "--force" ]; then - echo "# get proto files from master:" - set -x - curl -o $DATABROKER_PROTO/kuksa/val/v1/types.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/proto/kuksa/val/v1/types.proto - curl -o $DATABROKER_PROTO/kuksa/val/v1/val.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/proto/kuksa/val/v1/val.proto - curl -o $DATABROKER_PROTO/kuksa/val/v1/README.md --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/proto/kuksa/val/v1/README.md - - curl -o $DATABROKER_PROTO/sdv/databroker/v1/broker.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/kuksa_databroker/proto/sdv/databroker/v1/broker.proto - curl -o $DATABROKER_PROTO/sdv/databroker/v1/collector.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/kuksa_databroker/proto/sdv/databroker/v1/collector.proto - curl -o $DATABROKER_PROTO/sdv/databroker/v1/types.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/kuksa_databroker/proto/sdv/databroker/v1/types.proto - curl -o $DATABROKER_PROTO/sdv/databroker/v1/README.md --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/kuksa_databroker/proto/sdv/databroker/v1/README.md -fi - # make sure deps are installed echo "# Installing requirements-dev.txt ..." -pip3 install -q -U -r requirements-dev.txt +pip3 install -q -r requirements-dev.txt #pip3 install -q -r requirements.txt set -xe @@ -56,11 +43,25 @@ python3 -m grpc_tools.protoc \ --proto_path="$DATABROKER_PROTO" \ --mypy_out="$GEN_DIR" \ $PROTO_FILES -set +x +#set +x + +echo "# Ensure each generated folder contains an __init__.py ..." + +# Get root package names (unique) +# shellcheck disable=SC2068 # Double quotes don't work with grep +ROOT_PACKAGES=$(grep -Poshr "^package[[:space:]]+\K[_0-9A-Za-z]+" $PROTO_FILES | sort -u) +ROOT_DIRS="" +for p in $ROOT_PACKAGES; do + ROOT_DIRS="$GEN_DIR/$p $ROOT_DIRS" +done + +# Recursively add __init__.py files +find $ROOT_DIRS -type d -exec touch {}/"__init__.py" \; + echo "# Generated files:" -find "$GEN_DIR" -type f -name '*.py' +find $ROOT_DIRS -type f -name '*.py' -echo "# Replacing packages in $GEN_DIR" -find "$GEN_DIR" -type f -name '*.py' -print -exec sed -i 's/^from sdv.databroker.v1/from gen_proto.sdv.databroker.v1/g' {} ';' -find "$GEN_DIR" -type f -name '*.pyi' -print -exec sed -i 's/^import sdv.databroker.v1/import gen_proto.sdv.databroker.v1/g' {} ';' +#echo "# Replacing packages in $GEN_DIR" +#find "$GEN_DIR" -type f -name '*.py' -print -exec sed -i 's/^from sdv.databroker.v1/from gen_proto.sdv.databroker.v1/g' {} ';' +#find "$GEN_DIR" -type f -name '*.pyi' -print -exec sed -i 's/^import sdv.databroker.v1/import gen_proto.sdv.databroker.v1/g' {} ';' diff --git a/integration_test/vdb_helper.py b/integration_test/vdb_helper.py index 0465606..7c54a6f 100644 --- a/integration_test/vdb_helper.py +++ b/integration_test/vdb_helper.py @@ -20,23 +20,35 @@ import signal import threading from threading import Thread -from typing import Any, Callable, Dict, List, Mapping, Optional +from typing import Any, Callable, Dict, Iterable, List, Mapping, Optional import grpc + import pytest -from gen_proto.sdv.databroker.v1.broker_pb2 import ( + +from sdv.databroker.v1.broker_pb2 import ( GetDatapointsRequest, GetMetadataRequest, SubscribeRequest, ) -from gen_proto.sdv.databroker.v1.broker_pb2_grpc import BrokerStub -from gen_proto.sdv.databroker.v1.collector_pb2 import ( +from sdv.databroker.v1.broker_pb2_grpc import BrokerStub +from sdv.databroker.v1.collector_pb2 import ( RegisterDatapointsRequest, RegistrationMetadata, UpdateDatapointsRequest, ) -from gen_proto.sdv.databroker.v1.collector_pb2_grpc import CollectorStub -from gen_proto.sdv.databroker.v1.types_pb2 import ChangeType, Datapoint, DataType +from sdv.databroker.v1.collector_pb2_grpc import CollectorStub +from sdv.databroker.v1.types_pb2 import ( + ChangeType, + Datapoint, + DataType, +) + + +import kuksa.val.v1.types_pb2 as kuksa_types +import kuksa.val.v1.val_pb2 as kuksa_val +from kuksa.val.v1.val_pb2_grpc import VALStub + logger = logging.getLogger(__name__) @@ -59,6 +71,7 @@ def __init__(self, address: str) -> None: self._collector_stub = CollectorStub(self._channel) self._broker_stub = BrokerStub(self._channel) + self._val_stub = VALStub(self._channel) self._grpc_metadata = self.default_metadata() logger.debug("VDBHelper using metadata {}".format(self._grpc_metadata)) self._ids: Dict[str, int] = None # type: ignore @@ -92,12 +105,52 @@ async def __update_datapoints(self, datapoints: Mapping[int, Datapoint]): ) return response - async def __get_datapoints(self, datapoints: list): + async def __get_datapoints(self, datapoints : Iterable[str]): response = await self._broker_stub.GetDatapoints( GetDatapointsRequest(datapoints=datapoints), metadata=self._grpc_metadata ) return response + async def __set_datapoint(self, updates: list) -> kuksa_val.SetResponse: + response = await self._val_stub.Set( + kuksa_val.SetRequest(updates=updates), metadata=self._grpc_metadata + ) + return response + + + async def kuksa_get(self, names: List[str]) -> kuksa_val.GetResponse: + entries = [] + for path in names: + # get all fields + e = kuksa_val.EntryRequest( + path=path, + fields=[kuksa_types.Field.FIELD_UNSPECIFIED], + view=kuksa_types.View.VIEW_ALL + ) + entries.append(e) + response: kuksa_val.GetResponse = await self._val_stub.Get( + kuksa_val.GetRequest(entries=entries) + ) + logger.debug("# VAL.GetResponse({}) ->\n{}###\n".format(names, response)) + return response + + + async def set_actuator_uint32_value(self, actuator_name: str, value: int) -> None: + + de = kuksa_types.DataEntry( + path=actuator_name, + actuator_target=kuksa_types.Datapoint(uint32=value) + ) + entry = kuksa_val.EntryUpdate(entry=de, fields=[kuksa_types.Field.FIELD_ACTUATOR_TARGET]) + set_response: kuksa_val.SetResponse = await self._val_stub.Set(kuksa_val.SetRequest(updates=[entry])) + logger.debug("# SetResponse[{}] -> \n{}-------\n".format(actuator_name, set_response)) + + if set_response.HasField("error"): + logger.error("set_actuator_uint32_value[{}] -> error:{}".format(actuator_name, set_response.error)) + if len(set_response.errors) > 0: + logger.error("set_actuator_uint32_value[{}] -> errors:{}".format(actuator_name, set_response.errors)) + + async def get_vdb_metadata(self, names=[]): """Requests Metadata from VDB, allows for optional list of names @@ -145,6 +198,8 @@ def datapoint_to_dict(self, name: str, dp: Datapoint) -> dict: if value_type: # try to get directly dp.${which_one} attribute value = getattr(dp, value_type) + else: + value = None ts = ( dp.timestamp.seconds + int(dp.timestamp.nanos / 10**6) / 1000 ) # round to msec @@ -189,7 +244,7 @@ async def register_datapoint(self, name: str, data_type: DataType) -> int: registration_metadata = RegistrationMetadata() registration_metadata.name = name - registration_metadata.data_type = data_type + registration_metadata.data_type = data_type # type: ignore registration_metadata.description = "" registration_metadata.change_type = ChangeType.CONTINUOUS @@ -214,6 +269,14 @@ async def set_uint32_datapoint(self, name: str, value: int): ) return await self.__update_datapoints({datapoint_id: datapoint}) + async def set_bool_datapoint(self, name: str, value: bool): + datapoint = Datapoint() + datapoint.bool_value = value + datapoint_id = await self.__get_or_create_datapoint_id_by_name( + name, DataType.BOOL # type: ignore + ) + return await self.__update_datapoints({datapoint_id: datapoint}) + async def set_float_datapoint(self, name: str, value: float): datapoint = Datapoint() datapoint.float_value = value @@ -286,6 +349,8 @@ def __on_subscribe_event(name: str, dp: Datapoint) -> None: if value_type: # try to get directly dp.${which_one} attribute value = getattr(dp, value_type) + else: + value = None ts = ( dp.timestamp.seconds + int(dp.timestamp.nanos / 10**6) / 1000 ) # round to msec @@ -330,7 +395,7 @@ def get_events(self): def get_dp_values(self, dp_name: str) -> List[Datapoint]: return [dp["value"] for dp in self.events[dp_name]] - def find_dp_value(self, dp_name: str, dp_value: Any) -> Datapoint: + def find_dp_value(self, dp_name: str, dp_value: Any) -> Optional[Datapoint]: if dp_name not in self.events: return None for dp in self.events[dp_name]: @@ -386,13 +451,18 @@ def __subscibe_thread_proc(self) -> None: async def main() -> None: - LOG_LEVEL = os.environ.get("LOG_LEVEL", "INFO") + LOG_LEVEL = os.environ.get("LOG_LEVEL", "DEBUG") logging.basicConfig(format="<%(levelname)s>\t%(message)s", level=LOG_LEVEL) + name = "Vehicle.Cabin.Seat.Row1.DriverSide.Position" + vdb_addr = os.environ.get("VDB_ADDR", "localhost:55555") - query = os.environ.get("QUERY", "SELECT Vehicle.Cabin.Seat.Row1.DriverSide.Position") + query = os.environ.get("QUERY", "SELECT {}".format(name)) helper = VDBHelper(vdb_addr) + actuator_entry = await helper.kuksa_get([name]) + await helper.set_actuator_uint32_value(name, 100*10) + await helper.subscribe_datapoints( query, sub_callback=__on_subscribe_event, timeout=1 ) diff --git a/integration_test/volumes/dbc2val/config/dbc_feeder.ini b/integration_test/volumes/dbc2val/config/dbc_feeder.ini deleted file mode 100644 index 052dcda..0000000 --- a/integration_test/volumes/dbc2val/config/dbc_feeder.ini +++ /dev/null @@ -1,54 +0,0 @@ -######################################################################## -# Copyright (c) 2022 Robert Bosch GmbH -# -# This program and the accompanying materials are made -# available under the terms of the Eclipse Public License 2.0 -# which is available at https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -######################################################################## - -[general] -# use case: -# switch between databroker and kuksa -# default databroker -usecase = databroker -# VSS mapping file -mapping = mapping.yml - -[kuksa_val] -# kuksa VSS server address -# server=wss://localhost:8090 -# JWT security token file -# token=../../kuksa_certificates/jwt/super-admin.json.token - -[can] -# CAN port -port = vcan0 -# Enable SAE-J1939 Mode. False: ignore -j1939 = False -# DBC file used to parse CAN messages -dbcfile = Model3CAN.dbc -# Usage of the SocketCAN or virtual CAN replay with a dumpfile -# candumpfile not specified (commented out) = use SocketCAN (real or virtual provided by linux) -# candumpfile specified = use internal canplayer (no SocketCAN dependency) -candumpfile = candump_Manual_SOC_DogMode_CabinTemp.log - -[elmcan] -# Config for CAN port is \"elmcan\" -# Serial port where ELM is connected. -port = /dev/ttyAMA0 -# Baudrate to ELM -baud = 2000000 -# Acknowledge CAN messages -canack = false -# CAN bus speed -speed = 500000 - -[databroker] -# used address and port to the databroker -# default: -# address: localhost -# port: 55555 -# syntax: address:port -address = localhost:55555 \ No newline at end of file diff --git a/integration_test/volumes/dbc2val/config/it-dbc_feeder.ini b/integration_test/volumes/dbc2val/config/it-dbc_feeder.ini new file mode 100644 index 0000000..4f98f18 --- /dev/null +++ b/integration_test/volumes/dbc2val/config/it-dbc_feeder.ini @@ -0,0 +1,91 @@ +######################################################################## +# Copyright (c) 2022 Robert Bosch GmbH +# +# This program and the accompanying materials are made +# available under the terms of the Eclipse Public License 2.0 +# which is available at https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +######################################################################## + +[general] +# server type: +# switch between kuksa_databroker and kuksa_val_server +# default kuksa_val_server +#server_type = kuksa_val_server +server_type = kuksa_databroker +# VSS mapping file +mapping = mapping/vss_4.0/vss_dbc.json + +# Same configs used for KUKSA.val Server and Databroker +# Note that default values below corresponds to Databroker +# Default values for KUKSA.val Server is commented below + +# IP address for server (KUKSA.val Server or Databroker) +ip = 127.0.0.1 +# ip = localhost + +# Port for server (KUKSA.val Server or Databroker) +port = 55555 +# port = 8090 + +# Shall TLS be used (default False for Databroker, True for KUKSA.val Server) +tls = False +# tls = True + +# TLS-related settings +# Path to root CA, needed if using TLS +root_ca_path=../../kuksa.val/kuksa_certificates/CA.pem +# Server name, typically only needed if accessing server by IP address like 127.0.0.1 +# and typically only if connection to KUKSA.val Databroker +# If using KUKSA.val example certificates the names "Server" or "localhost" can be used. +# tls_server_name=localhost + +# Token file for authorization. +# Default behavior differ between servers +# For KUKSA.val Databroker the KUKSA.val default token not included in packages and containers +# If you run your Databroker so it require authentication you must specify token +# The example below works if you have cloned kuksa.val in parallel to kuksa.val.feeders +# token=../../kuksa.val/jwt/provide-all.token +# For KUKSA.val Server the default behavior is to use the token provided as part of kuksa-client +# So you only need to specify a different token if you want to use a different token +# Possibly like below +# token=../../kuksa.val/kuksa_certificates/jwt/super-admin.json.token + +# Definitions on what directions to support. +# Default is from CAN to KUKSA (dbc2val) only. +# Note however that a mapping also is required, so if you do not have any val2dbc mapping, then the val2dbc config +# does not matter +dbc2val = True +# Note that to enable val2dbc you must use SocketCAN, you cannot use candumpfile +val2dbc = False + +[can] +# CAN port, use elmcan to start the elmcan bridge +port = vcan0 +#port = elmcan +# Enable SAE-J1939 Mode. False: ignore +j1939 = False +# DBC file used to parse CAN messages +dbcfile = Model3CAN.dbc +# Usage of the SocketCAN or virtual CAN replay with a dumpfile +# candumpfile not specified (commented out) = use SocketCAN (real or virtual provided by linux) +# candumpfile specified = use internal canplayer (no SocketCAN dependency) +candumpfile = candump.log + +# JSON file containing default values for dbc signals +# Currently only used in val2dbc mode to populate dbc signals which either has no VSS mapping or where +# KUKSA.val not yet has a valid value +# Values (default or actual) must exist for all DBC signals in CAN frames sent. +dbc_default_file = dbc_default_values.json + +[elmcan] +# Config for CAN port is \"elmcan\" +# Serial port where ELM is connected. +port = /dev/ttyAMA0 +# Baudrate to ELM +baud = 2000000 +# Acknowledge CAN messages +canack = false +# CAN bus speed +speed = 500000 diff --git a/integration_test/volumes/dbc2val/it-can.dbc b/integration_test/volumes/dbc2val/it-can.dbc index a1cddd0..a969dba 100644 --- a/integration_test/volumes/dbc2val/it-can.dbc +++ b/integration_test/volumes/dbc2val/it-can.dbc @@ -33,7 +33,7 @@ NS_ : BS_: -BU_: Receiver ChassisBus VehicleBus PartyBus apb ui app aps bms gtwu odin cc cmp cp das dif dir di epas3p epas3s epbl epbr esp fc gtw hvp ibst ocs1p park pcs pmf pmr pm ptc radc rcm2 rcm sccm scm scs tas tpms umc vcfront vcleft vcright vcsec +BU_: Receiver ChassisBus VehicleBus PartyBus BO_ 827 BMS_DogMode: 2 VehicleBus SG_ DogModeTempSet : 8|8@1- (1,0) [-128|127] "" Vector__XXX @@ -66,6 +66,37 @@ BO_ 12 ID00CUI_status: 8 VehicleBus SG_ UI_wifiActive : 6|1@1+ (1,0) [0|1] "" Receiver SG_ UI_wifiConnected : 7|1@1+ (1,0) [0|1] "" Receiver +BO_ 851 ID353UI_status: 8 VehicleBus + SG_ UI_audioActive : 1|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_autopilotTrial : 12|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_bluetoothActive : 2|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_cameraActive : 41|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_cellActive : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_cellConnected : 10|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_cellNetworkTechnology : 19|4@1+ (1,0) [0|15] "" Receiver + SG_ UI_cellReceiverPower : 24|8@1+ (1,-128) [-128|127] "dB" Receiver + SG_ UI_cellSignalBars : 42|3@1+ (1,0) [0|7] "" Receiver + SG_ UI_cpuTemperature : 56|8@1- (1,40) [-20|100] "C" Receiver + SG_ UI_developmentCar : 40|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_displayOn : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_displayReady : 4|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_factoryReset : 14|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_falseTouchCounter : 32|8@1+ (1,0) [0|255] "1" Receiver + SG_ UI_gpsActive : 16|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_pcbTemperature : 48|8@1- (1,40) [-20|100] "C" Receiver + SG_ UI_radioActive : 18|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_readyForDrive : 9|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_screenshotActive : 17|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_systemActive : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_touchActive : 0|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_vpnActive : 11|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_wifiActive : 6|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_wifiConnected : 7|1@1+ (1,0) [0|1] "" Receiver + +BO_ 22 ID016DI_bmsRequest: 1 VehicleBus + SG_ DI_bmsOpenContactorsRequest : 4|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_bmsRequestInterfaceVersion : 0|4@1+ (1,0) [0|15] "" Receiver + BO_ 130 ID082UI_tripPlanning: 8 VehicleBus SG_ UI_energyAtDestination : 48|16@1- (0.01,0) [-327.67|327.67] "kWh" Receiver SG_ UI_hindsightEnergy : 32|16@1- (0.01,0) [-327.67|327.67] "kWh" Receiver @@ -84,6 +115,26 @@ BO_ 257 ID101RCM_inertial1: 8 ChassisBus SG_ RCM_yawRate : 0|16@1- (0.0001,0) [-3.2766|3.2766] "rad/s" Receiver SG_ RCM_yawRateQF : 48|1@1+ (1,0) [0|1] "" Receiver +BO_ 273 ID111RCM_inertial2: 8 ChassisBus + SG_ RCM_inertial2Checksum : 56|8@1+ (1,0) [0|255] "" Receiver + SG_ RCM_inertial2Counter : 52|4@1+ (1,0) [0|15] "" Receiver + SG_ RCM_lateralAccel : 16|16@1- (0.00125,0) [-40.9575|40.9575] "m/s^2" Receiver + SG_ RCM_lateralAccelQF : 49|1@1+ (1,0) [0|1] "" Receiver + SG_ RCM_longitudinalAccel : 0|16@1- (0.00125,0) [-40.9575|40.9575] "m/s^2" Receiver + SG_ RCM_longitudinalAccelQF : 48|1@1+ (1,0) [0|1] "" Receiver + SG_ RCM_verticalAccel : 32|16@1- (0.00125,0) [-40.9575|40.9575] "m/s^2" Receiver + SG_ RCM_verticalAccelQF : 50|1@1+ (1,0) [0|1] "" Receiver + +BO_ 278 RCM_inertial2New: 8 ChassisBus + SG_ RCM_inertial2Checksum : 56|8@1+ (1,0) [0|255] "" Receiver + SG_ RCM_inertial2Counter : 52|4@1+ (1,0) [0|15] "" Receiver + SG_ RCM_lateralAccel : 16|16@1- (0.00125,0) [-40.9575|40.9575] "m/s^2" Receiver + SG_ RCM_lateralAccelQF : 49|1@1+ (1,0) [0|1] "" Receiver + SG_ RCM_longitudinalAccel : 0|16@1- (0.00125,0) [-40.9575|40.9575] "m/s^2" Receiver + SG_ RCM_longitudinalAccelQF : 48|1@1+ (1,0) [0|1] "" Receiver + SG_ RCM_verticalAccel : 32|16@1- (0.00125,0) [-40.9575|40.9575] "m/s^2" Receiver + SG_ RCM_verticalAccelQF : 50|1@1+ (1,0) [0|1] "" Receiver + BO_ 258 ID102VCLEFT_doorStatus: 8 VehicleBus SG_ VCLEFT_frontHandlePWM : 16|7@1+ (1,0) [0|100] "%" Receiver SG_ VCLEFT_frontHandlePulled : 10|1@1+ (1,0) [0|1] "" Receiver @@ -129,6 +180,41 @@ BO_ 259 ID103VCRIGHT_doorStatus: 8 VehicleBus SG_ VCRIGHT_reservedForBackCompat : 28|2@1+ (1,0) [0|3] "" Receiver SG_ VCRIGHT_trunkLatchStatus : 56|4@1+ (1,0) [0|8] "" Receiver +BO_ 275 ID113GTW_bmpDebug: 3 VehicleBus + SG_ GTW_BMP_AWAKE_PIN : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_BMP_GTW_PMIC_ERROR : 13|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_BMP_GTW_PMIC_ON : 16|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_BMP_GTW_PMIC_THERMTRIP : 11|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_BMP_GTW_SOC_PWROK : 12|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_BMP_GTW_nSUSPWR : 14|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_BMP_PERIPH_nRST_3V3_PIN : 10|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_BMP_PGOOD_PIN : 9|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_BMP_PMIC_PWR_ON : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_bmpState : 7|8@0+ (1,0) [0|255] "" Receiver + +BO_ 281 ID119VCSEC_windowRequests: 2 VehicleBus + SG_ VCSEC_hvacRunScreenProtectOnly : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ VCSEC_windowRequestLF : 0|1@1+ (1,0) [0|1] "" Receiver + SG_ VCSEC_windowRequestLR : 1|1@1+ (1,0) [0|1] "" Receiver + SG_ VCSEC_windowRequestPercent : 8|7@1+ (1,0) [0|127] "" Receiver + SG_ VCSEC_windowRequestRF : 2|1@1+ (1,0) [0|1] "" Receiver + SG_ VCSEC_windowRequestRR : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ VCSEC_windowRequestType : 4|2@1+ (1,0) [0|3] "" Receiver + +BO_ 290 ID122VCLEFT_doorStatus2: 6 VehicleBus + SG_ VCLEFT_frontDoorState : 17|3@1+ (1,0) [0|4] "" Receiver + SG_ VCLEFT_frontHandle5vEnable : 38|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_frontHandleDebounceStatus : 32|3@1+ (1,0) [0|5] "" Receiver + SG_ VCLEFT_frontHandleRawStatus : 24|3@1+ (1,0) [0|5] "" Receiver + SG_ VCLEFT_frontLatchRelDuty : 0|8@1+ (1,0) [0|255] "%" Receiver + SG_ VCLEFT_mirrorFoldMaxCurrent : 40|7@1- (0.046,0) [-2.944|2.898] "A" Receiver + SG_ VCLEFT_rearDoorState : 20|3@1+ (1,0) [0|4] "" Receiver + SG_ VCLEFT_rearHandle5vEnable : 39|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_rearHandleDebounceStatus : 35|3@1+ (1,0) [0|5] "" Receiver + SG_ VCLEFT_rearHandleRawStatus : 27|3@1+ (1,0) [0|5] "" Receiver + SG_ VCLEFT_rearLatchRelDuty : 8|8@1+ (1,0) [0|255] "%" Receiver + SG_ VCLEFT_vehicleInMotion : 16|1@1+ (1,0) [0|1] "" Receiver + BO_ 291 ID123UI_alertMatrix1: 8 VehicleBus SG_ UI_a001_DriverDoorOpen : 0|1@1+ (1,0) [0|1] "" Receiver SG_ UI_a002_DoorOpen : 1|1@1+ (1,0) [0|1] "" Receiver @@ -195,6 +281,21 @@ BO_ 291 ID123UI_alertMatrix1: 8 VehicleBus SG_ UI_a063_CellularTestFailed : 62|1@1+ (1,0) [0|1] "" Receiver SG_ UI_a064_ModemFirmwareTestFailed : 63|1@1+ (1,0) [0|1] "" Receiver +BO_ 322 ID142VCLEFT_liftgateStatus: 8 VehicleBus + SG_ VCLEFT_liftgateStatusIndex M : 0|2@1+ (1,0) [0|2] "" Receiver + SG_ VCLEFT_liftgateLatchRequest m0 : 61|3@1+ (1,0) [0|4] "" Receiver + SG_ VCLEFT_liftgateMvmntNotAllowedCo m0 : 14|3@1+ (1,0) [0|5] "" Receiver + SG_ VCLEFT_liftgatePhysicalChimeRequ m0 : 21|3@1+ (1,0) [0|4] "" Receiver + SG_ VCLEFT_liftgatePosition m1 : 21|7@1- (1,46) [-5|95] "deg" Receiver + SG_ VCLEFT_liftgatePositionCalibrate m0 : 17|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_liftgateRequestSource m0 : 7|3@1+ (1,0) [0|7] "" Receiver + SG_ VCLEFT_liftgateSpeed m1 : 28|10@1- (0.1,0) [-30|30] "deg/s" Receiver + SG_ VCLEFT_liftgateState m0 : 3|4@1+ (1,0) [0|12] "" Receiver + SG_ VCLEFT_liftgateStoppingCondition m0 : 10|4@1+ (1,0) [0|11] "" Receiver + SG_ VCLEFT_liftgateStrutCurrent m1 : 11|10@1- (0.1,0) [-30|30] "A" Receiver + SG_ VCLEFT_liftgateStrutDutyCycle m1 : 3|8@1- (1,0) [-100|100] "%" Receiver + SG_ VCLEFT_liftgateUIChimeRequest m0 : 18|3@1+ (1,0) [0|4] "" Receiver + BO_ 325 ID145ESP_status: 8 ChassisBus SG_ ESP_absBrakeEvent2 : 22|2@1+ (1,0) [0|3] "" Receiver SG_ ESP_absFaultLamp : 17|1@1+ (1,0) [0|1] "" Receiver @@ -221,6 +322,46 @@ BO_ 325 ID145ESP_status: 8 ChassisBus SG_ ESP_steeringAngleQF : 27|1@1+ (1,0) [0|1] "" Receiver SG_ ESP_yawRateQF : 26|1@1+ (1,0) [0|1] "" Receiver +BO_ 470 ID1D6DI_limits: 5 VehicleBus + SG_ DI_limitBaseSpeed : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitClutch : 28|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitDcCapTemp : 17|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitDeltaFluidTemp : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitDiff : 22|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitDischargePower : 6|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitDriveTorque : 10|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitGracefulPowerOff : 23|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitIBat : 16|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitIGBTJunctTemp : 24|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitInverterTemp : 1|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitLimpMode : 4|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitMotorCurrent : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitMotorSpeed : 20|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitMotorVoltage : 9|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitObstacleDetection : 29|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitOilPumpFluidTemp : 26|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitPCBTemp : 0|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitPoleTemp : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitRegenPower : 7|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitRegenTorque : 11|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitRotorTemp : 36|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitShift : 14|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitShockTorque : 25|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitStatorFrequency : 27|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitStatorTemp : 2|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitTCDrive : 12|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitTCRegen : 13|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitVBatHigh : 19|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitVBatLow : 18|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitVehicleSpeed : 21|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitdcLinkCapTemp : 33|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limithvDcCableTemp : 37|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitnegDcBusbarTemp : 34|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitphaseOutBusBarWeldTemp : 31|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitphaseOutBusbarTemp : 30|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitphaseOutLugTemp : 32|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_limitposDcBusbarTemp : 35|1@1+ (1,0) [0|1] "" Receiver + BO_ 522 ID20AHVP_contactorState: 6 VehicleBus SG_ HVP_dcLinkAllowedToEnergize : 36|1@1+ (1,0) [0|1] "" Receiver SG_ HVP_fcContNegativeAuxOpen : 7|1@1+ (1,0) [0|1] "" Receiver @@ -255,30 +396,127 @@ BO_ 526 ID20EPARK_sdiFront: 8 ChassisBus SG_ PARK_sdiSensor5RawDistData : 36|9@1+ (1,0) [0|511] "cm" Receiver SG_ PARK_sdiSensor6RawDistData : 45|9@1+ (1,0) [0|511] "cm" Receiver -BO_ 537 ID219VCSEC_TPMSData: 6 ChassisBus +BO_ 537 ID219VCSEC_TPMSData: 5 ChassisBus SG_ VCSEC_TPMSDataIndex M : 0|2@1+ (1,0) [0|3] "" Receiver - SG_ VCSEC_TPMSBatVoltage0 m0 : 32|8@1+ (0.01,1.5) [0|0] "V" Receiver - SG_ VCSEC_TPMSBatVoltage1 m1 : 32|8@1+ (0.01,1.5) [0|0] "V" Receiver - SG_ VCSEC_TPMSBatVoltage2 m2 : 32|8@1+ (0.01,1.5) [0|0] "V" Receiver - SG_ VCSEC_TPMSBatVoltage3 m3 : 32|8@1+ (0.01,1.5) [0|0] "V" Receiver - SG_ VCSEC_TPMSPressure0 m0 : 16|8@1+ (0.025,0) [0|0] "bar" Receiver - SG_ VCSEC_TPMSPressure1 m1 : 16|8@1+ (0.025,0) [0|0] "bar" Receiver - SG_ VCSEC_TPMSPressure2 m2 : 16|8@1+ (0.025,0) [0|0] "bar" Receiver - SG_ VCSEC_TPMSPressure3 m3 : 16|8@1+ (0.025,0) [0|0] "bar" Receiver - SG_ VCSEC_TPMSRSSI0 m0 : 40|8@1- (1,0) [-127|0] "dBm" Receiver - SG_ VCSEC_TPMSRSSI1 m1 : 40|8@1- (1,0) [-127|0] "dBm" Receiver - SG_ VCSEC_TPMSRSSI2 m2 : 40|8@1- (1,0) [-127|0] "dBm" Receiver - SG_ VCSEC_TPMSRSSI3 m3 : 40|8@1- (1,0) [-127|0] "dBm" Receiver - SG_ VCSEC_TPMSSensorState0 m0 : 2|3@1+ (1,0) [0|4] "" Receiver - SG_ VCSEC_TPMSSensorState1 m1 : 2|3@1+ (1,0) [0|4] "" Receiver - SG_ VCSEC_TPMSSensorState2 m2 : 2|3@1+ (1,0) [0|4] "" Receiver - SG_ VCSEC_TPMSSensorState3 m3 : 2|3@1+ (1,0) [0|4] "" Receiver - SG_ VCSEC_TPMSTemperature0 m0 : 24|8@1+ (1,-40) [-40|214] "C" Receiver - SG_ VCSEC_TPMSTemperature1 m1 : 24|8@1+ (1,-40) [-40|214] "C" Receiver - SG_ VCSEC_TPMSTemperature2 m2 : 24|8@1+ (1,-40) [-40|214] "C" Receiver - SG_ VCSEC_TPMSTemperature3 m3 : 24|8@1+ (1,-40) [-40|214] "C" Receiver - -BO_ 558 ID22EPARK_sdiRear: 8 ChassisBus + SG_ VCSEC_TPMSBatVoltage0 m0 : 24|8@1+ (0.01,1.5) [1.5|4.04] "V" Receiver + SG_ VCSEC_TPMSBatVoltage1 m1 : 24|8@1+ (0.01,1.5) [1.5|4.04] "V" Receiver + SG_ VCSEC_TPMSBatVoltage2 m2 : 24|8@1+ (0.01,1.5) [1.5|4.04] "V" Receiver + SG_ VCSEC_TPMSBatVoltage3 m3 : 24|8@1+ (0.01,1.5) [1.5|4.04] "V" Receiver + SG_ VCSEC_TPMSLocation0 m0 : 32|3@1+ (1,0) [0|4] "" Receiver + SG_ VCSEC_TPMSLocation1 m1 : 32|3@1+ (1,0) [0|4] "" Receiver + SG_ VCSEC_TPMSLocation2 m2 : 32|3@1+ (1,0) [0|4] "" Receiver + SG_ VCSEC_TPMSLocation3 m3 : 32|3@1+ (1,0) [0|4] "" Receiver + SG_ VCSEC_TPMSPressure0 m0 : 8|8@1+ (0.025,0) [0|6.35] "bar" Receiver + SG_ VCSEC_TPMSPressure1 m1 : 8|8@1+ (0.025,0) [0|6.35] "bar" Receiver + SG_ VCSEC_TPMSPressure2 m2 : 8|8@1+ (0.025,0) [0|6.35] "bar" Receiver + SG_ VCSEC_TPMSPressure3 m3 : 8|8@1+ (0.025,0) [0|6.35] "bar" Receiver + SG_ VCSEC_TPMSTemperature0 m0 : 16|8@1+ (1,-40) [-40|214] "C" Receiver + SG_ VCSEC_TPMSTemperature1 m1 : 16|8@1+ (1,-40) [-40|214] "C" Receiver + SG_ VCSEC_TPMSTemperature2 m2 : 16|8@1+ (1,-40) [-40|214] "C" Receiver + SG_ VCSEC_TPMSTemperature3 m3 : 16|8@1+ (1,-40) [-40|214] "C" Receiver + +BO_ 516 ID204PCS_chgStatus: 8 VehicleBus + SG_ PCS_chargeShutdownRequest : 57|2@1+ (1,0) [0|2] "" Receiver + SG_ PCS_chgInstantAcPowerAvailable : 16|8@1+ (0.1,0) [0|20] "kW" Receiver + SG_ PCS_chgMainState : 0|4@1+ (1,0) [0|9] "" Receiver + SG_ PCS_chgMaxAcPowerAvailable : 24|8@1+ (0.1,0) [0|20] "kW" Receiver + SG_ PCS_chgPHAEnable : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ PCS_chgPHALineCurrentRequest : 32|8@1+ (0.1,0) [0|20] "A" Receiver + SG_ PCS_chgPHBEnable : 9|1@1+ (1,0) [0|1] "" Receiver + SG_ PCS_chgPHBLineCurrentRequest : 40|8@1+ (0.1,0) [0|20] "A" Receiver + SG_ PCS_chgPHCEnable : 10|1@1+ (1,0) [0|1] "" Receiver + SG_ PCS_chgPHCLineCurrentRequest : 48|8@1+ (0.1,0) [0|20] "A" Receiver + SG_ PCS_chgPwmEnableLine : 56|1@1+ (1,0) [0|1] "" Receiver + SG_ PCS_gridConfig : 6|2@1+ (1,0) [0|3] "" Receiver + SG_ PCS_hvChargeStatus : 4|2@1+ (1,0) [0|3] "" Receiver + SG_ PCS_hwVariantType : 59|2@1+ (1,0) [0|3] "" Receiver + +BO_ 554 ID22AHVP_pcsControl: 4 VehicleBus + SG_ HVP_dcLinkVoltageFiltered : 20|11@1- (1,0) [-550|550] "V" Receiver + SG_ HVP_dcLinkVoltageRequest : 0|16@1- (0.1,0) [-550|550] "V" Receiver + SG_ HVP_pcsChargeHwEnabled : 18|1@1+ (1,0) [0|1] "" Receiver + SG_ HVP_pcsControlRequest : 16|2@1+ (1,0) [0|3] "" Receiver + SG_ HVP_pcsDcdcHwEnabled : 19|1@1+ (1,0) [0|1] "" Receiver + +BO_ 562 ID232BMS_contactorRequest: 8 VehicleBus + SG_ BMS_ensShouldBeActiveForDrive : 7|1@1+ (1,0) [0|1] "" Receiver + SG_ BMS_fcContactorRequest : 0|3@1+ (1,0) [0|5] "" Receiver + SG_ BMS_fcLinkOkToEnergizeRequest : 32|2@1+ (1,0) [0|2] "" Receiver + SG_ BMS_gpoHasCompleted : 6|1@1+ (1,0) [0|1] "" Receiver + SG_ BMS_internalHvilSenseV : 16|16@1+ (0.001,0) [0|65.534] "V" Receiver + SG_ BMS_packContactorRequest : 3|3@1+ (1,0) [0|5] "" Receiver + SG_ BMS_pcsPwmDisable : 8|1@1+ (1,0) [0|1] "" Receiver + +BO_ 627 ID273UI_vehicleControl: 8 VehicleBus + SG_ UI_accessoryPowerRequest : 0|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_alarmEnabled : 20|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_ambientLightingEnabled : 40|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_autoFoldMirrorsOn : 52|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_autoHighBeamEnabled : 41|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_childDoorLockOn : 16|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_displayBrightnessLevel : 32|8@1+ (0.5,0) [0|127] "%" Receiver + SG_ UI_domeLightSwitch : 59|2@1+ (1,0) [0|2] "" Receiver + SG_ UI_driveStateRequest : 62|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_frontFogSwitch : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_frontLeftSeatHeatReq : 42|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_frontRightSeatHeatReq : 44|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_frunkRequest : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_globalUnlockOn : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_honkHorn : 61|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_intrusionSensorOn : 21|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_lockRequest : 17|3@1+ (1,0) [0|7] "" Receiver + SG_ UI_mirrorDipOnReverse : 53|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_mirrorFoldRequest : 24|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_mirrorHeatRequest : 26|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_powerOff : 31|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_rearCenterSeatHeatReq : 48|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_rearFogSwitch : 23|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_rearLeftSeatHeatReq : 46|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_rearRightSeatHeatReq : 50|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_rearWindowLockout : 63|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_remoteClosureRequest : 54|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_remoteStartRequest : 27|3@1+ (1,0) [0|4] "" Receiver + SG_ UI_seeYouHomeLightingOn : 30|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_steeringBacklightEnabled : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_steeringButtonMode : 9|3@1+ (1,0) [0|5] "" Receiver + SG_ UI_stop12vSupport : 22|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_summonActive : 4|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_unlockOnPark : 14|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_walkAwayLock : 13|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_walkUpUnlock : 12|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_wiperMode : 6|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_wiperRequest : 56|3@1+ (1,0) [0|6] "" Receiver + +BO_ 637 ID27DCP_dcChargeLimits: 8 VehicleBus + SG_ CP_evseInstantDcCurrentLimit : 52|12@1+ (0.146484,0) [0|599.854] "A" Receiver + SG_ CP_evseMaxDcCurrentLimit : 0|13@1+ (0.0732422,0) [0|599.927] "A" Receiver + SG_ CP_evseMaxDcVoltageLimit : 26|13@1+ (0.0732422,0) [0|599.927] "V" Receiver + SG_ CP_evseMinDcCurrentLimit : 13|13@1+ (0.0732422,0) [0|599.927] "A" Receiver + SG_ CP_evseMinDcVoltageLimit : 39|13@1+ (0.0732422,0) [0|599.927] "V" Receiver + +BO_ 701 ID2BDCP_dcPowerLimits: 4 VehicleBus + SG_ CP_evseInstantDcPowerLimit : 0|13@1+ (0.0622559,0) [0|509.938] "kW" Receiver + SG_ CP_evseMaxDcPowerLimit : 16|13@1+ (0.0622559,0) [0|509.938] "kW" Receiver + +BO_ 1066 ID42AVCSEC_TPMSConnectionData: 8 VehicleBus + SG_ VCSEC_TPMSConnectionTypeCurrent0 : 11|2@1+ (1,0) [0|2] "" Receiver + SG_ VCSEC_TPMSConnectionTypeCurrent1 : 26|2@1+ (1,0) [0|2] "" Receiver + SG_ VCSEC_TPMSConnectionTypeCurrent2 : 41|2@1+ (1,0) [0|2] "" Receiver + SG_ VCSEC_TPMSConnectionTypeCurrent3 : 56|2@1+ (1,0) [0|2] "" Receiver + SG_ VCSEC_TPMSConnectionTypeDesired0 : 13|2@1+ (1,0) [0|2] "" Receiver + SG_ VCSEC_TPMSConnectionTypeDesired1 : 28|2@1+ (1,0) [0|2] "" Receiver + SG_ VCSEC_TPMSConnectionTypeDesired2 : 43|2@1+ (1,0) [0|2] "" Receiver + SG_ VCSEC_TPMSConnectionTypeDesired3 : 58|2@1+ (1,0) [0|2] "" Receiver + SG_ VCSEC_TPMSRSSI0 : 3|8@1- (1,0) [-127|0] "dBm" Receiver + SG_ VCSEC_TPMSRSSI1 : 18|8@1- (1,0) [-127|0] "dBm" Receiver + SG_ VCSEC_TPMSRSSI2 : 33|8@1- (1,0) [-127|0] "dBm" Receiver + SG_ VCSEC_TPMSRSSI3 : 48|8@1- (1,0) [-127|0] "dBm" Receiver + SG_ VCSEC_TPMSSensorState0 : 0|3@1+ (1,0) [0|4] "" Receiver + SG_ VCSEC_TPMSSensorState1 : 15|3@1+ (1,0) [0|4] "" Receiver + SG_ VCSEC_TPMSSensorState2 : 30|3@1+ (1,0) [0|4] "" Receiver + SG_ VCSEC_TPMSSensorState3 : 45|3@1+ (1,0) [0|4] "" Receiver + +BO_ 558 ID22EPARK_sdiRear: 8 VehicleBus SG_ PARK_sdiRearChecksum : 56|8@1+ (1,0) [0|255] "" Receiver SG_ PARK_sdiRearCounter : 54|2@1+ (1,0) [0|3] "" Receiver SG_ PARK_sdiSensor10RawDistData : 27|9@1+ (1,0) [0|511] "cm" Receiver @@ -335,23 +573,6 @@ BO_ 569 ID239DAS_lanes: 8 ChassisBus SG_ DAS_virtualLaneViewRange : 8|8@1+ (1,0) [0|160] "m" Receiver SG_ DAS_virtualLaneWidth : 4|4@1+ (0.3125,2) [2|6.6875] "m" Receiver -BO_ 583 ID247DAS_autopilotDebug: 8 VehicleBus - SG_ DAS_alcInternalState : 12|4@1+ (1,0) [0|12] "" Receiver - SG_ DAS_autopilotAbortReason : 32|6@1+ (1,0) [0|63] "" Receiver - SG_ DAS_behaviorReport : 16|6@1+ (1,0) [1|38] "" Receiver - SG_ DAS_constructionZone : 24|1@1+ (1,0) [0|1] "" Receiver - SG_ DAS_controlDistance : 25|6@1+ (2,0) [0|126] "m" Receiver - SG_ DAS_controllerHealth : 22|2@1+ (1,0) [0|3] "" Receiver - SG_ DAS_controllerRef : 9|3@1+ (1,0) [0|6] "" Receiver - SG_ DAS_forkState : 45|5@1+ (1,0) [0|27] "" Receiver - SG_ DAS_laneChangeState : 50|6@1+ (1,0) [0|63] "" Receiver - SG_ DAS_lastWatchdogCode : 56|7@1+ (1,0) [0|79] "" Receiver - SG_ DAS_localizerHealth : 4|4@1+ (1,0) [0|8] "" Receiver - SG_ DAS_mapAvailability : 8|1@1+ (1,0) [0|1] "" Receiver - SG_ DAS_missionPlan : 0|2@1+ (1,0) [0|3] "" Receiver - SG_ DAS_roadEstimator : 2|2@1+ (1,0) [0|3] "" Receiver - SG_ DAS_rqstedBehaviorStatus : 40|5@1+ (1,0) [0|22] "" Receiver - BO_ 586 ID24ADAS_visualDebug: 8 ChassisBus SG_ DAS_accSmartSpeedActive : 48|1@1+ (1,0) [0|1] "" Receiver SG_ DAS_accSmartSpeedState : 49|3@1+ (1,0) [0|7] "" Receiver @@ -382,9 +603,45 @@ BO_ 603 ID25BAPP_environment: 1 ChassisBus SG_ APP_environmentRainy : 0|1@1+ (1,0) [0|1] "" Receiver SG_ APP_environmentSnowy : 1|1@1+ (1,0) [0|1] "" Receiver +BO_ 605 ID25DCP_status: 8 VehicleBus + SG_ CP_UHF_controlState : 38|4@1+ (1,0) [0|10] "" Receiver + SG_ CP_UHF_handleFound : 42|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_apsVoltage : 24|8@1+ (0.0715686,0) [0|18.249] "V" Receiver + SG_ CP_chargeCablePresent : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_chargeCableSecured : 4|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_chargeCableState : 14|2@1+ (1,0) [0|2] "" Receiver + SG_ CP_chargeDoorOpen : 10|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_chargeDoorOpenUI : 51|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_coldWeatherMode : 60|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_coverClosed : 63|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_doorButtonPressed : 32|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_doorControlState : 11|3@1+ (1,0) [0|6] "" Receiver + SG_ CP_doorOpenRequested : 43|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_faultLineSensed : 44|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_hvInletExposed : 61|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_inductiveDoorState : 45|3@1+ (1,0) [0|7] "" Receiver + SG_ CP_inductiveSensorState : 48|3@1+ (1,0) [0|7] "" Receiver + SG_ CP_insertEnableLine : 2|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_latch2ControlState : 19|3@1+ (1,0) [0|5] "" Receiver + SG_ CP_latch2State : 8|2@1+ (1,0) [0|3] "" Receiver + SG_ CP_latchControlState : 16|3@1+ (1,0) [0|5] "" Receiver + SG_ CP_latchEngaged : 62|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_latchState : 5|2@1+ (1,0) [0|3] "" Receiver + SG_ CP_ledColor : 33|4@1+ (1,0) [0|10] "" Receiver + SG_ CP_numAlertsSet : 53|7@1+ (1,0) [0|127] "" Receiver + SG_ CP_permanentPowerRequest : 7|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_swcanRelayClosed : 37|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_type : 0|2@1+ (1,0) [0|3] "" Receiver + SG_ CP_vehicleUnlockRequest : 52|1@1+ (1,0) [0|1] "" Receiver + +BO_ 669 ID29DCP_dcChargeStatus: 4 VehicleBus + SG_ CP_evseOutputDcCurrent : 0|15@1- (0.0732467,0) [-1200|1200] "A" Receiver + SG_ CP_evseOutputDcCurrentStale : 29|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_evseOutputDcVoltage : 16|13@1+ (0.0732422,0) [0|599.927] "V" Receiver + BO_ 692 ID2B4PCS_dcdcRailStatus: 5 VehicleBus - SG_ PCS_dcdcHvBusVolt : 10|12@1+ (0.146484375,0) [0|599.853515625] "V" Receiver - SG_ PCS_dcdcLvBusVolt : 0|10@1+ (0.0390625,0) [0|39.9609375] "V" Receiver + SG_ PCS_dcdcHvBusVolt : 10|12@1+ (0.146484,0) [0|599.854] "V" Receiver + SG_ PCS_dcdcLvBusVolt : 0|10@1+ (0.0390625,0) [0|39.9609] "V" Receiver SG_ PCS_dcdcLvOutputCurrent : 24|12@1+ (0.1,0) [0|400] "A" Receiver BO_ 697 ID2B9DAS_control: 8 ChassisBus @@ -411,49 +668,49 @@ BO_ 777 ID309DAS_object: 8 VehicleBus SG_ DAS_objectId M : 0|3@1+ (1,0) [0|5] "" Receiver SG_ DAS_cutinVehDx m3 : 8|8@1+ (0.5,0) [0|127] "m" Receiver SG_ DAS_cutinVehDy m3 : 20|7@1+ (0.35,-22.05) [-22.05|22.4] "m" Receiver - SG_ DAS_cutinVehHeading m5 : 56|8@1+ (0.0245437,-3.1415936) [-3.1415936|3.0925062] "rad" Receiver + SG_ DAS_cutinVehHeading m5 : 56|8@1+ (0.0245437,-3.14159) [-3.14159|3.09251] "rad" Receiver SG_ DAS_cutinVehId m3 : 27|7@1+ (1,0) [0|127] "" Receiver SG_ DAS_cutinVehRelevantForControl m3 : 7|1@1+ (1,0) [0|1] "" Receiver SG_ DAS_cutinVehType m3 : 3|3@1+ (1,0) [0|5] "" Receiver SG_ DAS_cutinVehVxRel m3 : 16|4@1+ (4,-30) [-30|26] "m/s" Receiver SG_ DAS_leadVeh2Dx m0 : 39|8@1+ (0.5,0) [0|127] "m" Receiver SG_ DAS_leadVeh2Dy m0 : 51|7@1+ (0.35,-22.05) [-22.05|22.4] "m" Receiver - SG_ DAS_leadVeh2Heading m5 : 16|8@1+ (0.0245437,-3.1415936) [-3.1415936|3.0925062] "rad" Receiver + SG_ DAS_leadVeh2Heading m5 : 16|8@1+ (0.0245437,-3.14159) [-3.14159|3.09251] "rad" Receiver SG_ DAS_leadVeh2Id m0 : 58|6@1+ (1,0) [0|63] "" Receiver SG_ DAS_leadVeh2RelevantForControl m0 : 38|1@1+ (1,0) [0|1] "" Receiver SG_ DAS_leadVeh2Type m0 : 34|3@1+ (1,0) [0|5] "" Receiver SG_ DAS_leadVeh2VxRel m0 : 47|4@1+ (4,-30) [-30|26] "m/s" Receiver SG_ DAS_leadVehDx m0 : 8|8@1+ (0.5,0) [0|127] "m" Receiver SG_ DAS_leadVehDy m0 : 20|7@1+ (0.35,-22.05) [-22.05|22.4] "m" Receiver - SG_ DAS_leadVehHeading m5 : 8|8@1+ (0.0245437,-3.1415936) [-3.1415936|3.0925062] "rad" Receiver + SG_ DAS_leadVehHeading m5 : 8|8@1+ (0.0245437,-3.14159) [-3.14159|3.09251] "rad" Receiver SG_ DAS_leadVehId m0 : 27|7@1+ (1,0) [0|127] "" Receiver SG_ DAS_leadVehRelevantForControl m0 : 7|1@1+ (1,0) [0|1] "" Receiver SG_ DAS_leadVehType m0 : 3|3@1+ (1,0) [0|6] "" Receiver SG_ DAS_leadVehVxRel m0 : 16|4@1+ (4,-30) [-30|26] "m/s" Receiver SG_ DAS_leftVeh2Dx m1 : 39|8@1+ (0.5,0) [0|127] "m" Receiver SG_ DAS_leftVeh2Dy m1 : 51|7@1+ (0.35,-22.05) [-22.05|22.4] "m" Receiver - SG_ DAS_leftVeh2Heading m5 : 32|8@1+ (0.0245437,-3.1415936) [-3.1415936|3.0925062] "rad" Receiver + SG_ DAS_leftVeh2Heading m5 : 32|8@1+ (0.0245437,-3.14159) [-3.14159|3.09251] "rad" Receiver SG_ DAS_leftVeh2Id m1 : 58|6@1+ (1,0) [0|63] "" Receiver SG_ DAS_leftVeh2RelevantForControl m1 : 38|1@1+ (1,0) [0|1] "" Receiver SG_ DAS_leftVeh2Type m1 : 34|3@1+ (1,0) [0|5] "" Receiver SG_ DAS_leftVeh2VxRel m1 : 47|4@1+ (4,-30) [-30|26] "m/s" Receiver SG_ DAS_leftVehDx m1 : 8|8@1+ (0.5,0) [0|127] "m" Receiver SG_ DAS_leftVehDy m1 : 20|7@1+ (0.35,-22.05) [-22.05|22.4] "m" Receiver - SG_ DAS_leftVehHeading m5 : 24|8@1+ (0.0245437,-3.1415936) [-3.1415936|3.0925062] "rad" Receiver + SG_ DAS_leftVehHeading m5 : 24|8@1+ (0.0245437,-3.14159) [-3.14159|3.09251] "rad" Receiver SG_ DAS_leftVehId m1 : 27|7@1+ (1,0) [0|127] "" Receiver SG_ DAS_leftVehRelevantForControl m1 : 7|1@1+ (1,0) [0|1] "" Receiver SG_ DAS_leftVehType m1 : 3|3@1+ (1,0) [0|5] "" Receiver SG_ DAS_leftVehVxRel m1 : 16|4@1+ (4,-30) [-30|26] "m/s" Receiver SG_ DAS_rightVeh2Dx m2 : 39|8@1+ (0.5,0) [0|127] "m" Receiver SG_ DAS_rightVeh2Dy m2 : 51|7@1+ (0.35,-22.05) [-22.05|22.4] "m" Receiver - SG_ DAS_rightVeh2Heading m5 : 48|8@1+ (0.0245437,-3.1415936) [-3.1415936|3.0925062] "rad" Receiver + SG_ DAS_rightVeh2Heading m5 : 48|8@1+ (0.0245437,-3.14159) [-3.14159|3.09251] "rad" Receiver SG_ DAS_rightVeh2Id m2 : 58|6@1+ (1,0) [0|63] "" Receiver SG_ DAS_rightVeh2RelevantForControl m2 : 38|1@1+ (1,0) [0|1] "" Receiver SG_ DAS_rightVeh2Type m2 : 34|3@1+ (1,0) [0|5] "" Receiver SG_ DAS_rightVeh2VxRel m2 : 47|4@1+ (4,-30) [-30|26] "m/s" Receiver SG_ DAS_rightVehDx m2 : 8|8@1+ (0.5,0) [0|127] "m" Receiver SG_ DAS_rightVehDy m2 : 20|7@1+ (0.35,-22.05) [-22.05|22.4] "m" Receiver - SG_ DAS_rightVehHeading m5 : 40|8@1+ (0.0245437,-3.1415936) [-3.1415936|3.0925062] "rad" Receiver + SG_ DAS_rightVehHeading m5 : 40|8@1+ (0.0245437,-3.14159) [-3.14159|3.09251] "rad" Receiver SG_ DAS_rightVehId m2 : 27|7@1+ (1,0) [0|127] "" Receiver SG_ DAS_rightVehRelevantForControl m2 : 7|1@1+ (1,0) [0|1] "" Receiver SG_ DAS_rightVehType m2 : 3|3@1+ (1,0) [0|5] "" Receiver @@ -522,19 +779,71 @@ BO_ 925 ID39DIBST_status: 5 ChassisBus SG_ IBST_statusChecksum : 0|8@1+ (1,0) [0|255] "" Receiver SG_ IBST_statusCounter : 8|4@1+ (1,0) [0|15] "" Receiver +BO_ 929 ID3A1VCFRONT_vehicleStatus: 8 VehicleBus + SG_ VCFRONT_12vStatusForDrive : 14|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_2RowCenterUnbuckled : 38|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_2RowLeftUnbuckled : 36|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_2RowRightUnbuckled : 40|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_APGlassHeaterState : 2|3@1+ (1,0) [0|4] "" Receiver + SG_ VCFRONT_accPlusAvailable : 9|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_batterySupportRequest : 27|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_bmsHvChargeEnable : 0|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_diPowerOnState : 10|3@1+ (1,0) [0|4] "" Receiver + SG_ VCFRONT_driverBuckleStatus : 30|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_driverDoorStatus : 31|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_driverIsLeaving : 28|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_driverIsLeavingAnySpeed : 13|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_driverPresent : 7|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_driverUnbuckled : 32|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_ota12VSupportRequest : 29|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_passengerPresent : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_passengerUnbuckled : 34|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_pcs12vVoltageTarget : 16|11@1+ (0.01,0) [0|16] "V" Receiver + SG_ VCFRONT_pcsEFuseVoltage : 42|10@1+ (0.1,0) [0|102.2] "V" Receiver + SG_ VCFRONT_preconditionRequest : 1|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_standbySupplySupported : 6|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_thermalSystemType : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_vehicleStatusChecksum : 56|8@1+ (1,0) [0|255] "" Receiver + SG_ VCFRONT_vehicleStatusCounter : 52|4@1+ (1,0) [0|15] "" Receiver + BO_ 985 ID3D9UI_gpsVehicleSpeed: 8 ChassisBus SG_ UI_conditionalLimitActive : 55|1@1+ (1,0) [0|1] "" Receiver SG_ UI_conditionalSpeedLimit : 56|5@1+ (5,0) [0|155] "kph/mph" Receiver SG_ UI_gpsAntennaDisconnected : 54|1@1+ (1,0) [0|1] "" Receiver SG_ UI_gpsHDOP : 0|8@1+ (0.1,0) [0|25.5] "" Receiver SG_ UI_gpsNmeaMIA : 53|1@1+ (1,0) [0|1] "" Receiver - SG_ UI_gpsVehicleHeading : 8|16@1+ (0.0078125,0) [0|511.9921875] "deg" Receiver + SG_ UI_gpsVehicleHeading : 8|16@1+ (0.0078125,0) [0|511.992] "deg" Receiver SG_ UI_gpsVehicleSpeed : 24|16@1+ (0.00390625,0) [0|250.996] "kph" Receiver SG_ UI_mapSpeedLimitUnits : 46|1@1+ (1,0) [0|1] "" Receiver SG_ UI_mppSpeedLimit : 48|5@1+ (5,0) [0|155] "kph/mph" Receiver SG_ UI_userSpeedOffset : 40|6@1+ (1,-30) [-30|33] "kph/mph" Receiver SG_ UI_userSpeedOffsetUnits : 47|1@1+ (1,0) [0|1] "" Receiver +BO_ 994 ID3E2VCLEFT_lightStatus: 7 VehicleBus + SG_ VCLEFT_FLMapLightStatus : 6|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_FLMapLightSwitchPressed : 14|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_FRMapLightStatus : 8|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_FRMapLightSwitchPressed : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_RLMapLightStatus : 10|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_RLMapLightSwitchPressed : 16|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_RRMapLightStatus : 12|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_RRMapLightSwitchPressed : 17|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_brakeLightStatus : 0|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_brakeTrailerLightStatus : 22|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_dynamicBrakeLightStatus : 44|2@1+ (1,0) [0|2] "" Receiver + SG_ VCLEFT_fogTrailerLightStatus : 26|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontRideHeight : 28|8@1- (1,0) [-127|127] "mm" Receiver + SG_ VCLEFT_leftTurnTrailerLightStatu : 18|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_rearRideHeight : 36|8@1- (1,0) [-127|127] "mm" Receiver + SG_ VCLEFT_reverseTrailerLightStatus : 49|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_rideHeightSensorFault : 48|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_rightTrnTrailerLightStatu : 20|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_tailLightOutageStatus : 51|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_tailLightStatus : 2|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_tailTrailerLightStatus : 24|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_trailerDetected : 46|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_turnSignalStatus : 4|2@1+ (1,0) [0|3] "" Receiver + BO_ 1001 ID3E9DAS_bodyControls: 8 VehicleBus SG_ DAS_bodyControlsChecksum : 56|8@1+ (1,0) [0|255] "" Receiver SG_ DAS_bodyControlsCounter : 52|4@1+ (1,0) [0|15] "" Receiver @@ -547,9 +856,12 @@ BO_ 1001 ID3E9DAS_bodyControls: 8 VehicleBus SG_ DAS_turnIndicatorRequest : 8|3@1+ (1,0) [0|4] "" Receiver SG_ DAS_turnIndicatorRequestReason : 18|4@1+ (1,0) [0|12] "" Receiver SG_ DAS_wiperSpeed : 4|4@1+ (1,0) [0|15] "" Receiver + SG_ DAS_radarHeaterRequest : 23|1@1+ (1,0) [0|1] "" Receiver + SG_ DAS_ahlbOverride : 24|1@1+ (1,0) [0|1] "" Receiver + SG_ DAS_mirrorFoldRequest : 25|2@1+ (1,0) [0|0] "" Receiver BO_ 1011 ID3F3UI_odo: 3 ChassisBus - SG_ UI_odometer : 0|24@1+ (0.1,0) [0|1677721.5] "km" Receiver + SG_ UI_odometer : 0|24@1+ (0.1,0) [0|1677720] "km" Receiver BO_ 1013 ID3F5VCFRONT_lighting: 8 VehicleBus SG_ VCFRONT_DRLLeftStatus : 36|2@1+ (1,0) [0|3] "" Receiver @@ -650,8 +962,11 @@ BO_ 1021 ID3FDUI_autopilotControl: 8 ChassisBus SG_ UI_donStopEndOfRampBuffer m0 : 21|3@1+ (1,0) [0|4] "" Receiver SG_ UI_driverMonitorConfirmation m1 : 17|1@1+ (1,0) [0|1] "" Receiver SG_ UI_enableAutopilotStopWarning m1 : 44|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_enableCabinCamera m1 : 43|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_enableCabinCameraTelemetry m1 : 48|1@1+ (1,0) [0|1] "" Receiver SG_ UI_enableMapStops m1 : 20|1@1+ (1,0) [0|1] "" Receiver SG_ UI_factorySummonEnable m1 : 39|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_fsdStopsControlEnabled m0 : 38|1@1+ (1,0) [0|1] "" Receiver SG_ UI_fsdVisualizationEnabled m0 : 37|1@1+ (1,0) [0|1] "" Receiver SG_ UI_hardCoreSummon m1 : 47|1@1+ (1,0) [0|1] "" Receiver SG_ UI_homelinkNearby m0 : 45|1@1+ (1,0) [0|1] "" Receiver @@ -661,51 +976,13 @@ BO_ 1021 ID3FDUI_autopilotControl: 8 ChassisBus SG_ UI_showLaneGraph m1 : 45|1@1+ (1,0) [0|1] "" Receiver SG_ UI_showTrackLabels m1 : 46|1@1+ (1,0) [0|1] "" Receiver SG_ UI_ulcSnooze m1 : 36|1@1+ (1,0) [0|1] "" Receiver - SG_ UI_visualizeCuboids m1 : 22|1@1+ (1,0) [0|1] "" Receiver - -BO_ 611 ID263VCRIGHT_logging10Hz: 8 VehicleBus - SG_ VCRIGHT_logging10HzIndex M : 0|2@1+ (1,0) [0|3] "" Receiver - SG_ VCRIGHT_hvacCabinHumidityLevel m2 : 55|8@1+ (1,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacEstimateWindshieldRH m2 : 39|8@1+ (1,0) [0|150] "%" Receiver - SG_ VCRIGHT_hvacFilterLifeDetectActi m2 : 2|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacFlashFoggingDetected m2 : 63|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacFoggingRiskLevel m2 : 47|8@1+ (1,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacIntakeActuatorState m2 : 22|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_hvacIntakeOperationMode m2 : 9|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacIntakePosition m1 : 56|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacIntakeTarget m0 : 56|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacLHBleedActuatorState m2 : 10|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_hvacLHBleedOperationMode m2 : 3|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacLHBleedPosition m1 : 8|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacLHBleedTarget m0 : 8|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacLHVaneActuatorState m2 : 14|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_hvacLHVaneOperationMode m2 : 5|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacLHVanePosition m1 : 24|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacLHVaneTarget m0 : 24|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacLowerModeActState m2 : 20|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_hvacLowerModeOpMode m2 : 8|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacLowerModePosition m1 : 48|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacLowerModeTarget m0 : 48|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacModelInitStatus m2 : 24|3@1+ (1,0) [0|5] "" Receiver - SG_ VCRIGHT_hvacRHBleedActuatorState m2 : 12|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_hvacRHBleedOperationMode m2 : 4|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacRHBleedPosition m1 : 16|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacRHBleedTarget m0 : 16|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacRHVaneActuatorState m2 : 16|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_hvacRHVaneOperationMode m2 : 6|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacRHVanePosition m1 : 32|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacRHVaneTarget m0 : 32|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacUpperModeActState m2 : 18|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_hvacUpperModeOpMode m2 : 7|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacUpperModePosition m1 : 40|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_hvacUpperModeTarget m0 : 40|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ VCRIGHT_timeLeftToCabinModelInit m2 : 32|7@1+ (1,0) [0|127] "" Receiver BO_ 615 ID267DI_vehicleEstimates: 8 VehicleBus SG_ DI_gradeEst : 33|7@1- (1,0) [-40|40] "%" Receiver SG_ DI_gradeEstInternal : 48|7@1- (1,0) [-40|40] "%" Receiver SG_ DI_mass : 0|10@1+ (5,1900) [1900|7010] "kg" Receiver SG_ DI_massConfidence : 32|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_relativeTireTreadDepth : 16|6@1- (0.2,0) [-6.2|6.2] "mm" Receiver SG_ DI_steeringAngleOffset : 56|8@1- (0.2,0) [-25.6|25.4] "Deg" Receiver SG_ DI_tireFitment : 10|2@1+ (1,0) [0|3] "" Receiver SG_ DI_trailerDetected : 12|1@1+ (1,0) [0|1] "" Receiver @@ -739,6 +1016,19 @@ BO_ 642 ID282VCLEFT_hvacBlowerFeedback: 8 VehicleBus SG_ VCLEFT_hvacBlower_IO_CBC_TAIL_va m1 : 42|1@1+ (1,0) [0|1] "" Receiver SG_ VCLEFT_hvacBlower_IO_CBC_numUart m1 : 46|8@1+ (1,0) [0|255] "" Receiver +BO_ 755 ID2F3UI_hvacRequest: 5 VehicleBus + SG_ UI_hvacReqACDisable : 22|2@1+ (1,0) [0|2] "" Receiver + SG_ UI_hvacReqAirDistributionMode : 13|3@1+ (1,0) [0|7] "" Receiver + SG_ UI_hvacReqBlowerSegment : 16|4@1+ (1,0) [0|11] "" Receiver + SG_ UI_hvacReqKeepClimateOn : 33|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_hvacReqManualDefogState : 24|2@1+ (1,0) [0|2] "" Receiver + SG_ UI_hvacReqRecirc : 20|2@1+ (1,0) [0|2] "" Receiver + SG_ UI_hvacReqSecondRowState : 29|3@1+ (1,0) [0|4] "" Receiver + SG_ UI_hvacReqTempSetpointLeft : 0|5@1+ (0.5,15) [15|28] "C" Receiver + SG_ UI_hvacReqTempSetpointRight : 8|5@1+ (0.5,15) [15|28] "C" Receiver + SG_ UI_hvacReqUserPowerState : 26|3@1+ (1,0) [0|4] "" Receiver + SG_ UI_hvacUseModeledDuctTemp : 32|1@1+ (1,0) [0|1] "" Receiver + BO_ 787 ID313UI_trackModeSettings: 8 VehicleBus SG_ UI_trackCmpOverclock : 25|1@1+ (1,0) [0|1] "" Receiver SG_ UI_trackModeRequest : 0|2@1+ (1,0) [0|2] "" Receiver @@ -751,22 +1041,22 @@ BO_ 787 ID313UI_trackModeSettings: 8 VehicleBus BO_ 821 ID335RearDIinfo: 8 VehicleBus SG_ DIR_infoIndex M : 0|8@1+ (1,0) [0|255] "" Receiver SG_ DIR_FPGA_version m16 : 48|8@1+ (1,0) [0|255] "" Receiver - SG_ DIR_appGitHash m17 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver - SG_ DIR_applicationCrc m13 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ DIR_appGitHash m17 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver + SG_ DIR_applicationCrc m13 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ DIR_assemblyId m11 : 24|8@1+ (1,0) [0|255] "" Receiver - SG_ DIR_bootGitHash m18 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver - SG_ DIR_bootloaderCrc m20 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ DIR_bootGitHash m18 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver + SG_ DIR_bootloaderCrc m20 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ DIR_buildConfigurationId m10 : 16|16@1+ (1,0) [0|65535] "" Receiver SG_ DIR_buildType m10 : 8|3@1+ (1,0) [0|4] "" Receiver SG_ DIR_componentId m10 : 48|16@1+ (1,0) [0|65535] "" Receiver SG_ DIR_hardwareId m10 : 32|8@1+ (1,0) [0|252] "" Receiver SG_ DIR_infoBootLdUdsProtocolVersion m20 : 8|8@1+ (1,0) [0|255] "" Receiver - SG_ DIR_oilPumpAppCrc m16 : 16|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ DIR_oilPumpAppCrc m16 : 16|32@1+ (1,0) [0|4294970000] "" Receiver SG_ DIR_oilPumpBuildType m16 : 8|3@1+ (1,0) [0|4] "" Receiver SG_ DIR_pcbaId m11 : 16|8@1+ (1,0) [0|255] "" Receiver SG_ DIR_platformTyp m19 : 8|8@1+ (1,0) [0|255] "" Receiver SG_ DIR_subUsageId m11 : 48|16@1+ (1,0) [0|65535] "" Receiver - SG_ DIR_subcomponentGitHash m31 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver + SG_ DIR_subcomponentGitHash m31 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver SG_ DIR_usageId m11 : 32|16@1+ (1,0) [0|65535] "" Receiver BO_ 899 ID383VCRIGHT_thsStatus: 8 VehicleBus @@ -778,43 +1068,31 @@ BO_ 899 ID383VCRIGHT_thsStatus: 8 VehicleBus SG_ VCRIGHT_thsSolarLoadVisible : 43|10@1+ (1,0) [0|1022] "W/m2" Receiver SG_ VCRIGHT_thsTemperature : 1|8@1- (1,-40) [-40|150] "C" Receiver -BO_ 915 ID393VCRIGHT_epbmDebug: 8 VehicleBus - SG_ VCRIGHT_epbmDebugIndex M : 0|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_cdpEnumDummy m1 : 24|2@1+ (1,0) [0|2] "" Receiver - SG_ VCRIGHT_epbFaultStatus m0 : 57|2@1+ (1,0) [0|3] "" Receiver - SG_ VCRIGHT_epbMotorCurrent m0 : 6|11@1+ (0.01,0) [0|20.47] "A" Receiver - SG_ VCRIGHT_epbSummonState m0 : 44|3@1+ (1,0) [0|6] "" Receiver - SG_ VCRIGHT_epbUnitStatus m0 : 50|5@1+ (1,0) [0|22] "" Receiver - SG_ VCRIGHT_epbmApplyVoltage m0 : 17|11@1+ (0.01,0) [0|20.47] "A" Receiver - SG_ VCRIGHT_epbmCaliperState m0 : 2|3@1+ (1,0) [0|6] "" Receiver - SG_ VCRIGHT_epbmDynApplyingAllowed m1 : 10|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmDynamicAllowed m1 : 3|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmFaultAllowed m1 : 12|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmFaultStatus m0 : 55|2@1+ (1,0) [0|3] "" Receiver - SG_ VCRIGHT_epbmMotorEnabled m0 : 5|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmOpenAllowed m1 : 2|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmParkAllowed m1 : 4|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmParkingAllowed m1 : 9|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmReleaseVoltage m0 : 28|11@1+ (0.01,0) [0|20.47] "A" Receiver - SG_ VCRIGHT_epbmReleasingAllowed m1 : 11|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmServiceAllowed m1 : 6|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmStartAllowed m1 : 5|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmSummonAllowed m1 : 13|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmSummonParkAllowed m1 : 14|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmSummonReleaseAllowed m1 : 15|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmSummonState m0 : 47|3@1+ (1,0) [0|6] "" Receiver - SG_ VCRIGHT_epbmSystemStatus m0 : 59|4@1+ (1,0) [0|8] "" Receiver - SG_ VCRIGHT_epbmUnknownAllowed m1 : 17|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmWinchAllowed m1 : 7|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_epbmWinchReleaseAllowed m1 : 8|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_summonActiveAllowed m1 : 20|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_summonArmedAllowed m1 : 19|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_summonCompleteAllowed m1 : 21|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_summonFaultAllowed m1 : 22|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_summonFaultReason m0 : 39|5@1+ (1,0) [0|28] "" Receiver - SG_ VCRIGHT_summonIdleAllowed m1 : 18|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_summonInitAllowed m1 : 16|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_summonUnavailableAllowed m1 : 23|1@1+ (1,0) [0|1] "" Receiver +BO_ 947 ID3B3UI_vehicleControl2: 4 VehicleBus + SG_ UI_PINToDriveEnabled : 6|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_PINToDrivePassed : 7|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_UMCUpdateInhibit : 2|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_VCLEFTFeature1 : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_VCSECFeature1 : 14|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_WCUpdateInhibit : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_alarmTriggerRequest : 13|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_autoRollWindowsOnLockEnable : 29|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_autopilotPowerStateRequest : 25|2@1+ (1,0) [0|2] "" Receiver + SG_ UI_batteryPreconditioningRequest : 23|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_coastDownMode : 24|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_conditionalLoggingEnabledVCSE : 31|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_efuseMXResistanceEstArmed : 30|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_freeRollModeRequest : 19|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_gloveboxRequest : 0|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_lightSwitch : 9|3@1+ (1,0) [0|4] "" Receiver + SG_ UI_locksPanelActive : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_readyToAddKey : 12|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_shorted12VCellTestMode : 27|2@1+ (1,0) [0|2] "" Receiver + SG_ UI_soundHornOnLock : 4|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_summonState : 16|2@1+ (1,0) [0|3] "" Receiver + SG_ UI_trunkRequest : 1|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_userPresent : 18|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_windowRequest : 20|3@1+ (1,0) [0|4] "" Receiver BO_ 963 ID3C3VCRIGHT_switchStatus: 7 VehicleBus SG_ VCRIGHT_2RowSeatReclineSwitch : 54|1@1+ (1,0) [0|1] "" Receiver @@ -868,31 +1146,31 @@ BO_ 995 ID3E3VCRIGHT_lightStatus: 2 VehicleBus BO_ 1622 ID656FrontDIinfo: 8 VehicleBus SG_ DIF_infoIndex M : 0|8@1+ (1,0) [0|255] "" Receiver SG_ DIF_FPGA_version m16 : 48|8@1+ (1,0) [0|255] "" Receiver - SG_ DIF_appGitHash m17 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver - SG_ DIF_applicationCrc m13 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ DIF_appGitHash m17 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver + SG_ DIF_applicationCrc m13 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ DIF_assemblyId m11 : 24|8@1+ (1,0) [0|255] "" Receiver - SG_ DIF_bootGitHash m18 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver - SG_ DIF_bootloaderCrc m20 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ DIF_bootGitHash m18 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver + SG_ DIF_bootloaderCrc m20 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ DIF_buildConfigurationId m10 : 16|16@1+ (1,0) [0|65535] "" Receiver SG_ DIF_buildType m10 : 8|3@1+ (1,0) [0|4] "" Receiver SG_ DIF_componentId m10 : 48|16@1+ (1,0) [0|65535] "" Receiver SG_ DIF_hardwareId m10 : 32|8@1+ (1,0) [0|252] "" Receiver SG_ DIF_infoBootLdUdsProtocolVersion m20 : 8|8@1+ (1,0) [0|255] "" Receiver - SG_ DIF_oilPumpAppCrc m16 : 16|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ DIF_oilPumpAppCrc m16 : 16|32@1+ (1,0) [0|4294970000] "" Receiver SG_ DIF_oilPumpBuildType m16 : 8|3@1+ (1,0) [0|4] "" Receiver SG_ DIF_pcbaId m11 : 16|8@1+ (1,0) [0|255] "" Receiver SG_ DIF_platformTyp m19 : 8|8@1+ (1,0) [0|255] "" Receiver SG_ DIF_subUsageId m11 : 48|16@1+ (1,0) [0|65535] "" Receiver - SG_ DIF_subcomponentGitHash m31 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver + SG_ DIF_subcomponentGitHash m31 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver SG_ DIF_usageId m11 : 32|16@1+ (1,0) [0|65535] "" Receiver BO_ 768 ID300BMS_info: 8 VehicleBus SG_ BMS_infoIndex M : 0|8@1+ (1,0) [0|255] "" Receiver - SG_ BMS_appCrc m13 : 32|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ BMS_appGitHash m17 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver + SG_ BMS_appCrc m13 : 32|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ BMS_appGitHash m17 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver SG_ BMS_assemblyId m11 : 24|8@1+ (1,0) [0|255] "" Receiver - SG_ BMS_bootCrc m20 : 32|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ BMS_bootGitHash m18 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver + SG_ BMS_bootCrc m20 : 32|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ BMS_bootGitHash m18 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver SG_ BMS_bootUdsProtoVersion m20 : 8|8@1+ (1,0) [0|255] "" Receiver SG_ BMS_buildConfigId m10 : 16|16@1+ (1,0) [0|65535] "" Receiver SG_ BMS_buildType m10 : 8|3@1+ (1,0) [0|4] "" Receiver @@ -927,231 +1205,6 @@ BO_ 530 ID212BMS_status: 8 VehicleBus SG_ BMS_uiChargeStatus : 11|3@1+ (1,0) [0|5] "" Receiver SG_ BMS_updateAllowed : 4|1@1+ (1,0) [0|1] "" Receiver -BO_ 946 ID3B2BMS_log2: 8 VehicleBus - SG_ BMS_log2MuxId M : 0|5@1+ (1,0) [0|25] "" Receiver - SG_ BMS_100HzTask_avgExecTime m9 : 6|14@1+ (1,0) [0|16383] "us" Receiver - SG_ BMS_100HzTask_maxExecTime m9 : 32|14@1+ (1,0) [0|16383] "us" Receiver - SG_ BMS_10HzTask_avgExecTime m8 : 6|17@1+ (1,0) [0|131071] "us" Receiver - SG_ BMS_10HzTask_maxExecTime m8 : 32|17@1+ (1,0) [0|131071] "us" Receiver - SG_ BMS_1HzTask_avgExecTime m7 : 6|20@1+ (1,0) [0|1048575] "us" Receiver - SG_ BMS_1HzTask_maxExecTime m7 : 32|20@1+ (1,0) [0|1048575] "us" Receiver - SG_ BMS_1kHzTask_avgExecTime m9 : 20|11@1+ (1,0) [0|2047] "us" Receiver - SG_ BMS_1kHzTask_maxExecTime m9 : 48|11@1+ (1,0) [0|2047] "us" Receiver - SG_ BMS_ahChargeTotal m6 : 8|24@1+ (0.1,0) [0|1677721.5] "Ah" Receiver - SG_ BMS_ahDischargeTotal m6 : 32|24@1+ (0.1,0) [0|1677721.5] "Ah" Receiver - SG_ BMS_cacAvg m0 : 6|13@1+ (0.1,0) [0|819.1] "Ah" Receiver - SG_ BMS_cacMax m0 : 40|13@1+ (0.1,0) [0|819.1] "Ah" Receiver - SG_ BMS_cacMaxBrickId m0 : 56|7@1+ (1,1) [1|128] "" Receiver - SG_ BMS_cacMaxKalmanError m1 : 44|10@1+ (0.01,0) [0|10] "Ah" Receiver - SG_ BMS_cacMin m0 : 19|13@1+ (0.1,0) [0|819.1] "Ah" Receiver - SG_ BMS_cacMinBrickId m0 : 32|7@1+ (1,1) [1|128] "" Receiver - SG_ BMS_cacMinDeltaAh m23 : 26|11@1- (0.5,0) [-512|511.5] "Ah" Receiver - SG_ BMS_cacMinLowerBoundEst m1 : 5|13@1+ (0.1,0) [0|819.1] "Ah" Receiver - SG_ BMS_cacMinRawEstimate m1 : 18|13@1+ (0.1,0) [0|819.1] "Ah" Receiver - SG_ BMS_cacMinSocByOcvEnd m23 : 16|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ BMS_cacMinSocByOcvStart m23 : 6|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ BMS_cacMinUpdateAhError m23 : 37|9@1- (0.05,0) [-12.8|12.75] "Ah" Receiver - SG_ BMS_cacMinUpperBoundEst m1 : 31|13@1+ (0.1,0) [0|819.1] "Ah" Receiver - SG_ BMS_capacityImbalancePct m1 : 54|10@1+ (0.1,0) [0|102.3] "%" Receiver - SG_ BMS_chargeCurrentLimitMode m5 : 32|3@1+ (1,0) [0|6] "" Receiver - SG_ BMS_chargeNeededReason m5 : 35|3@1+ (1,0) [0|6] "" Receiver - SG_ BMS_chgEndBatteryChargeRequest m3 : 28|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_chgEndBmsHvChargeStatus m3 : 16|3@1+ (1,0) [0|7] "" Receiver - SG_ BMS_chgEndChargeState m3 : 12|3@1+ (1,0) [0|7] "" Receiver - SG_ BMS_chgEndCpHvChargeStatus m3 : 19|3@1+ (1,0) [0|6] "" Receiver - SG_ BMS_chgEndCpShutdownRequest m3 : 24|2@1+ (1,0) [0|2] "" Receiver - SG_ BMS_chgEndDcEvseCompatible m3 : 29|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_chgEndDisableUnderFailure m3 : 30|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_chgEndEvseChargeType m3 : 6|2@1+ (1,0) [0|2] "" Receiver - SG_ BMS_chgEndPcsHvChargeStatus m3 : 22|2@1+ (1,0) [0|3] "" Receiver - SG_ BMS_chgEndPcsShutdownRequest m3 : 26|2@1+ (1,0) [0|2] "" Receiver - SG_ BMS_chgRequestTerminatedCount m3 : 8|4@1+ (1,0) [0|15] "" Receiver - SG_ BMS_cpChargeStatus m5 : 60|3@1+ (1,0) [0|5] "" Receiver - SG_ BMS_currentReg_targetI m5 : 49|11@1+ (0.5,0) [0|1023.5] "A" Receiver - SG_ BMS_dynamicEnergyBuffer m22 : 30|10@1+ (0.1,0) [0|102.2] "KWh" Receiver - SG_ BMS_energyReserveAvg m20 : 48|16@1+ (0.001,0) [0|65.535] "V" Receiver - SG_ BMS_energyReserveMax m20 : 32|16@1+ (0.001,0) [0|65.535] "V" Receiver - SG_ BMS_energyReserveMin m20 : 16|16@1+ (0.001,0) [0|65.535] "V" Receiver - SG_ BMS_fcLinkTestDecayTime m21 : 8|10@1+ (2,0) [0|2044] "mS" Receiver - SG_ BMS_fcLinkTestTimeSinceLastRun m21 : 18|12@1+ (0.01758241758,0) [0|71.99] "Hours" Receiver - SG_ BMS_floodPortState1 m2 : 10|3@1+ (1,0) [0|4] "" Receiver - SG_ BMS_floodPortState2 m2 : 13|3@1+ (1,0) [0|4] "" Receiver - SG_ BMS_floodPortV1 m2 : 16|16@1+ (0.001,0) [0|65.535] "V" Receiver - SG_ BMS_floodPortV2 m2 : 32|16@1+ (0.001,0) [0|65.535] "V" Receiver - SG_ BMS_hvChain_iLimit m19 : 9|14@1+ (0.128,0) [0|2096.896] "A" Receiver - SG_ BMS_hvChain_limitingState m19 : 24|5@1+ (1,0) [0|31] "" Receiver - SG_ BMS_hvChain_limitingStateTempera m19 : 32|16@1- (0.01,0) [-327.68|327.67] "C" Receiver - SG_ BMS_hvChain_useLeakyBucket m19 : 8|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_idealEnergyFloor m22 : 20|10@1+ (0.1,0) [0|102.2] "KWh" Receiver - SG_ BMS_loadReg_output m5 : 6|11@1- (0.1,0) [-102.4|102.3] "A" Receiver - SG_ BMS_maxDcCurrentAvailable m5 : 38|11@1+ (0.5,0) [0|1023.5] "A" Receiver - SG_ BMS_negCtrCommonModeRejError m18 : 6|13@1- (2.442592959E-005,0) [-0.1|0.1] "-" Receiver - SG_ BMS_negCtrCommonModeRejErrorConf m18 : 19|13@1+ (1.22100107191684,0) [0|10000] "-" Receiver - SG_ BMS_negCtrDeviationConfidenceMax m15 : 45|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_negCtrDeviationConfidenceMin m15 : 32|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_negCtrDeviationFiltConfMax m16 : 45|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_negCtrDeviationFiltConfMin m16 : 32|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_negCtrDeviationFiltMax m16 : 19|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrDeviationFiltMin m16 : 6|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrDeviationMax m15 : 19|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrDeviationMin m15 : 6|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrDropCorrectedFiltMax m17 : 45|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrDropCorrectedFiltMin m17 : 32|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrDropCorrectedMax m17 : 19|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrDropCorrectedMin m17 : 6|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrOffsetError m18 : 32|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_negCtrOffsetErrorConf m18 : 45|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_negCtrResistance m10 : 32|13@1- (2.442598329E-006,0) [-0.01|0.01] "Ohm" Receiver - SG_ BMS_negCtrResistanceConfidence m10 : 45|13@1+ (12.2100107191684,0) [0|100000] "-" Receiver - SG_ BMS_offsetReg_output m5 : 17|14@1- (0.1,0) [-819.2|819.1] "A" Receiver - SG_ BMS_packRestTime m22 : 8|12@1+ (0.01758241758,0) [0|71.99] "Hours" Receiver - SG_ BMS_pcsPrechargeRequestActive m21 : 30|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_pcsPrechargeTargetVoltage m21 : 32|16@1- (0.1,0) [-3276.8|3276.7] "V" Receiver - SG_ BMS_posCtrCommonModeRejError m14 : 6|13@1- (2.4425983286E-005,0) [-0.1|0.1] "-" Receiver - SG_ BMS_posCtrCommonModeRejErrorConf m14 : 19|13@1+ (1.22100107191684,0) [0|10000] "-" Receiver - SG_ BMS_posCtrDeviationConfidenceMax m11 : 45|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_posCtrDeviationConfidenceMin m11 : 32|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_posCtrDeviationFiltConfMax m12 : 45|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_posCtrDeviationFiltConfMin m12 : 32|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_posCtrDeviationFiltMax m12 : 19|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrDeviationFiltMin m12 : 6|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrDeviationMax m11 : 19|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrDeviationMin m11 : 6|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrDropCorrectedFiltMax m13 : 45|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrDropCorrectedFiltMin m13 : 32|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrDropCorrectedMax m13 : 19|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrDropCorrectedMin m13 : 6|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrOffsetError m14 : 32|13@1- (0.001221299164314,0) [-5|5] "V" Receiver - SG_ BMS_posCtrOffsetErrorConf m14 : 45|13@1+ (0.000122100107192,0) [0|1] "-" Receiver - SG_ BMS_posCtrResistance m10 : 6|13@1- (2.442598329E-006,0) [-0.01|0.01] "Ohm" Receiver - SG_ BMS_posCtrResistanceConfidence m10 : 19|13@1+ (12.2100107191684,0) [0|100000] "-" Receiver - SG_ BMS_vChangeWindowChangeInitV m24 : 38|12@1+ (0.002,0) [0|5] "V" Receiver - SG_ BMS_vChangeWindowChangeIsOutlier m24 : 50|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_vChangeWindowMaxVChange m24 : 25|6@1+ (0.0025,0) [0|0.15] "V" Receiver - SG_ BMS_vChangeWindowMaxVChangeId m24 : 31|7@1+ (1,1) [1|128] "" Receiver - SG_ BMS_vChangeWindowMinBrickV m24 : 6|12@1+ (0.002,0) [0|5] "V" Receiver - SG_ BMS_vChangeWindowMinBrickVId m24 : 18|7@1+ (1,1) [1|128] "" Receiver - SG_ BMS_vChangeWindowNumOutlierChang m24 : 58|6@1+ (1,0) [0|63] "" Receiver - SG_ BMS_vChangeWindowTimeAfterWake m24 : 51|7@1+ (0.1,0) [0|12] "sec" Receiver - SG_ BMS_vshTestMaxDeltaV m4 : 16|8@1+ (0.002,0) [0|0.5] "V" Receiver - SG_ BMS_vshTestMaxDeltaVBrickID m4 : 24|7@1+ (1,1) [1|128] "" Receiver - SG_ BMS_vshTestMinDeltaV m4 : 32|8@1+ (0.002,0) [0|0.5] "V" Receiver - SG_ BMS_vshTestMinDeltaVBrickID m4 : 40|7@1+ (1,1) [1|128] "" Receiver - SG_ BMS_maxSocChange m25 : 5|11@1- (0.1,0) [-100|100] "%" Receiver - SG_ BMS_maxSocChangeBrickId m25 : 16|7@1+ (1,1) [1|108] "" Receiver - SG_ BMS_socChangeSocByOcvMax m25 : 34|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ BMS_socChangeSocByOcvMin m25 : 24|10@1+ (0.1,0) [0|100] "%" Receiver - -BO_ 800 ID320BMS_alertMatrix: 8 VehicleBus - SG_ BMS_matrixIndex M : 0|4@1+ (1,0) [0|15] "" Receiver - SG_ BMS_a001_Pack_Config_Mismatch m0 : 4|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a007_SW_Slowed_Chg_Batt_Cold m0 : 10|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a016_Pack_Module_Id_Mismatch m0 : 19|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a017_SW_Brick_OV m0 : 20|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a018_SW_Brick_UV m0 : 21|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a019_SW_Module_OT m0 : 22|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a021_SW_Dr_Limits_Regulation m0 : 24|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a022_SW_Over_Current m0 : 25|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a023_SW_Stack_OV m0 : 26|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a024_SW_Islanded_Brick m0 : 27|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a025_SW_PwrBalance_Anomaly m0 : 28|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a026_SW_HFCurrent_Anomaly m0 : 29|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a034_SW_Passive_Isolation m0 : 37|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a035_SW_Isolation m0 : 38|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a036_SW_HvpHvilFault m0 : 39|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a037_SW_Flood_Port_Open m0 : 40|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a039_SW_DC_Link_Over_Voltage m0 : 42|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a040_SW_Watch_Dog_HW_Trigger m0 : 43|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a041_SW_Destructive_Reset_So m0 : 44|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a042_SW_MPU_Error m0 : 45|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a043_SW_Watch_Dog_Reset m0 : 46|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a044_SW_Assertion m0 : 47|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a045_SW_Exception m0 : 48|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a046_SW_Task_Stack_Usage m0 : 49|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a047_SW_Task_Stack_Overflow m0 : 50|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a048_SW_Log_Upload_Request m0 : 51|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a050_SW_Brick_Voltage_MIA m0 : 53|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a051_SW_HVC_Vref_Bad m0 : 54|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a052_SW_PCS_MIA m0 : 55|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a054_SW_Ver_Supply_Fault m0 : 57|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a055_SW_HvChain_Model_Fault m0 : 58|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a056_SW_Standby_Supply_Fault m0 : 59|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a057_SW_Bandolier_Model_Warn m0 : 60|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a058_SW_Bandolier_Model_Rese m0 : 61|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a059_SW_Pack_Voltage_Sensing m0 : 62|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a060_SW_Leakage_Test_Failure m0 : 63|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a061_SW_BrickV_Change m1 : 4|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a062_SW_BrickV_Imbalance m1 : 5|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a063_SW_ChargePort_Fault m1 : 6|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a064_SW_SOC_Imbalance m1 : 7|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a065_SW_CAC_Imbalance m1 : 8|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a069_SW_Low_Power m1 : 12|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a071_SW_SM_TransCon_Not_Met m1 : 14|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a075_SW_Chg_Disable_Failure m1 : 18|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a076_SW_Dch_While_Charging m1 : 19|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a077_SW_Charger_Regulation m1 : 20|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a080_SW_Pack_Ctr_Impedance m1 : 23|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a081_SW_Ctr_Close_Blocked m1 : 24|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a082_SW_Ctr_Force_Open m1 : 25|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a083_SW_Ctr_Close_Failure m1 : 26|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a084_SW_Sleep_Wake_Aborted m1 : 27|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a087_SW_Feim_Test_Blocked m1 : 30|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a088_SW_VcFront_MIA_InDrive m1 : 31|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a089_SW_VcFront_MIA m1 : 32|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a090_SW_Gateway_MIA m1 : 33|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a091_SW_ChargePort_MIA m1 : 34|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a092_SW_ChargePort_Mia_On_Hv m1 : 35|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a094_SW_Drive_Inverter_MIA m1 : 37|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a098_SW_BMB_Data_Integrity_L m1 : 41|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a099_SW_BMB_Communication m1 : 42|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a105_SW_One_Module_Tsense m1 : 48|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a106_SW_All_Module_Tsense m1 : 49|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a107_SW_Stack_Voltage_MIA m1 : 50|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a121_SW_NVRAM_Config_Error m2 : 4|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a122_SW_BMS_Therm_Irrational m2 : 5|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a123_SW_Internal_Isolation m2 : 6|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a126_SW_Thermistor_Failure m2 : 9|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a127_SW_shunt_SNA m2 : 10|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a128_SW_shunt_MIA m2 : 11|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a129_SW_VSH_Failure m2 : 12|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a130_IO_CAN_Error m2 : 13|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a131_Bleed_FET_Failure m2 : 14|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a132_HW_BMB_OTP_Uncorrctbl m2 : 15|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a134_SW_Delayed_Ctr_Off m2 : 17|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a135_HW_BMB_Diagnostics_Fail m2 : 18|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a136_SW_Module_OT_Warning m2 : 19|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a137_SW_Brick_UV_Warning m2 : 20|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a138_SW_Brick_OV_Warning m2 : 21|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a139_SW_DC_Link_V_Irrational m2 : 22|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a141_SW_BMB_Status_Warning m2 : 24|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a143_SW_CAC_Change m2 : 26|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a144_Hvp_Config_Mismatch m2 : 27|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a145_SW_SOC_Change m2 : 28|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a146_SW_Brick_Overdischarged m2 : 29|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a149_SW_Missing_Config_Block m2 : 32|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a151_SW_external_isolation m2 : 34|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a155_SW_Weak_short_impedence m2 : 38|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a156_SW_BMB_Vref_bad m2 : 39|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a158_SW_HVP_HVI_Comms m2 : 41|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a159_SW_HVP_ECU_Error m2 : 42|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a160_SW_FC_Ctr_Clean_Failed m2 : 43|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a161_SW_DI_Open_Request m2 : 44|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a162_SW_No_Power_For_Support m2 : 45|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a163_SW_Contactor_Mismatch m2 : 46|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a164_SW_Uncontrolled_Regen m2 : 47|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a165_SW_Pack_Partial_Weld m2 : 48|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a166_SW_Pack_Full_Weld m2 : 49|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a167_SW_FC_Partial_Weld m2 : 50|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a168_SW_FC_Full_Weld m2 : 51|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a169_SW_FC_Pack_Weld m2 : 52|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a170_SW_Limp_Mode m2 : 53|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a171_SW_Stack_Voltage_Sense m2 : 54|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a174_SW_Charge_Failure m2 : 57|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a176_SW_GracefulPowerOff m2 : 59|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a178_SW_Uncontrolled_Regen_P m2 : 61|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a179_SW_Hvp_12V_Fault m2 : 62|1@1+ (1,0) [0|1] "" Receiver - SG_ BMS_a180_SW_ECU_reset_blocked m2 : 63|1@1+ (1,0) [0|1] "" Receiver - BO_ 796 ID31CCC_chgStatus: 8 VehicleBus SG_ CC_currentLimit : 0|8@1+ (0.5,0) [0|127.5] "A" Receiver SG_ CC_deltaTransformer : 28|2@1+ (1,0) [0|3] "" Receiver @@ -1163,35 +1216,21 @@ BO_ 796 ID31CCC_chgStatus: 8 VehicleBus SG_ CC_numVehCharging : 30|3@1+ (1,0) [0|7] "" Receiver SG_ CC_pilotState : 8|2@1+ (1,0) [0|3] "" Receiver -BO_ 797 ID31DCC_chgStatus2: 8 VehicleBus - SG_ CC_chgStatus2Index M : 0|8@1+ (1,0) [0|0] "" Receiver - SG_ CC_buttonState m0 : 8|1@1+ (1,0) [0|1] "" Receiver - -BO_ 812 ID32CCC_logData: 8 VehicleBus - SG_ CC_logIndex M : 0|8@1+ (1,0) [0|13] "" Receiver - SG_ CC_activeConnectorID m0 : 8|8@1+ (1,0) [0|255] "" Receiver - SG_ CC_conn1Current m1 : 8|8@1+ (0.5,0) [0|127.5] "A" Receiver - SG_ CC_conn2Current m2 : 8|8@1+ (0.5,0) [0|127.5] "A" Receiver - SG_ CC_conn3Current m3 : 8|8@1+ (0.5,0) [0|127.5] "A" Receiver - SG_ CC_conn4Current m4 : 8|8@1+ (0.5,0) [0|127.5] "A" Receiver - SG_ CC_contactor1Closed m0 : 40|2@1+ (1,0) [0|3] "" Receiver - SG_ CC_contactor2Closed m0 : 42|2@1+ (1,0) [0|3] "" Receiver - SG_ CC_lifetimeAlertCount m12 : 8|28@1+ (1,0) [0|268435455] "" Receiver - SG_ CC_lifetimeAvgStartupTemp m13 : 36|28@1- (0.1,0) [-13421772.8|13421772.7] "C" Receiver - SG_ CC_lifetimeCtrCycles m11 : 8|28@1+ (1,0) [0|268435455] "" Receiver - SG_ CC_lifetimeCtrCyclesLoaded m11 : 36|28@1+ (1,0) [0|268435455] "" Receiver - SG_ CC_lifetimeThermalFoldbacks m12 : 36|28@1+ (1,0) [0|268435455] "" Receiver - SG_ CC_lifetimei2t m10 : 32|32@1+ (0.1,0) [0|429496729.5] "A2h" Receiver - SG_ CC_temperature1 m0 : 16|8@1- (1,88) [-40|215] "C" Receiver - SG_ CC_temperature2 m0 : 24|8@1- (1,88) [-40|215] "C" Receiver - SG_ CC_temperature3 m0 : 32|8@1- (1,88) [-40|215] "C" Receiver - SG_ CC_temperature4 m0 : 44|8@1- (1,88) [-40|215] "C" Receiver - BO_ 573 ID23DCP_chargeStatus: 4 VehicleBus SG_ CP_acChargeCurrentLimit : 8|8@1+ (0.5,0) [0|127.5] "A" Receiver SG_ CP_chargeShutdownRequest : 3|2@1+ (1,0) [0|2] "" Receiver SG_ CP_hvChargeStatus : 0|3@1+ (1,0) [0|6] "" Receiver - SG_ CP_internalMaxCurrentLimit : 16|13@1+ (0.14650226,0) [0|1200] "A" Receiver + SG_ CP_internalMaxCurrentLimit : 16|13@1+ (0.146502,0) [0|1200] "A" Receiver + SG_ CP_vehicleIsoCheckRequired : 29|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_vehiclePrechargeRequired : 30|1@1+ (1,0) [0|1] "" Receiver + +BO_ 317 ID13DCP_chargeStatus: 6 VehicleBus + SG_ CP_acChargeCurrentLimit : 8|8@1+ (0.5,0) [0|127.5] "A" Receiver + SG_ CP_chargeShutdownRequest : 3|2@1+ (1,0) [0|2] "" Receiver + SG_ CP_evseChargeType : 40|2@1+ (1,0) [0|2] "" Receiver + SG_ CP_hvChargeStatus : 0|3@1+ (1,0) [0|6] "" Receiver + SG_ CP_internalMaxAcCurrentLimit : 32|8@1+ (0.5,0) [0|127.5] "A" Receiver + SG_ CP_internalMaxDcCurrentLimit : 16|13@1+ (0.146502,0) [0|1200] "A" Receiver SG_ CP_vehicleIsoCheckRequired : 29|1@1+ (1,0) [0|1] "" Receiver SG_ CP_vehiclePrechargeRequired : 30|1@1+ (1,0) [0|1] "" Receiver @@ -1201,7 +1240,7 @@ BO_ 1085 ID43DCP_chargeStatusLog: 6 VehicleBus SG_ CP_evseChargeType_log : 40|2@1+ (1,0) [0|2] "" Receiver SG_ CP_hvChargeStatus_log : 0|3@1+ (1,0) [0|6] "" Receiver SG_ CP_internalMaxAcCurrentLimit_log : 32|8@1+ (0.5,0) [0|127.5] "A" Receiver - SG_ CP_internalMaxDcCurrentLimit_log : 16|13@1+ (0.14650226,0) [0|1200] "A" Receiver + SG_ CP_internalMaxDcCurrentLimit_log : 16|13@1+ (0.146502,0) [0|1200] "A" Receiver SG_ CP_vehicleIsoCheckRequired_log : 29|1@1+ (1,0) [0|1] "" Receiver SG_ CP_vehiclePrechargeRequired_log : 30|1@1+ (1,0) [0|1] "" Receiver @@ -1232,22 +1271,29 @@ BO_ 1859 ID743VCRIGHT_recallStatus: 1 VehicleBus SG_ VCRIGHT_systemRecallStatus : 0|2@1+ (1,0) [0|3] "" Receiver BO_ 1885 ID75DCP_sensorData: 8 VehicleBus - SG_ CP_sensorDataSelect M : 0|4@1+ (1,0) [0|11] "" Receiver + SG_ CP_sensorDataSelect M : 0|4@1+ (1,0) [0|12] "" Receiver SG_ CP_UHF_chipState m6 : 4|3@1+ (1,0) [0|7] "" Receiver SG_ CP_UHF_fifoData m6 : 32|8@1+ (1,0) [0|255] "" Receiver SG_ CP_UHF_rssi m6 : 8|8@1+ (1,0) [0|255] "" Receiver SG_ CP_UHF_rxNumBytes m6 : 24|8@1+ (1,0) [0|255] "" Receiver SG_ CP_UHF_rxOverflow m6 : 16|1@1+ (1,0) [0|1] "" Receiver SG_ CP_UHF_selfTestRssi m6 : 40|8@1+ (1,0) [0|255] "" Receiver - SG_ CP_backCoverCounts m2 : 40|16@1+ (0.00152590219,0) [0|100.00000002165] "%" Receiver - SG_ CP_boardTemperature m1 : 32|8@1+ (1.29411764706,-50) [-50|280.0000000003] "C" Receiver - SG_ CP_doorCountsDebounced m0 : 24|16@1+ (0.00152590219,0) [0|100.00000002165] "%" Receiver - SG_ CP_doorCountsFiltered m0 : 8|16@1+ (0.00152590219,0) [0|100.00000002165] "%" Receiver + SG_ CP_backCover2Counts m5 : 32|16@1+ (0.0015259,0) [0|100] "%" Receiver + SG_ CP_backCoverCounts m5 : 16|16@1+ (0.0015259,0) [0|100] "%" Receiver + SG_ CP_boardTemperature m1 : 32|8@1+ (1.29412,-50) [-50|280] "C" Receiver + SG_ CP_doorCountsDebounced m0 : 24|16@1+ (0.0015259,0) [0|100] "%" Receiver + SG_ CP_doorCountsFiltered m0 : 8|16@1+ (0.0015259,0) [0|100] "%" Receiver SG_ CP_doorI m2 : 16|12@1+ (0.0025,0) [0|10.2375] "A" Receiver SG_ CP_doorLastRequestMaxI m2 : 28|12@1+ (0.0025,0) [0|10.2375] "A" Receiver SG_ CP_doorPot m2 : 4|12@1+ (0.025,0) [0|100] "%" Receiver SG_ CP_faultLineV m5 : 4|12@1+ (0.00114,0) [0|4.65524] "V" Receiver - SG_ CP_inductiveSensor_raw m4 : 4|28@1+ (1,0) [0|268435455] "" Receiver + SG_ CP_inductiveSensor_raw m4 : 4|28@1+ (1,0) [0|268435000] "" Receiver + SG_ CP_inlet1HarnessIdState m12 : 4|2@1+ (1,0) [0|2] "" Receiver + SG_ CP_inlet1HarnessIdValue m12 : 8|3@1+ (1,0) [0|7] "" Receiver + SG_ CP_inlet1HarnessV m12 : 16|14@1+ (0.001,0) [0|13.3] "V" Receiver + SG_ CP_inlet2HarnessIdState m12 : 30|2@1+ (1,0) [0|2] "" Receiver + SG_ CP_inlet2HarnessIdValue m12 : 32|3@1+ (1,0) [0|7] "" Receiver + SG_ CP_inlet2HarnessV m12 : 40|14@1+ (0.001,0) [0|13.3] "V" Receiver SG_ CP_latch2I m3 : 16|12@1+ (0.0025,0) [0|10.2375] "A" Receiver SG_ CP_latchI m3 : 4|12@1+ (0.0025,0) [0|10.2375] "A" Receiver SG_ CP_pilotHighValue m9 : 40|12@1- (0.01,0) [-20.48|20.47] "V" Receiver @@ -1258,9 +1304,9 @@ BO_ 1885 ID75DCP_sensorData: 8 VehicleBus SG_ CP_pilotLowValue_intervalMin10s m10 : 16|12@1- (0.01,0) [-20.48|20.47] "V" Receiver SG_ CP_pilotPeriod m9 : 16|12@1+ (1,0) [0|4095] "" Receiver SG_ CP_pilotPulseWidth m9 : 4|12@1+ (1,0) [0|4095] "" Receiver - SG_ CP_pinTemperature1 m1 : 8|8@1+ (0.8039215686,-55) [-55|149.99] "C" Receiver - SG_ CP_pinTemperature2 m1 : 16|8@1+ (0.8039215686,-55) [-55|149.99] "C" Receiver - SG_ CP_pinTemperature3 m1 : 24|8@1+ (0.8039215686,-55) [-55|149.99] "C" Receiver + SG_ CP_pinTemperature1 m1 : 8|8@1+ (0.803922,-55) [-55|149.99] "C" Receiver + SG_ CP_pinTemperature2 m1 : 16|8@1+ (0.803922,-55) [-55|149.99] "C" Receiver + SG_ CP_pinTemperature3 m1 : 24|8@1+ (0.803922,-55) [-55|149.99] "C" Receiver SG_ CP_proxConn1Sense m8 : 56|1@1+ (1,0) [0|1] "" Receiver SG_ CP_proxEn m8 : 57|1@1+ (1,0) [0|1] "" Receiver SG_ CP_proximityV m8 : 8|16@1+ (0.0001,0) [0|6.5535] "V" Receiver @@ -1268,63 +1314,7 @@ BO_ 1885 ID75DCP_sensorData: 8 VehicleBus SG_ CP_proximityV_GBCC2 m11 : 24|14@1+ (0.001,0) [0|13.3] "V" Receiver SG_ CP_proximityV_intervalMax10s m8 : 40|16@1+ (0.0001,0) [0|6.5535] "V" Receiver SG_ CP_proximityV_intervalMin10s m8 : 24|16@1+ (0.0001,0) [0|6.5535] "V" Receiver - SG_ CP_refVoltage m7 : 8|8@1+ (0.0070588235,0) [0|1.7999999925] "V" Receiver - -BO_ 1962 ID7AAHVP_debugMessage: 8 VehicleBus - SG_ HVP_debugMessageMultiplexer M : 0|4@1+ (1,0) [0|6] "" Receiver - SG_ HVP_auxCurrentMia m0 : 57|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_battery12V m5 : 36|12@1+ (0.1,0) [0|30] "V" Receiver - SG_ HVP_currentSenseMia m0 : 58|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_dcLinkNegativeV m3 : 8|16@1- (0.1,0) [-550|550] "V" Receiver - SG_ HVP_dcLinkPositiveV m3 : 24|16@1- (0.1,0) [-550|550] "V" Receiver - SG_ HVP_dcLinkVoltage m1 : 8|16@1- (0.1,0) [-3276.8|3276.7] "V" Receiver - SG_ HVP_fcContCoilCurrent m4 : 4|12@1+ (0.1,0) [0|7.5] "A" Receiver - SG_ HVP_fcContVoltage m4 : 16|12@1+ (0.1,0) [0|30] "V" Receiver - SG_ HVP_fcLinkNegativeV m3 : 40|16@1- (0.1,0) [-550|550] "V" Receiver - SG_ HVP_fcLinkPositiveV m5 : 8|16@1- (0.1,0) [-550|550] "V" Receiver - SG_ HVP_fcLinkVoltage m1 : 40|16@1- (0.1,0) [-3276.8|3276.7] "V" Receiver - SG_ HVP_gpioBmsEout m0 : 15|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioCpFaultIn m0 : 6|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioCpFaultOut m0 : 16|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioCpLatchEnable m0 : 21|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioCrashSignal m0 : 11|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioFcContNegAux m0 : 14|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioFcContPosAux m0 : 13|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioFcContPowerEnable m0 : 25|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioHvCablesOk m0 : 8|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioHvilEnable m0 : 26|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioHvpSelfEnable m0 : 9|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioHvpVerEn m0 : 19|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioLed m0 : 10|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioPackContPowerEn m0 : 7|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioPackCoontPosFlywheel m0 : 20|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioPassivePyroDepl m0 : 4|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioPcsChargePwmEnable m0 : 24|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioPcsDcdcPwmEnable m0 : 23|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioPcsEnable m0 : 22|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioPyroIsoEn m0 : 5|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioPyroPor m0 : 17|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioSecDrdy m0 : 27|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioShuntDataReady m0 : 12|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_gpioShuntEn m0 : 18|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_hvilInVoltage m4 : 28|12@1+ (0.1,0) [0|30] "V" Receiver - SG_ HVP_hvilOutVoltage m4 : 40|12@1+ (0.1,0) [0|30] "V" Receiver - SG_ HVP_hvp1v5Ref m0 : 28|12@1+ (0.1,0) [0|3] "V" Receiver - SG_ HVP_packContCoilCurrent m5 : 24|12@1+ (0.1,0) [0|7.5] "A" Receiver - SG_ HVP_packContVoltage m2 : 4|12@1+ (0.1,0) [0|30] "V" Receiver - SG_ HVP_packCurrentMia m0 : 56|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_packNegativeV m2 : 16|16@1- (0.1,0) [-550|550] "V" Receiver - SG_ HVP_packPositiveV m2 : 32|16@1- (0.1,0) [-550|550] "V" Receiver - SG_ HVP_packVoltage m1 : 24|16@1- (0.1,0) [-3276.8|3276.7] "V" Receiver - SG_ HVP_pyroAnalog m2 : 48|12@1+ (0.1,0) [0|3] "V" Receiver - SG_ HVP_shuntAsicTempDbg m6 : 40|16@1- (0.1,0) [-3276.7|3276.7] "C" Receiver - SG_ HVP_shuntAuxCurrentDbg m6 : 8|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver - SG_ HVP_shuntBarTempDbg m6 : 24|16@1- (0.01,0) [-327.67|327.67] "C" Receiver - SG_ HVP_shuntCurrentDebug m0 : 40|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver - SG_ HVP_shuntHwMia m0 : 61|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_shuntRefVoltageDbg m5 : 48|16@1- (0.001,0) [-32.768|32.767] "V" Receiver - SG_ HVP_shuntRefVoltageMismatch m0 : 59|1@1+ (1,0) [0|1] "" Receiver - SG_ HVP_shuntThermistorMia m0 : 60|1@1+ (1,0) [0|1] "" Receiver + SG_ CP_refVoltage m7 : 8|8@1+ (0.00705882,0) [0|1.8] "V" Receiver BO_ 647 ID287PTCcabinHeatSensorStatus: 8 VehicleBus SG_ PTC_leftCurrentHV : 48|8@1+ (0.2,0) [0|50] "A" Receiver @@ -1335,14 +1325,18 @@ BO_ 647 ID287PTCcabinHeatSensorStatus: 8 VehicleBus SG_ PTC_tempPCB : 24|8@1+ (1,-40) [-40|200] "C" Receiver SG_ PTC_voltageHV : 32|10@1+ (0.5,0) [0|511.5] "V" Receiver -BO_ 819 ID333UI_chargeRequest: 4 VehicleBus +BO_ 819 ID333UI_chargeRequest: 5 VehicleBus SG_ UI_acChargeCurrentLimit : 8|7@1+ (1,0) [0|127] "A" Receiver + SG_ UI_brickBalancingDisabled : 4|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_brickVLoggingRequest : 3|1@1+ (1,0) [0|1] "" Receiver SG_ UI_chargeEnableRequest : 2|1@1+ (1,0) [0|1] "" Receiver SG_ UI_chargeTerminationPct : 16|10@1+ (0.1,0) [25|100] "%" Receiver SG_ UI_closeChargePortDoorRequest : 1|1@1+ (1,0) [0|1] "" Receiver SG_ UI_openChargePortDoorRequest : 0|1@1+ (1,0) [0|1] "" Receiver SG_ UI_scheduledDepartureEnabled : 27|1@1+ (1,0) [0|1] "" Receiver SG_ UI_smartAcChargingEnabled : 26|1@1+ (1,0) [0|1] "" Receiver + SG_ UI_cpInletHeaterRequest : 32|1@1+ (1,0) [0|0] "" Receiver + SG_ UI_socSnapshotExpirationTime : 28|4@1+ (1,2) [0|0] "weeks" Receiver BO_ 820 ID334UI_powertrainControl: 8 VehicleBus SG_ UI_DIAppSliderDebug : 42|2@1+ (1,0) [0|3] "" Receiver @@ -1379,163 +1373,25 @@ BO_ 577 ID241VCFRONT_coolant: 7 VehicleBus SG_ VCFRONT_radiatorIneffective : 47|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_wasteHeatRequestType : 44|2@1+ (1,0) [0|2] "" Receiver -BO_ 708 ID2C4PCS_logging: 8 VehicleBus - SG_ PCS_logMessageSelect M : 0|5@1+ (1,0) [0|26] "" Receiver - SG_ PCS_1V2Max10s m9 : 43|11@1+ (0.001,0) [0|2.047] "V" Receiver - SG_ PCS_1V2Min10s m9 : 32|11@1+ (0.001,0) [0|2.047] "V" Receiver - SG_ PCS_1V5Max10s m9 : 19|11@1+ (0.001,0) [0|2.047] "V" Receiver - SG_ PCS_1V5Min10s m9 : 8|11@1+ (0.001,0) [0|2.047] "V" Receiver - SG_ PCS_5VNMax10s m9 : 54|10@1+ (0.01,0) [0|10.23] "V" Receiver - SG_ PCS_acChargeSelfTestState m9 : 7|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chg5VL1Enable m5 : 61|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgAcpwHeartbeatState m23 : 62|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_chgCurrentSensorOutOfBandUs m20 : 32|10@1+ (0.01,0) [0|10.23] "us" Receiver - SG_ PCS_chgInputFrequencyL1N m4 : 5|12@1+ (0.01,40) [40|80.95] "Hz" Receiver - SG_ PCS_chgInputFrequencyL2N m4 : 17|12@1+ (0.01,40) [40|80.95] "Hz" Receiver - SG_ PCS_chgInputFrequencyL3N m4 : 29|12@1+ (0.01,40) [40|80.95] "Hz" Receiver - SG_ PCS_chgInputL1L2Vdc m21 : 36|10@1- (1,0) [-512|511] "V" Receiver - SG_ PCS_chgInputL1L2Vrms m3 : 41|12@1+ (0.2,0) [0|819] "V" Receiver - SG_ PCS_chgInputL1NVdc m21 : 5|10@1- (1,0) [-512|511] "V" Receiver - SG_ PCS_chgInputL1NVrms m3 : 5|12@1+ (0.2,0) [0|819] "V" Receiver - SG_ PCS_chgInputL2NVdc m21 : 16|10@1- (1,0) [-512|511] "V" Receiver - SG_ PCS_chgInputL2NVrms m3 : 17|12@1+ (0.2,0) [0|819] "V" Receiver - SG_ PCS_chgInputL3NVdc m21 : 26|10@1- (1,0) [-512|511] "V" Receiver - SG_ PCS_chgInputL3NVrms m3 : 29|12@1+ (0.2,0) [0|819] "V" Receiver - SG_ PCS_chgInputNGVdc m21 : 46|10@1- (1,0) [-512|511] "V" Receiver - SG_ PCS_chgInputNGVrms m3 : 53|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgInternalPhaseConfig m4 : 41|4@1+ (1,0) [0|9] "" Receiver - SG_ PCS_chgKwhLostByFreqDroop m20 : 48|8@1+ (0.1,0) [0|25.5] "kWh" Receiver - SG_ PCS_chgL1L2PllLocked m5 : 57|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgL1NPllLocked m5 : 54|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgL2NPllLocked m5 : 55|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgL3NPllLocked m5 : 56|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgNgPllLocked m5 : 58|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgOutputV m4 : 51|12@1+ (0.146484375,0) [0|599.853515625] "V" Receiver - SG_ PCS_chgPHAInputVPeak10s m13 : 5|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPHBInputVPeak10s m13 : 14|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPHCInputVPeak10s m13 : 23|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhAInputFreqWobbleCnt m13 : 32|8@1+ (0.1,0) [0|25.5] "s" Receiver - SG_ PCS_chgPhAInputIrms m0 : 5|9@1+ (0.1,0) [0|51.1] "A" Receiver - SG_ PCS_chgPhAIntBusV m0 : 14|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhAIntBusVMax10s m10 : 14|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhAIntBusVMin10s m10 : 5|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhAIntBusVTarget m0 : 23|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhALastShutdownReason m5 : 17|5@1+ (1,0) [0|17] "" Receiver - SG_ PCS_chgPhALifetimekWh m10 : 31|24@1+ (0.01,0) [0|167772.15] "kWh" Receiver - SG_ PCS_chgPhAMachineEnabled m23 : 5|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgPhAMachineRotorFreqDroop m23 : 6|10@1- (0.01,0) [-5.12|5.11] "Hz" Receiver - SG_ PCS_chgPhAMachineStatorCurrent m23 : 16|8@1- (0.2,0) [-25.6|25.4] "A" Receiver - SG_ PCS_chgPhANoFlowBucket m20 : 5|9@1+ (0.01,0) [0|5.11] "-" Receiver - SG_ PCS_chgPhAOutputI m0 : 32|8@1+ (0.1,0) [0|25.5] "A" Receiver - SG_ PCS_chgPhAPchgVoltDeltaMax10s m10 : 23|8@1+ (0.5,0) [0|127.5] "V" Receiver - SG_ PCS_chgPhARetryCount m5 : 32|3@1+ (1,0) [0|7] "" Receiver - SG_ PCS_chgPhAState m5 : 5|4@1+ (1,0) [0|6] "" Receiver - SG_ PCS_chgPhATransientRetryCount m10 : 55|9@1+ (0.1,0) [0|51.1] "-" Receiver - SG_ PCS_chgPhBInputFreqWobbleCnt m13 : 40|8@1+ (0.1,0) [0|25.5] "s" Receiver - SG_ PCS_chgPhBInputIrms m1 : 5|9@1+ (0.1,0) [0|51.1] "A" Receiver - SG_ PCS_chgPhBIntBusV m1 : 14|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhBIntBusVMax10s m11 : 14|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhBIntBusVMin10s m11 : 5|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhBIntBusVTarget m1 : 23|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhBLastShutdownReason m5 : 22|5@1+ (1,0) [0|17] "" Receiver - SG_ PCS_chgPhBLifetimekWh m11 : 31|24@1+ (0.01,0) [0|167772.15] "kWh" Receiver - SG_ PCS_chgPhBMachineEnabled m23 : 24|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgPhBMachineRotorFreqDroop m23 : 25|10@1- (0.01,0) [-5.12|5.11] "Hz" Receiver - SG_ PCS_chgPhBMachineStatorCurrent m23 : 35|8@1- (0.2,0) [-25.6|25.4] "A" Receiver - SG_ PCS_chgPhBNoFlowBucket m20 : 14|9@1+ (0.01,0) [0|5.11] "-" Receiver - SG_ PCS_chgPhBOutputI m1 : 32|8@1+ (0.1,0) [0|25.5] "A" Receiver - SG_ PCS_chgPhBPchgVoltDeltaMax10s m11 : 23|8@1+ (0.5,0) [0|127.5] "V" Receiver - SG_ PCS_chgPhBRetryCount m5 : 35|3@1+ (1,0) [0|7] "" Receiver - SG_ PCS_chgPhBState m5 : 9|4@1+ (1,0) [0|6] "" Receiver - SG_ PCS_chgPhBTransientRetryCount m11 : 55|9@1+ (0.1,0) [0|51.1] "-" Receiver - SG_ PCS_chgPhCInputFreqWobbleCnt m13 : 48|8@1+ (0.1,0) [0|25.5] "s" Receiver - SG_ PCS_chgPhCInputIrms m2 : 5|9@1+ (0.1,0) [0|51.1] "A" Receiver - SG_ PCS_chgPhCIntBusV m2 : 14|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhCIntBusVMax10s m12 : 14|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhCIntBusVMin10s m12 : 5|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhCIntBusVTarget m2 : 23|9@1+ (1,0) [0|511] "V" Receiver - SG_ PCS_chgPhCLastShutdownReason m5 : 27|5@1+ (1,0) [0|17] "" Receiver - SG_ PCS_chgPhCLifetimekWh m12 : 31|24@1+ (0.01,0) [0|167772.15] "kWh" Receiver - SG_ PCS_chgPhCMachineEnabled m23 : 43|1@1+ (1,0) [0|1] "" Receiver - SG_ PCS_chgPhCMachineRotorFreqDroop m23 : 44|10@1- (0.01,0) [-5.12|5.11] "Hz" Receiver - SG_ PCS_chgPhCMachineStatorCurrent m23 : 54|8@1- (0.2,0) [-25.6|25.4] "A" Receiver - SG_ PCS_chgPhCNoFlowBucket m20 : 23|9@1+ (0.01,0) [0|5.11] "-" Receiver - SG_ PCS_chgPhCOutputI m2 : 32|8@1+ (0.1,0) [0|25.5] "A" Receiver - SG_ PCS_chgPhCPchgVoltDeltaMax10s m12 : 23|8@1+ (0.5,0) [0|127.5] "V" Receiver - SG_ PCS_chgPhCRetryCount m5 : 38|3@1+ (1,0) [0|7] "" Receiver - SG_ PCS_chgPhCState m5 : 13|4@1+ (1,0) [0|6] "" Receiver - SG_ PCS_chgPhCTransientRetryCount m12 : 55|9@1+ (0.1,0) [0|51.1] "-" Receiver - SG_ PCS_chgPhManCurrentToDist m5 : 44|10@1+ (0.1,0) [0|100] "A" Receiver - SG_ PCS_chgPhManOptimalPhsToUse m5 : 59|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_chgPhasesPriority m4 : 45|6@1+ (1,0) [0|36] "" Receiver - SG_ PCS_chgPwmEnableLineErrorCount m22 : 32|10@1+ (1,0) [0|1023] "" Receiver - SG_ PCS_chgReqKwhLostByFreqDroop m20 : 56|8@1+ (0.1,0) [0|25.5] "kWh" Receiver - SG_ PCS_chgRetryCount m5 : 41|3@1+ (1,0) [0|7] "" Receiver - SG_ PCS_cpu2BootState m9 : 5|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhAChannel1Content m14 : 5|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhAChannel1Data m14 : 16|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhAChannel2Content m15 : 5|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhAChannel2Data m15 : 16|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhAChannel3Content m16 : 5|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhAChannel3Data m16 : 16|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhAChannel4Content m17 : 5|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhAChannel4Data m17 : 16|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhBChannel1Content m14 : 8|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhBChannel1Data m14 : 32|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhBChannel2Content m15 : 8|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhBChannel2Data m15 : 32|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhBChannel3Content m16 : 8|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhBChannel3Data m16 : 32|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhBChannel4Content m17 : 8|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhBChannel4Data m17 : 32|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhCChannel1Content m14 : 10|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhCChannel1Data m14 : 48|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhCChannel2Content m15 : 10|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhCChannel2Data m15 : 48|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhCChannel3Content m16 : 10|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhCChannel3Data m16 : 48|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dLogPhCChannel4Content m17 : 10|2@1+ (1,0) [0|3] "" Receiver - SG_ PCS_dLogPhCChannel4Data m17 : 48|16@1- (0.02,0) [-655.36|655.34] "-" Receiver - SG_ PCS_dcdc12vSupportLifetimekWh m22 : 8|24@1+ (0.01,0) [0|167772.15] "kWh" Receiver - SG_ PCS_dcdcCLAControllerOutput m7 : 16|10@1+ (0.001,0) [0|1] "1" Receiver - SG_ PCS_dcdcClaCurrentFreq m7 : 48|12@1+ (0.09765625,0) [0|399.9] "kHz" Receiver - SG_ PCS_dcdcCurrentLimit m6 : 20|12@1+ (0.1,0) [0|400] "A" Receiver - SG_ PCS_dcdcHalfPeriodUs m8 : 40|16@1+ (0.00048828125,0) [0|31.9995] "us" Receiver - SG_ PCS_dcdcHvBusEstimated_C_uF m25 : 5|10@1+ (7.82013685239492,0) [0|8000] "uF" Receiver - SG_ PCS_dcdcHvBusEstimated_R_kOhm m25 : 16|10@1+ (0.0488758553274682,0) [0|50] "kOhm" Receiver - SG_ PCS_dcdcIntervalMaxFrequency m18 : 8|12@1+ (1,0) [0|400] "kHz" Receiver - SG_ PCS_dcdcIntervalMaxHvBusVolt m18 : 24|13@1+ (0.1,0) [0|600] "V" Receiver - SG_ PCS_dcdcIntervalMaxLvBusVolt m18 : 37|9@1+ (0.1,0) [0|40] "V" Receiver - SG_ PCS_dcdcIntervalMaxLvOutputCurr m18 : 48|12@1+ (1,0) [0|400] "A" Receiver - SG_ PCS_dcdcIntervalMinFrequency m19 : 8|12@1+ (1,0) [0|400] "kHz" Receiver - SG_ PCS_dcdcIntervalMinHvBusVolt m19 : 24|13@1+ (0.1,0) [0|600] "V" Receiver - SG_ PCS_dcdcIntervalMinLvBusVolt m19 : 37|9@1+ (0.1,0) [0|40] "V" Receiver - SG_ PCS_dcdcIntervalMinLvOutputCurr m19 : 48|12@1+ (1,0) [0|400] "A" Receiver - SG_ PCS_dcdcLvOutputCurrentTempLimit m6 : 32|12@1+ (0.1,0) [0|400] "A" Receiver - SG_ PCS_dcdcMaxLvOutputCurrent m6 : 8|12@1+ (0.1,0) [0|400] "A" Receiver - SG_ PCS_dcdcPchgStartHvBusVolt m24 : 16|12@1+ (0.146484375,0) [0|599.853515625] "V" Receiver - SG_ PCS_dcdcPchgStartLvBusVolt m24 : 5|10@1+ (0.0390625,0) [0|39.9609375] "V" Receiver - SG_ PCS_dcdcPwmEnableLineErrorCount m22 : 42|10@1+ (1,0) [0|1023] "" Receiver - SG_ PCS_dcdcShortTimeUs m8 : 24|16@1+ (0.00048828125,0) [0|31.9995] "us" Receiver - SG_ PCS_dcdcTCommMeasured m8 : 8|16@1- (0.001953125,0) [-64|63.998] "us" Receiver - SG_ PCS_dcdcTankVoltage m7 : 26|11@1- (1,0) [-1024|1023] "V" Receiver - SG_ PCS_dcdcTankVoltageTarget m7 : 37|10@1+ (1,0) [0|1023] "V" Receiver - SG_ PCS_dcdcUnifiedCommand m7 : 5|10@1+ (0.001,0) [0|1] "1" Receiver - SG_ PCS_numAlertsSet m22 : 56|7@1+ (1,0) [0|127] "" Receiver - BO_ 955 ID3BBUI_power: 2 VehicleBus SG_ UI_powerExpected : 0|8@1+ (1,0) [0|100] "kW" Receiver SG_ UI_powerIdeal : 8|8@1+ (1,0) [0|100] "kW" Receiver -BO_ 1493 ID5D5RearTBD: 5 VehicleBus - SG_ RearFlow5D5 : 24|8@1+ (0.2,0) [0|0] "LPM" Receiver - SG_ RearTemp5D5B : 8|8@1+ (1,-40) [-40|215] "C" Receiver - SG_ TestTemp5D5A : 0|8@1+ (1,-40) [-40|215] "C" Receiver - -BO_ 1366 ID556FrontTBD: 5 VehicleBus - SG_ FrontFlow556 : 24|8@1+ (0.2,0) [0|0] "LPM" Receiver - SG_ FrontTemp556B : 8|8@1+ (1,-40) [-40|215] "C" Receiver - SG_ FrontTemp556A : 0|8@1+ (1,-40) [-40|215] "C" Receiver +BO_ 1493 ID5D5RearDItemps: 5 VehicleBus + SG_ DI_ph1Temp : 0|8@1+ (1,-40) [-40|120] "C" Receiver + SG_ DI_ph2Temp : 8|8@1+ (1,-40) [-40|120] "C" Receiver + SG_ DI_ph3Temp : 16|8@1+ (1,-40) [-40|120] "C" Receiver + SG_ DI_pcbTemp2 : 24|8@1+ (1,-40) [-40|150] "C" Receiver + SG_ DI_IGBTJunctTemp : 32|8@1+ (1,-40) [-40|200] "C" Receiver + +BO_ 1366 ID556FrontDItemps: 7 VehicleBus + SG_ DIF_ph1Temp : 0|8@1+ (1,-40) [-40|120] "C" Receiver + SG_ DIF_ph2Temp : 8|8@1+ (1,-40) [-40|120] "C" Receiver + SG_ DIF_ph3Temp : 16|8@1+ (1,-40) [-40|120] "C" Receiver + SG_ DIF_pcbTemp2 : 24|8@1+ (1,-40) [-40|150] "C" Receiver + SG_ DIF_IGBTJunctTemp : 32|8@1+ (1,-40) [-40|200] "C" Receiver + SG_ DIF_lashAngle : 40|10@1+ (0.06,0) [0|60] "Deg" Receiver + SG_ DIF_lashCheckCount : 50|6@1+ (1,0) [0|63] "" Receiver BO_ 1367 ID557FrontThermalControl: 4 VehicleBus SG_ DIS_activeInletTempReq : 8|8@1+ (1,-40) [-40|120] "C" Receiver @@ -1551,42 +1407,33 @@ BO_ 1495 ID5D7RearThermalControl: 4 VehicleBus BO_ 2005 ID7D5DIR_debug: 8 VehicleBus SG_ DIR_debugSelector M : 0|8@1+ (1,0) [0|255] "" Receiver - SG_ DIR_aebCancelReason m45 : 32|8@1+ (1,0) [0|255] "" Receiver - SG_ DIR_aebFaultReason m45 : 16|4@1+ (1,0) [0|15] "" Receiver - SG_ DIR_aebUnavailableReason m45 : 24|4@1+ (1,0) [0|10] "" Receiver - SG_ DIR_brakeCpScale m2 : 16|9@1- (0.01,0.5) [-1|2] "N/N" Receiver SG_ DIR_brakeSwitchNC m42 : 63|1@1+ (1,0) [0|1] "" Receiver SG_ DIR_brakeSwitchNO m42 : 62|1@1+ (1,0) [0|1] "" Receiver - SG_ DIR_brkStState m50 : 24|3@1+ (1,0) [0|6] "" Receiver SG_ DIR_busbarTemp m64 : 16|8@1+ (1,-40) [-40|215] "C" Receiver - SG_ DIR_controlStack m67 : 56|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ DIR_cpu100HzAvg m66 : 48|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu100HzMax m66 : 40|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu100HzMin m66 : 32|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu10HzAvg m66 : 24|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu10HzMax m66 : 16|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIR_controlStack m67 : 40|8@1+ (0.4,0) [0|100] "%" Receiver + SG_ DIR_cpu100HzAvg m66 : 32|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIR_cpu100HzMin m66 : 24|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIR_cpu10HzAvg m66 : 16|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIR_cpu10HzMin m66 : 8|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu1HzAvg m128 : 32|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu1HzMax m128 : 24|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIR_cpu10msMin m66 : 40|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIR_cpu1HzAvg m128 : 24|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIR_cpu1HzMin m128 : 16|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu1kHzAvg m67 : 24|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu1kHzMax m67 : 16|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIR_cpu1kHzAvg m67 : 16|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIR_cpu1kHzMin m67 : 8|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu20kHzAvg m67 : 48|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu20kHzMax m67 : 40|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIR_cpu20kHzMin m67 : 32|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIR_cpu20kHzAvg m67 : 32|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIR_cpu20kHzMin m67 : 24|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIR_cpuIDWord0 m131 : 16|16@1+ (1,0) [0|65535] "" Receiver SG_ DIR_cpuIDWord1 m132 : 16|16@1+ (1,0) [0|65535] "" Receiver SG_ DIR_cpuIDWord2 m132 : 32|16@1+ (1,0) [0|65535] "" Receiver SG_ DIR_cpuIDWord3 m132 : 48|16@1+ (1,0) [0|65535] "" Receiver - SG_ DIR_crc m131 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ DIR_crc m131 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ DIR_currentLimit m41 : 32|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ DIR_dcCableCurrentEst m37 : 16|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver SG_ DIR_dcCableHeat m47 : 32|16@1+ (0.001,0) [0|65.535] "kA2s" Receiver SG_ DIR_dcCapTemp m64 : 8|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_dcLinkCapTemp m70 : 32|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_decodeHardwareStack m68 : 24|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ DIR_driveUnitOdometer m69 : 32|32@1+ (10,0) [0|42949672950] "rev" Receiver + SG_ DIR_driveUnitOdometer m69 : 32|32@1+ (10,0) [0|42949700000] "rev" Receiver SG_ DIR_eepromStack m68 : 32|8@1+ (0.4,0) [0|100] "%" Receiver SG_ DIR_fluxState m42 : 16|4@1+ (1,0) [0|10] "" Receiver SG_ DIR_gainScale m37 : 8|8@1+ (0.01,0) [0|2.55] "scale" Receiver @@ -1595,7 +1442,6 @@ BO_ 2005 ID7D5DIR_debug: 8 VehicleBus SG_ DIR_hvDcCableTemp m70 : 40|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_hwFaultCount m69 : 8|4@1+ (1,0) [0|15] "" Receiver SG_ DIR_idleStack m68 : 16|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ DIR_immobilizerCondition m64 : 63|1@1+ (1,0) [0|1] "" Receiver SG_ DIR_immobilizerStack m68 : 56|8@1+ (0.4,0) [0|100] "%" Receiver SG_ DIR_internalAngleFilt m37 : 48|16@1+ (0.0003,0) [0|8] "rad" Receiver SG_ DIR_llrScale m42 : 32|8@1+ (0.015,0) [0|3.825] "scale" Receiver @@ -1603,22 +1449,15 @@ BO_ 2005 ID7D5DIR_debug: 8 VehicleBus SG_ DIR_lmScale m36 : 8|8@1+ (0.004,0) [0|1.02] "scale" Receiver SG_ DIR_loadAngle m42 : 40|16@1- (0.0003,0) [-4|4] "rad" Receiver SG_ DIR_loadAngleMargin m37 : 32|16@1- (0.0003,0) [-4|4] "rad" Receiver - SG_ DIR_locCheckSpeedRef m75 : 54|8@1+ (1,0) [0|250] "kph" Receiver - SG_ DIR_locFeedFwTrq m75 : 44|10@1- (10,0) [-5000|5000] "Nm" Receiver - SG_ DIR_locTargetAccel m75 : 8|8@1- (0.08,-4.72) [-15|5.4] "m/s^2" Receiver - SG_ DIR_locTargetSpeed m75 : 16|8@1+ (1,0) [0|250] "kph" Receiver - SG_ DIR_locUi m75 : 34|10@1- (10,0) [-5000|5000] "Nm" Receiver - SG_ DIR_locUp m75 : 24|10@1- (10,0) [-5000|5000] "Nm" Receiver SG_ DIR_magnetTempEst m47 : 48|8@1+ (1,-40) [-40|180] "C" Receiver - SG_ DIR_module10HzStack m66 : 56|8@1+ (0.4,0) [0|100] "%" Receiver + SG_ DIR_module10HzStack m66 : 48|8@1+ (0.4,0) [0|100] "%" Receiver SG_ DIR_motorIA m32 : 16|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ DIR_motorIAavg m38 : 32|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver SG_ DIR_motorIB m32 : 32|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ DIR_motorIBavg m38 : 48|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver SG_ DIR_motorIC m32 : 48|16@1+ (0.1,0) [0|6553.5] "A" Receiver - SG_ DIR_motorType m128 : 8|5@1+ (1,0) [0|27] "" Receiver + SG_ DIR_motorType m128 : 8|6@1+ (1,0) [0|32] "" Receiver SG_ DIR_motorV m34 : 48|16@1+ (2E-005,0) [0|1.3107] "mindex" Receiver - SG_ DIR_muSurfHigh m2 : 8|8@1+ (0.005,0) [0|1.2] "N/N" Receiver SG_ DIR_negDcBusbarTemp m70 : 48|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_offsetA m32 : 8|8@1- (0.1,0) [-12.8|12.7] "A" Receiver SG_ DIR_offsetB m33 : 8|8@1- (0.1,0) [-12.8|12.7] "A" Receiver @@ -1626,16 +1465,15 @@ BO_ 2005 ID7D5DIR_debug: 8 VehicleBus SG_ DIR_oilPumpPhaseVoltage m46 : 16|8@1+ (0.1,0) [0|25.4] "V" Receiver SG_ DIR_oilPumpPressureEstimateMax m46 : 24|8@1+ (2,0) [0|500] "kPa" Receiver SG_ DIR_oilPumpPressureExpectedMin m46 : 32|8@1+ (2,0) [0|500] "kPa" Receiver - SG_ DIR_opdUnavailableReason m45 : 40|4@1+ (1,0) [0|15] "" Receiver SG_ DIR_pcsTemp m64 : 24|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_peakFlux m36 : 48|16@1+ (0.0001,0) [0|6.5535] "Wb" Receiver SG_ DIR_peakIQref m38 : 16|16@1+ (0.1,0) [0|6553.5] "A" Receiver - SG_ DIR_pedalPosFilt m2 : 32|8@1+ (0.4,0) [0|100] "%" Receiver SG_ DIR_phaseOutBusbarTemp m70 : 8|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_phaseOutBusbarWeldTemp m70 : 16|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_phaseOutLugTemp m70 : 24|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_posDcBusbarTemp m70 : 56|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIR_powerStageSafeState m50 : 13|2@1+ (1,0) [0|3] "" Receiver + SG_ DIR_pwmState m63 : 48|2@1+ (1,0) [0|3] "" Receiver SG_ DIR_pwrSatChargeCurrent m42 : 8|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIR_pwrSatDischargeCurrent m40 : 8|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIR_pwrSatMaxBusVoltage m39 : 48|8@1+ (0.4,0) [0|102] "%" Receiver @@ -1680,12 +1518,8 @@ BO_ 2005 ID7D5DIR_debug: 8 VehicleBus SG_ DIR_statorVQ m36 : 16|16@1- (4E-005,0) [-1.31072|1.31068] "mindex" Receiver SG_ DIR_statorVQFiltered m63 : 32|16@1- (4E-005,0) [-1.31072|1.31068] "mindex" Receiver SG_ DIR_sysHeatPowerOptimal m50 : 16|8@1+ (0.08,0) [0|20] "kW" Receiver - SG_ DIR_sysPedalMaxTorque m44 : 22|14@1+ (0.1,0) [0|1638.3] "Nm" Receiver - SG_ DIR_sysPedalMinTorque m44 : 8|14@1+ (0.1,-1638.3) [-1638.3|0] "Nm" Receiver - SG_ DIR_sysPostPedalMaxTorque m44 : 50|14@1+ (0.1,0) [0|1638.3] "Nm" Receiver - SG_ DIR_sysPostPedalMinTorque m44 : 36|14@1+ (0.1,-1638.3) [-1638.3|0] "Nm" Receiver SG_ DIR_systemStack m68 : 8|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ DIR_systemTorqueCommand m35 : 48|16@1- (0.035,0) [-1146.88|1146.845] "Nm" Receiver + SG_ DIR_systemTorqueCommand m35 : 48|16@1- (0.035,0) [-1146.88|1146.85] "Nm" Receiver SG_ DIR_tcMaxRequest m40 : 16|8@1+ (5,0) [0|1275] "Nm" Receiver SG_ DIR_tcMinRequest m40 : 24|8@1+ (5,0) [0|1275] "Nm" Receiver SG_ DIR_torquePerAmp m33 : 48|16@1+ (0.0001,0) [0|6.5535] "Nm/A" Receiver @@ -1701,48 +1535,38 @@ BO_ 2005 ID7D5DIR_debug: 8 VehicleBus SG_ DIR_usmState m38 : 12|3@1+ (1,0) [0|7] "" Receiver SG_ DIR_veMassInvRaw m41 : 8|12@1+ (1E-007,0.0001) [0.0001|0.0005] "1/kg" Receiver SG_ DIR_veResForce m41 : 20|12@1- (0.0005,0) [-1.024|1.0235] "G" Receiver - SG_ DIR_velocityEstimatorState m65 : 8|3@1+ (1,0) [0|4] "" Receiver SG_ DIR_wasteCurrentLimit m41 : 48|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ DIR_xcpStack m68 : 48|8@1+ (0.4,0) [0|100] "%" Receiver BO_ 1879 ID757DIF_debug: 8 VehicleBus SG_ DIF_debugSelector M : 0|8@1+ (1,0) [0|255] "" Receiver - SG_ DIF_aebCancelReason m45 : 32|8@1+ (1,0) [0|255] "" Receiver - SG_ DIF_aebFaultReason m45 : 16|4@1+ (1,0) [0|15] "" Receiver - SG_ DIF_aebUnavailableReason m45 : 24|4@1+ (1,0) [0|10] "" Receiver - SG_ DIF_brakeCpScale m2 : 16|9@1- (0.01,0.5) [-1|2] "N/N" Receiver SG_ DIF_brakeSwitchNC m42 : 63|1@1+ (1,0) [0|1] "" Receiver SG_ DIF_brakeSwitchNO m42 : 62|1@1+ (1,0) [0|1] "" Receiver - SG_ DIF_brkStState m50 : 24|3@1+ (1,0) [0|6] "" Receiver SG_ DIF_busbarTemp m64 : 16|8@1+ (1,-40) [-40|215] "C" Receiver - SG_ DIF_controlStack m67 : 56|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ DIF_cpu100HzAvg m66 : 48|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu100HzMax m66 : 40|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu100HzMin m66 : 32|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu10HzAvg m66 : 24|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu10HzMax m66 : 16|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIF_controlStack m67 : 40|8@1+ (0.4,0) [0|100] "%" Receiver + SG_ DIF_cpu100HzAvg m66 : 32|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIF_cpu100HzMin m66 : 24|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIF_cpu10HzAvg m66 : 16|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIF_cpu10HzMin m66 : 8|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu1HzAvg m128 : 32|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu1HzMax m128 : 24|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIF_cpu10msMin m66 : 40|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIF_cpu1HzAvg m128 : 24|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIF_cpu1HzMin m128 : 16|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu1kHzAvg m67 : 24|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu1kHzMax m67 : 16|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIF_cpu1kHzAvg m67 : 16|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIF_cpu1kHzMin m67 : 8|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu20kHzAvg m67 : 48|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu20kHzMax m67 : 40|8@1+ (0.4,0) [0|102] "%" Receiver - SG_ DIF_cpu20kHzMin m67 : 32|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIF_cpu20kHzAvg m67 : 32|8@1+ (0.4,0) [0|102] "%" Receiver + SG_ DIF_cpu20kHzMin m67 : 24|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIF_cpuIDWord0 m131 : 16|16@1+ (1,0) [0|65535] "" Receiver SG_ DIF_cpuIDWord1 m132 : 16|16@1+ (1,0) [0|65535] "" Receiver SG_ DIF_cpuIDWord2 m132 : 32|16@1+ (1,0) [0|65535] "" Receiver SG_ DIF_cpuIDWord3 m132 : 48|16@1+ (1,0) [0|65535] "" Receiver - SG_ DIF_crc m131 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ DIF_crc m131 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ DIF_currentLimit m41 : 32|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ DIF_dcCableCurrentEst m37 : 16|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver SG_ DIF_dcCableHeat m47 : 32|16@1+ (0.001,0) [0|65.535] "kA2s" Receiver SG_ DIF_dcCapTemp m64 : 8|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_dcLinkCapTemp m70 : 32|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_decodeHardwareStack m68 : 24|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ DIF_driveUnitOdometer m69 : 32|32@1+ (10,0) [0|42949672950] "rev" Receiver + SG_ DIF_driveUnitOdometer m69 : 32|32@1+ (10,0) [0|42949700000] "rev" Receiver SG_ DIF_eepromStack m68 : 32|8@1+ (0.4,0) [0|100] "%" Receiver SG_ DIF_fluxState m42 : 16|4@1+ (1,0) [0|10] "" Receiver SG_ DIF_gainScale m37 : 8|8@1+ (0.01,0) [0|2.55] "scale" Receiver @@ -1751,7 +1575,6 @@ BO_ 1879 ID757DIF_debug: 8 VehicleBus SG_ DIF_hvDcCableTemp m70 : 40|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_hwFaultCount m69 : 8|4@1+ (1,0) [0|15] "" Receiver SG_ DIF_idleStack m68 : 16|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ DIF_immobilizerCondition m64 : 63|1@1+ (1,0) [0|1] "" Receiver SG_ DIF_immobilizerStack m68 : 56|8@1+ (0.4,0) [0|100] "%" Receiver SG_ DIF_internalAngleFilt m37 : 48|16@1+ (0.0003,0) [0|8] "rad" Receiver SG_ DIF_llrScale m42 : 32|8@1+ (0.015,0) [0|3.825] "scale" Receiver @@ -1759,22 +1582,15 @@ BO_ 1879 ID757DIF_debug: 8 VehicleBus SG_ DIF_lmScale m36 : 8|8@1+ (0.004,0) [0|1.02] "scale" Receiver SG_ DIF_loadAngle m42 : 40|16@1- (0.0003,0) [-4|4] "rad" Receiver SG_ DIF_loadAngleMargin m37 : 32|16@1- (0.0003,0) [-4|4] "rad" Receiver - SG_ DIF_locCheckSpeedRef m75 : 54|8@1+ (1,0) [0|250] "kph" Receiver - SG_ DIF_locFeedFwTrq m75 : 44|10@1- (10,0) [-5000|5000] "Nm" Receiver - SG_ DIF_locTargetAccel m75 : 8|8@1- (0.08,-4.72) [-15|5.4] "m/s^2" Receiver - SG_ DIF_locTargetSpeed m75 : 16|8@1+ (1,0) [0|250] "kph" Receiver - SG_ DIF_locUi m75 : 34|10@1- (10,0) [-5000|5000] "Nm" Receiver - SG_ DIF_locUp m75 : 24|10@1- (10,0) [-5000|5000] "Nm" Receiver SG_ DIF_magnetTempEst m47 : 48|8@1+ (1,-40) [-40|180] "C" Receiver - SG_ DIF_module10HzStack m66 : 56|8@1+ (0.4,0) [0|100] "%" Receiver + SG_ DIF_module10HzStack m66 : 48|8@1+ (0.4,0) [0|100] "%" Receiver SG_ DIF_motorIA m32 : 16|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ DIF_motorIAavg m38 : 32|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver SG_ DIF_motorIB m32 : 32|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ DIF_motorIBavg m38 : 48|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver SG_ DIF_motorIC m32 : 48|16@1+ (0.1,0) [0|6553.5] "A" Receiver - SG_ DIF_motorType m128 : 8|5@1+ (1,0) [0|27] "" Receiver + SG_ DIF_motorType m128 : 8|6@1+ (1,0) [0|32] "" Receiver SG_ DIF_motorV m34 : 48|16@1+ (2E-005,0) [0|1.3107] "mindex" Receiver - SG_ DIF_muSurfHigh m2 : 8|8@1+ (0.005,0) [0|1.2] "N/N" Receiver SG_ DIF_negDcBusbarTemp m70 : 48|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_offsetA m32 : 8|8@1- (0.1,0) [-12.8|12.7] "A" Receiver SG_ DIF_offsetB m33 : 8|8@1- (0.1,0) [-12.8|12.7] "A" Receiver @@ -1782,16 +1598,15 @@ BO_ 1879 ID757DIF_debug: 8 VehicleBus SG_ DIF_oilPumpPhaseVoltage m46 : 16|8@1+ (0.1,0) [0|25.4] "V" Receiver SG_ DIF_oilPumpPressureEstimateMax m46 : 24|8@1+ (2,0) [0|500] "kPa" Receiver SG_ DIF_oilPumpPressureExpectedMin m46 : 32|8@1+ (2,0) [0|500] "kPa" Receiver - SG_ DIF_opdUnavailableReason m45 : 40|4@1+ (1,0) [0|15] "" Receiver SG_ DIF_pcsTemp m64 : 24|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_peakFlux m36 : 48|16@1+ (0.0001,0) [0|6.5535] "Wb" Receiver SG_ DIF_peakIQref m38 : 16|16@1+ (0.1,0) [0|6553.5] "A" Receiver - SG_ DIF_pedalPosFilt m2 : 32|8@1+ (0.4,0) [0|100] "%" Receiver SG_ DIF_phaseOutBusbarTemp m70 : 8|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_phaseOutBusbarWeldTemp m70 : 16|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_phaseOutLugTemp m70 : 24|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_posDcBusbarTemp m70 : 56|8@1+ (1,-40) [-40|215] "C" Receiver SG_ DIF_powerStageSafeState m50 : 13|2@1+ (1,0) [0|3] "" Receiver + SG_ DIF_pwmState m63 : 48|2@1+ (1,0) [0|3] "" Receiver SG_ DIF_pwrSatChargeCurrent m42 : 8|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIF_pwrSatDischargeCurrent m40 : 8|8@1+ (0.4,0) [0|102] "%" Receiver SG_ DIF_pwrSatMaxBusVoltage m39 : 48|8@1+ (0.4,0) [0|102] "%" Receiver @@ -1836,12 +1651,8 @@ BO_ 1879 ID757DIF_debug: 8 VehicleBus SG_ DIF_statorVQ m36 : 16|16@1- (4E-005,0) [-1.31072|1.31068] "mindex" Receiver SG_ DIF_statorVQFiltered m63 : 32|16@1- (4E-005,0) [-1.31072|1.31068] "mindex" Receiver SG_ DIF_sysHeatPowerOptimal m50 : 16|8@1+ (0.08,0) [0|20] "kW" Receiver - SG_ DIF_sysPedalMaxTorque m44 : 22|14@1+ (0.1,0) [0|1638.3] "Nm" Receiver - SG_ DIF_sysPedalMinTorque m44 : 8|14@1+ (0.1,-1638.3) [-1638.3|0] "Nm" Receiver - SG_ DIF_sysPostPedalMaxTorque m44 : 50|14@1+ (0.1,0) [0|1638.3] "Nm" Receiver - SG_ DIF_sysPostPedalMinTorque m44 : 36|14@1+ (0.1,-1638.3) [-1638.3|0] "Nm" Receiver SG_ DIF_systemStack m68 : 8|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ DIF_systemTorqueCommand m35 : 48|16@1- (0.035,0) [-1146.88|1146.845] "Nm" Receiver + SG_ DIF_systemTorqueCommand m35 : 48|16@1- (0.035,0) [-1146.88|1146.85] "Nm" Receiver SG_ DIF_tcMaxRequest m40 : 16|8@1+ (5,0) [0|1275] "Nm" Receiver SG_ DIF_tcMinRequest m40 : 24|8@1+ (5,0) [0|1275] "Nm" Receiver SG_ DIF_torquePerAmp m33 : 48|16@1+ (0.0001,0) [0|6.5535] "Nm/A" Receiver @@ -1857,7 +1668,6 @@ BO_ 1879 ID757DIF_debug: 8 VehicleBus SG_ DIF_usmState m38 : 12|3@1+ (1,0) [0|7] "" Receiver SG_ DIF_veMassInvRaw m41 : 8|12@1+ (1E-007,0.0001) [0.0001|0.0005] "1/kg" Receiver SG_ DIF_veResForce m41 : 20|12@1- (0.0005,0) [-1.024|1.0235] "G" Receiver - SG_ DIF_velocityEstimatorState m65 : 8|3@1+ (1,0) [0|4] "" Receiver SG_ DIF_wasteCurrentLimit m41 : 48|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ DIF_xcpStack m68 : 48|8@1+ (0.4,0) [0|100] "%" Receiver @@ -1866,7 +1676,7 @@ BO_ 694 ID2B6DI_chassisControlStatus: 2 VehicleBus SG_ DI_ptcStateUI : 7|2@1+ (1,0) [0|3] "" Receiver SG_ DI_tcTelltaleFlash : 2|1@1+ (1,0) [0|1] "" Receiver SG_ DI_tcTelltaleOn : 3|1@1+ (1,0) [0|1] "" Receiver - SG_ DI_tractionControlModeUI : 4|3@1+ (1,0) [0|5] "" Receiver + SG_ DI_tractionControlModeUI : 4|3@1+ (1,0) [0|6] "" Receiver SG_ DI_vdcTelltaleFlash : 0|1@1+ (1,0) [0|1] "" Receiver SG_ DI_vdcTelltaleOn : 1|1@1+ (1,0) [0|1] "" Receiver SG_ DI_vehicleHoldTelltaleOn : 10|1@1+ (1,0) [0|1] "" Receiver @@ -1915,9 +1725,23 @@ BO_ 545 ID221VCFRONT_LVPowerState: 8 VehicleBus SG_ VCFRONT_vcleftHiCurrentLVState m0 : 44|2@1+ (1,0) [0|3] "" Receiver SG_ VCFRONT_vcrightHiCurrentLVState m0 : 46|2@1+ (1,0) [0|3] "" Receiver +BO_ 549 ID225VCRIGHT_LVPowerState: 3 VehicleBus + SG_ VCRIGHT_amplifierLVState : 4|2@1+ (1,0) [0|3] "" Receiver + SG_ VCRIGHT_cntctrPwrState : 17|1@1+ (1,0) [0|1] "" Receiver + SG_ VCRIGHT_eFuseLockoutStatus : 18|2@1+ (1,0) [0|2] "" Receiver + SG_ VCRIGHT_hvcLVState : 10|2@1+ (1,0) [0|3] "" Receiver + SG_ VCRIGHT_lumbarLVState : 14|2@1+ (1,0) [0|3] "" Receiver + SG_ VCRIGHT_ocsLVState : 2|2@1+ (1,0) [0|3] "" Receiver + SG_ VCRIGHT_ptcLVState : 0|2@1+ (1,0) [0|3] "" Receiver + SG_ VCRIGHT_rcmLVState : 12|2@1+ (1,0) [0|3] "" Receiver + SG_ VCRIGHT_rearOilPumpLVState : 6|2@1+ (1,0) [0|3] "" Receiver + SG_ VCRIGHT_swEnStatus : 20|1@1+ (1,0) [0|1] "" Receiver + SG_ VCRIGHT_tunerLVState : 8|2@1+ (1,0) [0|3] "" Receiver + SG_ VCRIGHT_vehiclePowerStateDBG : 21|2@1+ (1,0) [0|3] "" Receiver + BO_ 753 ID2F1VCFRONT_eFuseDebugStatus: 8 VehicleBus SG_ VCFRONT_eFuseDebugStatusIndex M : 0|5@1+ (1,0) [0|18] "" Receiver - SG_ VCFRONT_ChargePumpVoltage m16 : 24|16@1+ (0.005443676098,0) [0|356.75131308243] "V" Receiver + SG_ VCFRONT_ChargePumpVoltage m16 : 24|16@1+ (0.00544368,0) [0|356.751] "V" Receiver SG_ VCFRONT_EPAS3PCurrent m4 : 47|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ VCFRONT_EPAS3PFault m4 : 10|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_EPAS3PSelfTestResult m4 : 11|4@1+ (1,0) [0|11] "" Receiver @@ -1959,7 +1783,7 @@ BO_ 753 ID2F1VCFRONT_eFuseDebugStatus: 8 VehicleBus SG_ VCFRONT_autopilot2Voltage m9 : 27|16@1+ (0.1,0) [0|6553.5] "V" Receiver SG_ VCFRONT_chargedIBSAmpHours m17 : 8|16@1+ (1,0) [0|65535] "Ah" Receiver SG_ VCFRONT_dischargedIBSAmpHours m17 : 24|16@1+ (1,0) [0|65535] "Ah" Receiver - SG_ VCFRONT_eFuseLockoutVoltage m16 : 8|12@1+ (0.005443676098,0) [0|22.29185362131] "V" Receiver + SG_ VCFRONT_eFuseLockoutVoltage m16 : 8|12@1+ (0.00544368,0) [0|22.2919] "V" Receiver SG_ VCFRONT_headlampLeftCurrent m12 : 10|10@1+ (0.1,0) [0|102.3] "A" Receiver SG_ VCFRONT_headlampLeftFault m12 : 9|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_headlampLeftState m12 : 8|1@1+ (1,0) [0|1] "" Receiver @@ -1988,10 +1812,10 @@ BO_ 753 ID2F1VCFRONT_eFuseDebugStatus: 8 VehicleBus SG_ VCFRONT_pump2AndAirCompCurrent m14 : 35|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ VCFRONT_pump2AndAirCompState m14 : 34|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_pump2AndAirCompVoltage m14 : 51|12@1+ (0.1,0) [0|409.5] "V" Receiver - SG_ VCFRONT_railA_12v m15 : 8|12@1+ (0.005443676098,0) [0|22.29185362131] "V" Receiver - SG_ VCFRONT_railA_5v m15 : 32|12@1+ (0.005443676098,0) [0|22.29185362131] "V" Receiver - SG_ VCFRONT_railB_12v m15 : 20|12@1+ (0.005443676098,0) [0|22.29185362131] "V" Receiver - SG_ VCFRONT_railB_5v m15 : 44|12@1+ (0.005443676098,0) [0|22.29185362131] "V" Receiver + SG_ VCFRONT_railA_12v m15 : 8|12@1+ (0.00544368,0) [0|22.2919] "V" Receiver + SG_ VCFRONT_railA_5v m15 : 32|12@1+ (0.00544368,0) [0|22.2919] "V" Receiver + SG_ VCFRONT_railB_12v m15 : 20|12@1+ (0.00544368,0) [0|22.2919] "V" Receiver + SG_ VCFRONT_railB_5v m15 : 44|12@1+ (0.00544368,0) [0|22.2919] "V" Receiver SG_ VCFRONT_rightControllerCurrent m0 : 47|16@1+ (0.1,0) [0|6553.5] "A" Receiver SG_ VCFRONT_rightControllerFault m0 : 10|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_rightControllerState m0 : 8|2@1+ (1,0) [0|2] "" Receiver @@ -2016,15 +1840,28 @@ BO_ 753 ID2F1VCFRONT_eFuseDebugStatus: 8 VehicleBus SG_ VCFRONT_vcleftSelfTestResult m1 : 11|4@1+ (1,0) [0|11] "" Receiver SG_ VCFRONT_vcrightSelfTestResult m0 : 11|4@1+ (1,0) [0|11] "" Receiver +BO_ 578 ID242VCLEFT_LVPowerState: 2 VehicleBus + SG_ VCLEFT_cpLVState : 8|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_diLVState : 6|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_lumbarLVState : 12|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_rcmLVState : 0|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_sccmLVState : 4|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_swcLVState : 10|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_tpmsLVState : 2|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_vehiclePowerStateDBG : 14|2@1+ (1,0) [0|3] "" Receiver + BO_ 579 ID243VCRIGHT_hvacStatus: 8 VehicleBus - SG_ VCRIGHT_hvacStatusIndex M : 0|2@1+ (1,0) [0|2] "" Receiver + SG_ VCRIGHT_hvacStatusIndex M : 0|2@1+ (1,0) [0|3] "" Receiver SG_ VCRIGHT_hvacACRunning m0 : 50|1@1+ (1,0) [0|1] "" Receiver SG_ VCRIGHT_hvacAirDistributionMode m0 : 41|3@1+ (1,0) [0|7] "" Receiver SG_ VCRIGHT_hvacBlowerSegment m0 : 44|4@1+ (1,0) [0|11] "" Receiver SG_ VCRIGHT_hvacCabinTempEst m0 : 30|11@1+ (0.1,-40) [-40|164] "C" Receiver - SG_ VCRIGHT_hvacDuctTargetLeft m1 : 34|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_hvacDuctTargetRight m1 : 42|8@1+ (0.5,-40) [-40|80] "C" Receiver + SG_ VCRIGHT_hvacDuctTargetLeft m1 : 48|8@1+ (0.5,-40) [-40|80] "C" Receiver + SG_ VCRIGHT_hvacDuctTargetRight m1 : 56|8@1+ (0.5,-40) [-40|80] "C" Receiver + SG_ VCRIGHT_hvacEvapInletTempEstimat m2 : 19|10@1+ (0.13,-40) [-40|90] "C" Receiver SG_ VCRIGHT_hvacMassflowRefrigSystem m1 : 2|8@1+ (1,0) [0|250] "g/s" Receiver + SG_ VCRIGHT_hvacModelInitStatus m0 : 60|3@1+ (1,0) [0|5] "" Receiver + SG_ VCRIGHT_hvacOverheatProtActive m0 : 63|1@1+ (1,0) [0|1] "" Receiver SG_ VCRIGHT_hvacPowerState m0 : 51|3@1+ (1,0) [0|4] "" Receiver SG_ VCRIGHT_hvacQdotLeft m0 : 2|14@1+ (1,-8191) [-8191|8191] "W" Receiver SG_ VCRIGHT_hvacQdotRight m0 : 16|14@1+ (1,-8191) [-8191|8191] "W" Receiver @@ -2032,10 +1869,15 @@ BO_ 579 ID243VCRIGHT_hvacStatus: 8 VehicleBus SG_ VCRIGHT_hvacRecircDoorPercent m1 : 10|6@1+ (1.6,0) [0|100] "%" Receiver SG_ VCRIGHT_hvacSecondRowState m0 : 56|3@1+ (1,0) [0|4] "" Receiver SG_ VCRIGHT_hvacSystemNominal m0 : 59|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_tempDuctLeft m1 : 16|9@1+ (0.3,-40) [-40|105] "C" Receiver - SG_ VCRIGHT_tempDuctRight m1 : 25|9@1+ (0.3,-40) [-40|105] "C" Receiver - -BO_ 524 ID20CVCRIGHT_hvacRequest: 7 VehicleBus + SG_ VCRIGHT_hvacVentStatus m0 : 54|2@1+ (1,0) [0|2] "" Receiver + SG_ VCRIGHT_tempDuctLeft m1 : 16|8@1+ (0.5,-22) [-22|105] "C" Receiver + SG_ VCRIGHT_tempDuctLeftLower m1 : 24|8@1+ (0.5,-22) [-22|105] "C" Receiver + SG_ VCRIGHT_tempDuctLeftUpper m2 : 2|8@1+ (0.5,-22) [-22|105] "C" Receiver + SG_ VCRIGHT_tempDuctRight m1 : 32|8@1+ (0.5,-22) [-22|105] "C" Receiver + SG_ VCRIGHT_tempDuctRightLower m1 : 40|8@1+ (0.5,-22) [-22|105] "C" Receiver + SG_ VCRIGHT_tempDuctRightUpper m2 : 10|8@1+ (0.5,-22) [-22|105] "C" Receiver + +BO_ 524 ID20CVCRIGHT_hvacRequest: 8 VehicleBus SG_ VCRIGHT_conditioningRequest : 12|1@1+ (1,0) [0|1] "" Receiver SG_ VCRIGHT_evapPerformanceLow : 43|1@1+ (1,0) [0|1] "" Receiver SG_ VCRIGHT_hvacBlowerSpeedRPMReq : 32|10@1+ (5,0) [0|5115] "RPM" Receiver @@ -2043,168 +1885,13 @@ BO_ 524 ID20CVCRIGHT_hvacRequest: 7 VehicleBus SG_ VCRIGHT_hvacHeatingEnabledLeft : 52|1@1+ (1,0) [0|1] "" Receiver SG_ VCRIGHT_hvacHeatingEnabledRight : 53|1@1+ (1,0) [0|1] "" Receiver SG_ VCRIGHT_hvacPerfTestRunning : 42|1@1+ (1,0) [0|1] "" Receiver + SG_ VCRIGHT_hvacPerfTestState : 54|2@1+ (1,0) [0|2] "" Receiver + SG_ VCRIGHT_hvacUnavailable : 56|1@1+ (1,0) [0|1] "" Receiver SG_ VCRIGHT_tempAmbientRaw : 44|8@1+ (0.5,-40) [-40|80] "C" Receiver SG_ VCRIGHT_tempEvaporator : 13|11@1+ (0.1,-40) [-40|105] "C" Receiver SG_ VCRIGHT_tempEvaporatorTarget : 24|8@1+ (0.2,0) [0|50] "C" Receiver SG_ VCRIGHT_wattsDemandEvap : 0|11@1+ (5,0) [0|10000] "W" Receiver -BO_ 691 ID2B3VCRIGHT_logging1Hz: 8 VehicleBus - SG_ VCRIGHT_logging1HzIndex M : 0|4@1+ (1,0) [0|11] "" Receiver - SG_ VCRIGHT_LHPanelAirflowBlocked m3 : 54|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_RHPanelAirflowBlocked m3 : 55|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_cabinTempBreathLevel m1 : 56|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_cabinTempFanCurrent m9 : 15|6@1- (0.001,0) [-0.01|0.05] "A" Receiver - SG_ VCRIGHT_cabinTempFanOutput m9 : 14|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_cabinTempGlassRoof m1 : 8|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_cabinTempInterior m1 : 24|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_cabinTempInteriorL2 m0 : 24|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_cabinTempInteriorL3 m9 : 40|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_cabinTempInteriorSunny m1 : 32|8@1+ (0.6,-40) [-40|100] "C" Receiver - SG_ VCRIGHT_cabinTempInteriorSunnyL2 m0 : 40|8@1+ (0.6,-40) [-40|100] "C" Receiver - SG_ VCRIGHT_cabinTempInteriorSunnyL3 m9 : 48|8@1+ (0.6,-40) [-40|100] "C" Receiver - SG_ VCRIGHT_cabinTempSideGlassLeft m1 : 40|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_cabinTempSideGlassRight m1 : 48|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_cabinTempTopPadAir m9 : 56|8@1+ (0.6,-40) [-40|100] "C" Receiver - SG_ VCRIGHT_cabinTempWindshield m1 : 16|8@1+ (0.5,-40) [-40|80] "C" Receiver - SG_ VCRIGHT_cloudinessProbability m9 : 33|7@1+ (1,0) [0|100] "%" Receiver - SG_ VCRIGHT_convectionDeliveredLeft m4 : 24|8@1+ (2,-254) [-254|256] "W/m2" Receiver - SG_ VCRIGHT_convectionDeliveredRight m4 : 32|8@1+ (2,-254) [-254|256] "W/m2" Receiver - SG_ VCRIGHT_convectionTargetLeft m4 : 8|8@1+ (2,-254) [-254|256] "W/m2" Receiver - SG_ VCRIGHT_convectionTargetRight m4 : 16|8@1+ (2,-254) [-254|256] "W/m2" Receiver - SG_ VCRIGHT_defrostAirflowBlocked m3 : 57|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_evapCondensationRate m10 : 47|9@1- (0.007,0) [-1|1] "g/s" Receiver - SG_ VCRIGHT_evapDryingRoutineRuntime m10 : 56|5@1+ (1,0) [0|31] "" Receiver - SG_ VCRIGHT_evapLoadInFresh m5 : 32|8@1+ (35,0) [0|8000] "W" Receiver - SG_ VCRIGHT_evapLoadInRecirc m5 : 40|8@1+ (35,0) [0|8000] "W" Receiver - SG_ VCRIGHT_evapWaterMass m10 : 40|7@1+ (6,0) [0|380] "Grams" Receiver - SG_ VCRIGHT_filterLifeBlowerTorque m9 : 4|10@1+ (0.006,-1.5) [-1.5|4.5] "Nm" Receiver - SG_ VCRIGHT_floorAirflowBlocked m3 : 56|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacAirFlowModeRow1 m3 : 29|3@1+ (1,0) [0|7] "" Receiver - SG_ VCRIGHT_hvacAirFlowModeRow2 m3 : 32|3@1+ (1,0) [0|7] "" Receiver - SG_ VCRIGHT_hvacAirflowReason m3 : 48|4@1+ (1,0) [0|13] "" Receiver - SG_ VCRIGHT_hvacAutoTransitionReason m3 : 24|5@1+ (1,0) [0|18] "" Receiver - SG_ VCRIGHT_hvacCabOvrheatProtActive m9 : 30|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacCabOvrheatProtAllowe m9 : 32|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacCabinPurgeActive m9 : 29|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacCabinPurgeAllowed m9 : 31|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacIntakeEndStop m7 : 56|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacIntakeVoltage m6 : 56|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacIntakeZeroStop m8 : 56|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLHBleedEndStop m7 : 8|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLHBleedVoltage m6 : 8|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLHBleedZeroStop m8 : 8|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLHVaneEndStop m7 : 24|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLHVaneVoltage m6 : 24|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLHVaneZeroStop m8 : 24|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLowerModeEndStop m7 : 48|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLowerModeVoltage m6 : 48|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacLowerModeZeroStop m8 : 48|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacMassflowTarget m3 : 40|8@1+ (1,0) [0|200] "g/s" Receiver - SG_ VCRIGHT_hvacQdotFeedforward m5 : 16|16@1+ (1,-32767) [-32767|32767] "W" Receiver - SG_ VCRIGHT_hvacQdotLimitedLeft m3 : 52|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacQdotLimitedRight m3 : 53|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_hvacRHBleedEndStop m7 : 16|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacRHBleedVoltage m6 : 16|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacRHBleedZeroStop m8 : 16|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacRHVaneEndStop m7 : 32|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacRHVaneVoltage m6 : 32|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacRHVaneZeroStop m8 : 32|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacSetTempActualLeft m3 : 8|8@1+ (0.1,15) [15|28] "C" Receiver - SG_ VCRIGHT_hvacSetTempActualRight m3 : 16|8@1+ (0.1,15) [15|28] "C" Receiver - SG_ VCRIGHT_hvacUpperModeEndStop m7 : 40|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacUpperModeVoltage m6 : 40|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_hvacUpperModeZeroStop m8 : 40|8@1+ (0.02,0) [0|5] "V" Receiver - SG_ VCRIGHT_leftHeatOvertempProtect m10 : 61|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_pcbaTemperature m2 : 4|11@1+ (0.125,-40) [-40|150] "C" Receiver - SG_ VCRIGHT_ptcHeaterHvacActNotReady m5 : 7|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_ptcHeaterLAirPathBlocked m5 : 10|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_ptcHeaterNoAirflow m5 : 6|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_ptcHeaterNoHighVoltage m5 : 9|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_ptcHeaterNoUiRequest m5 : 8|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_ptcHeaterPwrDemandLeft m2 : 40|8@1+ (20,0) [0|5000] "W" Receiver - SG_ VCRIGHT_ptcHeaterPwrDemandRight m2 : 48|8@1+ (20,0) [0|5000] "W" Receiver - SG_ VCRIGHT_ptcHeaterRAirPathBlocked m5 : 11|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_ptcHeaterReqAirpathBlock m5 : 12|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_ptcHeaterTempDuctFault m5 : 5|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_ptcHeaterTempDuctHigh m5 : 4|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_rightHeatOvertempProtect m10 : 62|1@1+ (1,0) [0|1] "" Receiver - SG_ VCRIGHT_solarLoadLeftOccupant m4 : 48|7@1+ (2,0) [0|254] "W/m2" Receiver - SG_ VCRIGHT_solarLoadOnVehFiltered m9 : 21|8@1+ (4,0) [0|1020] "W/m2" Receiver - SG_ VCRIGHT_solarLoadOnVehicle m4 : 56|8@1+ (4,0) [0|1020] "W/m2" Receiver - SG_ VCRIGHT_solarLoadRightOccupant m4 : 40|7@1+ (2,0) [0|254] "W/m2" Receiver - SG_ VCRIGHT_tempDuctModeledLeft m10 : 4|9@1+ (0.3,-40) [-40|105] "C" Receiver - SG_ VCRIGHT_tempDuctModeledRight m10 : 13|9@1+ (0.3,-40) [-40|105] "C" Receiver - SG_ VCRIGHT_tempHtrSurfaceModeledL m10 : 22|9@1+ (0.3,-40) [-40|105] "C" Receiver - SG_ VCRIGHT_tempHtrSurfaceModeledR m10 : 31|9@1+ (0.3,-40) [-40|105] "C" Receiver - SG_ VCRIGHT_tempIncarCabinDeep m0 : 16|8@1+ (0.5,-40) [-40|85] "C" Receiver - SG_ VCRIGHT_tempIncarCabinMid m0 : 32|8@1+ (0.5,-40) [-40|85] "C" Receiver - SG_ VCRIGHT_tempIncarCabinProbe m0 : 8|8@1+ (0.5,-40) [-40|85] "C" Receiver - SG_ VCRIGHT_wattsHeaterLeftTotal m2 : 16|10@1+ (5,0) [0|4000] "W" Receiver - SG_ VCRIGHT_wattsHeaterRightTotal m2 : 26|10@1+ (5,0) [0|4000] "W" Receiver - -BO_ 705 ID2C1VCFront10hz: 8 VehicleBus - SG_ VCFront10HzIndex M : 0|3@1+ (1,0) [0|7] "" Receiver - SG_ VCfrontpumpBatteryRPMActual m0 : 3|10@1+ (10,0) [0|10230] "rpm" Receiver - SG_ VCfrontpumpBatteryRPMTarget m0 : 13|10@1+ (10,0) [0|0] "rpm" Receiver - SG_ VCfrontpumpPowertrainRPMActual m0 : 23|10@1+ (10,0) [0|0] "rpm" Receiver - SG_ VCfrontpumpPowertrainRPMTarget m0 : 33|10@1+ (10,0) [0|0] "rpm" Receiver - SG_ VCfrontpumpBatteryOutVoltage m0 : 43|7@1+ (0.2,0) [0|0] "V" Receiver - SG_ VCfrontpumpPowertrainOutVoltage m0 : 50|7@1+ (0.2,0) [0|0] "V" Receiver - SG_ VCfrontpumpBatteryInitd m0 : 57|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontpumpPowertrainInitd m0 : 58|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontpumpBatteryEnabled m0 : 59|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontpumpPowertrainEnabled m0 : 60|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontpumpBatteryPowerOn m0 : 61|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontpumpPowertrainPowerOn m0 : 62|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontpumpsWake m0 : 63|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontradiatorFanOutVoltage m1 : 8|7@1+ (0.2,0) [0|0] "V" Receiver - SG_ VCfrontradiatorFanRPMTarget m1 : 16|10@1+ (10,0) [0|0] "rpm" Receiver - SG_ VCfrontradiatorFanRPMActual m1 : 26|10@1+ (10,0) [0|0] "rpm" Receiver - SG_ VCfrontradiatorFanInitd m1 : 36|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontradiatorFanEnabled m1 : 37|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontradiatorFanPowerOn m1 : 38|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontradiatorFanPhaseCurrent m1 : 40|8@1+ (0.5,-25) [0|0] "A" Receiver - SG_ VCfrontfiveWayValveMode m2 : 3|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcoolantTempBasedMode m2 : 4|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontfiveWayValveModeWrong m2 : 5|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontfiveWayValveAngleActual m2 : 6|10@1+ (0.25,-70) [0|0] "deg" Receiver - SG_ VCfrontfiveWayValveAngleTarget m2 : 16|10@1+ (0.25,-10) [0|0] "deg" Receiver - SG_ VCfrontfiveWayValveRadBypass m2 : 26|7@1+ (1,0) [0|0] "%" Receiver - SG_ VCfrontfiveWayValveState m2 : 33|2@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontfiveWayValveDuty m2 : 35|8@1- (1,0) [0|0] "%" Receiver - SG_ VCfrontfiveWayValveAngleTravel m2 : 43|10@1+ (5,0) [0|0] "deg" Receiver - SG_ VCfrontfiveWayValveISense m2 : 53|6@1+ (0.01,0) [0|0] "A" Receiver - SG_ VCfronttempRefrigSuction m3 : 8|8@1+ (0.5,-40) [0|0] "C" Receiver - SG_ VCfronttempRefrigDischarge m3 : 16|11@1+ (0.125,-40) [0|0] "C" Receiver - SG_ VCfronttempSuperheatActual m3 : 27|10@1+ (0.1,-20) [0|0] "C" Receiver - SG_ VCfronttempSuperheatTarget m3 : 37|10@1+ (0.1,0) [0|0] "C" Receiver - SG_ VCfrontpumpBatSpiError m3 : 47|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontpumpPtSpiError m3 : 48|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontthmlFanSpiError m3 : 49|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfronttempDischargeSimulated m3 : 50|11@1+ (0.125,-40) [0|0] "C" Receiver - SG_ VCfrontisOnlySuctTempNotReady m3 : 61|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontusingSimulatedDischTemp m3 : 62|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontusingSimulatedAmbTemp m3 : 63|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontrefrigerantHasBeenFilled m4 : 3|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompDemandChiller m4 : 8|7@1+ (1,0) [0|0] "%" Receiver - SG_ VCfrontcompDemandEvap m4 : 16|7@1+ (1,0) [0|0] "%" Receiver - SG_ VCfrontcompressorState m4 : 24|2@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompLimitPresDischargeHi m4 : 26|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompLimitTempDischargeHi m4 : 27|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompLimitScrollSepRegion m4 : 28|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompLimitNvh m4 : 29|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompLimitScrollSepRamp m4 : 30|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompLimitDeadband m4 : 31|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompStandbySelfNotReady m4 : 32|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompStandbyCommunication m4 : 33|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompStandbyHVNotReady m4 : 34|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompStandbyLowAmbient m4 : 35|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompStandbyLowDischPress m4 : 36|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompStandbyRefrigNotOk m4 : 37|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompLimitTempDischargeSim m4 : 38|1@1+ (1,0) [0|0] "" Receiver - SG_ VCfrontcompRampRateUpMax m4 : 40|6@1+ (0.1,0) [0|0] "%/s" Receiver - SG_ VCfrontrefrigerantValvesClosed m4 : 46|1@1+ (1,0) [0|0] "" Receiver - BO_ 737 ID2E1VCFRONT_status: 8 VehicleBus SG_ VCFRONT_statusIndex M : 0|3@1+ (1,0) [0|6] "" Receiver SG_ VCFRONT_12VARailStable m5 : 5|1@1+ (1,0) [0|1] "" Receiver @@ -2212,7 +1899,7 @@ BO_ 737 ID2E1VCFRONT_status: 8 VehicleBus SG_ VCFRONT_12VOverchargeCounter m4 : 16|4@1+ (1,0) [0|15] "" Receiver SG_ VCFRONT_5VARailStable m5 : 3|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_5VBRailStable m5 : 4|1@1+ (1,0) [0|1] "" Receiver - SG_ VCFRONT_AS8510Voltage m5 : 28|12@1+ (0.005443676098,0) [0|22.286409945212] "V" Receiver + SG_ VCFRONT_AS8510Voltage m5 : 28|12@1+ (0.00544368,0) [0|22.2864] "V" Receiver SG_ VCFRONT_ChargePumpVoltageStable m5 : 9|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_HSDInitCompleteU13 m5 : 11|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_HSDInitCompleteU16 m5 : 12|1@1+ (1,0) [0|1] "" Receiver @@ -2222,18 +1909,20 @@ BO_ 737 ID2E1VCFRONT_status: 8 VehicleBus SG_ VCFRONT_airCompressorStatus m0 : 25|3@1+ (1,0) [0|7] "" Receiver SG_ VCFRONT_anyClosureOpen m0 : 49|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_anyDoorOpen m0 : 50|1@1+ (1,0) [0|1] "" Receiver - SG_ VCFRONT_batterySMState m1 : 13|3@1+ (1,0) [0|7] "" Receiver + SG_ VCFRONT_batterySMState m1 : 16|4@1+ (1,0) [0|8] "" Receiver SG_ VCFRONT_chargeNeeded m4 : 13|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_chillerDemandActive m3 : 26|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_compPerfRecoveryLimited m3 : 27|1@1+ (1,0) [0|1] "" Receiver - SG_ VCFRONT_crashDetectedType m0 : 20|2@1+ (1,0) [0|2] "" Receiver - SG_ VCFRONT_crashState m0 : 22|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_coolantFillRoutineStatus m3 : 50|2@1+ (1,0) [0|3] "" Receiver + SG_ VCFRONT_crashDetectedType m0 : 20|2@1+ (1,0) [0|3] "" Receiver + SG_ VCFRONT_crashState m0 : 22|2@1+ (1,0) [0|3] "" Receiver SG_ VCFRONT_crashUnlockOverrideSet m0 : 24|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_epasWakeLine m1 : 4|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_freezeEvapITerm m3 : 24|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_frunkAccessPost m0 : 62|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_frunkInteriorRelSwitch m0 : 48|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_frunkLatchStatus m0 : 3|4@1+ (1,0) [0|8] "" Receiver + SG_ VCFRONT_frunkLatchType m0 : 58|2@1+ (1,0) [0|2] "" Receiver SG_ VCFRONT_hasLowRefrigerant m3 : 29|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_headlampLeftFanStatus m0 : 60|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_headlampRightFanStatus m0 : 61|1@1+ (1,0) [0|1] "" Receiver @@ -2246,40 +1935,46 @@ BO_ 737 ID2E1VCFRONT_status: 8 VehicleBus SG_ VCFRONT_homelinkV2Response3 m2 : 32|8@1+ (1,0) [0|255] "" Receiver SG_ VCFRONT_homelinkV2Response4 m2 : 40|8@1+ (1,0) [0|255] "" Receiver SG_ VCFRONT_hornOn m0 : 51|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hvacModeNotAttainable m3 : 28|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hvacPerfTestCommand m3 : 48|2@1+ (1,0) [0|3] "" Receiver SG_ VCFRONT_iBoosterStateDBG m1 : 5|3@1+ (1,0) [0|4] "" Receiver SG_ VCFRONT_iBoosterWakeLine m1 : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_isActiveHeatingBattery m0 : 63|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_isColdStartRunning m3 : 30|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_isEvapOperationAllowed m3 : 25|1@1+ (1,0) [0|1] "" Receiver - SG_ VCFRONT_maxEvapHeatRejection m3 : 8|8@1+ (32,0) [0|8000] "W" Receiver + SG_ VCFRONT_isHeatPumpOilPurgeActive m3 : 31|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_maxEvapHeatRejection m3 : 8|8@1+ (65,0) [0|16575] "W" Receiver SG_ VCFRONT_minEvapHeatRejection m3 : 16|8@1+ (10,0) [0|2500] "W" Receiver + SG_ VCFRONT_passengerBuckleStatus m0 : 57|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_pressureRefrigDischarge m3 : 40|8@1+ (0.125,0) [0|31.75] "bar" Receiver SG_ VCFRONT_pressureRefrigSuction m3 : 32|7@1+ (0.125,0) [0|11.5] "bar" Receiver + SG_ VCFRONT_radarHeaterState m0 : 52|3@1+ (1,0) [0|4] "" Receiver SG_ VCFRONT_railAState m5 : 7|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_railBState m5 : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_refrigFillRoutineStatus m3 : 52|2@1+ (1,0) [0|3] "" Receiver SG_ VCFRONT_reverseBatteryFault m4 : 30|1@1+ (1,0) [0|1] "" Receiver - SG_ VCFRONT_sleepCurrent m1 : 48|10@1- (1,0) [-512|511] "mA" Receiver + SG_ VCFRONT_shortedCellFaultCounter m4 : 44|3@1+ (1,0) [0|7] "" Receiver + SG_ VCFRONT_silentWakeIBSCurrent m4 : 32|12@1- (0.1,-204.7) [-409.5|0] "mA" Receiver + SG_ VCFRONT_sleepCurrent m1 : 32|12@1- (0.1,-204.7) [-409.5|0] "mA" Receiver SG_ VCFRONT_tempCompTargetVoltage m4 : 3|10@1+ (0.01,9) [9|16] "V" Receiver - SG_ VCFRONT_timeSpentCharging m1 : 16|10@1+ (1,0) [0|1023] "min" Receiver - SG_ VCFRONT_timeSpentDischarging m1 : 26|10@1+ (1,0) [0|1023] "min" Receiver - SG_ VCFRONT_timeSpentSleeping m1 : 40|8@1+ (1,0) [0|255] "s" Receiver - SG_ VCFRONT_vbatMonitorVoltage m5 : 16|12@1+ (0.005443676098,0) [0|22.286409945212] "V" Receiver - SG_ VCFRONT_vbatProt m5 : 40|12@1+ (0.005443676098,0) [0|22.29185362131] "V" Receiver + SG_ VCFRONT_timeSpentSleeping m1 : 24|8@1+ (1,0) [0|255] "s" Receiver + SG_ VCFRONT_vbatMonitorVoltage m5 : 16|12@1+ (0.00544368,0) [0|22.2864] "V" Receiver + SG_ VCFRONT_vbatProt m5 : 40|12@1+ (0.00544368,0) [0|22.2919] "V" Receiver SG_ VCFRONT_vehicleStatusDBG m1 : 8|5@1+ (1,0) [0|17] "" Receiver SG_ VCFRONT_voltageDropCounter m4 : 20|4@1+ (1,0) [0|15] "" Receiver SG_ VCFRONT_voltageFloorReachedCount m4 : 24|4@1+ (1,0) [0|15] "" Receiver SG_ VCFRONT_voltageProfile m4 : 28|2@1+ (1,0) [0|3] "" Receiver - SG_ VCFRONT_wiperCycles m3 : 48|16@1+ (100,0) [0|6553500] "Cycles" Receiver SG_ VCFRONT_wiperPosition m0 : 12|3@1+ (1,0) [0|4] "" Receiver - SG_ VCFRONT_wiperPositionDeg m0 : 52|8@1+ (1,0) [0|255] "deg" Receiver SG_ VCFRONT_wiperSpeed m0 : 8|4@1+ (1,0) [0|8] "" Receiver SG_ VCFRONT_wiperState m0 : 16|4@1+ (1,0) [0|12] "" Receiver BO_ 897 ID381VCFRONT_logging1Hz: 8 VehicleBus - SG_ VCFRONT_logging1HzIndex M : 0|4@1+ (1,0) [0|11] "" Receiver - SG_ VCFRONT_CCQdotActual m9 : 24|7@1+ (80,0) [0|10100] "W" Receiver - SG_ VCFRONT_CCQdotFdFrwrdTarget m9 : 8|7@1+ (80,0) [0|10100] "W" Receiver - SG_ VCFRONT_CCQdotFdbk m9 : 16|7@1- (80,0) [-5000|5000] "W" Receiver - SG_ VCFRONT_CMPDischargeSuperheat m8 : 16|5@1- (1,6) [-10|21] "C" Receiver - SG_ VCFRONT_DIQdotA m9 : 48|7@1+ (80,0) [0|10000] "W" Receiver + SG_ VCFRONT_logging1HzIndex M : 0|5@1+ (1,0) [0|19] "" Receiver + SG_ VCFRONT_CCQdotActual m9 : 21|7@1+ (80,0) [0|10100] "W" Receiver + SG_ VCFRONT_CCQdotFdFrwrdTarget m9 : 7|7@1+ (80,0) [0|10100] "W" Receiver + SG_ VCFRONT_CCQdotFdbk m9 : 14|7@1- (80,0) [-5000|5000] "W" Receiver + SG_ VCFRONT_CMPDischargeSuperheat m8 : 17|5@1- (1,6) [-10|21] "C" Receiver + SG_ VCFRONT_DIQdotA m9 : 42|7@1+ (80,0) [0|10000] "W" Receiver SG_ VCFRONT_HCML_bladeTemp m3 : 32|8@1- (1,67) [-60|194] "C" Receiver SG_ VCFRONT_HCML_diffuseTemp m3 : 40|8@1- (1,67) [-60|194] "C" Receiver SG_ VCFRONT_HCML_highBeamTemp m3 : 16|8@1- (1,67) [-60|194] "C" Receiver @@ -2290,60 +1985,158 @@ BO_ 897 ID381VCFRONT_logging1Hz: 8 VehicleBus SG_ VCFRONT_HCMR_highBeamTemp m4 : 16|8@1- (1,67) [-60|194] "C" Receiver SG_ VCFRONT_HCMR_lowBeamSpotTemp m4 : 8|8@1- (1,67) [-60|194] "C" Receiver SG_ VCFRONT_HCMR_turnTemp m4 : 24|8@1- (1,67) [-60|194] "C" Receiver - SG_ VCFRONT_cabinHeatEnergyDuringDri m8 : 41|7@1+ (150,0) [0|19000] "Wh" Receiver - SG_ VCFRONT_calibratedPositionHCML m6 : 4|10@1+ (1,0) [0|1023] "Steps" Receiver - SG_ VCFRONT_calibratedPositionHCMR m6 : 14|10@1+ (1,0) [0|1023] "Steps" Receiver - SG_ VCFRONT_ccLeftExvRange m7 : 40|9@1+ (1,750) [750|1250] "ticks" Receiver - SG_ VCFRONT_ccRightExvRange m7 : 49|9@1+ (1,750) [750|1250] "ticks" Receiver - SG_ VCFRONT_chillerExvRange m7 : 4|9@1+ (1,750) [750|1250] "ticks" Receiver - SG_ VCFRONT_compEnergyDuringDrive m8 : 34|7@1+ (150,0) [0|19000] "Wh" Receiver - SG_ VCFRONT_condenserPressureLimit m1 : 8|7@1+ (0.1,10) [10|20] "bar" Receiver + SG_ VCFRONT_PDischargeControllerOutp m14 : 24|8@1+ (0.5,0) [0|100] "%" Receiver + SG_ VCFRONT_PSuctionControllerOutput m14 : 40|8@1+ (0.5,0) [0|100] "%" Receiver + SG_ VCFRONT_ambientColderThanBatt m16 : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_ambientSourcingAvailable m16 : 9|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_ambientSourcingDisabled m14 : 38|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_battDissipation m12 : 8|8@1+ (140,0) [0|35000] "W" Receiver + SG_ VCFRONT_battLoopWorthCooling m16 : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_battOverStagUpperLimit m16 : 6|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_battUnderStagUpperLimit m16 : 7|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_cabinHeatEnergyDuringDri m8 : 42|7@1+ (150,0) [0|19000] "Wh" Receiver + SG_ VCFRONT_calibratedPositionHCML m6 : 5|10@1+ (1,0) [0|1023] "Steps" Receiver + SG_ VCFRONT_calibratedPositionHCMR m6 : 16|10@1+ (1,0) [0|1023] "Steps" Receiver + SG_ VCFRONT_ccLeftExvCalibFailed m11 : 60|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_ccLeftExvCalibOffset m11 : 40|8@1- (4,0) [-510|510] "ticks" Receiver + SG_ VCFRONT_ccLeftExvRange m7 : 41|9@1+ (3,0) [0|1500] "ticks" Receiver + SG_ VCFRONT_ccRightExvCalibFailed m11 : 61|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_ccRightExvCalibOffset m11 : 48|8@1- (4,0) [-510|510] "ticks" Receiver + SG_ VCFRONT_ccRightExvRange m7 : 50|9@1+ (3,0) [0|1500] "ticks" Receiver + SG_ VCFRONT_chillerExvCalibFailed m11 : 56|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_chillerExvCalibOffset m11 : 8|8@1- (4,0) [-510|510] "ticks" Receiver + SG_ VCFRONT_chillerExvRange m7 : 5|9@1+ (3,0) [0|1500] "ticks" Receiver + SG_ VCFRONT_chillerInletTempEstimate m13 : 27|8@1- (1,0) [-40|85] "C" Receiver + SG_ VCFRONT_chillerLiftDisabledLowPs m14 : 39|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_chillerPassiveCoolPower m12 : 24|8@1- (60,7560) [0|15000] "W" Receiver + SG_ VCFRONT_compEnergyDuringDrive m8 : 35|7@1+ (150,0) [0|19000] "Wh" Receiver + SG_ VCFRONT_condenserPressureLimit m1 : 8|6@1+ (0.16,10) [10|20] "bar" Receiver SG_ VCFRONT_coolantLevelVoltage m0 : 55|9@1+ (0.01,0) [0|5] "V" Receiver - SG_ VCFRONT_currentPositionHCML m6 : 24|10@1+ (1,0) [0|1023] "Steps" Receiver - SG_ VCFRONT_currentPositionHCMR m6 : 34|10@1+ (1,0) [0|1023] "Steps" Receiver - SG_ VCFRONT_cycleModelConverged m10 : 60|1@1+ (1,0) [0|1] "" Receiver - SG_ VCFRONT_estCompressorRpm m10 : 47|6@1+ (200,0) [0|12400] "rpm" Receiver - SG_ VCFRONT_estPressureDisch m10 : 18|7@1+ (0.2,0) [0|25.4] "bar" Receiver - SG_ VCFRONT_estPressureLiq m10 : 4|7@1+ (0.2,0) [0|25.4] "bar" Receiver - SG_ VCFRONT_estPressureSuct m10 : 11|7@1+ (0.125,0) [0|11.5] "bar" Receiver - SG_ VCFRONT_estQLift m10 : 53|7@1+ (60,0) [0|7600] "W" Receiver - SG_ VCFRONT_estTempDisch m10 : 39|8@1- (0.8,68.8) [-34|170] "C" Receiver - SG_ VCFRONT_estTempLiq m10 : 25|8@1- (0.8,68.8) [-34|170] "C" Receiver - SG_ VCFRONT_estTempSuct m10 : 33|6@1- (1,2) [-30|33] "C" Receiver - SG_ VCFRONT_evapExvRange m7 : 13|9@1+ (1,750) [750|1250] "ticks" Receiver - SG_ VCFRONT_evapFdFrwrdTarget m9 : 32|7@1+ (80,0) [0|10100] "W" Receiver - SG_ VCFRONT_evapFdbk m9 : 40|7@1- (80,0) [-5000|5000] "W" Receiver - SG_ VCFRONT_evapQdotActual m9 : 55|7@1+ (80,0) [0|10000] "W" Receiver - SG_ VCFRONT_fanDemandCondenser m1 : 16|7@1+ (1,0) [0|100] "%" Receiver - SG_ VCFRONT_fanDemandRadiator m1 : 24|7@1+ (1,0) [0|100] "%" Receiver - SG_ VCFRONT_fiveWayValveAngleDrift m2 : 18|10@1+ (0.25,-127) [-127|127] "deg" Receiver - SG_ VCFRONT_fiveWayValveCountRange m2 : 8|10@1+ (1,375) [375|1375] "ticks" Receiver - SG_ VCFRONT_fiveWayValveRadBypass m2 : 56|7@1+ (1,0) [0|100] "%" Receiver - SG_ VCFRONT_fiveWayValveRecalCount m2 : 32|16@1+ (1,0) [0|65535] "" Receiver - SG_ VCFRONT_fiveWayValveRecalReason m2 : 4|3@1+ (1,0) [0|5] "" Receiver - SG_ VCFRONT_fiveWayValveWindupEstL m2 : 48|4@1+ (1,0) [0|15] "" Receiver - SG_ VCFRONT_fiveWayValveWindupEstR m2 : 52|4@1+ (1,0) [0|15] "" Receiver - SG_ VCFRONT_homelinkRegionCode m5 : 4|4@1+ (1,0) [0|9] "" Receiver - SG_ VCFRONT_hpBattStagTarget m8 : 27|7@1+ (1,-40) [-40|80] "C" Receiver - SG_ VCFRONT_hpCOP m8 : 21|6@1+ (0.1,0) [0|6] "-" Receiver - SG_ VCFRONT_hpSubcoolTarget m8 : 11|5@1+ (1,0) [0|31] "C" Receiver - SG_ VCFRONT_lccExvRange m7 : 31|9@1+ (1,750) [750|1250] "ticks" Receiver - SG_ VCFRONT_lowSideLiftEnergyDrive m8 : 48|7@1+ (150,0) [0|19000] "Wh" Receiver - SG_ VCFRONT_lowSideWattsLift m8 : 55|7@1+ (60,0) [0|7600] "W" Receiver - SG_ VCFRONT_modeDesired m0 : 13|2@1+ (1,0) [0|3] "" Receiver - SG_ VCFRONT_modeTransitionID m0 : 8|5@1+ (1,0) [0|29] "" Receiver - SG_ VCFRONT_passiveCoolingState m9 : 62|2@1+ (1,0) [0|2] "" Receiver - SG_ VCFRONT_pumpBatteryFETTemp m1 : 40|8@1+ (1,-40) [-40|150] "C" Receiver - SG_ VCFRONT_pumpPowertrainFETTemp m1 : 48|8@1+ (1,-40) [-40|150] "C" Receiver - SG_ VCFRONT_radiatorFanFETTemp m1 : 56|8@1+ (1,-40) [-40|150] "C" Receiver - SG_ VCFRONT_recircExvRange m7 : 22|9@1+ (1,750) [750|1250] "ticks" Receiver - SG_ VCFRONT_subcoolActual m8 : 4|7@1- (0.4,15.2) [-10|40] "C" Receiver + SG_ VCFRONT_coolantValveAngleDrift m2 : 18|10@1+ (0.25,-127) [-127|127] "degrees" Receiver + SG_ VCFRONT_coolantValveCountRange m2 : 8|10@1+ (1,375) [375|1375] "ticks" Receiver + SG_ VCFRONT_coolantValveDailyAngleTr m19 : 34|10@1+ (20,0) [0|20000] "degrees" Receiver + SG_ VCFRONT_coolantValveOdometer m19 : 24|10@1+ (500,0) [0|500000] "degrees" Receiver + SG_ VCFRONT_coolantValveRadBypass m2 : 56|7@1+ (1,0) [0|100] "%" Receiver + SG_ VCFRONT_coolantValveRecalCount m2 : 28|16@1+ (1,0) [0|65535] "" Receiver + SG_ VCFRONT_coolantValveRecalReason m2 : 5|3@1+ (1,0) [0|7] "" Receiver + SG_ VCFRONT_coolantValveWindupEstL m2 : 44|6@1+ (2,0) [0|126] "ticks" Receiver + SG_ VCFRONT_coolantValveWindupEstR m2 : 50|6@1+ (2,0) [0|126] "ticks" Receiver + SG_ VCFRONT_currentPositionHCML m6 : 26|10@1+ (1,0) [0|1023] "Steps" Receiver + SG_ VCFRONT_currentPositionHCMR m6 : 36|10@1+ (1,0) [0|1023] "Steps" Receiver + SG_ VCFRONT_cycleModelConverged m10 : 61|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_diDissipation m12 : 16|8@1+ (80,0) [0|20000] "W" Receiver + SG_ VCFRONT_dischargePressureLimit m19 : 48|7@1+ (0.25,0) [0|26] "bar" Receiver + SG_ VCFRONT_dischargePressureTarget m14 : 8|7@1+ (0.25,0) [0|26] "bar" Receiver + SG_ VCFRONT_drlMode m18 : 5|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_estCompPower m16 : 35|8@1+ (50,0) [0|12750] "W" Receiver + SG_ VCFRONT_estCompRefrigMassflow m16 : 17|6@1+ (4,0) [0|251] "g/s" Receiver + SG_ VCFRONT_estCompressorRpm m10 : 48|6@1+ (400,0) [0|25200] "rpm" Receiver + SG_ VCFRONT_estPressureDisch m10 : 19|7@1+ (0.25,0) [0|31.75] "bar" Receiver + SG_ VCFRONT_estPressureLiq m10 : 5|7@1+ (0.25,0) [0|31.75] "bar" Receiver + SG_ VCFRONT_estPressureSuct m10 : 12|7@1+ (0.125,0) [0|11.5] "bar" Receiver + SG_ VCFRONT_estQLift m10 : 54|7@1+ (100,0) [0|12700] "W" Receiver + SG_ VCFRONT_estTempDisch m10 : 40|8@1- (0.8,68.8) [-34|170] "C" Receiver + SG_ VCFRONT_estTempLiq m10 : 26|8@1- (0.8,68.8) [-34|170] "C" Receiver + SG_ VCFRONT_estTempSuct m10 : 34|6@1- (1,2) [-30|33] "C" Receiver + SG_ VCFRONT_evapDisabledLowPsCutout m14 : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_evapExvCalibFailed m11 : 57|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_evapExvCalibOffset m11 : 16|8@1- (4,0) [-510|510] "ticks" Receiver + SG_ VCFRONT_evapExvRange m7 : 14|9@1+ (3,0) [0|1500] "ticks" Receiver + SG_ VCFRONT_evapFdFrwrdTarget m9 : 28|7@1+ (80,0) [0|10100] "W" Receiver + SG_ VCFRONT_evapFdFrwrdTargetMinimum m9 : 49|7@1+ (80,0) [0|10000] "W" Receiver + SG_ VCFRONT_evapFdbk m9 : 35|7@1- (80,0) [-5000|5000] "W" Receiver + SG_ VCFRONT_exteriorQuietModeAllowed m9 : 6|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_exteriorQuietModeEnabled m9 : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_fanControlFeedfwdActive m15 : 49|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_fanControlRadCanCool m15 : 48|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_fanControlRadiatorInletT m15 : 57|6@1- (1.8,36) [-20|90] "C" Receiver + SG_ VCFRONT_fanControlRadiatorUa m15 : 50|7@1+ (8,0) [0|1000] "W/C" Receiver + SG_ VCFRONT_fanDemandCondenser m1 : 14|7@1+ (1,0) [0|100] "%" Receiver + SG_ VCFRONT_fanDemandRadiator m1 : 21|7@1+ (1,0) [0|100] "%" Receiver + SG_ VCFRONT_feedBackDuctTempControll m15 : 32|8@1+ (1,-100) [-100|100] "-" Receiver + SG_ VCFRONT_feedBackEvapTempControll m15 : 24|7@1+ (0.01,-0.5) [-0.5|0.5] "-" Receiver + SG_ VCFRONT_feedFwdFanDemand m13 : 35|7@1+ (1,0) [0|100] "%" Receiver + SG_ VCFRONT_feedFwdMDotCabinCondense m15 : 16|8@1+ (0.005,0) [0|1] "-" Receiver + SG_ VCFRONT_feedFwdMDotEvaporator m15 : 8|8@1+ (0.005,0) [0|1] "-" Receiver + SG_ VCFRONT_feedFwdPumpDemand m13 : 42|7@1+ (1,0) [0|100] "%" Receiver + SG_ VCFRONT_feedfwdLoadCoolingDomina m9 : 59|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_homelinkRegionCode m5 : 8|4@1+ (1,0) [0|9] "" Receiver + SG_ VCFRONT_hpAmbientSource m17 : 6|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpAtSteadyState m16 : 50|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpBattOverTempHvacDisabl m17 : 38|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpBattStagTarget m8 : 28|7@1+ (1,-40) [-40|80] "C" Receiver + SG_ VCFRONT_hpBatteryCool m17 : 19|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpBatteryCoolCabinConden m17 : 20|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpBatteryCoolCabinReheat m17 : 21|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpBatteryCoolEvaporator m17 : 22|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpBatteryHeatAmbientSour m17 : 17|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpBatteryHeatCOP1 m17 : 18|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCOP m8 : 22|6@1+ (0.1,0) [0|6] "-" Receiver + SG_ VCFRONT_hpCabinCoolEvaporator m17 : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinCoolEvaporatorReh m17 : 16|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinHeatAmbientSource m17 : 8|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinHeatBatteryCoolRe m17 : 14|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinHeatBatteryHeatRe m17 : 13|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinHeatBlend m17 : 11|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinHeatCOP1 m17 : 12|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinHeatReheatAmbient m17 : 10|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinHeatReheatScaveng m17 : 9|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCabinHeatScavengeOnly m17 : 7|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpCompPowerIndex m16 : 43|7@1+ (1,0) [0|127] "-" Receiver + SG_ VCFRONT_hpCompPowerIndexFiltered m12 : 56|7@1+ (1,0) [0|127] "-" Receiver + SG_ VCFRONT_hpDiagLouverCalib m17 : 39|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpForceScavenge m16 : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpGeneral m17 : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpMode m16 : 10|5@1+ (1,0) [0|19] "" Receiver + SG_ VCFRONT_hpPotentialLowRefrig m9 : 61|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_hpRefrigerantPurgeState m9 : 62|2@1+ (1,0) [0|2] "" Receiver + SG_ VCFRONT_hpSubcoolTarget m8 : 12|5@1+ (1,0) [0|31] "C" Receiver + SG_ VCFRONT_lccActiveCoolTarget m19 : 16|7@1+ (1,0) [0|100] "C" Receiver + SG_ VCFRONT_lccExvCalibFailed m11 : 59|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_lccExvCalibOffset m11 : 32|8@1- (4,0) [-510|510] "ticks" Receiver + SG_ VCFRONT_lccExvRange m7 : 32|9@1+ (3,0) [0|1500] "ticks" Receiver + SG_ VCFRONT_lccInletTempEstimate m13 : 19|8@1- (1,0) [-40|85] "C" Receiver + SG_ VCFRONT_lccPassiveHeatPower m12 : 32|8@1+ (60,0) [0|15000] "W" Receiver + SG_ VCFRONT_lowSideLiftEnergyDrive m8 : 49|7@1+ (150,0) [0|19000] "Wh" Receiver + SG_ VCFRONT_lowSideWattsLift m8 : 56|7@1+ (60,0) [0|7600] "W" Receiver + SG_ VCFRONT_maxAllowedEvapPowerInSer m12 : 40|8@1+ (40,0) [0|10000] "W" Receiver + SG_ VCFRONT_maxChillerCoolingPower m15 : 40|8@1+ (100,0) [0|20000] "W" Receiver + SG_ VCFRONT_maxCompressorRPMAllowed m14 : 56|7@1+ (90,0) [0|11430] "rpm" Receiver + SG_ VCFRONT_minAllowedChillerPowerIn m12 : 48|8@1+ (40,0) [0|10000] "W" Receiver + SG_ VCFRONT_minAllowedSuctionPressur m14 : 48|7@1+ (0.02,0) [0|2.5] "bar" Receiver + SG_ VCFRONT_minFlowPDCont m14 : 16|8@1+ (0.5,0) [0|100] "%" Receiver + SG_ VCFRONT_modeDesired m0 : 14|2@1+ (1,0) [0|3] "" Receiver + SG_ VCFRONT_modeTransitionID m0 : 8|6@1+ (1,0) [0|40] "" Receiver + SG_ VCFRONT_modelLoadCoolingDominant m9 : 60|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_passiveCoolingState m9 : 56|2@1+ (1,0) [0|3] "" Receiver + SG_ VCFRONT_passiveDemandRadBypass m19 : 8|7@1+ (1,0) [0|100] "%" Receiver + SG_ VCFRONT_passiveSeriesRegOn m19 : 5|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_pressureRefrigDischEst m16 : 24|5@1+ (1,0) [0|31] "bar" Receiver + SG_ VCFRONT_pressureRefrigSuctionEst m16 : 51|7@1+ (0.12,0) [0|14.36] "bar" Receiver + SG_ VCFRONT_ptLoopWorthCooling m16 : 16|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_pumpBatteryFETTemp m1 : 36|8@1+ (1,-40) [-40|150] "C" Receiver + SG_ VCFRONT_pumpPowertrainFETTemp m1 : 44|8@1+ (1,-40) [-40|150] "C" Receiver + SG_ VCFRONT_radActiveRejectEstimate m13 : 49|15@1+ (1,0) [0|30000] "W" Receiver + SG_ VCFRONT_radPassiveRejectEstimate m13 : 5|14@1+ (1,0) [0|15000] "W" Receiver + SG_ VCFRONT_radiatorFanFETTemp m1 : 52|8@1+ (1,-40) [-40|150] "C" Receiver + SG_ VCFRONT_radiatorFanRunReason m1 : 60|4@1+ (1,0) [0|8] "" Receiver + SG_ VCFRONT_recircExvCalibFailed m11 : 58|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_recircExvCalibOffset m11 : 24|8@1- (4,0) [-510|510] "ticks" Receiver + SG_ VCFRONT_recircExvRange m7 : 23|9@1+ (3,0) [0|1500] "ticks" Receiver + SG_ VCFRONT_subcoolActual m8 : 5|7@1- (0.4,15.2) [-10|40] "C" Receiver + SG_ VCFRONT_suctionPressureTarget m14 : 32|6@1+ (0.15,0) [0|8] "bar" Receiver + SG_ VCFRONT_suctionSuperheatEstPsSNA m16 : 58|4@1+ (2,0) [0|30] "C" Receiver + SG_ VCFRONT_suctionSuperheatEstTsSNA m17 : 24|4@1+ (2,0) [0|30] "C" Receiver SG_ VCFRONT_targetBatActiveCool m0 : 32|7@1+ (1,0) [0|100] "C" Receiver SG_ VCFRONT_targetBatActiveHeat m0 : 48|7@1+ (1,-40) [-40|60] "C" Receiver SG_ VCFRONT_targetBatPassive m0 : 40|7@1+ (1,-20) [-20|80] "C" Receiver SG_ VCFRONT_targetPTActiveCool m0 : 16|8@1+ (1,-40) [-40|120] "C" Receiver SG_ VCFRONT_targetPTPassive m0 : 24|8@1+ (1,-40) [-40|120] "C" Receiver - SG_ VCFRONT_tempRefrigSuction m1 : 32|8@1+ (0.5,-40) [-40|85] "C" Receiver + SG_ VCFRONT_tempRefrigDischargeEst m16 : 29|6@1+ (2,0) [0|125] "C" Receiver + SG_ VCFRONT_tempRefrigSuction m1 : 28|8@1+ (0.5,-40) [-40|85] "C" Receiver + SG_ VCFRONT_tempRefrigSuctionEst m17 : 32|6@1+ (1,0) [0|63] "C" Receiver + SG_ VCFRONT_totalLoadCoolingDominant m9 : 58|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_wiperCycles m18 : 48|16@1+ (100,0) [0|6553500] "Cycles" Receiver BO_ 792 ID318SystemTimeUTC: 8 VehicleBus SG_ UTCyear318 : 0|8@1+ (1,0) [0|0] "yr" Receiver @@ -2354,7 +2147,7 @@ BO_ 792 ID318SystemTimeUTC: 8 VehicleBus SG_ UTCminutes318 : 40|8@1+ (1,0) [0|0] "min" Receiver BO_ 1320 ID528UnixTime: 4 VehicleBus - SG_ UnixTimeSeconds528 : 7|32@0+ (1,0) [0|4294967295] "sec" Receiver + SG_ UnixTimeSeconds528 : 7|32@0+ (1,0) [0|4294970000] "sec" Receiver BO_ 553 ID229GearLever: 3 VehicleBus SG_ GearLeverPosition229 : 12|3@1+ (1,0) [0|7] "" Receiver @@ -2368,14 +2161,14 @@ BO_ 585 ID249SCCMLeftStalk: 4 VehicleBus SG_ SCCM_turnIndicatorStalkStatus : 16|4@1+ (1,0) [0|9] "" Receiver SG_ SCCM_washWipeButtonStatus : 14|2@1+ (1,0) [0|3] "" Receiver -BO_ 1577 ID628UDSPCStoMCU: 8 VehicleBus - -BO_ 1576 ID628UDSMCUtoPCS: 8 VehicleBus - -BO_ 390 ID186FrontDriveTorqueRPM: 8 VehicleBus - SG_ FrontTorqueActual186 : 27|13@1- (2,0) [-8192|8190] "NM" Receiver - SG_ FrontTorqueRequest186 : 12|13@1- (2,0) [-8192|8190] "NM" Receiver - SG_ FrontAxleRPM186 : 40|16@1- (0.1,0) [-3276.8|3276.7] "RPM" Receiver +BO_ 390 ID186DIF_torque: 8 VehicleBus + SG_ DIF_axleSpeed : 40|16@1- (0.1,0) [-2750|2750] "RPM" Receiver + SG_ DIF_slavePedalPos : 56|8@1+ (0.4,0) [0|100] "%" Receiver + SG_ DIF_torqueActual : 27|13@1- (2,0) [-7500|7500] "Nm" Receiver + SG_ DIF_torqueChecksum : 0|8@1+ (1,0) [0|255] "" Receiver + SG_ DIF_torqueCommand : 12|13@1- (2,0) [-7500|7500] "Nm" Receiver + SG_ DIF_torqueCounter : 8|4@1+ (1,0) [0|15] "" Receiver + SG_ DIF_axleSpeedQF : 25|1@1+ (1,0) [0|1] "" Receiver BO_ 918 ID396FrontOilPump: 8 VehicleBus SG_ FrontOilPumpPressureExpected396 : 48|8@1+ (2,0) [0|500] "kPa" Receiver @@ -2389,110 +2182,137 @@ BO_ 918 ID396FrontOilPump: 8 VehicleBus SG_ FrontOilPumpOilTempEstConfident3 : 3|1@1+ (1,0) [0|0] "" Receiver SG_ FrontOilPumpLeadAngle396 : 4|4@1+ (1.875,0) [0|28.125] "deg" Receiver -BO_ 917 ID395RearOilPump: 8 VehicleBus - SG_ RearOilPumpPressureExpected395 : 48|8@1+ (2,0) [0|500] "kPa" Receiver - SG_ RearOilPumpPhaseCurrent395 : 56|8@1+ (0.1,0) [0|25.4] "A" Receiver - SG_ RearOilFlowActual395 : 16|8@1+ (0.06,0) [0|15] "LPM" Receiver - SG_ RearOilPumpDutyCycle395 : 8|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ RearOilPumpOilTempEst395 : 32|8@1+ (1,-40) [0|214] "C" Receiver - SG_ RearOilPumpFluidTemp395 : 24|8@1+ (1,-40) [0|214] "C" Receiver - SG_ RearOilPumpState395 : 0|3@1+ (1,0) [0|7] "" Receiver - SG_ RearOilPumpPressureEstimate395 : 40|8@1+ (2,0) [0|500] "kPa" Receiver - SG_ RearOilPumpOilTempEstConfident39 : 3|1@1+ (1,0) [0|0] "" Receiver - SG_ RearOilPumpLeadAngle395 : 4|4@1+ (1.875,0) [0|28.125] "deg" Receiver +BO_ 917 ID395DIR_oilPump: 8 VehicleBus + SG_ DIR_oilPumpFlowActual : 16|8@1+ (0.06,0) [0|15] "LPM" Receiver + SG_ DIR_oilPumpFlowTarget : 8|8@1+ (0.06,0) [0|15] "LPM" Receiver + SG_ DIR_oilPumpFluidT : 24|8@1+ (1,-40) [-40|214] "C" Receiver + SG_ DIR_oilPumpFluidTQF : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ DIR_oilPumpLeadAngle : 4|4@1+ (1.875,0) [0|28.125] "deg" Receiver + SG_ DIR_oilPumpPhaseCurrent : 32|8@1+ (0.1,0) [0|25.4] "A" Receiver + SG_ DIR_oilPumpPressureEstimate : 40|8@1+ (2,0) [0|500] "kPa" Receiver + SG_ DIR_oilPumpPressureExpected : 48|8@1+ (2,0) [0|500] "kPa" Receiver + SG_ DIR_oilPumpPressureResidual : 56|8@1+ (4,-500) [-500|500] "kPa" Receiver + SG_ DIR_oilPumpState : 0|3@1+ (1,0) [0|7] "" Receiver BO_ 472 ID1D8RearTorque: 8 VehicleBus - SG_ Checksum1D8 : 56|8@1+ (1,0) [0|0] "" Receiver - SG_ Counter1D8 : 53|3@1+ (1,0) [0|0] "" Receiver - SG_ RearTorqueRequest1D8 : 8|15@1- (0.1,0) [-1638.4|1638.3] "NM" Receiver - SG_ RearTorque1D8 : 24|13@1- (0.25,0) [-1024|1023.75] "NM" Receiver - SG_ TorqueFlags1D8 : 0|8@1+ (1,0) [0|0] "" Receiver + SG_ Checksum1D8 : 56|8@1+ (1,0) [0|255] "" Receiver + SG_ Counter1D8 : 53|3@1+ (1,0) [0|7] "" Receiver + SG_ RearTorqueRequest1D8 : 8|13@1- (0.222,0) [-909.312|909.09] "NM" Receiver + SG_ RearTorque1D8 : 21|13@1- (0.222,0) [-909.312|909.09] "NM" Receiver + SG_ TorqueFlags1D8 : 0|8@1+ (1,0) [0|255] "" Receiver BO_ 341 ID155WheelAngles: 8 ChassisBus - SG_ WheelAngleTicsRR155 : 24|8@1+ (1.40625,0) [0|358.59375] "deg" Receiver - SG_ WheelAngleTicsRL155 : 16|8@1+ (1.40625,0) [0|358.59375] "deg" Receiver - SG_ WheelAngleTicsFR155 : 8|8@1+ (1.40625,0) [0|358.59375] "deg" Receiver - SG_ WheelAngleTicsFL155 : 0|8@1+ (1.40625,0) [0|358.59375] "deg" Receiver + SG_ WheelAngleTicsRR155 : 24|8@1+ (1.40625,0) [0|358.594] "deg" Receiver + SG_ WheelAngleTicsRL155 : 16|8@1+ (1.40625,0) [0|358.594] "deg" Receiver + SG_ WheelAngleTicsFR155 : 8|8@1+ (1.40625,0) [0|358.594] "deg" Receiver + SG_ WheelAngleTicsFL155 : 0|8@1+ (1.40625,0) [0|358.594] "deg" Receiver + SG_ ESP_WheelRotationReR : 32|2@1+ (1,0) [0|3] "" Receiver + SG_ ESP_WheelRotationReL : 34|2@1+ (1,0) [0|3] "" Receiver + SG_ ESP_WheelRotationFrR : 36|2@1+ (1,0) [0|3] "" Receiver + SG_ ESP_WheelRotationFrL : 38|2@1+ (1,0) [0|3] "" Receiver + SG_ ESP_wheelSpeedsQF : 40|1@1+ (1,0) [0|1] "" Receiver + SG_ ESP_vehicleStandstillSts : 41|1@1+ (1,0) [0|1] "" Receiver + SG_ ESP_vehicleSpeed : 42|10@1+ (0.5,0) [0|511] "kph" Receiver + SG_ ESP_wheelRotationCounter : 52|4@1+ (1,0) [0|15] "" Receiver + SG_ ESP_wheelRotationChecksum : 56|8@1+ (1,0) [0|255] "" Receiver BO_ 373 ID175WheelSpeed: 8 ChassisBus - SG_ WheelSpeedRR175 : 39|13@1+ (0.04,0) [0|327.64] "rpm" Receiver - SG_ WheelSpeedRL175 : 26|13@1+ (0.04,0) [0|327.64] "rpm" Receiver - SG_ WheelSpeedFR175 : 13|13@1+ (0.04,0) [0|327.64] "rpm" Receiver - SG_ WheelSpeedFL175 : 0|13@1+ (0.04,0) [0|327.64] "rpm" Receiver + SG_ WheelSpeedRR175 : 39|13@1+ (0.04,0) [0|327.64] "KPH" Receiver + SG_ WheelSpeedRL175 : 26|13@1+ (0.04,0) [0|327.64] "KPH" Receiver + SG_ WheelSpeedFR175 : 13|13@1+ (0.04,0) [0|327.64] "KPH" Receiver + SG_ WheelSpeedFL175 : 0|13@1+ (0.04,0) [0|327.64] "KPH" Receiver + SG_ ESP_wheelSpeedsCounter : 52|4@1+ (1,0) [0|15] "" Receiver + SG_ ESP_wheelSpeedsChecksum : 56|8@1+ (1,0) [0|255] "" Receiver + +BO_ 389 ID185ESP_brakeTorque: 8 ChassisBus + SG_ ESP_brakeTorqueFrL : 0|12@1+ (2,0) [0|8190] "Nm" Receiver + SG_ ESP_brakeTorqueFrR : 12|12@1+ (2,0) [0|8190] "Nm" Receiver + SG_ ESP_brakeTorqueReL : 24|12@1+ (2,0) [0|8190] "Nm" Receiver + SG_ ESP_brakeTorqueReR : 36|12@1+ (2,0) [0|8190] "Nm" Receiver + SG_ ESP_brakeTorqueQF : 50|1@1+ (1,0) [0|1] "" Receiver + SG_ ESP_brakeTorqueCounter : 52|4@1+ (1,0) [0|15] "" Receiver + SG_ ESP_brakeTorqueChecksum : 56|8@1+ (1,0) [0|255] "" Receiver BO_ 468 ID1D4FrontTorqueOld: 8 VehicleBus SG_ RAWTorqueFront1D4 : 40|12@1- (0.25,0) [-512|511.75] "NM" Receiver BO_ 469 ID1D5FrontTorque: 8 VehicleBus - SG_ FrontTorqueRequest1D5 : 8|15@1- (0.1,0) [-1638.4|1638.3] "NM" Receiver - SG_ FrontTorque1D5 : 24|13@1- (0.25,0) [-1024|1023.75] "NM" Receiver - -BO_ 741 ID2E5FrontInverterPower: 8 VehicleBus - SG_ FrontHeatPowerOptimal2E5 : 16|8@1+ (0.08,0) [0|20.4] "kW" Receiver - SG_ FrontPower2E5 : 0|11@1- (0.5,0) [-512|511.5] "kW" Receiver - SG_ FrontHeatPowerMax2E5 : 24|8@1+ (0.08,0) [0|20.4] "kW" Receiver - SG_ FrontPowerLimit2E5 : 48|9@1+ (1,0) [0|400] "kW" Receiver - SG_ FrontHeatPower2E5 : 32|8@1+ (0.08,0) [0|20.4] "kW" Receiver - SG_ FrontExcessHeatCmd : 40|8@1+ (0.08,0) [0|20] "kW" Receiver - -BO_ 962 ID3C2VCLeftswitches: 8 VehicleBus - SG_ VCLswitchStatusIndex3C2 M : 0|2@1+ (1,0) [0|3] "" Receiver - SG_ VCLhornSwitchPressed3C2 m0 : 2|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLhazardButtonPressed3C2 m0 : 3|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLdriverPresent3C2 m0 : 4|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLrightMirrorTilt3C2 m0 : 5|3@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatTrackBack3C2 m0 : 8|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatTrackForward3C2 m0 : 10|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatTiltDown3C2 m0 : 12|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatTiltUp3C2 m0 : 14|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatLiftDown3C2 m0 : 16|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatLiftUp3C2 m0 : 18|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatBackrestBack3C2 m0 : 20|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatBackrestForward3C2 m0 : 22|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatLumbarDown3C2 m0 : 24|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatLumbarUp3C2 m0 : 26|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatLumbarIn3C2 m0 : 28|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontSeatLumbarOut3C2 m0 : 30|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackUpLF3C2 m0 : 32|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackAutoUpLF3C2 m0 : 33|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackDownLF3C2 m0 : 34|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackAutoDownLF3C2 m0 : 35|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackUpLR3C2 m0 : 36|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackAutoUpLR3C2 m0 : 37|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackDownLR3C2 m0 : 38|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackAutoDownLR3C2 m0 : 39|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackUpRF3C2 m0 : 40|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackAutoUpRF3C2 m0 : 41|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackDownRF3C2 m0 : 42|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackAutoDownRF3C2 m0 : 43|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackUpRR3C2 m0 : 44|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackAutoUpRR3C2 m0 : 45|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackDownRR3C2 m0 : 46|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowSwPackAutoDownRR3C2 m0 : 47|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontBuckleSwitch3C2 m0 : 48|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLfrontOccupancySwitch3C2 m0 : 50|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLrearLeftBuckleSwitch3C2 m0 : 52|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLrearCenterOccupancySwitch3C2 m0 : 54|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLrearLeftOccupancySwitch3C2 m0 : 56|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLrearRightOccupancySwitch3C2 m0 : 58|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLbrakePressed3C2 m0 : 60|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLrearHVACButtonPressed3C2 m0 : 61|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLswcLeftTiltRight3C2 m1 : 3|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLswcLeftPressed3C2 m1 : 5|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLswcRightTiltLeft3C2 m1 : 8|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLswcRightTiltRight3C2 m1 : 10|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLswcRightPressed3C2 m1 : 12|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLswcLeftTiltLeft3C2 m1 : 14|2@1+ (1,0) [0|0] "" Receiver - SG_ VCLswcLeftScrollTicks3C2 m1 : 16|6@1- (1,0) [0|0] "" Receiver - SG_ VCLswcRightScrollTicks3C2 m1 : 24|6@1- (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowUpLR3C2 m1 : 32|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowAutoUpLR3C2 m1 : 33|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowDownLR3C2 m1 : 34|1@1+ (1,0) [0|0] "" Receiver - SG_ VCLbtnWindowAutoDownLR3C2 m1 : 35|1@1+ (1,0) [0|0] "" Receiver - -BO_ 822 ID336MaxPowerRating: 3 VehicleBus + SG_ FrontTorqueRequest1D5 : 8|13@1- (0.222,0) [-909.312|909.09] "NM" Receiver + SG_ FrontTorque1D5 : 21|13@1- (0.222,0) [-909.312|909.09] "NM" Receiver + +BO_ 641 ID281VCFRONT_CMPRequest: 8 VehicleBus + SG_ VCFRONT_CMPTargetDuty : 0|16@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_CMPPowerLimit : 16|16@1+ (1,0) [0|65534] "W" Receiver + SG_ VCFRONT_CMPReset : 32|8@1+ (1,0) [0|255] "" Receiver + SG_ VCFRONT_CMPEnable : 40|1@1+ (1,0) [0|1] "" Receiver + +BO_ 962 ID3C2VCLEFT_switchStatus: 8 VehicleBus + SG_ VCLEFT_switchStatusIndex M : 0|2@1+ (1,0) [0|2] "" Receiver + SG_ VCLEFT_2RowSeatBothFoldFlatSwitc m1 : 40|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_2RowSeatCenterSwitch m1 : 37|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_2RowSeatLeftFoldFlatSwitc m1 : 38|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_2RowSeatReclineSwitch m1 : 36|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_2RowSeatRightFoldFlatSwit m1 : 39|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_brakePressed m0 : 60|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_brakeSwitchPressed m0 : 4|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowAutoDownLR m1 : 35|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowAutoUpLR m1 : 33|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowDownLR m1 : 34|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackAutoDownLF m0 : 35|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackAutoDownLR m0 : 39|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackAutoDownRF m0 : 43|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackAutoDownRR m0 : 47|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackAutoUpLF m0 : 33|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackAutoUpLR m0 : 37|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackAutoUpRF m0 : 41|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackAutoUpRR m0 : 45|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackDownLF m0 : 34|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackDownLR m0 : 38|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackDownRF m0 : 42|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackDownRR m0 : 46|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackUpLF m0 : 32|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackUpLR m0 : 36|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackUpRF m0 : 40|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowSwPackUpRR m0 : 44|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_btnWindowUpLR m1 : 32|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_frontBuckleSwitch m0 : 48|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontOccupancySwitch m0 : 50|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatBackrestBack m0 : 20|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatBackrestForward m0 : 22|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatLiftDown m0 : 16|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatLiftUp m0 : 18|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatLumbarDown m0 : 24|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatLumbarIn m0 : 28|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatLumbarOut m0 : 30|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatLumbarUp m0 : 26|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatTiltDown m0 : 12|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatTiltUp m0 : 14|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatTrackBack m0 : 8|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_frontSeatTrackForward m0 : 10|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_hazardButtonPressed m0 : 3|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_hornSwitchPressed m0 : 2|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_rearCenterBuckleSwitch m0 : 62|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_rearCenterOccupancySwitch m0 : 54|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_rearHVACButtonPressed m0 : 61|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_rearLeftBuckleSwitch m0 : 52|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_rearLeftOccupancySwitch m0 : 56|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_rearRightOccupancySwitch m0 : 58|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_rightMirrorTilt m0 : 5|3@1+ (1,0) [0|4] "" Receiver + SG_ VCLEFT_swcLeftDoublePress m1 : 41|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_swcLeftPressed m1 : 5|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_swcLeftScrollTicks m1 : 16|6@1- (1,0) [-32|31] "" Receiver + SG_ VCLEFT_swcLeftTiltLeft m1 : 14|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_swcLeftTiltRight m1 : 3|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_swcRightDoublePress m1 : 42|1@1+ (1,0) [0|1] "" Receiver + SG_ VCLEFT_swcRightPressed m1 : 12|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_swcRightScrollTicks m1 : 24|6@1- (1,0) [-32|31] "" Receiver + SG_ VCLEFT_swcRightTiltLeft m1 : 8|2@1+ (1,0) [0|3] "" Receiver + SG_ VCLEFT_swcRightTiltRight m1 : 10|2@1+ (1,0) [0|3] "" Receiver + +BO_ 822 ID336MaxPowerRating: 4 VehicleBus SG_ DriveRegenRating336 : 16|8@1+ (1,-100) [-100|155] "kW" Receiver SG_ DrivePowerRating336 : 0|10@1+ (1,0) [0|600] "kW" Receiver + SG_ DI_performancePackage : 24|3@1+ (1,0) [0|4] "" Receiver BO_ 659 ID293UI_chassisControl: 8 VehicleBus SG_ UI_accOvertakeEnable : 16|2@1+ (1,0) [0|3] "" Receiver @@ -2517,7 +2337,7 @@ BO_ 659 ID293UI_chassisControl: 8 VehicleBus SG_ UI_redLightStopSignEnable : 46|2@1+ (1,0) [0|3] "" Receiver SG_ UI_selfParkTune : 48|4@1+ (1,0) [0|15] "" Receiver SG_ UI_steeringTuneRequest : 0|2@1+ (1,0) [0|2] "" Receiver - SG_ UI_tractionControlMode : 2|3@1+ (1,0) [0|5] "" Receiver + SG_ UI_tractionControlMode : 2|3@1+ (1,0) [0|6] "" Receiver SG_ UI_trailerMode : 12|1@1+ (1,0) [0|1] "" Receiver SG_ UI_winchModeRequest : 8|2@1+ (1,0) [0|2] "" Receiver SG_ UI_zeroSpeedConfirmed : 10|2@1+ (1,0) [0|3] "" Receiver @@ -2531,58 +2351,75 @@ BO_ 616 ID268SystemPower: 5 VehicleBus BO_ 79 ID04FGPSLatLong: 8 ChassisBus SG_ GPSAccuracy04F : 57|7@1+ (0.2,0) [0|25.2] "m" Receiver - SG_ GPSLongitude04F : 28|28@1- (1E-006,0) [-134.217728|134.217727] "Deg" Receiver - SG_ GPSLatitude04F : 0|28@1- (1E-006,0) [-134.217728|134.217727] "Deg" Receiver + SG_ GPSLongitude04F : 28|28@1- (1E-006,0) [-134.218|134.218] "Deg" Receiver + SG_ GPSLatitude04F : 0|28@1- (1E-006,0) [-134.218|134.218] "Deg" Receiver BO_ 978 ID3D2TotalChargeDischarge: 8 VehicleBus - SG_ TotalDischargeKWh3D2 : 0|32@1+ (0.001,0) [0|4294967.295] "kWh" Receiver - SG_ TotalChargeKWh3D2 : 32|32@1+ (0.001,0) [0|4294967.295] "kWh" Receiver + SG_ TotalDischargeKWh3D2 : 0|32@1+ (0.001,0) [0|4294970] "kWh" Receiver + SG_ TotalChargeKWh3D2 : 32|32@1+ (0.001,0) [0|4294970] "kWh" Receiver BO_ 1010 ID3F2BMSCounters: 8 VehicleBus - SG_ BMSCountersIndex3F2 M : 0|3@1+ (1,0) [0|0] "" Receiver - SG_ BMStotalACcharge3F2 m0 : 8|32@1+ (0.001,0) [0|4294967.295] "KWh" Receiver - SG_ BMStotalDCcharge3F2 m1 : 8|32@1+ (0.001,0) [0|4294967.295] "KWh" Receiver - SG_ BMStotalRegenCharge3F2 m2 : 8|32@1+ (0.001,0) [0|4294967.295] "KWh" Receiver - SG_ BMStotalDriveDischarge3F2 m3 : 8|32@1+ (0.001,0) [0|4294967.295] "KWh" Receiver + SG_ BMS_kwhCounter_Id M : 0|4@1+ (1,0) [0|0] "" Receiver + SG_ BMS_kwhDcChargeTotalModule3 m9 : 36|28@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhChargeTotalModule2 m6 : 36|28@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhDcChargeTotalModule2 m7 : 36|28@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhChargeTotalModule4 m10 : 36|28@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhDcChargeTotalModule4 m11 : 36|28@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhDcChargeTotalModule1 m5 : 36|28@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhChargeTotalModule1 m4 : 36|28@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhChargeTotalModule3 m8 : 36|28@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhAcChargeTotalModule3 m9 : 8|28@1- (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhDischargeTotalModule2 m6 : 8|28@1- (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhAcChargeTotalModule2 m7 : 8|28@1- (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhDischargeTotalModule4 m10 : 8|28@1- (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhAcChargeTotalModule4 m11 : 8|28@1- (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhAcChargeTotalModule1 m5 : 8|28@1- (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhDriveDischargeTotal m3 : 8|32@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_dcChargerKwhTotal m1 : 8|32@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhDischargeTotalModule1 m4 : 8|28@1- (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_acChargerKwhTotal m0 : 8|32@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhRegenChargeTotal m2 : 8|32@1+ (0.001,0) [0|0] "KWh" Receiver + SG_ BMS_kwhDischargeTotalModule3 m8 : 8|28@1- (0.001,0) [0|0] "KWh" Receiver BO_ 722 ID2D2BMSVAlimits: 8 VehicleBus SG_ MinVoltage2D2 : 0|16@1+ (0.01,0) [0|430] "V" Receiver - SG_ MaxDischargeCurrent2D2 : 48|14@1+ (0.128,0) [0|2096.896] "A" Receiver + SG_ MaxDischargeCurrent2D2 : 48|14@1+ (0.128,0) [0|2096.9] "A" Receiver SG_ MaxChargeCurrent2D2 : 32|14@1+ (0.1,0) [0|1638.2] "A" Receiver SG_ MaxVoltage2D2 : 16|16@1+ (0.01,0) [0|430] "V" Receiver BO_ 1345 ID541FastChargeMaxLimits: 8 VehicleBus - SG_ FCMaxPowerLimit541 : 0|13@1+ (0.062256,0) [0|509.938896] "kW" Receiver - SG_ FCMaxCurrentLimit541 : 16|13@1+ (0.073242,0) [0|599.925222] "A" Receiver + SG_ FCMaxPowerLimit541 : 0|13@1+ (0.062256,0) [0|509.939] "kW" Receiver + SG_ FCMaxCurrentLimit541 : 16|13@1+ (0.073242,0) [0|599.925] "A" Receiver BO_ 580 ID244FastChargeLimits: 8 VehicleBus - SG_ FCMinVlimit244 : 48|13@1+ (0.073242,0) [0|599.925222] "V" Receiver - SG_ FCMaxVlimit244 : 32|13@1+ (0.073242,0) [0|599.925222] "V" Receiver - SG_ FCCurrentLimit244 : 16|13@1+ (0.073242,0) [0|599.925222] "A" Receiver - SG_ FCPowerLimit244 : 0|13@1+ (0.062256,0) [0|509.938896] "kW" Receiver + SG_ FCMinVlimit244 : 48|13@1+ (0.073242,0) [0|599.925] "V" Receiver + SG_ FCMaxVlimit244 : 32|13@1+ (0.073242,0) [0|599.925] "V" Receiver + SG_ FCCurrentLimit244 : 16|13@1+ (0.073242,0) [0|599.925] "A" Receiver + SG_ FCPowerLimit244 : 0|13@1+ (0.062256,0) [0|509.939] "kW" Receiver BO_ 532 ID214FastChargeVA: 8 VehicleBus - SG_ FCadapterLocked214 : 15|1@1+ (1,0) [0|0] "" Receiver - SG_ FCcurrentLimitAchieved214 : 12|1@1+ (1,0) [0|0] "" Receiver - SG_ FCCurrent214 : 32|14@1- (0.0732422,0) [-600.0001024|599.9268602] "A" Receiver - SG_ FCVoltage214 : 48|13@1+ (0.0732422,0) [0|599.9268602] "V" Receiver - SG_ FCminCurrentLimit214 : 16|13@1+ (0.1,0) [0|819.1] "A" Receiver - SG_ FCpostID214 : 46|2@1+ (2,0) [0|6] "" Receiver - SG_ FCpowerLimitAchieved214 : 13|1@1+ (1,0) [0|0] "" Receiver - SG_ FCprotocolVersion214 : 0|8@1+ (1,0) [0|255] "" Receiver - SG_ FCstatusCode214 : 8|4@1+ (1,0) [0|0] "" Receiver - SG_ FCtype214 : 29|3@1+ (1,0) [0|7] "" Receiver - SG_ FCvoltageLimitAchieved214 : 14|1@1+ (1,0) [0|0] "" Receiver + SG_ FC_adapterLocked : 15|1@1+ (1,0) [0|1] "" Receiver + SG_ FC_dcCurrent : 32|14@1- (0.0732422,0) [-600|599.927] "A" Receiver + SG_ FC_dcVoltage : 48|13@1+ (0.0732422,0) [0|599.927] "V" Receiver + SG_ FC_leakageTestNotSupported : 61|1@1+ (1,0) [0|1] "" Receiver + SG_ FC_minCurrentLimit : 16|13@1+ (0.1,0) [0|600] "A" Receiver + SG_ FC_postID : 46|2@1+ (1,0) [0|3] "" Receiver + SG_ FC_protocolVersion : 0|8@1+ (1,0) [0|255] "" Receiver + SG_ FC_statusCode : 8|4@1+ (1,0) [0|15] "" Receiver + SG_ FC_type : 29|3@1+ (1,0) [0|7] "" Receiver BO_ 533 ID215FCisolation: 1 VehicleBus SG_ FCIsolation215 : 0|8@1+ (40,0) [0|10200] "kOhm" Receiver -BO_ 535 ID217FCinfo: 8 VehicleBus - SG_ FCinfoMux217 M : 0|7@1+ (1,0) [0|127] "" Receiver - SG_ FCclass217 m0 : 8|8@1+ (1,0) [0|255] "" Receiver - SG_ FCbrand217 m0 : 16|4@1+ (1,0) [0|15] "" Receiver - SG_ FCcoolingType217 m0 : 20|4@1+ (1,0) [0|15] "" Receiver - SG_ FCuiStopType217 m0 : 24|4@1+ (1,0) [0|15] "" Receiver +BO_ 535 ID217FC_status3: 8 VehicleBus + SG_ FC_status3DataSelect M : 0|7@1+ (1,0) [0|1] "" Receiver + SG_ FC_billingEnergy m1 : 8|16@1+ (0.015259,0) [0|1000] "kWh" Receiver + SG_ FC_brand m0 : 16|4@1+ (1,0) [0|1] "" Receiver + SG_ FC_class m0 : 8|8@1+ (1,0) [0|2] "" Receiver + SG_ FC_coolingType m0 : 20|4@1+ (1,0) [0|2] "" Receiver + SG_ FC_generation m0 : 32|8@1+ (1,0) [0|255] "" Receiver + SG_ FC_status3DummySig : 7|1@1+ (1,0) [0|1] "" Receiver + SG_ FC_uiStopType m0 : 24|4@1+ (1,0) [0|2] "" Receiver BO_ 801 ID321VCFRONT_sensors: 8 VehicleBus SG_ VCFRONT_battSensorIrrational : 48|1@1+ (1,0) [0|1] "" Receiver @@ -2597,13 +2434,13 @@ BO_ 801 ID321VCFRONT_sensors: 8 VehicleBus BO_ 769 ID301VCFRONT_info: 8 VehicleBus SG_ VCFRONT_infoIndex M : 0|8@1+ (1,0) [0|255] "" Receiver - SG_ VCFRONT_hcmlAppCRC m16 : 32|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ VCFRONT_hcmrAppCRC m23 : 32|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ VCFRONT_infoAppCrc m13 : 8|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ VCFRONT_infoAppGitHash m17 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver + SG_ VCFRONT_hcmlAppCRC m16 : 32|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ VCFRONT_hcmrAppCRC m23 : 32|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ VCFRONT_infoAppCrc m13 : 8|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ VCFRONT_infoAppGitHash m17 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver SG_ VCFRONT_infoAssemblyId m11 : 16|8@1+ (1,0) [0|255] "" Receiver - SG_ VCFRONT_infoBootCrc m20 : 24|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ VCFRONT_infoBootGitHash m18 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver + SG_ VCFRONT_infoBootCrc m20 : 24|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ VCFRONT_infoBootGitHash m18 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver SG_ VCFRONT_infoBootUdsProtoVersion m20 : 8|16@1+ (1,0) [0|65535] "" Receiver SG_ VCFRONT_infoBuildConfigId m10 : 16|16@1+ (1,0) [0|65535] "" Receiver SG_ VCFRONT_infoBuildType m10 : 8|3@1+ (1,0) [0|4] "" Receiver @@ -2612,29 +2449,35 @@ BO_ 769 ID301VCFRONT_info: 8 VehicleBus SG_ VCFRONT_infoPcbaId m11 : 8|8@1+ (1,0) [0|255] "" Receiver SG_ VCFRONT_infoPlatformType m19 : 8|8@1+ (1,0) [0|255] "" Receiver SG_ VCFRONT_infoSubUsageId m11 : 40|16@1+ (1,0) [0|65535] "" Receiver - SG_ VCFRONT_infoSubcomponent3 m24 : 32|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ VCFRONT_infoSubcomponent4 m31 : 32|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ VCFRONT_infoSubcomponent5 m32 : 32|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ VCFRONT_infoSubcomponent6 m33 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ VCFRONT_infoSubcomponent3 m24 : 32|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ VCFRONT_infoSubcomponent4 m31 : 32|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ VCFRONT_infoSubcomponent5 m32 : 32|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ VCFRONT_infoSubcomponent6 m33 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ VCFRONT_infoUsageId m11 : 24|16@1+ (1,0) [0|65535] "" Receiver BO_ 513 ID201VCFRONT_loggingAndVitals10H: 8 VehicleBus - SG_ VCFRONT_loggingAndVitals10HzInde M : 0|3@1+ (1,0) [0|5] "" Receiver + SG_ VCFRONT_loggingAndVitals10HzInde M : 0|3@1+ (1,0) [0|7] "" Receiver SG_ VCFRONT_activeLouverOpenPos m1 : 16|7@1+ (1,0) [0|100] "%" Receiver SG_ VCFRONT_activeLouverOpenPosTarg m1 : 8|7@1+ (1,0) [0|100] "%" Receiver - SG_ VCFRONT_compDemandChiller m2 : 38|7@1+ (1,0) [0|100] "%" Receiver + SG_ VCFRONT_cclExvFlow m3 : 44|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_cclExvFlowTarget m5 : 44|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_cclExvState m6 : 20|4@1+ (1,0) [0|9] "" Receiver + SG_ VCFRONT_ccrExvFlow m3 : 54|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_ccrExvFlowTarget m5 : 54|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_ccrExvState m6 : 24|4@1+ (1,0) [0|9] "" Receiver + SG_ VCFRONT_chillerExvFlow m3 : 3|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_chillerExvFlowTarget m5 : 3|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_chillerExvState m6 : 3|4@1+ (1,0) [0|9] "" Receiver + SG_ VCFRONT_compDemandChiller m2 : 39|7@1+ (1,0) [0|100] "%" Receiver SG_ VCFRONT_compDemandEvap m2 : 26|7@1+ (1,0) [0|100] "%" Receiver SG_ VCFRONT_compressorState m2 : 24|2@1+ (1,0) [0|3] "" Receiver - SG_ VCFRONT_exvFlowCCLeft m3 : 24|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ VCFRONT_exvFlowCCRight m3 : 34|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ VCFRONT_exvFlowChiller m3 : 3|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ VCFRONT_exvFlowEvap m3 : 44|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ VCFRONT_exvFlowLCC m3 : 13|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ VCFRONT_exvFlowRecirc m3 : 54|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_coolantValveMode m2 : 61|2@1+ (1,0) [0|3] "" Receiver + SG_ VCFRONT_evapExvFlow m3 : 13|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_evapExvFlowTarget m5 : 13|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_evapExvState m6 : 8|4@1+ (1,0) [0|9] "" Receiver SG_ VCFRONT_exvFlowTarget m0 : 54|10@1+ (0.1,0) [0|100] "%" Receiver - SG_ VCFRONT_exvState m2 : 33|3@1+ (1,0) [0|5] "" Receiver + SG_ VCFRONT_exvState m2 : 33|4@1+ (1,0) [0|9] "" Receiver SG_ VCFRONT_fanDemand m2 : 16|7@1+ (1,0) [0|100] "%" Receiver - SG_ VCFRONT_fiveWayValveMode m2 : 60|2@1+ (1,0) [0|3] "" Receiver SG_ VCFRONT_hpBatteryLoadType m4 : 16|2@1+ (1,0) [0|2] "" Receiver SG_ VCFRONT_hpBlendType m4 : 11|2@1+ (1,0) [0|2] "" Receiver SG_ VCFRONT_hpCabinLoadType m4 : 14|2@1+ (1,0) [0|3] "" Receiver @@ -2643,15 +2486,22 @@ BO_ 513 ID201VCFRONT_loggingAndVitals10H: 8 VehicleBus SG_ VCFRONT_hpLowSideHX m4 : 5|2@1+ (1,0) [0|3] "" Receiver SG_ VCFRONT_hpQuietModeEnabled m4 : 13|1@1+ (1,0) [0|1] "" Receiver SG_ VCFRONT_hpReqCoolantMode m4 : 18|3@1+ (1,0) [0|4] "" Receiver - SG_ VCFRONT_pressureRefrigDischargeV m2 : 52|8@1+ (0.125,0) [0|31.75] "bar" Receiver + SG_ VCFRONT_lccExvFlow m3 : 34|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_lccExvFlowTarget m5 : 34|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_lccExvState m6 : 16|4@1+ (1,0) [0|9] "" Receiver + SG_ VCFRONT_pressureRefrigDischargeV m2 : 53|8@1+ (0.125,0) [0|31.75] "bar" Receiver SG_ VCFRONT_pressureRefrigLiquid m1 : 40|8@1+ (0.125,0) [0|31.75] "bar" Receiver - SG_ VCFRONT_pressureRefrigSuctionVit m2 : 45|7@1+ (0.125,0) [0|11.5] "bar" Receiver + SG_ VCFRONT_pressureRefrigSuctionVit m2 : 46|7@1+ (0.125,0) [0|11.5] "bar" Receiver SG_ VCFRONT_pumpBatteryRPMActual m0 : 3|10@1+ (10,0) [0|10000] "rpm" Receiver SG_ VCFRONT_pumpPowertrainRPMActual m0 : 13|10@1+ (10,0) [0|10000] "rpm" Receiver SG_ VCFRONT_radiatorFanRPMActual m0 : 24|10@1+ (10,0) [0|10000] "rpm" Receiver - SG_ VCFRONT_solenoidEvapState m2 : 36|2@1+ (1,0) [0|3] "" Receiver + SG_ VCFRONT_recircExvFlow m3 : 24|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_recircExvFlowTarget m5 : 24|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ VCFRONT_recircExvState m6 : 12|4@1+ (1,0) [0|9] "" Receiver + SG_ VCFRONT_solenoidEvapState m2 : 37|2@1+ (1,0) [0|3] "" Receiver SG_ VCFRONT_tempRefrigDischarge m2 : 3|11@1+ (0.125,-40) [-40|150] "C" Receiver SG_ VCFRONT_tempRefrigLiquid m1 : 24|11@1+ (0.125,-40) [-40|150] "C" Receiver + SG_ VCFRONT_tempSuperheatActFiltered m1 : 48|8@1- (0.25,26.5) [-5|58] "C" Receiver SG_ VCFRONT_tempSuperheatActual m0 : 34|10@1+ (0.1,-20) [-20|80] "C" Receiver SG_ VCFRONT_tempSuperheatTarget m0 : 44|10@1+ (0.1,0) [0|60] "C" Receiver @@ -2659,13 +2509,35 @@ BO_ 984 ID3D8Elevation: 2 VehicleBus SG_ Elevation3D8 : 0|14@1- (1,0) [-8192|8191] "M" Receiver BO_ 609 ID261_12vBattStatus: 8 VehicleBus - SG_ v12vBattTemp261 : 16|16@1- (0.01,0) [-327.68|327.67] "C" Receiver - SG_ v12vBattAH261 : 32|14@1- (0.01,0) [-81.92|81.91] "AH" Receiver - SG_ v12vBattCurrent261 : 48|16@1- (0.005,0) [-163.84|163.835] "A" Receiver - SG_ v12vBattVoltage261 : 0|12@1+ (0.005443676098,0) [0|22.29185362131] "V" Receiver - SG_ VCFRONT_LVLoadRequest : 47|1@1+ (1,0) [0|1] "" Receiver - SG_ VCFRONT_good12VforUpdate : 46|1@1+ (1,0) [0|1] "" Receiver - SG_ VCFRONT_is12VBatterySupported : 12|1@1+ (1,0) [0|1] "" Receiver + SG_ VCFRONT_12VBatteryStatusChecksum : 56|8@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_12VBatteryStatusCounter : 52|4@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_LVBatteryDisconnected m1 : 50|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_LVBatterySupported m1 : 49|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_voltageFloorReachedCount m0 : 48|4@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_reverseBatteryFault m1 : 48|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_LVLoadRequest : 47|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_good12VforUpdate : 46|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_firstChargePOR m0 : 45|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_chargeNeeded m1 : 45|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_firstChargeOTA m0 : 44|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_PCSMia m1 : 44|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_silentWakeIBSCurrent m0 : 32|12@1- (0.1,-204.7) [-409.5|2.8421709430404E-014] "mA" Receiver + SG_ v12vBattVoltage261 m1 : 32|12@1+ (0.00544368,0) [0|22.2918696] "V" Receiver + SG_ VCFRONT_12VBatteryTargetVoltage m2 : 32|10@1+ (0.01,9) [9|19.23] "V" Receiver + SG_ v12vBattCurrent261 m0 : 16|16@1- (0.005,0) [-163.84|163.835] "A" Receiver + SG_ VCFRONT_IBSCurrent m1 : 16|16@1- (0.005,0) [-163.84|163.835] "A" Receiver + SG_ v12vBattTemp261 m2 : 16|16@1- (0.01,0) [-327.68|327.67] "C" Receiver + SG_ VCFRONT_shortedCellFaultCounter m0 : 13|3@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_isVehicleSupported m0 : 12|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_targetCurrent m1 : 8|8@1+ (0.125,0) [0|31.875] "A" Receiver + SG_ VCFRONT_voltageDropCounter m0 : 8|4@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_batterySMState m1 : 4|4@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_12VOverchargeCounter m0 : 4|4@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_batterySupportRequest m1 : 3|1@1+ (1,0) [0|0] "" Receiver + SG_ v12vBattAH261 m2 : 2|14@1- (0.005,0) [-40.96|40.955] "Ah" Receiver + SG_ VCFRONT_voltageProfile m0 : 2|2@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_IBSFault m1 : 2|1@1+ (1,0) [0|0] "" Receiver + SG_ VCFRONT_12VBatteryStatusIndex M : 0|2@1+ (1,0) [0|0] "" Receiver BO_ 297 ID129SteeringAngle: 8 VehicleBus SG_ SteeringSensorC129 : 56|8@1+ (1,0) [0|255] "" Receiver @@ -2677,7 +2549,7 @@ BO_ 297 ID129SteeringAngle: 8 VehicleBus BO_ 612 ID264ChargeLineStatus: 8 VehicleBus SG_ ChargeLinePower264 : 24|8@1+ (0.1,0) [0|25.5] "kW" Receiver SG_ ChargeLineCurrentLimit264 : 32|10@1+ (0.1,0) [0|102.3] "A" Receiver - SG_ ChargeLineVoltage264 : 0|14@1+ (0.0333,0) [0|545.5539] "V" Receiver + SG_ ChargeLineVoltage264 : 0|14@1+ (0.0333,0) [0|545.554] "V" Receiver SG_ ChargeLineCurrent264 : 14|9@1+ (0.1,0) [0|51.1] "A" Receiver BO_ 548 ID224PCSDCDCstatus: 8 VehicleBus @@ -2699,37 +2571,69 @@ BO_ 548 ID224PCSDCDCstatus: 8 VehicleBus SG_ DCDCSupportingFixedLvTarget224 : 53|1@1+ (1,0) [0|0] "" Receiver SG_ PCS_ecuLogUploadRequest224 : 54|2@1+ (1,0) [0|0] "" Receiver +BO_ 551 ID227CMP_state: 8 VehicleBus + SG_ CMP_HVOverVoltage : 40|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_HVUnderVoltage : 41|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_VCFRONTCANTimeout : 44|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_currentSensorCal : 46|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_failedStart : 47|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_inverterTemperature : 32|8@1+ (1,-40) [-40|200] "C" Receiver + SG_ CMP_motorVoltageSat : 48|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_overCurrent : 45|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_overTemperature : 42|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_ready : 63|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_repeatOverCurrent : 50|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_shortCircuit : 49|1@1+ (1,0) [0|1] "" Receiver + SG_ CMP_speedDuty : 16|16@1+ (0.1,0) [0|100] "%" Receiver + SG_ CMP_speedRPM : 0|16@1+ (1,0) [0|65534] "RPM" Receiver + SG_ CMP_state : 56|4@1+ (1,0) [0|15] "" Receiver + SG_ CMP_underTemperature : 43|1@1+ (1,0) [0|1] "" Receiver + BO_ 280 ID118DriveSystemStatus: 8 VehicleBus - SG_ ImmobilizerState118 : 27|3@1+ (1,0) [0|0] "" Receiver - SG_ DriveState118 : 16|3@1+ (1,0) [0|7] "" Receiver - SG_ TractionControl118 : 40|3@1+ (1,0) [0|7] "" Receiver - SG_ ParkingBrake118 : 44|2@1+ (1,0) [0|15] "" Receiver - SG_ BrakeState118 : 26|1@1+ (1,0) [0|1] "" Receiver - SG_ DIgear118 : 21|3@1+ (1,0) [0|7] "" Receiver - SG_ BrakePedal118 : 19|2@1+ (1,0) [0|3] "" Receiver - SG_ PedalPosition118 : 32|8@1+ (0.4,0) [0|100] "%" Receiver - SG_ TrackMode118 : 48|2@1+ (1,0) [0|255] "" Receiver - SG_ KeepAliveReq118 : 47|1@1+ (1,0) [0|0] "" Receiver - SG_ Proximity118 : 46|1@1+ (1,0) [0|0] "" Receiver - SG_ DriveSystemStatusChecksum118 : 0|8@1+ (1,0) [0|0] "" Receiver - SG_ DriveSystemStatusCounter118 : 8|4@1+ (1,0) [0|0] "" Receiver + SG_ DI_accelPedalPos : 32|8@1+ (0.4,0) [0|100] "%" Receiver + SG_ DI_brakePedalState : 19|2@1+ (1,0) [0|2] "" Receiver SG_ DI_driveBlocked : 12|2@1+ (1,0) [0|2] "" Receiver - -BO_ 850 ID352BMSenergy: 8 VehicleBus - SG_ BtochargecompleteKWh352 : 40|10@1+ (0.1,0) [0|102.3] "kWh" Receiver - SG_ BidealremainKWh352 : 30|10@1+ (0.1,0) [0|102.3] "kWh" Receiver - SG_ BexpectedremainKWh352 : 20|10@1+ (0.1,0) [0|102.3] "kWh" Receiver - SG_ BremainingKWhNom352 : 10|10@1+ (0.1,0) [0|102.3] "kWh" Receiver - SG_ BfullKWhNom352 : 0|10@1+ (0.1,0) [0|102.3] "kWh" Receiver - SG_ BbufferKWh352 : 50|8@1+ (0.1,0) [0|25.5] "kWh" Receiver - SG_ BMS_energyCounter : 58|4@1+ (1,0) [0|15] "" Receiver - SG_ BMS_fullChargeComplete : 62|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_epbRequest : 44|2@1+ (1,0) [0|2] "" Receiver + SG_ DI_gear : 21|3@1+ (1,0) [0|7] "" Receiver + SG_ DI_immobilizerState : 27|3@1+ (1,0) [0|6] "" Receiver + SG_ DI_keepDrivePowerStateRequest : 47|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_proximity : 46|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_regenLight : 26|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_systemState : 16|3@1+ (1,0) [0|5] "" Receiver + SG_ DI_systemStatusChecksum : 0|8@1+ (1,0) [0|255] "" Receiver + SG_ DI_systemStatusCounter : 8|4@1+ (1,0) [0|15] "" Receiver + SG_ DI_trackModeState : 48|2@1+ (1,0) [0|2] "" Receiver + SG_ DI_tractionControlMode : 40|3@1+ (1,0) [0|6] "" Receiver + +BO_ 850 ID352BMS_energyStatus: 8 VehicleBus + SG_ BMS_energyBuffer : 55|8@1+ (0.1,0) [0|25.4] "KWh" Receiver + SG_ BMS_energyToChargeComplete : 44|11@1+ (0.1,0) [0|204.6] "KWh" Receiver + SG_ BMS_expectedEnergyRemaining : 22|11@1+ (0.1,0) [0|204.6] "KWh" Receiver + SG_ BMS_fullChargeComplete : 63|1@1+ (1,0) [0|1] "" Receiver + SG_ BMS_idealEnergyRemaining : 33|11@1+ (0.1,0) [0|204.6] "KWh" Receiver + SG_ BMS_nominalEnergyRemaining : 11|11@1+ (0.1,0) [0|204.6] "KWh" Receiver + SG_ BMS_nominalFullPackEnergy : 0|11@1+ (0.1,0) [0|204.6] "KWh" Receiver + +BO_ 893 ID37DCP_thermalStatus: 7 VehicleBus + SG_ CP_acPinTemperature : 8|8@1+ (0.803922,-55) [-55|149.99] "C" Receiver + SG_ CP_dTdt_dcPinActual : 16|12@1+ (0.005,-10) [-10|10] "C" Receiver + SG_ CP_dTdt_dcPinExpected : 40|12@1+ (0.005,-10) [-10|10] "C" Receiver + SG_ CP_dcPinTemperature : 0|8@1+ (0.803922,-55) [-55|149.99] "C" Receiver + SG_ CP_dcPinTemperatureModeled : 32|8@1+ (0.803922,-55) [-55|149.99] "C" Receiver + +BO_ 914 ID392BMS_packConfig: 8 VehicleBus + SG_ BMS_packConfigMultiplexer M : 0|8@1+ (1,0) [0|1] "" Receiver + SG_ BMS_moduleType m1 : 8|3@1+ (1,0) [0|4] "" Receiver + SG_ BMS_packMass m1 : 16|8@1+ (1,300) [342|469] "kg" Receiver + SG_ BMS_reservedConfig_0 m0 : 8|5@1+ (1,0) [0|31] "" Receiver + SG_ BMS_platformMaxBusVoltage m1 : 24|10@1+ (0.1,375) [0|0] "V" Receiver BO_ 594 ID252BMS_powerAvailable: 8 VehicleBus SG_ BMS_hvacPowerBudget : 50|10@1+ (0.02,0) [0|20.46] "kW" Receiver - SG_ BMS_maxDischargePower : 16|16@1+ (0.01,0) [0|655.35] "kW" Receiver + SG_ BMS_maxDischargePower : 16|16@1+ (0.013,0) [0|655.35] "kW" Receiver SG_ BMS_maxRegenPower : 0|16@1+ (0.01,0) [0|655.35] "kW" Receiver SG_ BMS_maxStationaryHeatPower : 32|10@1+ (0.01,0) [0|10.23] "kW" Receiver + SG_ BMS_notEnoughPowerForHeatPump : 42|1@1+ (1,0) [0|1] "" Receiver SG_ BMS_powerLimitsState : 48|1@1+ (1,0) [0|1] "" Receiver BO_ 786 ID312BMSthermal: 8 VehicleBus @@ -2751,28 +2655,40 @@ BO_ 658 ID292BMS_SOC: 8 VehicleBus SG_ SOCmin292 : 0|10@1+ (0.1,0) [0|102.3] "%" Receiver SG_ BMS_battTempPct : 50|8@1+ (0.4,0) [0|100] "%" Receiver -BO_ 599 ID257UIspeed: 8 VehicleBus - SG_ UIspeedUnits257 : 32|1@1+ (1,0) [0|0] "" Receiver - SG_ UIspeed_signed257 : 12|12@1+ (0.08,-40) [-40|287.6] "KPH" Receiver - SG_ UIspeed_abs257 : 24|8@1+ (1,0) [0|255] "MPHKPH" Receiver - SG_ UIspeedChecksum257 : 0|8@1+ (1,0) [0|0] "" Receiver - SG_ UIspeedCounter257 : 8|4@1+ (1,0) [0|0] "" Receiver - SG_ UISpeedHighSpeed257 : 33|9@1+ (1,0) [0|510] "MPHKPH" Receiver +BO_ 599 ID257DIspeed: 8 VehicleBus + SG_ DI_speedChecksum : 0|8@1+ (1,0) [0|255] "" Receiver + SG_ DI_speedCounter : 8|4@1+ (1,0) [0|15] "" Receiver + SG_ DI_uiSpeed : 24|9@1+ (1,0) [0|510] "" Receiver + SG_ DI_uiSpeedHighSpeed : 34|9@1+ (1,0) [0|510] "" Receiver + SG_ DI_uiSpeedUnits : 33|1@1+ (1,0) [0|1] "" Receiver + SG_ DI_vehicleSpeed : 12|12@1+ (0.08,-40) [-40|285] "kph" Receiver + +BO_ 680 ID2A8CMPD_state: 8 VehicleBus + SG_ CMPD_inputHVCurrent : 32|9@1+ (0.1,0) [0|50] "A" Receiver + SG_ CMPD_inputHVPower : 21|11@1+ (10,0) [0|20000] "W" Receiver + SG_ CMPD_inputHVVoltage : 41|11@1+ (0.5,0) [0|1000] "V" Receiver + SG_ CMPD_powerLimitActive : 55|1@1+ (1,0) [0|1] "" Receiver + SG_ CMPD_powerLimitTooLowToStart : 62|1@1+ (1,0) [0|1] "" Receiver + SG_ CMPD_ready : 63|1@1+ (1,0) [0|1] "" Receiver + SG_ CMPD_speedDuty : 11|10@1+ (0.1,0) [0|100] "%" Receiver + SG_ CMPD_speedRPM : 0|11@1+ (10,0) [0|20000] "RPM" Receiver + SG_ CMPD_state : 56|4@1+ (1,0) [0|15] "" Receiver + SG_ CMPD_wasteHeatState : 60|2@1+ (1,0) [0|3] "" Receiver BO_ 1029 ID405VIN: 8 VehicleBus - SG_ VINB405 m17 : 8|56@1+ (1,0) [0|7.2057594038E+016] "" Receiver - SG_ VINC405 m18 : 8|56@1+ (1,0) [0|7.2057594038E+016] "" Receiver - SG_ VINA405 m16 : 8|56@1+ (1,0) [0|7.2057594038E+016] "" Receiver + SG_ VINB405 m17 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver + SG_ VINC405 m18 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver + SG_ VINA405 m16 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver SG_ mux405 M : 0|8@1+ (1,0) [0|255] "" Receiver BO_ 1310 ID51EFC_info: 8 VehicleBus SG_ FC_infoIndex M : 0|8@1+ (1,0) [0|255] "" Receiver - SG_ FC_infoAppGitHashBytes m17 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver - SG_ FC_infoApplicationCRC m13 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ FC_infoAppGitHashBytes m17 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver + SG_ FC_infoApplicationCRC m13 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ FC_infoAssemblyID m11 : 24|8@1+ (1,0) [0|255] "" Receiver - SG_ FC_infoBootCRC m15 : 32|32@1+ (1,0) [0|4294967295] "" Receiver - SG_ FC_infoBootGitHashBytes m18 : 8|56@1+ (1,0) [0|7.20575940379279E+016] "" Receiver - SG_ FC_infoBootSvnRev m14 : 8|24@1+ (1,0) [0|16777215] "" Receiver + SG_ FC_infoBootCRC m15 : 32|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ FC_infoBootGitHashBytes m18 : 8|56@1+ (1,0) [0|7.20576E+016] "" Receiver + SG_ FC_infoBootSvnRev m14 : 8|24@1+ (1,0) [0|16777200] "" Receiver SG_ FC_infoBootUdsProtoVersion m20 : 8|8@1+ (1,0) [0|255] "" Receiver SG_ FC_infoBranchOrigin m19 : 24|8@1+ (1,0) [0|255] "" Receiver SG_ FC_infoBuildConfigID m10 : 16|8@1+ (1,0) [0|255] "" Receiver @@ -2788,7 +2704,7 @@ BO_ 1310 ID51EFC_info: 8 VehicleBus SG_ FC_infoPlatformType m19 : 8|8@1+ (1,0) [0|255] "" Receiver SG_ FC_infoSubUsageID m11 : 48|16@1+ (1,0) [0|65535] "" Receiver SG_ FC_infoUsageID m11 : 32|16@1+ (1,0) [0|65535] "" Receiver - SG_ FC_infoVariantCRC m22 : 32|32@1+ (1,0) [0|4294967295] "" Receiver + SG_ FC_infoVariantCRC m22 : 32|32@1+ (1,0) [0|4294970000] "" Receiver SG_ FC_partNumChar01 m25 : 8|8@1+ (1,0) [0|1] "" Receiver SG_ FC_partNumChar02 m25 : 16|8@1+ (1,0) [0|1] "" Receiver SG_ FC_partNumChar03 m25 : 24|8@1+ (1,0) [0|1] "" Receiver @@ -2818,6 +2734,7 @@ BO_ 886 ID376FrontInverterTemps: 8 VehicleBus SG_ TempStator376 : 16|8@1+ (1,-40) [-40|215] "C" Receiver SG_ TempInvHeatsink376 : 32|8@1+ (1,-40) [-40|215] "C" Receiver SG_ TempInverter376 : 8|8@1+ (1,-40) [-40|215] "C" Receiver + SG_ DIF_inverterTQF : 56|2@1+ (1,0) [0|3] "" Receiver BO_ 789 ID315RearInverterTemps: 8 VehicleBus SG_ RearTempInvPCB315 : 0|8@1+ (1,-40) [-40|215] "C" Receiver @@ -2827,12 +2744,13 @@ BO_ 789 ID315RearInverterTemps: 8 VehicleBus SG_ RearTempStator315 : 16|8@1+ (1,-40) [-40|215] "C" Receiver SG_ RearTempInvHeatsink315 : 32|8@1+ (1,-40) [-40|215] "C" Receiver SG_ RearTempInverter315 : 8|8@1+ (1,-40) [-40|215] "C" Receiver + SG_ DIR_inverterTQF : 56|2@1+ (1,0) [0|3] "" Receiver BO_ 340 ID154RearTorqueOld: 8 VehicleBus SG_ RAWTorqueRear154 : 40|12@1- (0.25,0) [-512|511.75] "NM" Receiver BO_ 950 ID3B6odometer: 4 VehicleBus - SG_ Odometer3B6 : 0|32@1+ (0.001,0) [0|4294967.294] "KM" Receiver + SG_ Odometer3B6 : 0|32@1+ (0.001,0) [0|4294970] "KM" Receiver BO_ 614 ID266RearInverterPower: 8 VehicleBus SG_ RearHeatPowerMax266 : 24|8@1+ (0.08,0) [0|20] "kW" Receiver @@ -2842,34 +2760,94 @@ BO_ 614 ID266RearInverterPower: 8 VehicleBus SG_ RearExcessHeatCmd : 40|8@1+ (0.08,0) [0|20] "kW" Receiver SG_ RearPower266 : 0|11@1- (0.5,0) [-500|500] "kW" Receiver -BO_ 264 ID108RearDriveTorqueRPM: 8 VehicleBus - SG_ RearTorqueActual108 : 27|13@1- (2,0) [-7500|7500] "NM" Receiver - SG_ RearTorqueRequest108 : 12|13@1- (2,0) [-7500|7500] "NM" Receiver - SG_ RearAxleRPM108 : 40|16@1- (0.1,0) [-2750|2750] "RPM" Receiver +BO_ 741 ID2E5FrontInverterPower: 8 VehicleBus + SG_ FrontHeatPowerOptimal2E5 : 16|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ FrontPower2E5 : 0|11@1- (0.5,0) [-512|511.5] "kW" Receiver + SG_ FrontHeatPowerMax2E5 : 24|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ FrontPowerLimit2E5 : 48|9@1+ (1,0) [0|400] "kW" Receiver + SG_ FrontHeatPower2E5 : 32|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ FrontExcessHeatCmd : 40|8@1+ (0.08,0) [0|20] "kW" Receiver + +BO_ 742 ID2E6PlaidFrontPower: 8 VehicleBus + SG_ PFrontHeatPowerOptimal : 16|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ PFrontPower : 0|11@1- (0.5,0) [-512|511.5] "kW" Receiver + SG_ PFrontHeatPowerMax : 24|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ PFrontPowerLimit : 48|9@1+ (1,0) [0|400] "kW" Receiver + SG_ PFrontHeatPower : 32|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ PFrontExcessHeatCmd : 40|8@1+ (0.08,0) [0|20] "kW" Receiver + +BO_ 617 ID269LeftRearPower: 8 VehicleBus + SG_ LeftRearHeatPowerOptimal : 16|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ LeftRearPower : 0|11@1- (0.5,0) [-512|511.5] "kW" Receiver + SG_ LeftRearPowerMax : 24|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ LeftRearPowerLimit : 48|9@1+ (1,0) [0|400] "kW" Receiver + SG_ LeftRearHeatPower : 32|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ LeftRearExcessHeatCmd : 40|8@1+ (0.08,0) [0|20] "kW" Receiver + +BO_ 636 ID27CRightRearPower: 8 VehicleBus + SG_ RightRearHeatPowerOptimal : 16|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ RightRearPower : 0|11@1- (0.5,0) [-512|511.5] "kW" Receiver + SG_ RightRearHeatPowerMax : 24|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ RightRearPowerLimit : 48|9@1+ (1,0) [0|400] "kW" Receiver + SG_ RightRearHeatPower : 32|8@1+ (0.08,0) [0|20.4] "kW" Receiver + SG_ RightRearExcessHeatCmd : 40|8@1+ (0.08,0) [0|20] "kW" Receiver + +BO_ 264 ID108DIR_torque: 8 VehicleBus + SG_ DIR_axleSpeed : 40|16@1- (0.1,0) [-2750|2750] "RPM" Receiver + SG_ DIR_slavePedalPos : 56|8@1+ (0.4,0) [0|100] "%" Receiver + SG_ DIR_torqueActual : 27|13@1- (2,0) [-7500|7500] "Nm" Receiver + SG_ DIR_torqueChecksum : 0|8@1+ (1,0) [0|255] "" Receiver + SG_ DIR_torqueCommand : 12|13@1- (2,0) [-7500|7500] "Nm" Receiver + SG_ DIR_torqueCounter : 8|4@1+ (1,0) [0|15] "" Receiver + SG_ DIR_axleSpeedQF : 25|1@1+ (1,0) [0|1] "" Receiver BO_ 306 ID132HVBattAmpVolt: 8 VehicleBus SG_ ChargeHoursRemaining132 : 48|12@1+ (1,0) [0|4095] "Min" Receiver SG_ BattVoltage132 : 0|16@1+ (0.01,0) [0|655.35] "V" Receiver - SG_ RawBattCurrent132 : 32|16@1- (-0.05,500) [-1138.35|2138.4] "A" Receiver + SG_ RawBattCurrent132 : 32|16@1- (-0.05,822) [-1138.35|2138.4] "A" Receiver SG_ SmoothBattCurrent132 : 16|16@1- (-0.1,0) [-3276.7|3276.7] "A" Receiver -BO_ 294 ID126RearHVStatus: 3 VehicleBus +BO_ 294 ID126RearHVStatus: 7 VehicleBus SG_ RearHighVoltage126 : 0|10@1+ (0.5,0) [0|500] "V" Receiver - SG_ RearMotorCurrent126 : 10|11@1+ (1,0) [0|2047] "A" Receiver + SG_ RearMotorCurrent126 : 11|11@1+ (1,0) [0|2047] "A" Receiver + SG_ DIR_switchingFrequency : 40|11@1+ (0.01,0) [0|20] "kHz" Receiver + SG_ DIR_dcCableCurrentEst : 24|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver + SG_ DIR_vBatQF : 10|1@1+ (1,0) [0|1] "" Receiver + SG_ DIR_targetFluxMode : 51|2@1+ (1,0) [0|0] "" Receiver -BO_ 421 ID1A5FrontHVStatus: 3 VehicleBus +BO_ 421 ID1A5FrontHVStatus: 7 VehicleBus SG_ FrontHighVoltage1A5 : 0|10@1+ (0.5,0) [0|500] "V" Receiver - SG_ FrontMotorCurrent1A5 : 10|11@1+ (1,0) [0|2047] "A" Receiver + SG_ FrontMotorCurrent1A5 : 11|11@1+ (1,0) [0|2047] "A" Receiver + SG_ DIF_switchingFrequency : 40|11@1+ (0.01,0) [0|20] "kHz" Receiver + SG_ DIF_dcCableCurrentEst : 24|16@1- (0.1,0) [-3276.8|3276.7] "A" Receiver + SG_ DIF_vBatQF : 10|1@1+ (1,0) [0|0] "" Receiver + SG_ DIF_targetFluxMode : 51|2@1+ (1,0) [0|0] "" Receiver + +BO_ 295 ID127LeftRearHVStatus: 7 VehicleBus + SG_ LeftRear_targetFluxMode : 51|2@1+ (1,0) [0|0] "" Receiver + SG_ LeftRear_switchingFrequency : 40|11@1+ (0.01,0) [0|0] "kHz" Receiver + SG_ LeftRear_dcCableCurrentEst : 24|16@1- (0.1,0) [0|0] "A" Receiver + SG_ LeftRear_motorCurrent : 11|11@1+ (1,0) [0|0] "A" Receiver + SG_ LeftRear_vBatQF : 10|1@1+ (1,0) [0|0] "" Receiver + SG_ LeftRear_vBat : 0|10@1+ (0.5,0) [0|0] "V" Receiver + +BO_ 298 ID12ARightRearHVStatus: 7 VehicleBus + SG_ RightRear_targetFluxMode : 51|2@1+ (1,0) [0|0] "" Receiver + SG_ RightRear_switchingFrequency : 40|11@1+ (0.01,0) [0|0] "kHz" Receiver + SG_ RightRear_dcCableCurrentEst : 24|16@1- (0.1,0) [0|0] "A" Receiver + SG_ RightRear_motorCurrent : 11|11@1+ (1,0) [0|0] "A" Receiver + SG_ RightRear_vBatQF : 10|1@1+ (1,0) [0|0] "" Receiver + SG_ RightRear_vBat : 0|10@1+ (0.5,0) [0|0] "V" Receiver BO_ 799 ID31FTPMSsensors: 8 ChassisBus - SG_ TPMSFLpressure31F : 0|8@1+ (0.025,0) [0|0] "bar" Receiver - SG_ TPMSFRpressure31F : 16|8@1+ (0.025,0) [0|0] "bar" Receiver - SG_ TPMSRLpressure31F : 32|8@1+ (0.025,0) [0|0] "bar" Receiver - SG_ TPMSRRpressure31F : 48|8@1+ (0.025,0) [0|0] "bar" Receiver - SG_ TPMSFLtemp31F : 8|8@1+ (1,-40) [0|0] "C" Receiver - SG_ TPMSFRtemp31F : 24|8@1+ (1,-40) [0|0] "C" Receiver - SG_ TPMSRLtemp31F : 40|8@1+ (1,-40) [0|0] "C" Receiver - SG_ TPMSRRtemp31F : 56|8@1+ (1,-40) [0|0] "C" Receiver + SG_ TPMSFLpressure31F : 0|8@1+ (0.025,0) [0|6.375] "bar" Receiver + SG_ TPMSFRpressure31F : 16|8@1+ (0.025,0) [0|6.375] "bar" Receiver + SG_ TPMSRLpressure31F : 32|8@1+ (0.025,0) [0|6.375] "bar" Receiver + SG_ TPMSRRpressure31F : 48|8@1+ (0.025,0) [0|6.375] "bar" Receiver + SG_ TPMSFLtemp31F : 8|8@1+ (1,-40) [-40|215] "C" Receiver + SG_ TPMSFRtemp31F : 24|8@1+ (1,-40) [-40|215] "C" Receiver + SG_ TPMSRLtemp31F : 40|8@1+ (1,-40) [-40|215] "C" Receiver + SG_ TPMSRRtemp31F : 56|8@1+ (1,-40) [-40|215] "C" Receiver BO_ 1022 ID3FEbrakeTemps: 5 VehicleBus SG_ BrakeTempFL3FE : 0|10@1+ (1,-40) [0|0] "C" Receiver @@ -2911,9 +2889,25 @@ BO_ 648 ID288EPBleftStatus: 8 VehicleBus SG_ EPBLunitFaultStatus288 : 5|2@1+ (1,0) [0|0] "" Receiver SG_ EPBLunitStatus288 : 0|5@1+ (1,0) [0|0] "" Receiver +BO_ 1834 ID72ABMS_serialNumber: 8 VehicleBus + SG_ BMS_packSerialNumberByte01 m0 : 8|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte02 m0 : 16|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte03 m0 : 24|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte04 m0 : 32|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte05 m0 : 40|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte06 m0 : 48|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte07 m0 : 56|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte08 m1 : 8|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte09 m1 : 16|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte10 m1 : 24|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte11 m1 : 32|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte12 m1 : 40|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte13 m1 : 48|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_packSerialNumberByte14 m1 : 56|8@1+ (1,0) [0|255] "" Receiver + SG_ BMS_serialNumberMultiplexer M : 0|1@1+ (1,0) [0|1] "" Receiver + BO_ 2047 ID7FFcarConfig: 8 VehicleBus SG_ GTW_carConfigMultiplexer M : 0|8@1+ (1,0) [0|255] "" Receiver - SG_ GTW_CabinBlowerCtrlType m2 : 30|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_activeHighBeam m2 : 34|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_airSuspension m3 : 22|2@1+ (1,0) [0|2] "" Receiver SG_ GTW_airbagCutoffSwitch m2 : 35|1@1+ (1,0) [0|1] "" Receiver @@ -2922,8 +2916,12 @@ BO_ 2047 ID7FFcarConfig: 8 VehicleBus SG_ GTW_autopilotCameraType m3 : 26|1@1+ (1,0) [0|0] "" Receiver SG_ GTW_auxParkLamps m2 : 26|2@1+ (1,0) [0|3] "" Receiver SG_ GTW_bPillarNFCParam m2 : 56|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_brakeHWType m2 : 59|2@1+ (1,0) [0|2] "" Receiver - SG_ GTW_chassisType m3 : 18|3@1+ (1,0) [0|3] "" Receiver + SG_ GTW_birthday m4 : 8|32@1+ (1,0) [0|4294970000] "" Receiver + SG_ GTW_brakeHWType m2 : 59|2@1+ (1,0) [0|3] "" Receiver + SG_ GTW_brakeLineSwitchType m3 : 39|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_cabinPTCHeaterType m2 : 31|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_chassisType m3 : 18|3@1+ (1,0) [0|4] "" Receiver + SG_ GTW_compressorType m4 : 46|2@1+ (1,0) [0|3] "" Receiver SG_ GTW_connectivityPackage m3 : 27|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_coolantPumpType m3 : 17|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_country m1 : 16|16@1+ (1,0) [0|65535] "" Receiver @@ -2931,192 +2929,203 @@ BO_ 2047 ID7FFcarConfig: 8 VehicleBus SG_ GTW_deliveryStatus m1 : 8|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_drivetrainType m1 : 10|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_eBuckConfig m2 : 32|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_eCallEnabled m2 : 63|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_efficiencyPackage m3 : 58|2@1+ (1,0) [0|3] "" Receiver - SG_ GTW_epasType m1 : 9|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_eCallEnabled m4 : 40|2@1+ (1,0) [0|2] "" Receiver + SG_ GTW_efficiencyPackage m4 : 48|3@1+ (1,0) [0|5] "" Receiver + SG_ GTW_epasType m1 : 9|1@1+ (1,0) [0|0] "" Receiver SG_ GTW_espValveType m3 : 40|2@1+ (1,0) [0|2] "" Receiver SG_ GTW_exteriorColor m2 : 48|3@1+ (1,0) [0|6] "" Receiver SG_ GTW_frontFogLamps m2 : 20|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_frontSeatHeaters m2 : 9|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_frontSeatReclinerHardware m3 : 37|2@1+ (1,0) [0|3] "" Receiver SG_ GTW_frontSeatType m3 : 60|3@1+ (1,0) [0|4] "" Receiver - SG_ GTW_headlamps m2 : 21|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_headlamps m1 : 14|2@1+ (1,0) [0|2] "" Receiver SG_ GTW_headlightLevelerType m3 : 47|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_heatedWipers m2 : 8|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_homelinkType m2 : 13|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_hvacPanelVaneType m2 : 29|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_hvacQuietSnorkelType m2 : 28|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_ibstWakeType m2 : 24|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_immersiveAudio m3 : 56|2@1+ (1,0) [0|2] "" Receiver SG_ GTW_interiorLighting m2 : 57|2@1+ (1,0) [0|2] "" Receiver SG_ GTW_intrusionSensorType m2 : 36|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_loggingVersion m2 : 22|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_lumbarECUType m2 : 23|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_mapRegion m3 : 8|4@1+ (1,0) [0|10] "" Receiver SG_ GTW_memoryMirrors m2 : 17|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_numberHVILNodes m2 : 51|3@1+ (1,0) [0|5] "" Receiver - SG_ GTW_packEnergy m3 : 32|5@1+ (1,0) [0|4] "" Receiver - SG_ GTW_passengerAirbagType m3 : 39|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_passengerOccupancySensorType m3 : 24|2@1+ (1,0) [0|3] "" Receiver + SG_ GTW_numberHVILNodes m2 : 51|2@1+ (1,0) [2|3] "" Receiver + SG_ GTW_packEnergy m3 : 32|5@1+ (1,0) [0|2] "" Receiver + SG_ GTW_passengerAirbagType m4 : 43|2@1+ (1,0) [0|2] "" Receiver + SG_ GTW_passengerOccupancySensorType m3 : 24|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_pedestrianWarningSound m2 : 54|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_performancePackage m3 : 12|3@1+ (1,0) [0|4] "" Receiver + SG_ GTW_performancePackage m3 : 12|3@1+ (1,0) [0|3] "" Receiver SG_ GTW_plcSupportType m3 : 28|2@1+ (1,0) [0|2] "" Receiver SG_ GTW_powerSteeringColumn m2 : 18|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_rearDriveUnitType m3 : 21|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_radarHeaterType m3 : 55|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_rearFogLamps m2 : 39|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_rearGlassType m2 : 38|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_rearLightType m3 : 16|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_rearLightType m1 : 12|2@1+ (1,0) [0|2] "" Receiver SG_ GTW_rearSeatHeaters m2 : 10|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_refrigerantType m3 : 45|2@1+ (1,0) [0|2] "" Receiver SG_ GTW_restraintsHardwareType m1 : 48|8@1+ (1,0) [21|163] "" Receiver SG_ GTW_rightHandDrive m1 : 11|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_roofGlassType m2 : 61|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_roofType m2 : 40|2@1+ (1,0) [0|2] "" Receiver + SG_ GTW_roofType m2 : 40|1@1+ (1,0) [1|1] "" Receiver SG_ GTW_softRange m3 : 42|3@1+ (1,0) [0|2] "" Receiver SG_ GTW_spoilerType m2 : 37|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_steeringColumnMotorType m4 : 52|1@1+ (1,0) [0|1] "" Receiver + SG_ GTW_steeringColumnUJointType m2 : 55|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_superchargingAccess m2 : 45|2@1+ (1,0) [0|2] "" Receiver - SG_ GTW_tireType m1 : 32|5@1+ (1,0) [0|16] "" Receiver + SG_ GTW_tireType m1 : 32|5@1+ (1,0) [0|21] "" Receiver SG_ GTW_towPackage m3 : 15|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_tpmsType m2 : 11|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_trackModePackage m2 : 62|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_twelveVBatteryType m3 : 63|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_vdcType m2 : 14|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_wheelType m3 : 48|7@1+ (1,0) [0|19] "" Receiver + SG_ GTW_wheelType m3 : 48|7@1+ (1,0) [0|20] "" Receiver SG_ GTW_windshieldType m2 : 33|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_xcpESP m2 : 16|1@1+ (1,0) [0|1] "" Receiver SG_ GTW_xcpIbst m2 : 15|1@1+ (1,0) [0|1] "" Receiver - SG_ GTW_birthday m4 : 8|32@1+ (1,0) [0|0] "" ui - -BO_ 818 ID332BattCellMinMax: 6 VehicleBus - SG_ BattCellMultiplexer332 M : 0|2@1+ (1,0) [0|0] "" Receiver - SG_ BattCellTempMaxNum332 m0 : 2|4@1+ (1,0) [0|0] "" Receiver - SG_ BattCellTempMinNum332 m0 : 8|4@1+ (1,0) [0|0] "" Receiver - SG_ BattCellTempMax332 m0 : 16|8@1+ (0.5,-40) [0|0] "C" Receiver - SG_ BattCellTempMin332 m0 : 24|8@1+ (0.5,-40) [0|0] "C" Receiver - SG_ BattCellModelTMax332 m0 : 32|8@1+ (0.5,-40) [0|0] "C" Receiver - SG_ BattCellModelTMin332 m0 : 40|8@1+ (0.5,-40) [0|0] "C" Receiver - SG_ BattCellBrickVoltageMax332 m1 : 2|12@1+ (0.002,0) [0|0] "V" Receiver - SG_ BattCellBrickVoltageMin332 m1 : 16|12@1+ (0.002,0) [0|0] "V" Receiver - SG_ BattCellBrickVoltageMaxNum332 m1 : 32|7@1+ (1,1) [0|0] "" Receiver - SG_ BattCellBrickVoltageMinNum332 m1 : 40|7@1+ (1,1) [0|0] "" Receiver - -BO_ 1025 ID401CellVoltages: 8 VehicleBus + +BO_ 818 ID332BattBrickMinMax: 6 VehicleBus + SG_ BattBrickMultiplexer332 M : 0|2@1+ (1,0) [0|0] "" Receiver + SG_ BattBrickempMaxNum332 m0 : 2|4@1+ (1,0) [0|0] "" Receiver + SG_ BattBrickTempMinNum332 m0 : 8|4@1+ (1,0) [0|0] "" Receiver + SG_ BattBrickTempMax332 m0 : 16|8@1+ (0.5,-40) [0|0] "C" Receiver + SG_ BattBrickTempMin332 m0 : 24|8@1+ (0.5,-40) [0|0] "C" Receiver + SG_ BattBrickModelTMax332 m0 : 32|8@1+ (0.5,-40) [0|0] "C" Receiver + SG_ BattBrickModelTMin332 m0 : 40|8@1+ (0.5,-40) [0|0] "C" Receiver + SG_ BattBrickVoltageMax332 m1 : 2|12@1+ (0.002,0) [0|0] "V" Receiver + SG_ BattBrickVoltageMin332 m1 : 16|12@1+ (0.002,0) [0|0] "V" Receiver + SG_ BattBrickVoltageMaxNum332 m1 : 32|7@1+ (1,1) [0|0] "" Receiver + SG_ BattBrickVoltageMinNum332 m1 : 40|7@1+ (1,1) [0|0] "" Receiver + +BO_ 1025 ID401BrickVoltages: 8 VehicleBus SG_ MultiplexSelector M : 0|8@1+ (1,0) [0|0] "" Receiver SG_ StatusFlags : 8|8@1+ (1,0) [0|0] "" Receiver - SG_ Cell0 m0 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell1 m0 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell2 m0 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell3 m1 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell4 m1 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell5 m1 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell6 m2 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell7 m2 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell8 m2 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell9 m3 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell10 m3 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell11 m3 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell12 m4 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell13 m4 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell14 m4 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell15 m5 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell16 m5 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell17 m5 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell18 m6 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell19 m6 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell20 m6 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell21 m7 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell22 m7 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell23 m7 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell24 m8 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell25 m8 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell26 m8 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell27 m9 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell28 m9 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell29 m9 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell30 m10 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell31 m10 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell32 m10 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell34 m11 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell33 m11 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell35 m11 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell36 m12 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell37 m12 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell38 m12 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell39 m13 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell40 m13 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell41 m13 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell42 m14 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell43 m14 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell44 m14 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell45 m15 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell46 m15 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell47 m15 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell48 m16 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell49 m16 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell50 m16 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell51 m17 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell52 m17 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell53 m17 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell54 m18 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell55 m18 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell56 m18 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell57 m19 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell58 m19 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell59 m19 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell60 m20 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell61 m20 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell62 m20 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell63 m21 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell64 m21 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell65 m21 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell66 m22 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell67 m22 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell68 m22 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell69 m23 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell70 m23 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell71 m23 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell72 m24 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell73 m24 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell74 m24 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell75 m25 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell76 m25 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell77 m25 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell78 m26 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell79 m26 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell80 m26 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell81 m27 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell82 m27 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell83 m27 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell84 m28 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell85 m28 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell86 m28 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell87 m29 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell88 m29 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell89 m29 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell90 m30 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell91 m30 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell92 m30 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell93 m31 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell94 m31 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell95 m31 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell96 m32 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell97 m32 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell98 m32 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell99 m33 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell100 m33 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell101 m33 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell102 m34 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell103 m34 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell104 m34 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell105 m35 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell106 m35 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver - SG_ Cell107 m35 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver - - - + SG_ Brick0 m0 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick1 m0 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick2 m0 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick3 m1 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick4 m1 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick5 m1 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick6 m2 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick7 m2 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick8 m2 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick9 m3 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick10 m3 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick11 m3 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick12 m4 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick13 m4 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick14 m4 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick15 m5 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick16 m5 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick17 m5 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick18 m6 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick19 m6 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick20 m6 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick21 m7 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick22 m7 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick23 m7 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick24 m8 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick25 m8 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick26 m8 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick27 m9 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick28 m9 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick29 m9 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick30 m10 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick31 m10 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick32 m10 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick34 m11 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick33 m11 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick35 m11 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick36 m12 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick37 m12 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick38 m12 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick39 m13 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick40 m13 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick41 m13 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick42 m14 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick43 m14 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick44 m14 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick45 m15 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick46 m15 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick47 m15 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick48 m16 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick49 m16 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick50 m16 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick51 m17 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick52 m17 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick53 m17 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick54 m18 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick55 m18 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick56 m18 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick57 m19 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick58 m19 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick59 m19 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick60 m20 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick61 m20 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick62 m20 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick63 m21 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick64 m21 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick65 m21 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick66 m22 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick67 m22 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick68 m22 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick69 m23 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick70 m23 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick71 m23 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick72 m24 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick73 m24 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick74 m24 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick75 m25 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick76 m25 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick77 m25 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick78 m26 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick79 m26 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick80 m26 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick81 m27 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick82 m27 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick83 m27 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick84 m28 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick85 m28 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick86 m28 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick87 m29 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick88 m29 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick89 m29 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick90 m30 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick91 m30 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick92 m30 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick93 m31 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick94 m31 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick95 m31 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick96 m32 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick97 m32 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick98 m32 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick99 m33 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick100 m33 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick101 m33 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick102 m34 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick103 m34 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick104 m34 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick105 m35 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick106 m35 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick107 m35 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick108 m36 : 16|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick109 m36 : 32|16@1+ (0.0001,0) [0|0] "V" Receiver + SG_ Brick110 m36 : 48|16@1+ (0.0001,0) [0|0] "V" Receiver + + + +CM_ SG_ 130 UI_tripPlanningActive "Navigation Active"; +CM_ SG_ 257 RCM_pitchRate "Pitch"; +CM_ SG_ 257 RCM_rollRate "Roll"; +CM_ SG_ 257 RCM_yawRate "Yaw"; +CM_ SG_ 273 RCM_lateralAccel "L/R Acceleration"; +CM_ SG_ 273 RCM_longitudinalAccel "F/B Acceleration"; +CM_ SG_ 273 RCM_verticalAccel "Vertical Acceleration"; CM_ SG_ 692 PCS_dcdcHvBusVolt "DCDC HV Voltage"; CM_ SG_ 692 PCS_dcdcLvBusVolt "DCDC 12v Voltage"; CM_ SG_ 692 PCS_dcdcLvOutputCurrent "DCDC 12v Output Current"; +CM_ SG_ 985 UI_gpsVehicleHeading "GPS Heading"; +CM_ SG_ 985 UI_gpsVehicleSpeed "GPS Speed"; +CM_ SG_ 1011 UI_odometer "UI Odometer"; +CM_ SG_ 615 DI_gradeEst "Estimated Grade"; +CM_ SG_ 615 DI_mass "Estimated Mass"; CM_ SG_ 642 VCLEFT_hvacBlowerRPMActual "HVAC Blower Speed"; CM_ SG_ 647 PTC_leftCurrentHV "Heater Left Current"; CM_ SG_ 647 PTC_rightCurrentHV "Heater Right Current"; @@ -3124,6 +3133,7 @@ CM_ SG_ 647 PTC_voltageHV "Heater Voltage"; CM_ SG_ 819 UI_acChargeCurrentLimit "UI Charge Current Limit"; CM_ SG_ 826 UI_Range "Range"; CM_ SG_ 826 UI_SOC "State of Charge UI"; +CM_ SG_ 826 UI_uSOE "UI fine SOC"; CM_ SG_ 826 UI_ratedWHpM "WHM Rating"; CM_ SG_ 577 VCFRONT_coolantFlowBatActual "Battery Coolant Flow"; CM_ SG_ 577 VCFRONT_coolantFlowPTActual "Powertrain Coolant Flow"; @@ -3133,20 +3143,16 @@ CM_ BO_ 2005 "swapped with 757 in old firmware"; CM_ BO_ 1879 "swapped with 7D5 in old firmware"; CM_ SG_ 579 VCRIGHT_hvacCabinTempEst "Cabin Temperature"; CM_ SG_ 524 VCRIGHT_wattsDemandEvap "Evaporator Power"; -CM_ SG_ 691 VCRIGHT_ptcHeaterPwrDemandLeft "Heater Left Power Demand"; -CM_ SG_ 691 VCRIGHT_ptcHeaterPwrDemandRight "Heater Right Power Demand"; -CM_ SG_ 691 VCRIGHT_wattsHeaterLeftTotal "Heater Left Power"; -CM_ SG_ 691 VCRIGHT_wattsHeaterRightTotal "Heater Right Power"; -CM_ SG_ 737 VCFRONT_wiperPositionDeg "Wiper Angle"; CM_ SG_ 792 UTCyear318 "Year"; CM_ SG_ 792 UTCmonth318 "Month"; CM_ SG_ 792 UTCseconds318 "Seconds"; CM_ SG_ 792 UTChour318 "Hour"; CM_ SG_ 792 UTCday318 "Day"; CM_ SG_ 792 UTCminutes318 "Minute"; -CM_ SG_ 390 FrontTorqueActual186 "Front Axle Torque"; -CM_ SG_ 390 FrontTorqueRequest186 "Front Axle Torque Request"; -CM_ SG_ 390 FrontAxleRPM186 "Front Axle Speed"; +CM_ SG_ 1320 UnixTimeSeconds528 "Unix Time"; +CM_ SG_ 390 DIF_axleSpeed "Front Axle Speed"; +CM_ SG_ 390 DIF_torqueActual "Front Axle Torque"; +CM_ SG_ 390 DIF_torqueCommand "Front Axle Torque Request"; CM_ BO_ 918 "swapped with 395 in old firmware"; CM_ BO_ 917 "swapped with 396 in old firmware"; CM_ SG_ 472 RearTorqueRequest1D8 "Rear Motor Torque Request"; @@ -3171,6 +3177,8 @@ CM_ SG_ 722 MinVoltage2D2 "BMS Min Voltage"; CM_ SG_ 722 MaxDischargeCurrent2D2 "BMS Max Discharge Current"; CM_ SG_ 722 MaxChargeCurrent2D2 "BMS Max Charge Current"; CM_ SG_ 722 MaxVoltage2D2 "BMS Max Voltage"; +CM_ SG_ 1345 FCMaxPowerLimit541 "Supercharger Power Limit"; +CM_ SG_ 1345 FCMaxCurrentLimit541 "Supercharger Current Limit"; CM_ SG_ 580 FCMinVlimit244 "Supercharger Min Voltage"; CM_ SG_ 580 FCMaxVlimit244 "Supercharger Max Voltage"; CM_ SG_ 580 FCCurrentLimit244 "Supercharger Max Current"; @@ -3178,11 +3186,11 @@ CM_ SG_ 580 FCPowerLimit244 "Supercharger Max Power"; CM_ SG_ 801 VCFRONT_tempAmbientFiltered "Outside Temperature"; CM_ SG_ 801 VCFRONT_tempCoolantBatInlet "Battery Coolant Temp"; CM_ SG_ 801 VCFRONT_tempCoolantPTInlet "Powertrain Coolant Temp"; -CM_ SG_ 513 VCFRONT_fiveWayValveMode "Five Way Valve Mode"; CM_ SG_ 984 Elevation3D8 "Elevation"; -CM_ SG_ 609 v12vBattTemp261 "12V Battery Temp"; -CM_ SG_ 609 v12vBattCurrent261 "12V Battery Current"; CM_ SG_ 609 v12vBattVoltage261 "12V Battery Voltage"; +CM_ SG_ 609 v12vBattCurrent261 "12V Battery Current"; +CM_ SG_ 609 v12vBattTemp261 "12V Battery Temp"; +CM_ SG_ 609 v12vBattAH261 "12V Battery Capacity"; CM_ SG_ 297 SteeringSpeed129 "Steering Speed"; CM_ SG_ 297 SteeringAngle129 "Steering Angle"; CM_ SG_ 612 ChargeLinePower264 "Charger Line Power"; @@ -3190,17 +3198,16 @@ CM_ SG_ 612 ChargeLineCurrentLimit264 "Charge Connector Current Limit"; CM_ SG_ 612 ChargeLineVoltage264 "Charger Line Voltage"; CM_ SG_ 612 ChargeLineCurrent264 "Charger Line Current"; CM_ SG_ 548 DCDCoutputCurrent224 "DCDC Output Current"; -CM_ SG_ 280 DriveState118 "Drive State, Verify charge heat and fault"; -CM_ SG_ 280 TractionControl118 "Traction Control Mode"; -CM_ SG_ 280 BrakeState118 "Regen Brake"; -CM_ SG_ 280 DIgear118 "Gear"; -CM_ SG_ 280 BrakePedal118 "Brake Pedal"; -CM_ SG_ 280 PedalPosition118 "Pedal Position"; -CM_ SG_ 850 BtochargecompleteKWh352 "Charge Remaining kWh"; -CM_ SG_ 850 BremainingKWhNom352 "Batt Remaining kWh"; -CM_ SG_ 850 BfullKWhNom352 "Batt Full kWh"; -CM_ SG_ 850 BbufferKWh352 "Battery Buffer kWh"; +CM_ SG_ 280 DI_accelPedalPos "Pedal Position"; +CM_ SG_ 280 DI_brakePedalState "Brake Pedal"; +CM_ SG_ 280 DI_gear "Gear"; +CM_ SG_ 280 DI_regenLight "Regen Brake"; +CM_ SG_ 280 DI_tractionControlMode "Traction Control Mode"; +CM_ SG_ 850 BMS_energyBuffer "Battery Buffer kWh"; +CM_ SG_ 850 BMS_energyToChargeComplete "Charge Remaining kWh"; CM_ SG_ 850 BMS_fullChargeComplete "Charge Complete"; +CM_ SG_ 850 BMS_nominalEnergyRemaining "Batt Remaining kWh"; +CM_ SG_ 850 BMS_nominalFullPackEnergy "Batt Full kWh"; CM_ SG_ 594 BMS_hvacPowerBudget "BMS Max HVAC Power"; CM_ SG_ 594 BMS_maxDischargePower "BMS Max Discharge Power"; CM_ SG_ 594 BMS_maxRegenPower "BMS Max Regen Power"; @@ -3214,9 +3221,9 @@ CM_ SG_ 658 BattBeginningOfLifeEnergy292 "HV Battery Original Energy"; CM_ SG_ 658 SOCmax292 "BMS Max SOC"; CM_ SG_ 658 SOCave292 "BMS Ave SOC"; CM_ SG_ 658 SOCmin292 "BMS Min SOC"; -CM_ SG_ 599 UIspeedUnits257 "Speed Units, 0-mph 1-kph"; -CM_ SG_ 599 UIspeed_signed257 "Vehicle Speed, .05 -25 for mph"; -CM_ SG_ 599 UIspeed_abs257 "UI Speed"; +CM_ SG_ 599 DI_uiSpeed "UI Speed"; +CM_ SG_ 599 DI_uiSpeedUnits "Speed Units, 0-mph 1-kph"; +CM_ SG_ 599 DI_vehicleSpeed "Vehicle Speed, .05 -25 for mph"; CM_ SG_ 1029 VINB405 "VIN3, last 7 of VIN (ASCII)"; CM_ SG_ 1029 VINC405 "VIN2, part two of VIN (ASCII)"; CM_ SG_ 1029 VINA405 "VIN1, four zeros then first 3 characters of VIN"; @@ -3227,9 +3234,12 @@ CM_ SG_ 950 Odometer3B6 "Odometer"; CM_ SG_ 614 RearPowerLimit266 "Rear Power Limit, approx offset Orig scale 1"; CM_ SG_ 614 RearHeatPower266 "Rear Waste Heat Power"; CM_ SG_ 614 RearPower266 "Rear Motor Power"; -CM_ SG_ 264 RearTorqueActual108 "Rear Axle Torque"; -CM_ SG_ 264 RearTorqueRequest108 "Rear Axle Torque Request"; -CM_ SG_ 264 RearAxleRPM108 "Rear Axle Speed"; +CM_ SG_ 741 FrontPower2E5 "Front Motor Power"; +CM_ SG_ 741 FrontPowerLimit2E5 "Front Power Limit, approx offset Orig scale 1"; +CM_ SG_ 741 FrontHeatPower2E5 "Front Waste Heat Power"; +CM_ SG_ 264 DIR_axleSpeed "Rear Axle Speed"; +CM_ SG_ 264 DIR_torqueActual "Rear Axle Torque"; +CM_ SG_ 264 DIR_torqueCommand "Rear Axle Torque Request"; CM_ SG_ 306 ChargeHoursRemaining132 "Charge Time Remaining"; CM_ SG_ 306 BattVoltage132 "HV Battery Voltage"; CM_ SG_ 306 RawBattCurrent132 "HV Raw Current, old offset 1000"; @@ -3241,8 +3251,10 @@ CM_ SG_ 421 FrontMotorCurrent1A5 "Front Motor Current"; CM_ BO_ 1022 "Brake Temps Estimated"; CM_ SG_ 2047 GTW_chassisType "Model"; CM_ SG_ 2047 GTW_packEnergy "Battery Pack Size"; -CM_ SG_ 818 BattCellBrickVoltageMax332 "Max Batt Brick V"; -CM_ SG_ 818 BattCellBrickVoltageMin332 "Min Batt Brick V"; +CM_ SG_ 818 BattBrickTempMax332 "Max Batt Brick Temp"; +CM_ SG_ 818 BattBrickTempMin332 "Min Batt Brick Temp"; +CM_ SG_ 818 BattBrickVoltageMax332 "Max Batt Brick V"; +CM_ SG_ 818 BattBrickVoltageMin332 "Min Batt Brick V"; BA_DEF_ BO_ "GenMsgSendType" ENUM "Cyclic","SendType1","SendType2","SendType3","SendType4","SendType5","SendType6","SendType7","SendType8","SendType9"; BA_DEF_ BO_ "GenMsgDelayTime" INT 0 0; BA_DEF_ BO_ "GenMsgCycleTime" INT 0 0; @@ -3255,25 +3267,28 @@ BA_DEF_ BU_ "CANoeJitterMax" INT 0 0; BA_DEF_ BU_ "CANoeJitterMin" INT 0 0; BA_DEF_ BU_ "CANoeDrift" INT 0 0; BA_DEF_ BU_ "CANoeStartDelay" INT 0 0; -BA_DEF_ BO_ "GenMsgAutoGenSnd" ENUM "No","Yes"; -BA_DEF_ BO_ "GenMsgAutoGenDsp" ENUM "No","Yes"; -BA_DEF_ SG_ "GenSigAutoGenSnd" ENUM "No","Yes"; -BA_DEF_ SG_ "GenSigAutoGenDsp" ENUM "No","Yes"; -BA_DEF_ SG_ "GenSigEnvVarType" ENUM "int","float","undef"; +BA_DEF_ BO_ "GenMsgAutoGenSnd" ENUM "Cyclic","SendType1","SendType2","SendType3","SendType4","SendType5","SendType6","SendType7","SendType8","SendType9","No","Yes"; +BA_DEF_ BO_ "GenMsgAutoGenDsp" ENUM "Cyclic","SendType1","SendType2","SendType3","SendType4","SendType5","SendType6","SendType7","SendType8","SendType9","No","Yes","No","Yes"; +BA_DEF_ SG_ "GenSigAutoGenSnd" ENUM "Cyclic","SendType1","SendType2","SendType3","SendType4","SendType5","SendType6","SendType7","SendType8","SendType9","No","Yes","No","Yes","No","Yes"; +BA_DEF_ SG_ "GenSigAutoGenDsp" ENUM "Cyclic","SendType1","SendType2","SendType3","SendType4","SendType5","SendType6","SendType7","SendType8","SendType9","No","Yes","No","Yes","No","Yes","No","Yes"; +BA_DEF_ SG_ "GenSigEnvVarType" ENUM "Cyclic","SendType1","SendType2","SendType3","SendType4","SendType5","SendType6","SendType7","SendType8","SendType9","No","Yes","No","Yes","No","Yes","No","Yes","int","float","undef"; BA_DEF_ SG_ "GenSigEVName" STRING ; -BA_DEF_ BU_ "GenNodAutoGenSnd" ENUM "No","Yes"; -BA_DEF_ BU_ "GenNodAutoGenDsp" ENUM "No","Yes"; +BA_DEF_ BU_ "GenNodAutoGenSnd" ENUM "Cyclic","SendType1","SendType2","SendType3","SendType4","SendType5","SendType6","SendType7","SendType8","SendType9","No","Yes","No","Yes","No","Yes","No","Yes","int","float","undef","No","Yes"; +BA_DEF_ BU_ "GenNodAutoGenDsp" ENUM "Cyclic","SendType1","SendType2","SendType3","SendType4","SendType5","SendType6","SendType7","SendType8","SendType9","No","Yes","No","Yes","No","Yes","No","Yes","int","float","undef","No","Yes","No","Yes"; BA_DEF_ "GenEnvVarEndingDsp" STRING ; BA_DEF_ "GenEnvVarEndingSnd" STRING ; BA_DEF_ "GenEnvVarPrefix" STRING ; BA_DEF_ "Modified" STRING ; -BA_DEF_ SG_ "SystemSignalLongSymbol" STRING ; +BA_DEF_ BO_ "GenMsgBackgroundColor" STRING ; +BA_DEF_ BO_ "GenMsgForegroundColor" STRING ; +BA_DEF_ BO_ "matchingcriteria" INT 0 0; +BA_DEF_ BO_ "filterlabeling" INT 0 0; BA_DEF_ BO_ "SystemMessageLongSymbol" STRING ; -BA_DEF_DEF_ "GenMsgSendType" "Cyclic"; +BA_DEF_DEF_ "GenMsgSendType" ""; BA_DEF_DEF_ "GenMsgDelayTime" 0; BA_DEF_DEF_ "GenMsgCycleTime" 0; BA_DEF_DEF_ "GenMsgTimeoutTime" 0; -BA_DEF_DEF_ "ProtocolType" "0"; +BA_DEF_DEF_ "ProtocolType" ""; BA_DEF_DEF_ "BusType" ""; BA_DEF_DEF_ "NodeLayerModules" ""; BA_DEF_DEF_ "ECU" ""; @@ -3281,19 +3296,22 @@ BA_DEF_DEF_ "CANoeJitterMax" 0; BA_DEF_DEF_ "CANoeJitterMin" 0; BA_DEF_DEF_ "CANoeDrift" 0; BA_DEF_DEF_ "CANoeStartDelay" 0; -BA_DEF_DEF_ "GenMsgAutoGenSnd" "Yes"; -BA_DEF_DEF_ "GenMsgAutoGenDsp" "Yes"; +BA_DEF_DEF_ "GenMsgAutoGenSnd" ""; +BA_DEF_DEF_ "GenMsgAutoGenDsp" ""; BA_DEF_DEF_ "GenSigAutoGenSnd" ""; BA_DEF_DEF_ "GenSigAutoGenDsp" ""; -BA_DEF_DEF_ "GenSigEnvVarType" "undef"; +BA_DEF_DEF_ "GenSigEnvVarType" ""; BA_DEF_DEF_ "GenSigEVName" ""; -BA_DEF_DEF_ "GenNodAutoGenSnd" "Yes"; -BA_DEF_DEF_ "GenNodAutoGenDsp" "Yes"; -BA_DEF_DEF_ "GenEnvVarEndingDsp" "Dsp"; -BA_DEF_DEF_ "GenEnvVarEndingSnd" "Snd"; -BA_DEF_DEF_ "GenEnvVarPrefix" "Env"; -BA_DEF_DEF_ "Modified" "JW2020Apr06"; -BA_DEF_DEF_ "SystemSignalLongSymbol" ""; +BA_DEF_DEF_ "GenNodAutoGenSnd" ""; +BA_DEF_DEF_ "GenNodAutoGenDsp" ""; +BA_DEF_DEF_ "GenEnvVarEndingDsp" ""; +BA_DEF_DEF_ "GenEnvVarEndingSnd" ""; +BA_DEF_DEF_ "GenEnvVarPrefix" ""; +BA_DEF_DEF_ "Modified" "JW2021Aug29"; +BA_DEF_DEF_ "GenMsgBackgroundColor" ""; +BA_DEF_DEF_ "GenMsgForegroundColor" ""; +BA_DEF_DEF_ "matchingcriteria" 0; +BA_DEF_DEF_ "filterlabeling" 0; BA_DEF_DEF_ "SystemMessageLongSymbol" ""; BA_ "BusType" "CAN"; BA_ "GenMsgCycleTime" BO_ 530 100; @@ -3302,7 +3320,6 @@ BA_ "GenMsgCycleTime" BO_ 819 500; BA_ "GenMsgCycleTime" BO_ 577 100; BA_ "GenMsgCycleTime" BO_ 468 10; BA_ "GenMsgSendType" BO_ 468 0; -BA_ "GenMsgCycleTime" BO_ 741 1000; BA_ "GenMsgCycleTime" BO_ 962 50; BA_ "GenMsgCycleTime" BO_ 822 1000; BA_ "GenMsgCycleTime" BO_ 659 500; @@ -3337,6 +3354,7 @@ BA_ "GenMsgCycleTime" BO_ 340 10; BA_ "GenMsgSendType" BO_ 340 0; BA_ "GenMsgCycleTime" BO_ 950 1000; BA_ "GenMsgCycleTime" BO_ 614 10; +BA_ "GenMsgCycleTime" BO_ 741 1000; BA_ "GenMsgSendType" BO_ 264 0; BA_ "GenMsgCycleTime" BO_ 264 10; BA_ "GenMsgCycleTime" BO_ 306 10; @@ -3345,50 +3363,27 @@ BA_ "GenMsgSendType" BO_ 294 0; BA_ "GenMsgCycleTime" BO_ 294 100; BA_ "GenMsgCycleTime" BO_ 799 1000; BA_ "GenMsgCycleTime" BO_ 1022 1000; -BA_ "GenMsgSendType" BO_ 2047 0; BA_ "GenMsgCycleTime" BO_ 2047 100; -BA_ "SystemSignalLongSymbol" SG_ 291 UI_a037_AudioWatchdogXrunStormEr "UI_a037_AudioWatchdogXrunStormError"; -BA_ "SystemSignalLongSymbol" SG_ 291 UI_a038_AudioWatchdogA2bI2cLocku "UI_a038_AudioWatchdogA2bI2cLockupError"; -BA_ "SystemSignalLongSymbol" SG_ 291 UI_a048_AudioPremiumAmpCheckFail "UI_a048_AudioPremiumAmpCheckFailed"; -BA_ "SystemSignalLongSymbol" SG_ 291 UI_a056_ManualECallButtonDisconn "UI_a056_ManualECallButtonDisconnected"; -BA_ "SystemSignalLongSymbol" SG_ 611 VCRIGHT_hvacFilterLifeDetectActi "VCRIGHT_hvacFilterLifeDetectActive"; -BA_ "SystemSignalLongSymbol" SG_ 642 VCLEFT_hvacBlower_IO_CBC_TAIL_va "VCLEFT_hvacBlower_IO_CBC_TAIL_valid"; -BA_ "SystemSignalLongSymbol" SG_ 642 VCLEFT_hvacBlower_IO_CBC_numUart "VCLEFT_hvacBlower_IO_CBC_numUartErr"; -BA_ "SystemSignalLongSymbol" SG_ 899 VCRIGHT_estimatedVehicleSituatio "VCRIGHT_estimatedVehicleSituation"; -BA_ "SystemSignalLongSymbol" SG_ 963 VCRIGHT_liftgateShutfaceSwitchPr "VCRIGHT_liftgateShutfaceSwitchPressed"; -BA_ "SystemSignalLongSymbol" SG_ 946 BMS_hvChain_limitingStateTempera "BMS_hvChain_limitingStateTemperature"; -BA_ "SystemSignalLongSymbol" SG_ 946 BMS_vChangeWindowNumOutlierChang "BMS_vChangeWindowNumOutlierChanges"; -BA_ "SystemSignalLongSymbol" SG_ 800 BMS_a040_SW_Watch_Dog_HW_Trigger "BMS_a040_SW_Watch_Dog_HW_Triggered"; -BA_ "SystemSignalLongSymbol" SG_ 800 BMS_a041_SW_Destructive_Reset_So "BMS_a041_SW_Destructive_Reset_Source"; -BA_ "SystemSignalLongSymbol" SG_ 800 BMS_a057_SW_Bandolier_Model_Warn "BMS_a057_SW_Bandolier_Model_Warning"; -BA_ "SystemSignalLongSymbol" SG_ 800 BMS_a058_SW_Bandolier_Model_Rese "BMS_a058_SW_Bandolier_Model_Reset"; -BA_ "SystemSignalLongSymbol" SG_ 800 BMS_a092_SW_ChargePort_Mia_On_Hv "BMS_a092_SW_ChargePort_Mia_On_Hvs"; -BA_ "SystemSignalLongSymbol" SG_ 800 BMS_a098_SW_BMB_Data_Integrity_L "BMS_a098_SW_BMB_Data_Integrity_Loss"; -BA_ "SystemSignalLongSymbol" SG_ 800 BMS_a135_HW_BMB_Diagnostics_Fail "BMS_a135_HW_BMB_Diagnostics_Failure"; -BA_ "SystemSignalLongSymbol" SG_ 800 BMS_a178_SW_Uncontrolled_Regen_P "BMS_a178_SW_Uncontrolled_Regen_PwrB"; -BA_ "SystemSignalLongSymbol" SG_ 691 VCRIGHT_hvacCabOvrheatProtAllowe "VCRIGHT_hvacCabOvrheatProtAllowed"; -BA_ "SystemSignalLongSymbol" SG_ 691 VCRIGHT_ptcHeaterReqAirpathBlock "VCRIGHT_ptcHeaterReqAirpathBlocked"; -BA_ "SystemSignalLongSymbol" SG_ 737 VCFRONT_voltageFloorReachedCount "VCFRONT_voltageFloorReachedCounter"; -BA_ "SystemSignalLongSymbol" SG_ 897 VCFRONT_cabinHeatEnergyDuringDri "VCFRONT_cabinHeatEnergyDuringDrive"; -BA_ "SystemSignalLongSymbol" SG_ 918 FrontOilPumpOilTempEstConfident3 "FrontOilPumpOilTempEstConfident39"; -BA_ "SystemSignalLongSymbol" SG_ 917 RearOilPumpOilTempEstConfident39 "RearOilPumpOilTempEstConfident395"; -BA_ "GenSigEnvVarType" SG_ 472 TorqueFlags1D8 2; -BA_ "SystemSignalLongSymbol" SG_ 513 VCFRONT_loggingAndVitals10HzInde "VCFRONT_loggingAndVitals10HzIndex"; -BA_ "SystemSignalLongSymbol" SG_ 513 VCFRONT_pressureRefrigDischargeV "VCFRONT_pressureRefrigDischargeVitals"; -BA_ "SystemSignalLongSymbol" SG_ 513 VCFRONT_pressureRefrigSuctionVit "VCFRONT_pressureRefrigSuctionVitals"; +BA_ "GenSigEnvVarType" SG_ 472 TorqueFlags1D8 0; VAL_ 12 UI_autopilotTrial 3 "ACTIVE" 0 "NONE" 1 "START" 2 "STOP" ; VAL_ 12 UI_cellNetworkTechnology 9 "CELL_NETWORK_CDMA" 2 "CELL_NETWORK_EDGE" 1 "CELL_NETWORK_GPRS" 8 "CELL_NETWORK_GSM" 4 "CELL_NETWORK_HSDPA" 6 "CELL_NETWORK_HSPA" 5 "CELL_NETWORK_HSUPA" 7 "CELL_NETWORK_LTE" 0 "CELL_NETWORK_NONE" 15 "CELL_NETWORK_SNA" 3 "CELL_NETWORK_UMTS" 10 "CELL_NETWORK_WCDMA" ; VAL_ 12 UI_cellSignalBars 5 "FIVE" 4 "FOUR" 1 "ONE" 7 "SNA" 3 "THREE" 2 "TWO" 0 "ZERO" ; VAL_ 12 UI_factoryReset 3 "CUSTOMER" 1 "DEVELOPER" 2 "DIAGNOSTIC" 0 "NONE_SNA" ; -VAL_ 130 UI_energyAtDestination -32768 "SNA" -32767 "TRIP_TOO_LONG" ; -VAL_ 130 UI_hindsightEnergy -32768 "SNA" -32767 "TRIP_TOO_LONG" ; -VAL_ 130 UI_predictedEnergy -32768 "SNA" -32767 "TRIP_TOO_LONG" ; -VAL_ 257 RCM_pitchRate -16384 "SNA" ; +VAL_ 130 UI_energyAtDestination 32768 "SNA" 32767 "TRIP_TOO_LONG" ; +VAL_ 130 UI_hindsightEnergy 32768 "SNA" 32767 "TRIP_TOO_LONG" ; +VAL_ 130 UI_predictedEnergy 32768 "SNA" 32767 "TRIP_TOO_LONG" ; +VAL_ 257 RCM_pitchRate 16384 "SNA" ; VAL_ 257 RCM_pitchRateQF 3 "FAULTED" 0 "INIT" 2 "TEMP_INVALID" 1 "VALID" ; -VAL_ 257 RCM_rollRate -16384 "SNA" ; +VAL_ 257 RCM_rollRate 16384 "SNA" ; VAL_ 257 RCM_rollRateQF 3 "FAULTED" 0 "INIT" 2 "TEMP_INVALID" 1 "VALID" ; -VAL_ 257 RCM_yawRate -32768 "SNA" ; +VAL_ 257 RCM_yawRate 32768 "SNA" ; VAL_ 257 RCM_yawRateQF 0 "FAULTED" 1 "NOT_FAULTED" ; +VAL_ 273 RCM_lateralAccel 32768 "SNA" ; +VAL_ 273 RCM_lateralAccelQF 0 "FAULTED" 1 "NOT_FAULTED" ; +VAL_ 273 RCM_longitudinalAccel 32768 "SNA" ; +VAL_ 273 RCM_longitudinalAccelQF 0 "FAULTED" 1 "NOT_FAULTED" ; +VAL_ 273 RCM_verticalAccel 32768 "SNA" ; +VAL_ 273 RCM_verticalAccelQF 0 "FAULTED" 1 "NOT_FAULTED" ; VAL_ 258 VCLEFT_frontLatchStatus 5 "LATCH_AJAR" 2 "LATCH_CLOSED" 3 "LATCH_CLOSING" 7 "LATCH_DEFAULT" 8 "LATCH_FAULT" 1 "LATCH_OPENED" 4 "LATCH_OPENING" 0 "LATCH_SNA" 6 "LATCH_TIMEOUT" ; VAL_ 258 VCLEFT_mirrorFoldState 1 "MIRROR_FOLD_STATE_FOLDED" 3 "MIRROR_FOLD_STATE_FOLDING" 2 "MIRROR_FOLD_STATE_UNFOLDED" 4 "MIRROR_FOLD_STATE_UNFOLDING" 0 "MIRROR_FOLD_STATE_UNKNOWN" ; VAL_ 258 VCLEFT_mirrorHeatState 4 "HEATER_STATE_FAULT" 2 "HEATER_STATE_OFF" 3 "HEATER_STATE_OFF_UNAVAILABLE" 1 "HEATER_STATE_ON" 0 "HEATER_STATE_SNA" ; @@ -3401,6 +3396,23 @@ VAL_ 259 VCRIGHT_mirrorRecallState 0 "MIRROR_RECALL_STATE_INIT" 1 "MIRROR_RECALL VAL_ 259 VCRIGHT_mirrorState 3 "MIRROR_STATE_FOLD_UNFOLD" 0 "MIRROR_STATE_IDLE" 4 "MIRROR_STATE_RECALL" 1 "MIRROR_STATE_TILT_X" 2 "MIRROR_STATE_TILT_Y" ; VAL_ 259 VCRIGHT_rearLatchStatus 5 "LATCH_AJAR" 2 "LATCH_CLOSED" 3 "LATCH_CLOSING" 7 "LATCH_DEFAULT" 8 "LATCH_FAULT" 1 "LATCH_OPENED" 4 "LATCH_OPENING" 0 "LATCH_SNA" 6 "LATCH_TIMEOUT" ; VAL_ 259 VCRIGHT_trunkLatchStatus 5 "LATCH_AJAR" 2 "LATCH_CLOSED" 3 "LATCH_CLOSING" 7 "LATCH_DEFAULT" 8 "LATCH_FAULT" 1 "LATCH_OPENED" 4 "LATCH_OPENING" 0 "LATCH_SNA" 6 "LATCH_TIMEOUT" ; +VAL_ 275 GTW_bmpState 2 "BMP_STATE_ASLEEP" 3 "BMP_STATE_MIA" 0 "BMP_STATE_OFF" 1 "BMP_STATE_ON" 5 "BMP_STATE_POWER_CYCLE" 4 "BMP_STATE_RESET" 255 "DUMMY" ; +VAL_ 281 VCSEC_windowRequestPercent 127 "SNA" ; +VAL_ 281 VCSEC_windowRequestType 3 "WINDOW_REQUEST_GOTO_CLOSED" 2 "WINDOW_REQUEST_GOTO_CRACKED" 1 "WINDOW_REQUEST_GOTO_PERCENT" 0 "WINDOW_REQUEST_IDLE" ; +VAL_ 290 VCLEFT_frontDoorState 1 "DOOR_STATE_CLOSED" 4 "DOOR_STATE_OPEN_OR_AJAR" 3 "DOOR_STATE_RELEASING_LATCH" 0 "DOOR_STATE_UNKNOWN" 2 "DOOR_STATE_WAIT_FOR_SHORT_DROP" ; +VAL_ 290 VCLEFT_frontHandleDebounceStatus 3 "EXTERIOR_HANDLE_STATUS_ACTIVE" 4 "EXTERIOR_HANDLE_STATUS_DISCONNECTED" 5 "EXTERIOR_HANDLE_STATUS_FAULT" 1 "EXTERIOR_HANDLE_STATUS_INDETERMINATE" 2 "EXTERIOR_HANDLE_STATUS_NOT_ACTIVE" 0 "EXTERIOR_HANDLE_STATUS_SNA" ; +VAL_ 290 VCLEFT_frontHandleRawStatus 3 "EXTERIOR_HANDLE_STATUS_ACTIVE" 4 "EXTERIOR_HANDLE_STATUS_DISCONNECTED" 5 "EXTERIOR_HANDLE_STATUS_FAULT" 1 "EXTERIOR_HANDLE_STATUS_INDETERMINATE" 2 "EXTERIOR_HANDLE_STATUS_NOT_ACTIVE" 0 "EXTERIOR_HANDLE_STATUS_SNA" ; +VAL_ 290 VCLEFT_rearDoorState 1 "DOOR_STATE_CLOSED" 4 "DOOR_STATE_OPEN_OR_AJAR" 3 "DOOR_STATE_RELEASING_LATCH" 0 "DOOR_STATE_UNKNOWN" 2 "DOOR_STATE_WAIT_FOR_SHORT_DROP" ; +VAL_ 290 VCLEFT_rearHandleDebounceStatus 3 "EXTERIOR_HANDLE_STATUS_ACTIVE" 4 "EXTERIOR_HANDLE_STATUS_DISCONNECTED" 5 "EXTERIOR_HANDLE_STATUS_FAULT" 1 "EXTERIOR_HANDLE_STATUS_INDETERMINATE" 2 "EXTERIOR_HANDLE_STATUS_NOT_ACTIVE" 0 "EXTERIOR_HANDLE_STATUS_SNA" ; +VAL_ 290 VCLEFT_rearHandleRawStatus 3 "EXTERIOR_HANDLE_STATUS_ACTIVE" 4 "EXTERIOR_HANDLE_STATUS_DISCONNECTED" 5 "EXTERIOR_HANDLE_STATUS_FAULT" 1 "EXTERIOR_HANDLE_STATUS_INDETERMINATE" 2 "EXTERIOR_HANDLE_STATUS_NOT_ACTIVE" 0 "EXTERIOR_HANDLE_STATUS_SNA" ; +VAL_ 322 VCLEFT_liftgateStatusIndex 0 "LIFTGATE_STATUS_INDEX_0" 1 "LIFTGATE_STATUS_INDEX_1" 2 "LIFTGATE_STATUS_INDEX_INVALID" ; +VAL_ 322 VCLEFT_liftgateLatchRequest 1 "LATCH_REQUEST_CINCH" 3 "LATCH_REQUEST_FORCE_RELEASE" 0 "LATCH_REQUEST_NONE" 2 "LATCH_REQUEST_RELEASE" 4 "LATCH_REQUEST_RESET" ; +VAL_ 322 VCLEFT_liftgateMvmntNotAllowedCo 4 "PLG_MVMT_NOT_ALLOWED_EXTERIOR_PRESS_AT_MAX_OPEN" 5 "PLG_MVMT_NOT_ALLOWED_LOCKED" 1 "PLG_MVMT_NOT_ALLOWED_LOW_12V" 0 "PLG_MVMT_NOT_ALLOWED_NONE" 3 "PLG_MVMT_NOT_ALLOWED_UNCALIBRATED" 2 "PLG_MVMT_NOT_ALLOWED_VEHICLE_AT_SPEED" ; +VAL_ 322 VCLEFT_liftgatePhysicalChimeRequ 0 "LIFTGATE_CHIME_REQUEST_NONE" 4 "LIFTGATE_CHIME_REQUEST_ONE_LONG" 1 "LIFTGATE_CHIME_REQUEST_ONE_SHORT" 3 "LIFTGATE_CHIME_REQUEST_THREE_SHORT" 2 "LIFTGATE_CHIME_REQUEST_TWO_SHORT" ; +VAL_ 322 VCLEFT_liftgateRequestSource 5 "PLG_REQUEST_SOURCE_CLOSE_ALL" 2 "PLG_REQUEST_SOURCE_EXTERIOR" 4 "PLG_REQUEST_SOURCE_KEY_TRUNK_BUTTON" 6 "PLG_REQUEST_SOURCE_MCU_CLOSE" 1 "PLG_REQUEST_SOURCE_MCU_SWITCH" 0 "PLG_REQUEST_SOURCE_NONE" 3 "PLG_REQUEST_SOURCE_SHUTFACE" 7 "PLG_REQUEST_SOURCE_UDS" ; +VAL_ 322 VCLEFT_liftgateState 2 "PLG_STATE_BACKOFF" 5 "PLG_STATE_CLOSED" 4 "PLG_STATE_CLOSING" 11 "PLG_STATE_END_OF_TRAVEL" 0 "PLG_STATE_INIT" 7 "PLG_STATE_LATCH_CLOSING" 12 "PLG_STATE_LATCH_ENTRY" 10 "PLG_STATE_LATCH_EXIT" 6 "PLG_STATE_LATCH_OPENING" 8 "PLG_STATE_NOT_INSTALLED" 1 "PLG_STATE_OFF" 3 "PLG_STATE_OPENING" 9 "PLG_STATE_UNKNOWN" ; +VAL_ 322 VCLEFT_liftgateStoppingCondition 11 "PLG_STOPPING_CONDITION_COUNT" 10 "PLG_STOPPING_CONDITION_LATCH_FAULT" 3 "PLG_STOPPING_CONDITION_LOW_12V" 0 "PLG_STOPPING_CONDITION_NONE" 6 "PLG_STOPPING_CONDITION_OBSTACLE_CURRENT" 2 "PLG_STOPPING_CONDITION_OBSTACLE_STALL" 7 "PLG_STOPPING_CONDITION_OBSTACLE_TRAJ_POS" 8 "PLG_STOPPING_CONDITION_OBSTACLE_TRAJ_VEL" 1 "PLG_STOPPING_CONDITION_PINCH" 4 "PLG_STOPPING_CONDITION_STATE_TIMEOUT" 9 "PLG_STOPPING_CONDITION_UNCALIBRATED" 5 "PLG_STOPPING_CONDITION_VEHICLE_AT_SPEED" ; +VAL_ 322 VCLEFT_liftgateUIChimeRequest 0 "LIFTGATE_CHIME_REQUEST_NONE" 4 "LIFTGATE_CHIME_REQUEST_ONE_LONG" 1 "LIFTGATE_CHIME_REQUEST_ONE_SHORT" 3 "LIFTGATE_CHIME_REQUEST_THREE_SHORT" 2 "LIFTGATE_CHIME_REQUEST_TWO_SHORT" ; VAL_ 325 ESP_absBrakeEvent2 2 "ABS_EVENT_ACTIVE_FRONT" 1 "ABS_EVENT_ACTIVE_FRONT_REAR" 3 "ABS_EVENT_ACTIVE_REAR" 0 "ABS_EVENT_NOT_ACTIVE" ; VAL_ 325 ESP_absFaultLamp 0 "ABS_FAULT_LAMP_OFF" 1 "ABS_FAULT_LAMP_ON" ; VAL_ 325 ESP_brakeApply 1 "BLS_ACTIVE" 0 "BLS_INACTIVE" ; @@ -3443,18 +3455,59 @@ VAL_ 537 VCSEC_TPMSBatVoltage0 255 "SNA" ; VAL_ 537 VCSEC_TPMSBatVoltage1 255 "SNA" ; VAL_ 537 VCSEC_TPMSBatVoltage2 255 "SNA" ; VAL_ 537 VCSEC_TPMSBatVoltage3 255 "SNA" ; +VAL_ 537 VCSEC_TPMSLocation0 0 "LOCATION_FL" 1 "LOCATION_FR" 2 "LOCATION_RL" 3 "LOCATION_RR" 4 "LOCATION_UNKNOWN" ; +VAL_ 537 VCSEC_TPMSLocation1 0 "LOCATION_FL" 1 "LOCATION_FR" 2 "LOCATION_RL" 3 "LOCATION_RR" 4 "LOCATION_UNKNOWN" ; +VAL_ 537 VCSEC_TPMSLocation2 0 "LOCATION_FL" 1 "LOCATION_FR" 2 "LOCATION_RL" 3 "LOCATION_RR" 4 "LOCATION_UNKNOWN" ; +VAL_ 537 VCSEC_TPMSLocation3 0 "LOCATION_FL" 1 "LOCATION_FR" 2 "LOCATION_RL" 3 "LOCATION_RR" 4 "LOCATION_UNKNOWN" ; VAL_ 537 VCSEC_TPMSPressure0 255 "SNA" ; VAL_ 537 VCSEC_TPMSPressure1 255 "SNA" ; VAL_ 537 VCSEC_TPMSPressure2 255 "SNA" ; VAL_ 537 VCSEC_TPMSPressure3 255 "SNA" ; -VAL_ 537 VCSEC_TPMSSensorState0 3 "SENSOR_CONNECTED" 4 "SENSOR_DISCONNECTING" 0 "SENSOR_NOT_PAIRED" 1 "SENSOR_WAIT_FOR_ADV" 2 "SENSOR_WAIT_FOR_CONN" ; -VAL_ 537 VCSEC_TPMSSensorState1 3 "SENSOR_CONNECTED" 4 "SENSOR_DISCONNECTING" 0 "SENSOR_NOT_PAIRED" 1 "SENSOR_WAIT_FOR_ADV" 2 "SENSOR_WAIT_FOR_CONN" ; -VAL_ 537 VCSEC_TPMSSensorState2 3 "SENSOR_CONNECTED" 4 "SENSOR_DISCONNECTING" 0 "SENSOR_NOT_PAIRED" 1 "SENSOR_WAIT_FOR_ADV" 2 "SENSOR_WAIT_FOR_CONN" ; -VAL_ 537 VCSEC_TPMSSensorState3 3 "SENSOR_CONNECTED" 4 "SENSOR_DISCONNECTING" 0 "SENSOR_NOT_PAIRED" 1 "SENSOR_WAIT_FOR_ADV" 2 "SENSOR_WAIT_FOR_CONN" ; VAL_ 537 VCSEC_TPMSTemperature0 255 "SNA" ; VAL_ 537 VCSEC_TPMSTemperature1 255 "SNA" ; VAL_ 537 VCSEC_TPMSTemperature2 255 "SNA" ; VAL_ 537 VCSEC_TPMSTemperature3 255 "SNA" ; +VAL_ 516 PCS_chargeShutdownRequest 2 "EMERGENCY_SHUTDOWN_REQUESTED" 1 "GRACEFUL_SHUTDOWN_REQUESTED" 0 "NO_SHUTDOWN_REQUESTED" ; +VAL_ 516 PCS_chgMainState 9 "PCS_CHG_STATE_CLEAR_FAULTS" 6 "PCS_CHG_STATE_ENABLE" 8 "PCS_CHG_STATE_FAULTED" 1 "PCS_CHG_STATE_IDLE" 0 "PCS_CHG_STATE_INIT" 4 "PCS_CHG_STATE_QUALIFY_LINE_CONFIG" 7 "PCS_CHG_STATE_SHUTDOWN" 2 "PCS_CHG_STATE_STARTUP" 5 "PCS_CHG_STATE_SYSTEM_CONFIG" 3 "PCS_CHG_STATE_WAIT_FOR_LINE_VOLTAGE" ; +VAL_ 516 PCS_gridConfig 1 "GRID_CONFIG_SINGLE_PHASE" 0 "GRID_CONFIG_SNA" 2 "GRID_CONFIG_THREE_PHASE" 3 "GRID_CONFIG_THREE_PHASE_DELTA" ; +VAL_ 516 PCS_hvChargeStatus 1 "PCS_CHARGE_BLOCKED" 2 "PCS_CHARGE_ENABLED" 3 "PCS_CHARGE_FAULTED" 0 "PCS_CHARGE_STANDBY" ; +VAL_ 516 PCS_hwVariantType 1 "PCS_32A_SINGLE_PHASE_VARIANT" 0 "PCS_48A_SINGLE_PHASE_VARIANT" 3 "PCS_HW_VARIANT_TYPE_SNA" 2 "PCS_THREE_PHASES_VARIANT" ; +VAL_ 554 HVP_dcLinkVoltageFiltered 550 "SNA" ; +VAL_ 554 HVP_pcsControlRequest 3 "DISCHARGE" 2 "PRECHARGE" 0 "SHUTDOWN" 1 "SUPPORT" ; +VAL_ 562 BMS_fcContactorRequest 1 "SET_REQUEST_CLOSE" 4 "SET_REQUEST_CLOSE_NEGATIVE_ONLY" 5 "SET_REQUEST_CLOSE_POSITIVE_ONLY" 2 "SET_REQUEST_OPEN" 3 "SET_REQUEST_OPEN_IMMEDIATELY" 0 "SET_REQUEST_SNA" ; +VAL_ 562 BMS_fcLinkOkToEnergizeRequest 1 "FC_LINK_ENERGY_AC" 2 "FC_LINK_ENERGY_DC" 0 "FC_LINK_ENERGY_NONE" ; +VAL_ 562 BMS_internalHvilSenseV 65535 "SNA" ; +VAL_ 562 BMS_packContactorRequest 1 "SET_REQUEST_CLOSE" 4 "SET_REQUEST_CLOSE_NEGATIVE_ONLY" 5 "SET_REQUEST_CLOSE_POSITIVE_ONLY" 2 "SET_REQUEST_OPEN" 3 "SET_REQUEST_OPEN_IMMEDIATELY" 0 "SET_REQUEST_SNA" ; +VAL_ 609 VCFRONT_batterySMState 0 "INIT" 1 "CHARGE" 2 "DISCHARGE" 3 "STANDBY" 4 "RESISTANCE_ESTIMATION" 5 "OTA_STANDBY" 6 "DISCONNECTED_BATTERY_TEST" 7 "SHORTED_CELL_TEST" 8 "FAULT" 9 "RECOVERY" ; +VAL_ 609 VCFRONT_voltageProfile 0 "CHARGE" 1 "FLOAT" 2 "REDUCED_FLOAT" 3 "ALWAYS_CLOSED_CONTACTORS" ; +VAL_ 627 UI_displayBrightnessLevel 255 "SNA" ; +VAL_ 627 UI_domeLightSwitch 2 "DOME_LIGHT_SWITCH_AUTO" 0 "DOME_LIGHT_SWITCH_OFF" 1 "DOME_LIGHT_SWITCH_ON" ; +VAL_ 627 UI_driveStateRequest 0 "DRIVE_STATE_REQ_IDLE" 1 "DRIVE_STATE_REQ_START" ; +VAL_ 627 UI_frontLeftSeatHeatReq 1 "HEATER_REQUEST_LEVEL1" 2 "HEATER_REQUEST_LEVEL2" 3 "HEATER_REQUEST_LEVEL3" 0 "HEATER_REQUEST_OFF" ; +VAL_ 627 UI_frontRightSeatHeatReq 1 "HEATER_REQUEST_LEVEL1" 2 "HEATER_REQUEST_LEVEL2" 3 "HEATER_REQUEST_LEVEL3" 0 "HEATER_REQUEST_OFF" ; +VAL_ 627 UI_lockRequest 0 "UI_LOCK_REQUEST_IDLE" 1 "UI_LOCK_REQUEST_LOCK" 4 "UI_LOCK_REQUEST_REMOTE_LOCK" 3 "UI_LOCK_REQUEST_REMOTE_UNLOCK" 7 "UI_LOCK_REQUEST_SNA" 2 "UI_LOCK_REQUEST_UNLOCK" ; +VAL_ 627 UI_mirrorFoldRequest 0 "MIRROR_FOLD_REQUEST_IDLE" 2 "MIRROR_FOLD_REQUEST_PRESENT" 1 "MIRROR_FOLD_REQUEST_RETRACT" 3 "MIRROR_FOLD_REQUEST_SNA" ; +VAL_ 627 UI_rearCenterSeatHeatReq 1 "HEATER_REQUEST_LEVEL1" 2 "HEATER_REQUEST_LEVEL2" 3 "HEATER_REQUEST_LEVEL3" 0 "HEATER_REQUEST_OFF" ; +VAL_ 627 UI_rearLeftSeatHeatReq 1 "HEATER_REQUEST_LEVEL1" 2 "HEATER_REQUEST_LEVEL2" 3 "HEATER_REQUEST_LEVEL3" 0 "HEATER_REQUEST_OFF" ; +VAL_ 627 UI_rearRightSeatHeatReq 1 "HEATER_REQUEST_LEVEL1" 2 "HEATER_REQUEST_LEVEL2" 3 "HEATER_REQUEST_LEVEL3" 0 "HEATER_REQUEST_OFF" ; +VAL_ 627 UI_remoteClosureRequest 2 "UI_REMOTE_CLOSURE_REQUEST_FRONT_TRUNK_MOVE" 0 "UI_REMOTE_CLOSURE_REQUEST_IDLE" 1 "UI_REMOTE_CLOSURE_REQUEST_REAR_TRUNK_MOVE" 3 "UI_REMOTE_CLOSURE_REQUEST_SNA" ; +VAL_ 627 UI_remoteStartRequest 0 "UI_REMOTE_START_REQUEST_IDLE" 4 "UI_REMOTE_START_REQUEST_SNA" 1 "UI_REMOTE_START_REQUEST_START" ; +VAL_ 627 UI_steeringBacklightEnabled 0 "STEERING_BACKLIGHT_DISABLED" 1 "STEERING_BACKLIGHT_ENABLED" ; +VAL_ 627 UI_steeringButtonMode 4 "STEERING_BUTTON_MODE_HEADLIGHT_LEFT" 5 "STEERING_BUTTON_MODE_HEADLIGHT_RIGHT" 2 "STEERING_BUTTON_MODE_MIRROR_LEFT" 3 "STEERING_BUTTON_MODE_MIRROR_RIGHT" 0 "STEERING_BUTTON_MODE_OFF" 1 "STEERING_BUTTON_MODE_STEERING_COLUMN_ADJ" ; +VAL_ 627 UI_wiperMode 2 "WIPER_MODE_NORMAL" 3 "WIPER_MODE_PARK" 1 "WIPER_MODE_SERVICE" 0 "WIPER_MODE_SNA" ; +VAL_ 627 UI_wiperRequest 2 "WIPER_REQUEST_AUTO" 6 "WIPER_REQUEST_FAST_CONTINUOUS" 4 "WIPER_REQUEST_FAST_INTERMITTENT" 1 "WIPER_REQUEST_OFF" 5 "WIPER_REQUEST_SLOW_CONTINUOUS" 3 "WIPER_REQUEST_SLOW_INTERMITTENT" 0 "WIPER_REQUEST_SNA" ; +VAL_ 1066 VCSEC_TPMSConnectionTypeCurrent0 0 "CONNECTIONTYPE_FAST" 1 "CONNECTIONTYPE_SLOW" 2 "CONNECTIONTYPE_UNKNOWN" ; +VAL_ 1066 VCSEC_TPMSConnectionTypeCurrent1 0 "CONNECTIONTYPE_FAST" 1 "CONNECTIONTYPE_SLOW" 2 "CONNECTIONTYPE_UNKNOWN" ; +VAL_ 1066 VCSEC_TPMSConnectionTypeCurrent2 0 "CONNECTIONTYPE_FAST" 1 "CONNECTIONTYPE_SLOW" 2 "CONNECTIONTYPE_UNKNOWN" ; +VAL_ 1066 VCSEC_TPMSConnectionTypeCurrent3 0 "CONNECTIONTYPE_FAST" 1 "CONNECTIONTYPE_SLOW" 2 "CONNECTIONTYPE_UNKNOWN" ; +VAL_ 1066 VCSEC_TPMSConnectionTypeDesired0 0 "CONNECTIONTYPE_FAST" 1 "CONNECTIONTYPE_SLOW" 2 "CONNECTIONTYPE_UNKNOWN" ; +VAL_ 1066 VCSEC_TPMSConnectionTypeDesired1 0 "CONNECTIONTYPE_FAST" 1 "CONNECTIONTYPE_SLOW" 2 "CONNECTIONTYPE_UNKNOWN" ; +VAL_ 1066 VCSEC_TPMSConnectionTypeDesired2 0 "CONNECTIONTYPE_FAST" 1 "CONNECTIONTYPE_SLOW" 2 "CONNECTIONTYPE_UNKNOWN" ; +VAL_ 1066 VCSEC_TPMSConnectionTypeDesired3 0 "CONNECTIONTYPE_FAST" 1 "CONNECTIONTYPE_SLOW" 2 "CONNECTIONTYPE_UNKNOWN" ; +VAL_ 1066 VCSEC_TPMSSensorState0 3 "SENSOR_CONNECTED" 4 "SENSOR_DISCONNECTING" 0 "SENSOR_NOT_PAIRED" 1 "SENSOR_WAIT_FOR_ADV" 2 "SENSOR_WAIT_FOR_CONN" ; +VAL_ 1066 VCSEC_TPMSSensorState1 3 "SENSOR_CONNECTED" 4 "SENSOR_DISCONNECTING" 0 "SENSOR_NOT_PAIRED" 1 "SENSOR_WAIT_FOR_ADV" 2 "SENSOR_WAIT_FOR_CONN" ; +VAL_ 1066 VCSEC_TPMSSensorState2 3 "SENSOR_CONNECTED" 4 "SENSOR_DISCONNECTING" 0 "SENSOR_NOT_PAIRED" 1 "SENSOR_WAIT_FOR_ADV" 2 "SENSOR_WAIT_FOR_CONN" ; +VAL_ 1066 VCSEC_TPMSSensorState3 3 "SENSOR_CONNECTED" 4 "SENSOR_DISCONNECTING" 0 "SENSOR_NOT_PAIRED" 1 "SENSOR_WAIT_FOR_ADV" 2 "SENSOR_WAIT_FOR_CONN" ; VAL_ 558 PARK_sdiSensor10RawDistData 0 "BLOCKED" 1 "NEAR_DETECTION" 500 "NO_OBJECT_DETECTED" 511 "SNA" ; VAL_ 558 PARK_sdiSensor11RawDistData 0 "BLOCKED" 1 "NEAR_DETECTION" 500 "NO_OBJECT_DETECTED" 511 "SNA" ; VAL_ 558 PARK_sdiSensor12RawDistData 0 "BLOCKED" 1 "NEAR_DETECTION" 500 "NO_OBJECT_DETECTED" 511 "SNA" ; @@ -3472,19 +3525,6 @@ VAL_ 569 DAS_leftFork 1 "LEFT_FORK_AVAILABLE" 0 "LEFT_FORK_NONE" 2 "LEFT_FORK_SE VAL_ 569 DAS_leftLineUsage 1 "AVAILABLE" 3 "BLACKLISTED" 2 "FUSED" 0 "REJECTED_UNAVAILABLE" ; VAL_ 569 DAS_rightFork 1 "RIGHT_FORK_AVAILABLE" 0 "RIGHT_FORK_NONE" 2 "RIGHT_FORK_SELECTED" 3 "RIGHT_FORK_UNAVAILABLE" ; VAL_ 569 DAS_rightLineUsage 1 "AVAILABLE" 3 "BLACKLISTED" 2 "FUSED" 0 "REJECTED_UNAVAILABLE" ; -VAL_ 583 DAS_alcInternalState 2 "ALC_ABORTING" 8 "ALC_ACTIVE_ACC_LEFT" 9 "ALC_ACTIVE_ACC_RIGHT" 6 "ALC_ACTIVE_LEFT" 7 "ALC_ACTIVE_RIGHT" 3 "ALC_BEHAVIOR_CHECK" 0 "ALC_DISABLED" 1 "ALC_IDLE" 4 "ALC_PRE_ACTIVE_LEFT" 5 "ALC_PRE_ACTIVE_RIGHT" 12 "ALC_RETRY" 10 "ALC_SOFT_ABORTING_LEFT" 11 "ALC_SOFT_ABORTING_RIGHT" ; -VAL_ 583 DAS_autopilotAbortReason 21 "ABORT_ACC_CANCEL_GENERIC" 22 "ABORT_ACC_CANCEL_SILENT" 23 "ABORT_ACC_FAULT" 33 "ABORT_AEB" 18 "ABORT_CAMERA_CALIBRATION" 17 "ABORT_CAMERA_FAILSAFES" 32 "ABORT_CONTROLLER_BAD_REF_UPDATE" 27 "ABORT_CONTROLLER_NOT_ALLOWED" 25 "ABORT_CONTROLLER_REFERENCE" 34 "ABORT_CONTROLLER_REF_TOO_SHORT" 26 "ABORT_CONTROLLER_SOLVER" 31 "ABORT_CONTROLLER_STALE_LOCALIZATION" 30 "ABORT_CONTROLLER_STALE_REFERENCE" 10 "ABORT_CRUISE_FAULT" 11 "ABORT_CRUISE_NOT_ACTIVE" 2 "ABORT_DI_MIA" 16 "ABORT_EPAS_EAC_ERROR" 15 "ABORT_EPAS_EAC_NOT_ACTIVE" 4 "ABORT_EPAS_MIA" 39 "ABORT_EPAS_STEERING_ANGLE_INVALID" 3 "ABORT_ESP_MIA" 36 "ABORT_GORE_INCURSION" 5 "ABORT_GTW_MIA" 46 "ABORT_INTEGRATOR_HEALTH_CRITICAL" 41 "ABORT_INVALID_DI_PEDAL_POS" 42 "ABORT_INVALID_VEHICLE_SPEED" 29 "ABORT_MAP_HEALTH" 35 "ABORT_MISSION_PLANNER_NO_VISION_LANES_FOUND" 0 "ABORT_NONE" 43 "ABORT_PERCEPTION_HEALTH_VISION" 19 "ABORT_RADAR_BLIND" 20 "ABORT_RADAR_FAULT" 7 "ABORT_RADAR_MIA" 37 "ABORT_REACHED_END_OF_NAV_STOP" 63 "ABORT_REASON_MAX" 24 "ABORT_ROAD_ESTIMATOR_HEALTH" 6 "ABORT_SCCM_MIA" 44 "ABORT_SEATBELT_UNBUCKLED" 38 "ABORT_STEERING_SATURATED_LANE_DEPARTURE" 28 "ABORT_THERMAL_ISSUE" 13 "ABORT_TRAILER_MODE_ACTIVE" 12 "ABORT_USER_DISABLED" 45 "ABORT_USER_OVERRIDE_STRIKEOUT" 8 "ABORT_VCFRONT_MIA" 9 "ABORT_VCRIGHT_MIA" 14 "ABORT_VEHICLE_SPEED_ABOVE_MAX" 40 "ABORT_W048_FEATURES_DISABLED" 1 "ABORT_WATCHDOG_HEALTH" ; -VAL_ 583 DAS_behaviorReport 30 "BEHAVIOR_ACTIVE_SAFETY_SLOWDOWN" 2 "BEHAVIOR_CURVE_SPEED_ADAPTATION" 35 "BEHAVIOR_CUTIN_VEHICLE" 21 "BEHAVIOR_CUTIN_VEHICLE_LEFT" 22 "BEHAVIOR_CUTIN_VEHICLE_RIGHT" 14 "BEHAVIOR_DRIVABLE_SPACE_VIOLATION" 32 "BEHAVIOR_END_OF_NAV_ROUTE" 5 "BEHAVIOR_FLEET_SPEEDS" 8 "BEHAVIOR_IN_LANE_VEHICLE" 4 "BEHAVIOR_KEEP_CALM" 33 "BEHAVIOR_LANE_SPEED_DIFF" 13 "BEHAVIOR_MAP_LANE_GEOMETRY" 19 "BEHAVIOR_MERGE_VEHICLE_LEFT" 20 "BEHAVIOR_MERGE_VEHICLE_RIGHT" 29 "BEHAVIOR_MP_AP_INACTIVE" 23 "BEHAVIOR_MP_AP_RESTRICTION" 26 "BEHAVIOR_MP_AP_STATE_MACHINE" 27 "BEHAVIOR_MP_DI_CRUISE" 25 "BEHAVIOR_MP_DRIVER_MONITOR" 24 "BEHAVIOR_MP_NOT_BUCKLED" 28 "BEHAVIOR_MP_ULC" 17 "BEHAVIOR_NAV_FLEET_SPEEDS" 18 "BEHAVIOR_NAV_PATH_CSA" 3 "BEHAVIOR_RADAR_ONLY_BRAKING" 38 "BEHAVIOR_RISK_MANAGER" 15 "BEHAVIOR_SLOWING_FOR_TARGET_LANE" 34 "BEHAVIOR_STATIC_OBJECT" 36 "BEHAVIOR_STATIC_OBJECT_MERGE_LEFT" 37 "BEHAVIOR_STATIC_OBJECT_MERGE_RIGHT" 31 "BEHAVIOR_STEERING_SATURATED" 9 "BEHAVIOR_TARGET_LANE_VEHICLE" 11 "BEHAVIOR_TRAFFIC_CONTROL" 6 "BEHAVIOR_TRAFFIC_CONTROL_STOPPED_STATE" 7 "BEHAVIOR_UNDERTAKE_ASSIST_KEEP_CALM" 10 "BEHAVIOR_UNDERTAKE_VEHICLE" 1 "BEHAVIOR_VIEW_RANGE" 12 "BEHAVIOR_VISION_LANE_GEOMETRY" 16 "BEHAVIOR_VISION_SPEEDS" ; -VAL_ 583 DAS_controllerHealth 2 "CONTROLLER_CRITICAL" 1 "CONTROLLER_DEGRADED" 0 "CONTROLLER_HEALTHY" 3 "CONTROLLER_SOLVER_FAILURE" ; -VAL_ 583 DAS_controllerRef 4 "CONTROLLER_REFERENCE_BAD_REF_UPDATE" 0 "CONTROLLER_REFERENCE_HEALTHY" 6 "CONTROLLER_REFERENCE_INDETERMINATE" 5 "CONTROLLER_REFERENCE_REF_TOO_SHORT" 3 "CONTROLLER_REFERENCE_STALE_LOCALIZATION" 2 "CONTROLLER_REFERENCE_STALE_REFERENCE" 1 "CONTROLLER_REFERENCE_UNHEALTHY" ; -VAL_ 583 DAS_forkState 18 "FORK_ABORT_BLINKER_CHANGE" 17 "FORK_ABORT_CONTROL_INACTIVE" 21 "FORK_ABORT_DISALLOW" 19 "FORK_ABORT_NOT_LEFT_LANE" 20 "FORK_ABORT_NOT_RIGHT_LANE" 22 "FORK_ABORT_OTHER" 12 "FORK_ACTIVE_LEFT_NAV" 13 "FORK_ACTIVE_LEFT_USER" 14 "FORK_ACTIVE_RIGHT_NAV" 15 "FORK_ACTIVE_RIGHT_USER" 16 "FORK_FORK_COMPLETE" 8 "FORK_IDLE_BOTH_FORKS_AVAILABLE" 9 "FORK_IDLE_LEFT_FORK_AVAILABLE" 11 "FORK_IDLE_NO_FORKS_AVAILABLE" 10 "FORK_IDLE_RIGHT_FORK_AVAILABLE" 0 "FORK_INVALID" 25 "FORK_PRE_ACTIVE_LEFT_NAV" 26 "FORK_PRE_ACTIVE_RIGHT_NAV" 2 "FORK_UNAVAILABLE_AP_INACTIVE" 3 "FORK_UNAVAILABLE_CONSTRUCTION" 4 "FORK_UNAVAILABLE_CONTROLLED_ACCESS_TOO_FAR" 1 "FORK_UNAVAILABLE_DISABLED" 5 "FORK_UNAVAILABLE_DON_INACTIVE" 27 "FORK_UNAVAILABLE_INTERSECTION_ACTIVE" 7 "FORK_UNAVAILABLE_OTHER" 23 "FORK_UNAVAILABLE_TIGHT_TURN_RADIUS" 6 "FORK_UNAVAILABLE_TOLL_BOOTH" 24 "FORK_UNAVAILABLE_WEATHER" ; -VAL_ 583 DAS_laneChangeState 19 "LANE_CHANGE_ABORTING_ACC_AUTOSTEER_ACTIVATED" 26 "LANE_CHANGE_ABORTING_ALC_REQUEST_BEFORE_ULC_CONFIRM" 23 "LANE_CHANGE_ABORTING_BEHAVIOR_CHANGED" 22 "LANE_CHANGE_ABORTING_BELOW_MIN_SPEED" 14 "LANE_CHANGE_ABORTING_BLIND_SPOT_OCCUPIED" 12 "LANE_CHANGE_ABORTING_BLINKER" 32 "LANE_CHANGE_ABORTING_CONSTRUCTION_DETECTED" 17 "LANE_CHANGE_ABORTING_FORK_AVAILABLE" 31 "LANE_CHANGE_ABORTING_GORE_POINT" 24 "LANE_CHANGE_ABORTING_HIGH_ALC_PROGRESS_ERROR" 11 "LANE_CHANGE_ABORTING_INACTIVE" 21 "LANE_CHANGE_ABORTING_INVALID_BEHAVIOR" 15 "LANE_CHANGE_ABORTING_INVALID_MODE" 16 "LANE_CHANGE_ABORTING_LINE_TYPE" 18 "LANE_CHANGE_ABORTING_LOST_VISION_POSE" 37 "LANE_CHANGE_ABORTING_NO_HANDS_ON" 40 "LANE_CHANGE_ABORTING_SNOOZED" 39 "LANE_CHANGE_ABORTING_SOURCE_AND_TARGET_LANES_MERGED" 34 "LANE_CHANGE_ABORTING_TIGHT_TURN_RADIUS" 13 "LANE_CHANGE_ABORTING_TIMEOUT" 33 "LANE_CHANGE_ABORTING_TOLL_BOOTH_DETECTED" 20 "LANE_CHANGE_ABORTING_ULC_BLINKER_TIMEOUT" 25 "LANE_CHANGE_ABORTING_ULC_CONFIRMATION_TIMEOUT" 35 "LANE_CHANGE_ABORTING_WEATHER" 10 "LANE_CHANGE_AVAILABLE_BOTH" 8 "LANE_CHANGE_AVAILABLE_LEFT_ONLY" 9 "LANE_CHANGE_AVAILABLE_RIGHT_ONLY" 29 "LANE_CHANGE_BLOCKED_LEFT" 30 "LANE_CHANGE_BLOCKED_RIGHT" 27 "LANE_CHANGE_IN_PROGRESS_LEFT" 28 "LANE_CHANGE_IN_PROGRESS_RIGHT" 42 "LANE_CHANGE_UNAVAILABLE_AUTOPILOT_ABORTING" 36 "LANE_CHANGE_UNAVAILABLE_BLINDSPOT_RESTRICTED" 41 "LANE_CHANGE_UNAVAILABLE_BLINKER_LATCHED" 0 "LANE_CHANGE_UNAVAILABLE_DISABLED" 5 "LANE_CHANGE_UNAVAILABLE_FORK_MODE" 4 "LANE_CHANGE_UNAVAILABLE_INACTIVE" 7 "LANE_CHANGE_UNAVAILABLE_INVALID_MODE" 3 "LANE_CHANGE_UNAVAILABLE_NO_LANES" 38 "LANE_CHANGE_UNAVAILABLE_NO_REAR_OBJECT" 1 "LANE_CHANGE_UNAVAILABLE_ROAD_NOT_APPROPRIATE" 2 "LANE_CHANGE_UNAVAILABLE_SPEED" 6 "LANE_CHANGE_UNAVAILABLE_ULTRASONICS_NOT_READY" 63 "LANE_CHANGE_UNKNOWN" ; -VAL_ 583 DAS_lastWatchdogCode 68 "ACTIVE_SAFETY_FAILED" 51 "AP_STATE_MACHINE_FAILED" 50 "ARBITER_FAILED" 57 "ATLAS_FAILED" 79 "BEV_GRAPH_FAILED" 77 "BRIDGE_FAILED" 67 "CAMERA_FAILED" 45 "CAN_RX_FAILED" 46 "CAN_TX_FAILED" 78 "CITY_STREETS_BEHAVIOR_FAILED" 74 "CLIP_LOGGER_FAILED" 52 "CONTROLLER_FAILED" 75 "DRIVABLE_SPACE_TRACKER_FAILED" 65 "DRIVER_MONITOR_FAILED" 70 "DYNAMICS_FAILED" 71 "FIELD_CALIBRATION_FAILED" 49 "GPS_FAILED" 61 "IMU_FAILED" 48 "INERTIATOR_FAILED" 73 "KMSG_MONITOR_FAILED" 63 "LANE_CHANGE_BEHAVIOR_FAILED" 43 "LEGACY_FAILED" 53 "LOCALIZER_FAILED" 66 "MAP_MANAGER_FAILED" 54 "MISSION_PLANNER_FAILED" 0 "NO_TASK_FAILED" 72 "PARKING_BEHAVIOR_FAILED" 55 "PERCEPTION_FAILED" 60 "RAIN_LIGHT_SENSING_FAILED" 56 "ROAD_ESTIMATOR_FAILED" 76 "SCHEDULER_FAILED" 41 "SNAPSHOT_FAILED" 59 "SNAPSHOT_TRIGGER_CLIENT_FAILED" 58 "STAY_IN_LANE_BEHAVIOR_FAILED" 40 "TELEMETRY_FAILED" 39 "TELEMETRY_PACKAGER_FAILED" 47 "TEMPERATURE_MONITOR_FAILED" 62 "UBX_LOG_FAILED" 69 "UI_SERVER_FAILED" 30 "UNKNOWN_TASK_FAILED" 42 "VISION_FAILED" 44 "WATCHDOG_FAILED" ; -VAL_ 583 DAS_localizerHealth 0 "LOCALIZER_CRITICAL" 1 "LOCALIZER_DEGRADED" 8 "LOCALIZER_FINE_LOCALIZED_CONFIRMED" 7 "LOCALIZER_FINE_LOCALIZED_STICKING" 6 "LOCALIZER_LANE_LOCALIZED" 5 "LOCALIZER_NEAR_LANE_LOCALIZED" 3 "LOCALIZER_NO_LANE_LOCALIZED" 2 "LOCALIZER_RECOVERING" 4 "LOCALIZER_SHADOW" ; -VAL_ 583 DAS_mapAvailability 1 "APM_MAP_AVAILABLE" 0 "APM_MAP_NOT_AVAILABLE" ; -VAL_ 583 DAS_missionPlan 3 "MISSION_PLAN_INVALID" 2 "MISSION_PLAN_MAP_AND_VISION" 0 "MISSION_PLAN_MAP_ONLY" 1 "MISSION_PLAN_VISION_ONLY" ; -VAL_ 583 DAS_roadEstimator 3 "ROAD_ESTIMATOR_CRITICAL" 2 "ROAD_ESTIMATOR_DEGRADED" 0 "ROAD_ESTIMATOR_HEALTHY" 1 "ROAD_ESTIMATOR_UNSTABLE_MEASUREMENTS" ; -VAL_ 583 DAS_rqstedBehaviorStatus 19 "RQST_BEHAVIOR_BAD_ORIGIN_UPDATE" 9 "RQST_BEHAVIOR_BLOCKED_BY_BLINDSPOT_CAMERA_INVALID_L" 14 "RQST_BEHAVIOR_BLOCKED_BY_BLINDSPOT_CAMERA_INVALID_R" 8 "RQST_BEHAVIOR_BLOCKED_BY_BLINDSPOT_CAMERA_L" 13 "RQST_BEHAVIOR_BLOCKED_BY_BLINDSPOT_CAMERA_R" 11 "RQST_BEHAVIOR_BLOCKED_BY_LANE_TYPE_L" 16 "RQST_BEHAVIOR_BLOCKED_BY_LANE_TYPE_R" 20 "RQST_BEHAVIOR_BLOCKED_BY_SLOW_TARGET_L" 21 "RQST_BEHAVIOR_BLOCKED_BY_SLOW_TARGET_R" 10 "RQST_BEHAVIOR_BLOCKED_BY_ULTRASOUND_AND_CAMERA_L" 15 "RQST_BEHAVIOR_BLOCKED_BY_ULTRASOUND_AND_CAMERA_R" 7 "RQST_BEHAVIOR_BLOCKED_BY_ULTRASOUND_L" 12 "RQST_BEHAVIOR_BLOCKED_BY_ULTRASOUND_R" 6 "RQST_BEHAVIOR_BUILD_ARGUMENT_FAIL" 22 "RQST_BEHAVIOR_INVALID_PLAN" 3 "RQST_BEHAVIOR_MAP_NOT_INITIALIZED" 2 "RQST_BEHAVIOR_NO_DEST_POLYLANE" 4 "RQST_BEHAVIOR_NO_SOURCE_LANE_ON_MAP" 1 "RQST_BEHAVIOR_NO_SRC_POLYLANE" 5 "RQST_BEHAVIOR_NO_TARGET_LANE_ON_MAP" 18 "RQST_BEHAVIOR_OUT_OF_DATE" 17 "RQST_BEHAVIOR_ROAD_NOT_APPROPRIATE" 0 "RQST_BEHAVIOR_VALID" ; VAL_ 586 DAS_accSmartSpeedState 2 "ACTIVE_INTEGRATING" 1 "ACTIVE_OFFRAMP" 3 "ACTIVE_ONRAMP" 0 "NOT_ACTIVE" 5 "OFFRAMP_DELAY" 4 "SET_SPEED_SET_REQUESTED" 7 "SNA" ; VAL_ 586 DAS_autosteerBottsDotsUsage 1 "AVAILABLE" 3 "BLACKLISTED" 2 "FUSED" 0 "REJECTED_UNAVAILABLE" ; VAL_ 586 DAS_autosteerHPPUsage 1 "AVAILABLE" 3 "BLACKLISTED" 2 "FUSED" 0 "REJECTED_UNAVAILABLE" ; @@ -3505,6 +3545,20 @@ VAL_ 586 DAS_rearVehDetectedThisCycle 1 "VEHICLE_DETECTED" 0 "VEHICLE_NOT_DETECT VAL_ 586 DAS_roadSurfaceType 2 "ROAD_SURFACE_ENHANCED" 1 "ROAD_SURFACE_NORMAL" 0 "ROAD_SURFACE_SNA" ; VAL_ 586 DAS_ulcInProgress 1 "ULC_ACTIVE" 0 "ULC_INACTIVE" ; VAL_ 586 DAS_ulcType 1 "ULC_TYPE_NAV" 0 "ULC_TYPE_NONE" 2 "ULC_TYPE_SPEED" ; +VAL_ 605 CP_UHF_controlState 3 "CP_UHF_CALIBRATE" 6 "CP_UHF_CHECK_RX" 1 "CP_UHF_CONFIG" 10 "CP_UHF_FAULT" 8 "CP_UHF_HANDLE_FOUND" 2 "CP_UHF_IDLE" 0 "CP_UHF_INIT" 4 "CP_UHF_PREPARE_RX" 7 "CP_UHF_READ_RXFIFO" 5 "CP_UHF_RX" 9 "CP_UHF_SLEEP" ; +VAL_ 605 CP_chargeCablePresent 0 "CABLE_NOT_PRESENT" 1 "CABLE_PRESENT" ; +VAL_ 605 CP_chargeCableState 2 "CHARGE_CABLE_CONNECTED" 1 "CHARGE_CABLE_NOT_CONNECTED" 0 "CHARGE_CABLE_UNKNOWN_SNA" ; +VAL_ 605 CP_coldWeatherMode 1 "CP_COLD_WEATHER_LATCH_MITIGATION" 0 "CP_COLD_WEATHER_NONE" ; +VAL_ 605 CP_doorControlState 5 "CP_doorClosing" 1 "CP_doorIdle" 0 "CP_doorInit" 2 "CP_doorOpenRequested" 3 "CP_doorOpening" 6 "CP_doorSenseClosed" 4 "CP_doorSenseOpen" ; +VAL_ 605 CP_faultLineSensed 0 "FAULT_LINE_CLEARED" 1 "FAULT_LINE_SET" ; +VAL_ 605 CP_inductiveDoorState 7 "CP_INDUCTIVE_DOOR_FAULT" 0 "CP_INDUCTIVE_DOOR_INIT" 1 "CP_INDUCTIVE_DOOR_INIT_FROM_CHARGE" 2 "CP_INDUCTIVE_DOOR_INIT_FROM_DRIVE" 4 "CP_INDUCTIVE_DOOR_NOT_PRESENT" 6 "CP_INDUCTIVE_DOOR_OFF_CHARGE" 5 "CP_INDUCTIVE_DOOR_OFF_DRIVE" 3 "CP_INDUCTIVE_DOOR_PRESENT" ; +VAL_ 605 CP_inductiveSensorState 7 "CP_INDUCTIVE_SENSOR_CONFIG" 5 "CP_INDUCTIVE_SENSOR_FAULT" 0 "CP_INDUCTIVE_SENSOR_INIT" 3 "CP_INDUCTIVE_SENSOR_PAUSE" 1 "CP_INDUCTIVE_SENSOR_POLL" 6 "CP_INDUCTIVE_SENSOR_RESET" 2 "CP_INDUCTIVE_SENSOR_SHUTDOWN" 4 "CP_INDUCTIVE_SENSOR_WAIT_FOR_INIT" ; +VAL_ 605 CP_latch2ControlState 2 "CP_latchDisengageRequested" 4 "CP_latchDisengaged" 3 "CP_latchDisengaging" 5 "CP_latchEngaging" 1 "CP_latchIdle" 0 "CP_latchInit" ; +VAL_ 605 CP_latch2State 3 "CP_LATCH_BLOCKING" 1 "CP_LATCH_DISENGAGED" 2 "CP_LATCH_ENGAGED" 0 "CP_LATCH_SNA" ; +VAL_ 605 CP_latchControlState 2 "CP_latchDisengageRequested" 4 "CP_latchDisengaged" 3 "CP_latchDisengaging" 5 "CP_latchEngaging" 1 "CP_latchIdle" 0 "CP_latchInit" ; +VAL_ 605 CP_latchState 3 "CP_LATCH_BLOCKING" 1 "CP_LATCH_DISENGAGED" 2 "CP_LATCH_ENGAGED" 0 "CP_LATCH_SNA" ; +VAL_ 605 CP_ledColor 7 "CP_LEDS_AMBER" 3 "CP_LEDS_BLUE" 9 "CP_LEDS_DEBUG" 6 "CP_LEDS_FLASHING_AMBER" 10 "CP_LEDS_FLASHING_BLUE" 5 "CP_LEDS_FLASHING_GREEN" 2 "CP_LEDS_GREEN" 0 "CP_LEDS_OFF" 8 "CP_LEDS_RAVE" 1 "CP_LEDS_RED" 4 "CP_LEDS_WHITE" ; +VAL_ 605 CP_type 1 "CP_TYPE_EURO_IEC" 2 "CP_TYPE_GB" 3 "CP_TYPE_IEC_CCS" 0 "CP_TYPE_US_TESLA" ; VAL_ 697 DAS_accState 1 "ACC_CANCEL_CAMERA_BLIND" 0 "ACC_CANCEL_GENERIC" 13 "ACC_CANCEL_GENERIC_SILENT" 14 "ACC_CANCEL_OUT_OF_CALIBRATION" 12 "ACC_CANCEL_PATH_NOT_CLEAR" 2 "ACC_CANCEL_RADAR_BLIND" 3 "ACC_HOLD" 4 "ACC_ON" 8 "APC_ABORT" 5 "APC_BACKWARD" 7 "APC_COMPLETE" 6 "APC_FORWARD" 9 "APC_PAUSE" 11 "APC_SELFPARK_START" 10 "APC_UNPARK_COMPLETE" 15 "FAULT_SNA" ; VAL_ 697 DAS_accelMax 511 "SNA" ; VAL_ 697 DAS_accelMin 511 "SNA" ; @@ -3513,7 +3567,7 @@ VAL_ 697 DAS_jerkMax 255 "SNA" ; VAL_ 697 DAS_jerkMin 511 "SNA" ; VAL_ 697 DAS_setSpeed 4095 "SNA" ; VAL_ 723 UI_isSunUp 0 "SUN_DOWN" 3 "SUN_SNA" 1 "SUN_UP" ; -VAL_ 723 UI_solarAzimuthAngle -32768 "SNA" ; +VAL_ 723 UI_solarAzimuthAngle 32768 "SNA" ; VAL_ 723 UI_solarAzimuthAngleCarRef 255 "SNA" ; VAL_ 723 UI_solarElevationAngle 127 "SNA" ; VAL_ 777 DAS_objectId 3 "CUTIN_VEHICLE" 0 "LEAD_VEHICLES" 1 "LEFT_VEHICLES" 2 "RIGHT_VEHICLES" 4 "ROAD_SIGN" 5 "VEHICLE_HEADINGS" ; @@ -3593,9 +3647,38 @@ VAL_ 921 DAS_visionOnlySpeedLimit 31 "NONE" 0 "UNKNOWN_SNA" ; VAL_ 925 IBST_driverBrakeApply 1 "BRAKES_NOT_APPLIED" 2 "DRIVER_APPLYING_BRAKES" 3 "FAULT" 0 "NOT_INIT_OR_OFF" ; VAL_ 925 IBST_iBoosterStatus 4 "IBOOSTER_ACTIVE_GOOD_CHECK" 6 "IBOOSTER_ACTUATION" 3 "IBOOSTER_DIAGNOSTIC" 2 "IBOOSTER_FAILURE" 1 "IBOOSTER_INIT" 0 "IBOOSTER_OFF" 5 "IBOOSTER_READY" ; VAL_ 925 IBST_internalState 4 "DIAGNOSTIC" 3 "EXTERNAL_BRAKE_REQUEST" 2 "LOCAL_BRAKE_REQUEST" 0 "NO_MODE_ACTIVE" 6 "POST_DRIVE_CHECK" 1 "PRE_DRIVE_CHECK" 5 "TRANSITION_TO_IDLE" ; +VAL_ 929 VCFRONT_12vStatusForDrive 2 "EXIT_DRIVE_REQUESTED_12V" 0 "NOT_READY_FOR_DRIVE_12V" 1 "READY_FOR_DRIVE_12V" ; +VAL_ 929 VCFRONT_2RowCenterUnbuckled 0 "CHIME_NONE" 1 "CHIME_OCCUPIED_AND_UNBUCKLED" 2 "CHIME_SNA" ; +VAL_ 929 VCFRONT_2RowLeftUnbuckled 0 "CHIME_NONE" 1 "CHIME_OCCUPIED_AND_UNBUCKLED" 2 "CHIME_SNA" ; +VAL_ 929 VCFRONT_2RowRightUnbuckled 0 "CHIME_NONE" 1 "CHIME_OCCUPIED_AND_UNBUCKLED" 2 "CHIME_SNA" ; +VAL_ 929 VCFRONT_APGlassHeaterState 4 "HEATER_STATE_FAULT" 2 "HEATER_STATE_OFF" 3 "HEATER_STATE_OFF_UNAVAILABLE" 1 "HEATER_STATE_ON" 0 "HEATER_STATE_SNA" ; +VAL_ 929 VCFRONT_diPowerOnState 0 "DI_POWERED_OFF" 3 "DI_POWERED_ON_FOR_DRIVE" 2 "DI_POWERED_ON_FOR_STATIONARY_HEAT" 1 "DI_POWERED_ON_FOR_SUMMON" 4 "DI_POWER_GOING_DOWN" ; +VAL_ 929 VCFRONT_driverBuckleStatus 1 "BUCKLED" 0 "UNBUCKLED" ; +VAL_ 929 VCFRONT_driverDoorStatus 1 "DOOR_CLOSED" 0 "DOOR_OPEN" ; +VAL_ 929 VCFRONT_driverUnbuckled 0 "CHIME_NONE" 1 "CHIME_OCCUPIED_AND_UNBUCKLED" 2 "CHIME_SNA" ; +VAL_ 929 VCFRONT_passengerUnbuckled 0 "CHIME_NONE" 1 "CHIME_OCCUPIED_AND_UNBUCKLED" 2 "CHIME_SNA" ; +VAL_ 929 VCFRONT_pcsEFuseVoltage 1023 "SNA" ; +VAL_ 929 VCFRONT_thermalSystemType 1 "HEAT_PUMP_THERMAL_SYSTEM" 0 "LEGACY_THERMAL_SYSTEM" ; VAL_ 985 UI_conditionalSpeedLimit 31 "SNA" ; VAL_ 985 UI_mapSpeedLimitUnits 1 "KPH" 0 "MPH" ; VAL_ 985 UI_userSpeedOffsetUnits 1 "KPH" 0 "MPH" ; +VAL_ 994 VCLEFT_FLMapLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_FRMapLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_RLMapLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_RRMapLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_brakeLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_brakeTrailerLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_dynamicBrakeLightStatus 2 "DYNAMIC_BRAKE_LIGHT_ACTIVE_HIGH" 1 "DYNAMIC_BRAKE_LIGHT_ACTIVE_LOW" 0 "DYNAMIC_BRAKE_LIGHT_OFF" ; +VAL_ 994 VCLEFT_fogTrailerLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_frontRideHeight 128 "SNA" ; +VAL_ 994 VCLEFT_leftTurnTrailerLightStatu 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_rearRideHeight 128 "SNA" ; +VAL_ 994 VCLEFT_reverseTrailerLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_rightTrnTrailerLightStatu 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_tailLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_tailTrailerLightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; +VAL_ 994 VCLEFT_trailerDetected 2 "TRAILER_LIGHT_DETECTION_DETECTED" 1 "TRAILER_LIGHT_DETECTION_FAULT" 3 "TRAILER_LIGHT_DETECTION_NOT_DETECTED" 0 "TRAILER_LIGHT_DETECTION_SNA" ; +VAL_ 994 VCLEFT_turnSignalStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; VAL_ 1001 DAS_hazardLightRequest 0 "DAS_REQUEST_HAZARDS_OFF" 1 "DAS_REQUEST_HAZARDS_ON" 3 "DAS_REQUEST_HAZARDS_SNA" 2 "DAS_REQUEST_HAZARDS_UNUSED" ; VAL_ 1001 DAS_headlightRequest 3 "DAS_HEADLIGHT_REQUEST_INVALID" 0 "DAS_HEADLIGHT_REQUEST_OFF" 1 "DAS_HEADLIGHT_REQUEST_ON" ; VAL_ 1001 DAS_heaterRequest 1 "DAS_HEATER_OFF" 2 "DAS_HEATER_ON" 0 "DAS_HEATER_SNA" ; @@ -3604,6 +3687,7 @@ VAL_ 1001 DAS_highLowBeamOffReason 3 "HIGH_BEAM_OFF_REASON_AMBIENT_LIGHT" 4 "HIG VAL_ 1001 DAS_turnIndicatorRequest 3 "DAS_TURN_INDICATOR_CANCEL" 4 "DAS_TURN_INDICATOR_DEFER" 1 "DAS_TURN_INDICATOR_LEFT" 0 "DAS_TURN_INDICATOR_NONE" 2 "DAS_TURN_INDICATOR_RIGHT" ; VAL_ 1001 DAS_turnIndicatorRequestReason 8 "DAS_ACTIVE_COMMANDED_LANE_CHANGE" 3 "DAS_ACTIVE_FORK" 9 "DAS_ACTIVE_INTERSECTION" 6 "DAS_ACTIVE_MERGE" 1 "DAS_ACTIVE_NAV_LANE_CHANGE" 2 "DAS_ACTIVE_SPEED_LANE_CHANGE" 11 "DAS_ACTIVE_SUMMMON" 5 "DAS_CANCEL_FORK" 10 "DAS_CANCEL_INTERSECTION" 4 "DAS_CANCEL_LANE_CHANGE" 7 "DAS_CANCEL_MERGE" 12 "DAS_CANCEL_SUMMMON" 0 "DAS_NONE" ; VAL_ 1001 DAS_wiperSpeed 1 "DAS_WIPER_SPEED_1" 10 "DAS_WIPER_SPEED_10" 11 "DAS_WIPER_SPEED_11" 12 "DAS_WIPER_SPEED_12" 13 "DAS_WIPER_SPEED_13" 14 "DAS_WIPER_SPEED_14" 2 "DAS_WIPER_SPEED_2" 3 "DAS_WIPER_SPEED_3" 4 "DAS_WIPER_SPEED_4" 5 "DAS_WIPER_SPEED_5" 6 "DAS_WIPER_SPEED_6" 7 "DAS_WIPER_SPEED_7" 8 "DAS_WIPER_SPEED_8" 9 "DAS_WIPER_SPEED_9" 15 "DAS_WIPER_SPEED_INVALID" 0 "DAS_WIPER_SPEED_OFF" ; +VAL_ 1001 DAS_mirrorFoldRequest 0 "NONE" 1 "FOLD" 2 "UNFOLD" 3 "SNA" ; VAL_ 1011 UI_odometer 16777215 "SNA" ; VAL_ 1013 VCFRONT_DRLLeftStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; VAL_ 1013 VCFRONT_DRLRightStatus 2 "LIGHT_FAULT" 0 "LIGHT_OFF" 1 "LIGHT_ON" 3 "LIGHT_SNA" ; @@ -3665,23 +3749,8 @@ VAL_ 1021 UI_donMinGoreWidthForAbortNotMap 2 "DON_MIN_GORE_WIDTH_FOR_ABORT_0P5_M VAL_ 1021 UI_donStopEndOfRampBuffer 1 "DON_STOP_END_OF_RAMP_BUFFER_15_M" 2 "DON_STOP_END_OF_RAMP_BUFFER_30_M" 3 "DON_STOP_END_OF_RAMP_BUFFER_45_M" 0 "DON_STOP_END_OF_RAMP_BUFFER_DEFAULT" 4 "DON_STOP_END_OF_RAMP_BUFFER_OFF" ; VAL_ 1021 UI_homelinkNearby 1 "HOMELINK_NEARBY" 0 "HOMELINK_NOT_NEARBY" ; VAL_ 1021 UI_hovEnabled 0 "HOV_OFF" 1 "HOV_ON" ; -VAL_ 611 VCRIGHT_logging10HzIndex 3 "END" 1 "HVAC_ACTUATOR_POSITIONS" 2 "HVAC_ACTUATOR_STATE" 0 "HVAC_ACTUATOR_TARGETS" ; -VAL_ 611 VCRIGHT_hvacIntakeActuatorState 0 "HVACACTUATOR_STATE_BRAKING" 2 "HVACACTUATOR_STATE_COASTING" 1 "HVACACTUATOR_STATE_RUNNING" ; -VAL_ 611 VCRIGHT_hvacIntakeOperationMode 1 "HVACACTUATOR_OPERATION_MODE_CALIBRATION" 0 "HVACACTUATOR_OPERATION_MODE_NORMAL" ; -VAL_ 611 VCRIGHT_hvacLHBleedActuatorState 0 "HVACACTUATOR_STATE_BRAKING" 2 "HVACACTUATOR_STATE_COASTING" 1 "HVACACTUATOR_STATE_RUNNING" ; -VAL_ 611 VCRIGHT_hvacLHBleedOperationMode 1 "HVACACTUATOR_OPERATION_MODE_CALIBRATION" 0 "HVACACTUATOR_OPERATION_MODE_NORMAL" ; -VAL_ 611 VCRIGHT_hvacLHVaneActuatorState 0 "HVACACTUATOR_STATE_BRAKING" 2 "HVACACTUATOR_STATE_COASTING" 1 "HVACACTUATOR_STATE_RUNNING" ; -VAL_ 611 VCRIGHT_hvacLHVaneOperationMode 1 "HVACACTUATOR_OPERATION_MODE_CALIBRATION" 0 "HVACACTUATOR_OPERATION_MODE_NORMAL" ; -VAL_ 611 VCRIGHT_hvacLowerModeActState 0 "HVACACTUATOR_STATE_BRAKING" 2 "HVACACTUATOR_STATE_COASTING" 1 "HVACACTUATOR_STATE_RUNNING" ; -VAL_ 611 VCRIGHT_hvacLowerModeOpMode 1 "HVACACTUATOR_OPERATION_MODE_CALIBRATION" 0 "HVACACTUATOR_OPERATION_MODE_NORMAL" ; -VAL_ 611 VCRIGHT_hvacModelInitStatus 4 "INIT_FORWARD_CALC" 2 "INIT_FROM_SENSORS" 3 "INIT_FROM_SENSORS_PREDICTION_ERROR" 5 "INIT_WAITING_FOR_SENSORS" 1 "NOT_INIT_WAIT_FOR_GTW" 0 "NOT_INIT_WAIT_FOR_SENSORS" ; -VAL_ 611 VCRIGHT_hvacRHBleedActuatorState 0 "HVACACTUATOR_STATE_BRAKING" 2 "HVACACTUATOR_STATE_COASTING" 1 "HVACACTUATOR_STATE_RUNNING" ; -VAL_ 611 VCRIGHT_hvacRHBleedOperationMode 1 "HVACACTUATOR_OPERATION_MODE_CALIBRATION" 0 "HVACACTUATOR_OPERATION_MODE_NORMAL" ; -VAL_ 611 VCRIGHT_hvacRHVaneActuatorState 0 "HVACACTUATOR_STATE_BRAKING" 2 "HVACACTUATOR_STATE_COASTING" 1 "HVACACTUATOR_STATE_RUNNING" ; -VAL_ 611 VCRIGHT_hvacRHVaneOperationMode 1 "HVACACTUATOR_OPERATION_MODE_CALIBRATION" 0 "HVACACTUATOR_OPERATION_MODE_NORMAL" ; -VAL_ 611 VCRIGHT_hvacUpperModeActState 0 "HVACACTUATOR_STATE_BRAKING" 2 "HVACACTUATOR_STATE_COASTING" 1 "HVACACTUATOR_STATE_RUNNING" ; -VAL_ 611 VCRIGHT_hvacUpperModeOpMode 1 "HVACACTUATOR_OPERATION_MODE_CALIBRATION" 0 "HVACACTUATOR_OPERATION_MODE_NORMAL" ; VAL_ 615 DI_massConfidence 1 "MASS_CONFIDED" 0 "MASS_NOT_CONFIDED" ; +VAL_ 615 DI_relativeTireTreadDepth 32 "SNA" ; VAL_ 615 DI_tireFitment 3 "FITMENT_SNA" 0 "FITMENT_SQUARE" 1 "FITMENT_STAGGERED" ; VAL_ 615 DI_trailerDetected 1 "TRAILER_DETECTED" 0 "TRAILER_NOT_DETECTED" ; VAL_ 642 VCLEFT_blowerIndex 0 "HVAC_FEEDBACK_SIGNALS" 1 "HVAC_VARS" ; @@ -3697,6 +3766,16 @@ VAL_ 642 VCLEFT_hvacBlowerRPMTarget 1023 "SNA" ; VAL_ 642 VCLEFT_hvacBlowerRs 255 "SNA" ; VAL_ 642 VCLEFT_hvacBlowerTorque 1023 "SNA" ; VAL_ 642 VCLEFT_hvacBlower_IO_CBC_Status 0 "IDLE" 1 "RX" ; +VAL_ 755 UI_hvacReqACDisable 0 "AUTO" 1 "OFF" 2 "ON" ; +VAL_ 755 UI_hvacReqAirDistributionMode 0 "AUTO" 4 "MANUAL_DEFROST" 5 "MANUAL_DEFROST_FLOOR" 6 "MANUAL_DEFROST_PANEL" 7 "MANUAL_DEFROST_PANEL_FLOOR" 1 "MANUAL_FLOOR" 2 "MANUAL_PANEL" 3 "MANUAL_PANEL_FLOOR" ; +VAL_ 755 UI_hvacReqBlowerSegment 1 "1" 10 "10" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6" 7 "7" 8 "8" 9 "9" 11 "AUTO" 0 "OFF" ; +VAL_ 755 UI_hvacReqKeepClimateOn 2 "KEEP_CLIMATE_ON_REQ_DOG" 0 "KEEP_CLIMATE_ON_REQ_OFF" 1 "KEEP_CLIMATE_ON_REQ_ON" 3 "KEEP_CLIMATE_ON_REQ_PARTY" ; +VAL_ 755 UI_hvacReqManualDefogState 1 "DEFOG" 2 "DEFROST" 0 "NONE" ; +VAL_ 755 UI_hvacReqRecirc 0 "AUTO" 2 "FRESH" 1 "RECIRC" ; +VAL_ 755 UI_hvacReqSecondRowState 0 "AUTO" 4 "HIGH" 2 "LOW" 3 "MED" 1 "OFF" ; +VAL_ 755 UI_hvacReqTempSetpointLeft 26 "HI" 0 "LO" ; +VAL_ 755 UI_hvacReqTempSetpointRight 26 "HI" 0 "LO" ; +VAL_ 755 UI_hvacReqUserPowerState 0 "OFF" 1 "ON" 4 "OVERHEAT_PROTECT" 3 "OVERHEAT_PROTECT_FANONLY" 2 "PRECONDITION" ; VAL_ 787 UI_trackCmpOverclock 0 "TRACK_MODE_CMP_OVERCLOCK_OFF" 1 "TRACK_MODE_CMP_OVERCLOCK_ON" ; VAL_ 787 UI_trackModeRequest 0 "TRACK_MODE_REQUEST_IDLE" 2 "TRACK_MODE_REQUEST_OFF" 1 "TRACK_MODE_REQUEST_ON" ; VAL_ 787 UI_trackPostCooling 0 "TRACK_MODE_POST_COOLING_OFF" 1 "TRACK_MODE_POST_COOLING_ON" ; @@ -3710,17 +3789,12 @@ VAL_ 899 VCRIGHT_estimatedVehicleSituatio 1 "VEHICLE_SITUATION_INDOOR" 2 "VEHICL VAL_ 899 VCRIGHT_thsHumidity 255 "SNA" ; VAL_ 899 VCRIGHT_thsSolarLoadInfrared 1023 "SNA" ; VAL_ 899 VCRIGHT_thsSolarLoadVisible 1023 "SNA" ; -VAL_ 899 VCRIGHT_thsTemperature -128 "SNA" ; -VAL_ 915 VCRIGHT_epbmDebugIndex 2 "EPBM_HVDISCONNECT" 0 "EPBM_STATES" 1 "EPBM_TRANSITIONS" ; -VAL_ 915 VCRIGHT_cdpEnumDummy 0 "EPB_EXTERNAL_APPLY_IDLE" 2 "EPB_EXTERNAL_APPLY_INVALID" 1 "EPB_EXTERNAL_APPLY_VALID" ; -VAL_ 915 VCRIGHT_epbFaultStatus 2 "EPB_STATUS_FAULT" 3 "EPB_STATUS_FAULT_IDLE" 0 "EPB_STATUS_NOMINAL" 1 "EPB_STATUS_RETRY" ; -VAL_ 915 VCRIGHT_epbSummonState 3 "EPB_SUMMON_ACTIVE" 2 "EPB_SUMMON_ARMED" 4 "EPB_SUMMON_COMPLETE" 5 "EPB_SUMMON_FAULT" 1 "EPB_SUMMON_IDLE" 0 "EPB_SUMMON_INIT" 6 "EPB_SUMMON_UNAVAILABLE" ; -VAL_ 915 VCRIGHT_epbUnitStatus 22 "EPB_STATUS_COUNT" 2 "EPB_STATUS_DYNAMIC" 9 "EPB_STATUS_DYNAMIC_APPLYING" 20 "EPB_STATUS_DYNAMIC_PARKING" 17 "EPB_STATUS_EXTERNAL_DYNAMIC" 19 "EPB_STATUS_EXTERNAL_PARKING" 21 "EPB_STATUS_FREE_ROLL_MODE" 1 "EPB_STATUS_OPEN" 3 "EPB_STATUS_PARK" 8 "EPB_STATUS_PARKING" 12 "EPB_STATUS_PARK_PENDING" 10 "EPB_STATUS_RELEASING" 18 "EPB_STATUS_RELEASING_FOR_EXTERNAL_PARK" 5 "EPB_STATUS_SERVICE" 11 "EPB_STATUS_SERVICE_RELEASING" 4 "EPB_STATUS_START" 14 "EPB_STATUS_SUMMON" 16 "EPB_STATUS_SUMMON_PARKING" 15 "EPB_STATUS_SUMMON_RELEASING" 0 "EPB_STATUS_UNKNOWN" 6 "EPB_STATUS_WINCHMODE" 13 "EPB_STATUS_WINCHMODE_PENDING" 7 "EPB_STATUS_WINCHMODE_RELEASING" ; -VAL_ 915 VCRIGHT_epbmCaliperState 4 "EPB_SAVED_CALIPERSTATE_OPEN" 3 "EPB_SAVED_CALIPERSTATE_PARK" 2 "EPB_SAVED_CALIPERSTATE_REAPPLY" 5 "EPB_SAVED_CALIPERSTATE_SERVICE" 1 "EPB_SAVED_CALIPERSTATE_UNKNOWN" 0 "EPB_SAVED_CALIPERSTATE_UNSAVED" 6 "EPB_SAVED_CALIPERSTATE_WINCHMODE" ; -VAL_ 915 VCRIGHT_epbmFaultStatus 2 "EPB_STATUS_FAULT" 3 "EPB_STATUS_FAULT_IDLE" 0 "EPB_STATUS_NOMINAL" 1 "EPB_STATUS_RETRY" ; -VAL_ 915 VCRIGHT_epbmSummonState 3 "EPB_SUMMON_ACTIVE" 2 "EPB_SUMMON_ARMED" 4 "EPB_SUMMON_COMPLETE" 5 "EPB_SUMMON_FAULT" 1 "EPB_SUMMON_IDLE" 0 "EPB_SUMMON_INIT" 6 "EPB_SUMMON_UNAVAILABLE" ; -VAL_ 915 VCRIGHT_epbmSystemStatus 3 "EPB_VEHICLE_STATUS_DYNAMIC" 6 "EPB_VEHICLE_STATUS_FAULT" 7 "EPB_VEHICLE_STATUS_FAULT_SECURE" 8 "EPB_VEHICLE_STATUS_MISMATCH" 2 "EPB_VEHICLE_STATUS_PARKED" 4 "EPB_VEHICLE_STATUS_PARKING" 1 "EPB_VEHICLE_STATUS_RELEASED" 5 "EPB_VEHICLE_STATUS_RELEASING" 0 "EPB_VEHICLE_STATUS_UNKNOWN" ; -VAL_ 915 VCRIGHT_summonFaultReason 7 "EPB_SUMMONFAULT_DAS_FAULT" 2 "EPB_SUMMONFAULT_DAS_MIA" 6 "EPB_SUMMONFAULT_DI_APC_FAULT" 5 "EPB_SUMMONFAULT_DI_FAULT" 1 "EPB_SUMMONFAULT_DI_MIA" 20 "EPB_SUMMONFAULT_DI_STATE_INVALID" 10 "EPB_SUMMONFAULT_EAC_NOT_ALLOWED" 4 "EPB_SUMMONFAULT_EPBM_MIA" 11 "EPB_SUMMONFAULT_EPBM_REQUEST" 22 "EPB_SUMMONFAULT_EPBREMOTE_MIA" 19 "EPB_SUMMONFAULT_EPB_FAULT" 8 "EPB_SUMMONFAULT_ESP_FAULT" 3 "EPB_SUMMONFAULT_ESP_MIA" 13 "EPB_SUMMONFAULT_EXTERNAL" 27 "EPB_SUMMONFAULT_INVALID_REMOTE_STATE" 24 "EPB_SUMMONFAULT_LOCAL_UNIT_FAULTED" 18 "EPB_SUMMONFAULT_MISMATCH" 0 "EPB_SUMMONFAULT_NONE" 17 "EPB_SUMMONFAULT_OOC" 14 "EPB_SUMMONFAULT_PARK_MIA" 21 "EPB_SUMMONFAULT_PASSIVE_REQUEST" 15 "EPB_SUMMONFAULT_PM_MIA" 16 "EPB_SUMMONFAULT_PM_REQUEST" 28 "EPB_SUMMONFAULT_REMOTE_DID_NOT_START" 23 "EPB_SUMMONFAULT_REMOTE_SUMMON_FAULTED" 25 "EPB_SUMMONFAULT_REMOTE_UNIT_FAULTED" 12 "EPB_SUMMONFAULT_SPEED" 26 "EPB_SUMMONFAULT_START_IN_UNAVAILABLE" 9 "EPB_SUMMONFAULT_VEH_CAN_FAULT" ; +VAL_ 899 VCRIGHT_thsTemperature 128 "SNA" ; +VAL_ 947 UI_autopilotPowerStateRequest 0 "AUTOPILOT_NOMINAL" 1 "AUTOPILOT_SENTRY" 2 "AUTOPILOT_SUSPEND" ; +VAL_ 947 UI_lightSwitch 0 "LIGHT_SWITCH_AUTO" 3 "LIGHT_SWITCH_OFF" 1 "LIGHT_SWITCH_ON" 2 "LIGHT_SWITCH_PARKING" 4 "LIGHT_SWITCH_SNA" ; +VAL_ 947 UI_shorted12VCellTestMode 2 "SHORTED_CELL_TEST_MODE_ACTIVE" 0 "SHORTED_CELL_TEST_MODE_DISABLED" 1 "SHORTED_CELL_TEST_MODE_SHADOW" ; +VAL_ 947 UI_summonState 3 "ACTIVE" 1 "IDLE" 2 "PRE_PRIMED" 0 "SNA" ; +VAL_ 947 UI_windowRequest 3 "WINDOW_REQUEST_GOTO_CLOSED" 4 "WINDOW_REQUEST_GOTO_OPEN" 1 "WINDOW_REQUEST_GOTO_PERCENT" 2 "WINDOW_REQUEST_GOTO_VENT" 0 "WINDOW_REQUEST_IDLE" ; VAL_ 963 VCRIGHT_frontBuckleSwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; VAL_ 963 VCRIGHT_frontOccupancySwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; VAL_ 963 VCRIGHT_frontSeatBackrestBack 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; @@ -3759,59 +3833,6 @@ VAL_ 530 BMS_isolationResistance 1023 "SNA" ; VAL_ 530 BMS_smStateRequest 3 "BMS_CHARGE" 5 "BMS_CLEAR_FAULT" 10 "BMS_DIAG" 1 "BMS_DRIVE" 6 "BMS_FAULT" 4 "BMS_FEIM" 9 "BMS_SNA" 0 "BMS_STANDBY" 2 "BMS_SUPPORT" 8 "BMS_TEST" 7 "BMS_WELD" ; VAL_ 530 BMS_state 3 "BMS_CHARGE" 5 "BMS_CLEAR_FAULT" 10 "BMS_DIAG" 1 "BMS_DRIVE" 6 "BMS_FAULT" 4 "BMS_FEIM" 9 "BMS_SNA" 0 "BMS_STANDBY" 2 "BMS_SUPPORT" 8 "BMS_TEST" 7 "BMS_WELD" ; VAL_ 530 BMS_uiChargeStatus 2 "BMS_ABOUT_TO_CHARGE" 4 "BMS_CHARGE_COMPLETE" 5 "BMS_CHARGE_STOPPED" 3 "BMS_CHARGING" 0 "BMS_DISCONNECTED" 1 "BMS_NO_POWER" ; -VAL_ 946 BMS_log2MuxId 9 "BMS_LOG2_100HZ_1KHZ_TASK_STATS" 8 "BMS_LOG2_10HZ_TASK_STATS" 7 "BMS_LOG2_1HZ_TASK_STATS" 6 "BMS_LOG2_AHR_COUNTER" 24 "BMS_LOG2_BRICK_VOLTAGE_CHANGE" 0 "BMS_LOG2_CAC1" 1 "BMS_LOG2_CAC2" 23 "BMS_LOG2_CAC3" 3 "BMS_LOG2_CHARGE_TERMINATION" 5 "BMS_LOG2_CHARGING" 10 "BMS_LOG2_CTR_RESISTANCE" 22 "BMS_LOG2_ENERGY_AND_REST_DATA" 20 "BMS_LOG2_ENERGY_RESERVE" 21 "BMS_LOG2_FC_LINK_LEAKAGE_TEST" 2 "BMS_LOG2_FLOOD_PORT" 19 "BMS_LOG2_HV_CHAIN_MODEL" 15 "BMS_LOG2_NEG_CTR_HEALTH_1" 16 "BMS_LOG2_NEG_CTR_HEALTH_2" 17 "BMS_LOG2_NEG_CTR_HEALTH_3" 18 "BMS_LOG2_NEG_CTR_HEALTH_4" 11 "BMS_LOG2_POS_CTR_HEALTH_1" 12 "BMS_LOG2_POS_CTR_HEALTH_2" 13 "BMS_LOG2_POS_CTR_HEALTH_3" 14 "BMS_LOG2_POS_CTR_HEALTH_4" 25 "BMS_LOG2_SOC_BY_OCV_CORRECTION" 4 "BMS_LOG2_VSH_TEST" ; -VAL_ 946 BMS_chargeCurrentLimitMode 1 "BMS_CHG_I_LIMIT_BRICK_TEMP_AND_V" 2 "BMS_CHG_I_LIMIT_CAC_IMBALANCE" 5 "BMS_CHG_I_LIMIT_CONFIG" 6 "BMS_CHG_I_LIMIT_HV_CHAIN" 3 "BMS_CHG_I_LIMIT_LEAKY_BUCKET" 0 "BMS_CHG_I_LIMIT_NONE" 4 "BMS_CHG_I_LIMIT_TETHERING" ; -VAL_ 946 BMS_chargeNeededReason 6 "BMS_BRICKV_LESS_THAN_FULL_CHARGE" 4 "BMS_CABLE_CYCLE_TOP_OFF" 3 "BMS_CHARGE_TARGET_INCREASED" 2 "BMS_DCH_KWH_THRESHOLD" 0 "BMS_NO_CHARGE_REASON" 1 "BMS_SOC_LESS_THAN_UI_THRESHOLD" ; -VAL_ 946 BMS_chgEndBmsHvChargeStatus 4 "BMS_CHARGE_ENABLED" 3 "BMS_CHARGE_ENABLING" 7 "BMS_CHARGE_FAULTED" 0 "BMS_CHARGE_STANDBY" 6 "BMS_EMERGENCY_SHUTDOWN" 1 "BMS_EXT_EVSE_TEST_ALLOWED" 2 "BMS_EXT_PRECHARGE_ALLOWED" 5 "BMS_GRACEFUL_SHUTDOWN" ; -VAL_ 946 BMS_chgEndChargeState 7 "CHARGE_STATE_AC_DISABLE_PCS" 4 "CHARGE_STATE_AC_ENABLE_PCS" 5 "CHARGE_STATE_CHARGING_ACTIVE" 6 "CHARGE_STATE_DC_DISABLING_CHARGER" 3 "CHARGE_STATE_DC_ENABLE_FCLINK" 2 "CHARGE_STATE_DC_EXT_ISO_CHECK" 1 "CHARGE_STATE_ENABLE_DCLINK" 0 "CHARGE_STATE_INACTIVE" ; -VAL_ 946 BMS_chgEndCpHvChargeStatus 1 "CP_CHARGE_CONNECTED" 5 "CP_CHARGE_ENABLED" 6 "CP_CHARGE_FAULTED" 0 "CP_CHARGE_INACTIVE" 2 "CP_CHARGE_STANDBY" 4 "CP_EVSE_TEST_PASSED" 3 "CP_EXT_EVSE_TEST_ACTIVE" ; -VAL_ 946 BMS_chgEndCpShutdownRequest 2 "EMERGENCY_SHUTDOWN_REQUESTED" 1 "GRACEFUL_SHUTDOWN_REQUESTED" 0 "NO_SHUTDOWN_REQUESTED" ; -VAL_ 946 BMS_chgEndEvseChargeType 2 "AC_CHARGER_PRESENT" 1 "DC_CHARGER_PRESENT" 0 "NO_CHARGER_PRESENT" ; -VAL_ 946 BMS_chgEndPcsHvChargeStatus 1 "PCS_CHARGE_BLOCKED" 2 "PCS_CHARGE_ENABLED" 3 "PCS_CHARGE_FAULTED" 0 "PCS_CHARGE_STANDBY" ; -VAL_ 946 BMS_chgEndPcsShutdownRequest 2 "EMERGENCY_SHUTDOWN_REQUESTED" 1 "GRACEFUL_SHUTDOWN_REQUESTED" 0 "NO_SHUTDOWN_REQUESTED" ; -VAL_ 946 BMS_cpChargeStatus 1 "BMS_CHARGING_ACTIVE" 2 "BMS_CHARGING_COMPLETE" 4 "BMS_CHARGING_ENABLING" 3 "BMS_CHARGING_FAULT" 0 "BMS_CHARGING_INACTIVE" 5 "BMS_CHARGING_UPDATE_IN_PROGRESS" ; -VAL_ 946 BMS_dynamicEnergyBuffer 1023 "SNA" ; -VAL_ 946 BMS_fcLinkTestDecayTime 1023 "SNA" ; -VAL_ 946 BMS_floodPortState1 2 "FLOOD_PORT_STATE_CLOSED" 4 "FLOOD_PORT_STATE_ERROR_HIGH" 1 "FLOOD_PORT_STATE_ERROR_LOW" 3 "FLOOD_PORT_STATE_OPEN" 0 "FLOOD_PORT_STATE_SNA" ; -VAL_ 946 BMS_floodPortState2 2 "FLOOD_PORT_STATE_CLOSED" 4 "FLOOD_PORT_STATE_ERROR_HIGH" 1 "FLOOD_PORT_STATE_ERROR_LOW" 3 "FLOOD_PORT_STATE_OPEN" 0 "FLOOD_PORT_STATE_SNA" ; -VAL_ 946 BMS_idealEnergyFloor 1023 "SNA" ; -VAL_ 946 BMS_negCtrCommonModeRejError -4096 "SNA" ; -VAL_ 946 BMS_negCtrCommonModeRejErrorConf 8191 "SNA" ; -VAL_ 946 BMS_negCtrDeviationConfidenceMax 8191 "SNA" ; -VAL_ 946 BMS_negCtrDeviationConfidenceMin 8191 "SNA" ; -VAL_ 946 BMS_negCtrDeviationFiltConfMax 8191 "SNA" ; -VAL_ 946 BMS_negCtrDeviationFiltConfMin 8191 "SNA" ; -VAL_ 946 BMS_negCtrDeviationFiltMax -4096 "SNA" ; -VAL_ 946 BMS_negCtrDeviationFiltMin -4096 "SNA" ; -VAL_ 946 BMS_negCtrDeviationMax -4096 "SNA" ; -VAL_ 946 BMS_negCtrDeviationMin -4096 "SNA" ; -VAL_ 946 BMS_negCtrDropCorrectedFiltMax -4096 "SNA" ; -VAL_ 946 BMS_negCtrDropCorrectedFiltMin -4096 "SNA" ; -VAL_ 946 BMS_negCtrDropCorrectedMax -4096 "SNA" ; -VAL_ 946 BMS_negCtrDropCorrectedMin -4096 "SNA" ; -VAL_ 946 BMS_negCtrOffsetError -4096 "SNA" ; -VAL_ 946 BMS_negCtrOffsetErrorConf 8191 "SNA" ; -VAL_ 946 BMS_negCtrResistance -4096 "SNA" ; -VAL_ 946 BMS_negCtrResistanceConfidence 8191 "SNA" ; -VAL_ 946 BMS_posCtrCommonModeRejError -4096 "SNA" ; -VAL_ 946 BMS_posCtrCommonModeRejErrorConf 8191 "SNA" ; -VAL_ 946 BMS_posCtrDeviationConfidenceMax 8191 "SNA" ; -VAL_ 946 BMS_posCtrDeviationConfidenceMin 8191 "SNA" ; -VAL_ 946 BMS_posCtrDeviationFiltConfMax 8191 "SNA" ; -VAL_ 946 BMS_posCtrDeviationFiltConfMin 8191 "SNA" ; -VAL_ 946 BMS_posCtrDeviationFiltMax -4096 "SNA" ; -VAL_ 946 BMS_posCtrDeviationFiltMin -4096 "SNA" ; -VAL_ 946 BMS_posCtrDeviationMax -4096 "SNA" ; -VAL_ 946 BMS_posCtrDeviationMin -4096 "SNA" ; -VAL_ 946 BMS_posCtrDropCorrectedFiltMax -4096 "SNA" ; -VAL_ 946 BMS_posCtrDropCorrectedFiltMin -4096 "SNA" ; -VAL_ 946 BMS_posCtrDropCorrectedMax -4096 "SNA" ; -VAL_ 946 BMS_posCtrDropCorrectedMin -4096 "SNA" ; -VAL_ 946 BMS_posCtrOffsetError -4096 "SNA" ; -VAL_ 946 BMS_posCtrOffsetErrorConf 8191 "SNA" ; -VAL_ 946 BMS_posCtrResistance -4096 "SNA" ; -VAL_ 946 BMS_posCtrResistanceConfidence 8191 "SNA" ; -VAL_ 800 BMS_matrixIndex 0 "BMS_AlertMatrix0" 1 "BMS_AlertMatrix1" 2 "BMS_AlertMatrix2" ; VAL_ 796 CC_currentLimit 255 "SNA" ; VAL_ 796 CC_gridGrounding 1 "CC_GRID_GROUNDING_IT_SplitPhase" 2 "CC_GRID_GROUNDING_SNA" 0 "CC_GRID_GROUNDING_TN_TT" ; VAL_ 796 CC_line1Voltage 511 "SNA" ; @@ -3819,22 +3840,11 @@ VAL_ 796 CC_line2Voltage 511 "SNA" ; VAL_ 796 CC_line3Voltage 511 "SNA" ; VAL_ 796 CC_numPhases 0 "SNA" ; VAL_ 796 CC_pilotState 2 "CC_PILOT_STATE_FAULTED" 1 "CC_PILOT_STATE_IDLE" 0 "CC_PILOT_STATE_READY" 3 "CC_PILOT_STATE_SNA" ; -VAL_ 797 CC_chgStatus2Index 0 "Mux0" ; -VAL_ 797 CC_buttonState 1 "CC_BUTTON_PRESSED" 0 "CC_BUTTON_RELEASED" ; -VAL_ 812 CC_logIndex 0 "Mux0" 1 "Mux1" 10 "Mux10" 11 "Mux11" 12 "Mux12" 13 "Mux13" 2 "Mux2" 3 "Mux3" 4 "Mux4" ; -VAL_ 812 CC_activeConnectorID 255 "SNA" ; -VAL_ 812 CC_conn1Current 255 "SNA" ; -VAL_ 812 CC_conn2Current 255 "SNA" ; -VAL_ 812 CC_conn3Current 255 "SNA" ; -VAL_ 812 CC_conn4Current 255 "SNA" ; -VAL_ 812 CC_contactor1Closed 1 "CC_CONTACTOR_CLOSED" 0 "CC_CONTACTOR_OPEN" 3 "CC_CONTACTOR_SNA" ; -VAL_ 812 CC_contactor2Closed 1 "CC_CONTACTOR_CLOSED" 0 "CC_CONTACTOR_OPEN" 3 "CC_CONTACTOR_SNA" ; -VAL_ 812 CC_temperature1 127 "SNA" ; -VAL_ 812 CC_temperature2 127 "SNA" ; -VAL_ 812 CC_temperature3 127 "SNA" ; -VAL_ 812 CC_temperature4 127 "SNA" ; VAL_ 573 CP_chargeShutdownRequest 2 "EMERGENCY_SHUTDOWN_REQUESTED" 1 "GRACEFUL_SHUTDOWN_REQUESTED" 0 "NO_SHUTDOWN_REQUESTED" ; VAL_ 573 CP_hvChargeStatus 1 "CP_CHARGE_CONNECTED" 5 "CP_CHARGE_ENABLED" 6 "CP_CHARGE_FAULTED" 0 "CP_CHARGE_INACTIVE" 2 "CP_CHARGE_STANDBY" 4 "CP_EVSE_TEST_PASSED" 3 "CP_EXT_EVSE_TEST_ACTIVE" ; +VAL_ 317 CP_chargeShutdownRequest 2 "EMERGENCY_SHUTDOWN_REQUESTED" 1 "GRACEFUL_SHUTDOWN_REQUESTED" 0 "NO_SHUTDOWN_REQUESTED" ; +VAL_ 317 CP_evseChargeType 2 "AC_CHARGER_PRESENT" 1 "DC_CHARGER_PRESENT" 0 "NO_CHARGER_PRESENT" ; +VAL_ 317 CP_hvChargeStatus 1 "CP_CHARGE_CONNECTED" 5 "CP_CHARGE_ENABLED" 6 "CP_CHARGE_FAULTED" 0 "CP_CHARGE_INACTIVE" 2 "CP_CHARGE_STANDBY" 4 "CP_EVSE_TEST_PASSED" 3 "CP_EXT_EVSE_TEST_ACTIVE" ; VAL_ 1085 CP_chargeShutdownRequest_log 2 "EMERGENCY_SHUTDOWN_REQUESTED" 1 "GRACEFUL_SHUTDOWN_REQUESTED" 0 "NO_SHUTDOWN_REQUESTED" ; VAL_ 1085 CP_evseChargeType_log 2 "AC_CHARGER_PRESENT" 1 "DC_CHARGER_PRESENT" 0 "NO_CHARGER_PRESENT" ; VAL_ 1085 CP_hvChargeStatus_log 1 "CP_CHARGE_CONNECTED" 5 "CP_CHARGE_ENABLED" 6 "CP_CHARGE_FAULTED" 0 "CP_CHARGE_INACTIVE" 2 "CP_CHARGE_STANDBY" 4 "CP_EVSE_TEST_PASSED" 3 "CP_EXT_EVSE_TEST_ACTIVE" ; @@ -3852,11 +3862,12 @@ VAL_ 541 CP_teslaSwcanState 1 "TESLA_SWCAN_ACCEPT" 3 "TESLA_SWCAN_ESTABLISHED" 4 VAL_ 1859 VCRIGHT_mirrorRecallStatus 2 "RECALL_COMPLETE" 3 "RECALL_INTERRUPTED" 1 "RECALL_IN_PROGRESS" 0 "RECALL_SNA" ; VAL_ 1859 VCRIGHT_seatRecallStatus 2 "RECALL_COMPLETE" 3 "RECALL_INTERRUPTED" 1 "RECALL_IN_PROGRESS" 0 "RECALL_SNA" ; VAL_ 1859 VCRIGHT_systemRecallStatus 2 "RECALL_COMPLETE" 3 "RECALL_INTERRUPTED" 1 "RECALL_IN_PROGRESS" 0 "RECALL_SNA" ; -VAL_ 1885 CP_sensorDataSelect 2 "CP_SENSOR_DOOR" 0 "CP_SENSOR_DOOR_COUNTS" 5 "CP_SENSOR_FAULT_LINE" 4 "CP_SENSOR_INDUCTIVE_DOOR" 3 "CP_SENSOR_LATCH" 9 "CP_SENSOR_PILOT" 10 "CP_SENSOR_PILOT2" 1 "CP_SENSOR_PIN_TEMP" 8 "CP_SENSOR_PROX" 11 "CP_SENSOR_PROX_GB" 7 "CP_SENSOR_RAILS" 6 "CP_SENSOR_UHF" ; -VAL_ 1962 HVP_debugMessageMultiplexer 0 "Mux0" 1 "Mux1" 2 "Mux2" 3 "Mux3" 4 "Mux4" 5 "Mux5" 6 "Mux6" ; -VAL_ 1962 HVP_shuntAsicTempDbg -32768 "SHUNT_TEMPERATURE_SNA" ; -VAL_ 1962 HVP_shuntBarTempDbg -32768 "SHUNT_TEMPERATURE_SNA" ; +VAL_ 1885 CP_sensorDataSelect 2 "CP_SENSOR_DOOR" 0 "CP_SENSOR_DOOR_COUNTS" 4 "CP_SENSOR_INDUCTIVE_DOOR" 12 "CP_SENSOR_INLET_HARNESS_ID" 3 "CP_SENSOR_LATCH" 9 "CP_SENSOR_PILOT" 10 "CP_SENSOR_PILOT2" 1 "CP_SENSOR_PIN_TEMP" 8 "CP_SENSOR_PROX" 11 "CP_SENSOR_PROX_GB" 7 "CP_SENSOR_RAILS" 5 "CP_SENSOR_SAFETY" 6 "CP_SENSOR_UHF" ; +VAL_ 1885 CP_inlet1HarnessIdState 1 "HARNESS_PEDIGREE_INVALID" 0 "HARNESS_PEDIGREE_UNKNOWN_SNA" 2 "HARNESS_PEDIGREE_VALID" ; +VAL_ 1885 CP_inlet2HarnessIdState 1 "HARNESS_PEDIGREE_INVALID" 0 "HARNESS_PEDIGREE_UNKNOWN_SNA" 2 "HARNESS_PEDIGREE_VALID" ; VAL_ 819 UI_acChargeCurrentLimit 127 "SNA" ; +VAL_ 819 UI_brickBalancingDisabled 0 "FALSE" 1 "TRUE" ; +VAL_ 819 UI_brickVLoggingRequest 0 "FALSE" 1 "TRUE" ; VAL_ 820 UI_limitMode 2 "LIMIT_FACTORY" 0 "LIMIT_NORMAL" 3 "LIMIT_SERVICE" 1 "LIMIT_VALET" ; VAL_ 820 UI_motorOnMode 1 "MOTORONMODE_FRONT_ONLY" 0 "MOTORONMODE_NORMAL" 2 "MOTORONMODE_REAR_ONLY" ; VAL_ 820 UI_pedalMap 0 "CHILL" 2 "PERFORMANCE" 1 "SPORT" ; @@ -3871,76 +3882,40 @@ VAL_ 577 VCFRONT_coolantAirPurgeBatState 1 "AIR_PURGE_STATE_ACTIVE" 2 "AIR_PURGE VAL_ 577 VCFRONT_coolantFlowBatReason 4 "ACTIVE_MANAGER_BATT" 9 "ACTIVE_MANAGER_PT" 6 "BMS_FLOW_REQ" 1 "COOLANT_AIR_PURGE" 7 "DAS_FLOW_REQ" 13 "DIS_FLOW_REQ" 12 "DI_FLOW_REQ" 14 "HP_FLOW_REQ" 0 "NONE" 2 "NO_FLOW_REQ" 3 "OVERRIDE_BATT" 8 "OVERRIDE_PT" 5 "PASSIVE_MANAGER_BATT" 10 "PASSIVE_MANAGER_PT" 11 "PCS_FLOW_REQ" ; VAL_ 577 VCFRONT_coolantFlowPTReason 4 "ACTIVE_MANAGER_BATT" 9 "ACTIVE_MANAGER_PT" 6 "BMS_FLOW_REQ" 1 "COOLANT_AIR_PURGE" 7 "DAS_FLOW_REQ" 13 "DIS_FLOW_REQ" 12 "DI_FLOW_REQ" 14 "HP_FLOW_REQ" 0 "NONE" 2 "NO_FLOW_REQ" 3 "OVERRIDE_BATT" 8 "OVERRIDE_PT" 5 "PASSIVE_MANAGER_BATT" 10 "PASSIVE_MANAGER_PT" 11 "PCS_FLOW_REQ" ; VAL_ 577 VCFRONT_wasteHeatRequestType 2 "WASTE_TYPE_FULL" 0 "WASTE_TYPE_NONE" 1 "WASTE_TYPE_PARTIAL" ; -VAL_ 708 PCS_logMessageSelect 3 "PCS_LOG_CHG_1" 4 "PCS_LOG_CHG_2" 5 "PCS_LOG_CHG_3" 13 "PCS_LOG_CHG_4" 21 "PCS_LOG_CHG_LINE_OFFSET" 23 "PCS_LOG_CHG_MACHINEMODEL" 20 "PCS_LOG_CHG_NO_FLOW" 6 "PCS_LOG_DCDC_1" 7 "PCS_LOG_DCDC_2" 8 "PCS_LOG_DCDC_3" 18 "PCS_LOG_DCDC_4" 19 "PCS_LOG_DCDC_5" 24 "PCS_LOG_DCDC_HVBUS_PCHG_DATA" 25 "PCS_LOG_DCDC_IMPEDANCE_EST" 22 "PCS_LOG_DCDC_STATISTICS" 14 "PCS_LOG_DLOG_1" 15 "PCS_LOG_DLOG_2" 16 "PCS_LOG_DLOG_3" 17 "PCS_LOG_DLOG_4" 26 "PCS_LOG_NUM_MSGS" 0 "PCS_LOG_PHA_1" 10 "PCS_LOG_PHA_2" 1 "PCS_LOG_PHB_1" 11 "PCS_LOG_PHB_2" 2 "PCS_LOG_PHC_1" 12 "PCS_LOG_PHC_2" 9 "PCS_LOG_SYSTEM_1" ; -VAL_ 708 PCS_acChargeSelfTestState 0 "PCS_SELF_TEST_IDLE" 1 "PCS_SELF_TEST_STARTED" ; -VAL_ 708 PCS_chgAcpwHeartbeatState 2 "PCS_ACPW_HEARTBEAT_STATE_DETECTED" 1 "PCS_ACPW_HEARTBEAT_STATE_NOT_DETECTED" 3 "PCS_ACPW_HEARTBEAT_STATE_NUM" 0 "PCS_ACPW_HEARTBEAT_STATE_UNKNOWN" ; -VAL_ 708 PCS_chgInputFrequencyL1N 0 "FREQUENCY_UNKNOWN" ; -VAL_ 708 PCS_chgInputFrequencyL2N 0 "FREQUENCY_UNKNOWN" ; -VAL_ 708 PCS_chgInputFrequencyL3N 0 "FREQUENCY_UNKNOWN" ; -VAL_ 708 PCS_chgInternalPhaseConfig 5 "PHASE_CONFIG_MFG_TEST_CONFIG_1" 6 "PHASE_CONFIG_MFG_TEST_CONFIG_2" 7 "PHASE_CONFIG_RELIABILITY_SINGLE_PHASE" 1 "PHASE_CONFIG_SINGLE_PHASE" 8 "PHASE_CONFIG_SINGLE_PHASE_EVSE_PARALLEL" 4 "PHASE_CONFIG_SINGLE_PHASE_IEC_GB" 0 "PHASE_CONFIG_SNA" 2 "PHASE_CONFIG_THREE_PHASE" 3 "PHASE_CONFIG_THREE_PHASE_DELTA" 9 "PHASE_CONFIG_TOTAL_NUM" ; -VAL_ 708 PCS_chgPhALastShutdownReason 12 "PCS_PH_SHUTDOWN_CONTROL_REGULATION_FAULT" 16 "PCS_PH_SHUTDOWN_FREQ_OUT_OF_RANGE" 2 "PCS_PH_SHUTDOWN_HW_ENABLE" 4 "PCS_PH_SHUTDOWN_HW_FAULT" 7 "PCS_PH_SHUTDOWN_INPUT_OV" 6 "PCS_PH_SHUTDOWN_INPUT_UV" 11 "PCS_PH_SHUTDOWN_INT_BUS_UV" 17 "PCS_PH_SHUTDOWN_LINE_TRANSIENT_FAULT" 9 "PCS_PH_SHUTDOWN_OUTPUT_OV" 8 "PCS_PH_SHUTDOWN_OUTPUT_UV" 13 "PCS_PH_SHUTDOWN_OVER_TEMPERATURE" 5 "PCS_PH_SHUTDOWN_PLL_NOT_LOCKED" 10 "PCS_PH_SHUTDOWN_PRECHARGE_TIMEOUT" 0 "PCS_PH_SHUTDOWN_REASON_NONE" 15 "PCS_PH_SHUTDOWN_SENSOR_IRRATIONAL" 1 "PCS_PH_SHUTDOWN_SW_ENABLE" 3 "PCS_PH_SHUTDOWN_SW_FAULT" 14 "PCS_PH_SHUTDOWN_TEMP_IRRATIONAL" ; -VAL_ 708 PCS_chgPhAState 5 "PCS_PH_STATE_CLEAR_FAULTS" 3 "PCS_PH_STATE_ENABLE" 4 "PCS_PH_STATE_FAULT" 1 "PCS_PH_STATE_IDLE" 0 "PCS_PH_STATE_INIT" 2 "PCS_PH_STATE_PRECHARGE" 6 "PCS_PH_STATE_SHUTTING_DOWN" ; -VAL_ 708 PCS_chgPhBLastShutdownReason 12 "PCS_PH_SHUTDOWN_CONTROL_REGULATION_FAULT" 16 "PCS_PH_SHUTDOWN_FREQ_OUT_OF_RANGE" 2 "PCS_PH_SHUTDOWN_HW_ENABLE" 4 "PCS_PH_SHUTDOWN_HW_FAULT" 7 "PCS_PH_SHUTDOWN_INPUT_OV" 6 "PCS_PH_SHUTDOWN_INPUT_UV" 11 "PCS_PH_SHUTDOWN_INT_BUS_UV" 17 "PCS_PH_SHUTDOWN_LINE_TRANSIENT_FAULT" 9 "PCS_PH_SHUTDOWN_OUTPUT_OV" 8 "PCS_PH_SHUTDOWN_OUTPUT_UV" 13 "PCS_PH_SHUTDOWN_OVER_TEMPERATURE" 5 "PCS_PH_SHUTDOWN_PLL_NOT_LOCKED" 10 "PCS_PH_SHUTDOWN_PRECHARGE_TIMEOUT" 0 "PCS_PH_SHUTDOWN_REASON_NONE" 15 "PCS_PH_SHUTDOWN_SENSOR_IRRATIONAL" 1 "PCS_PH_SHUTDOWN_SW_ENABLE" 3 "PCS_PH_SHUTDOWN_SW_FAULT" 14 "PCS_PH_SHUTDOWN_TEMP_IRRATIONAL" ; -VAL_ 708 PCS_chgPhBState 5 "PCS_PH_STATE_CLEAR_FAULTS" 3 "PCS_PH_STATE_ENABLE" 4 "PCS_PH_STATE_FAULT" 1 "PCS_PH_STATE_IDLE" 0 "PCS_PH_STATE_INIT" 2 "PCS_PH_STATE_PRECHARGE" 6 "PCS_PH_STATE_SHUTTING_DOWN" ; -VAL_ 708 PCS_chgPhCLastShutdownReason 12 "PCS_PH_SHUTDOWN_CONTROL_REGULATION_FAULT" 16 "PCS_PH_SHUTDOWN_FREQ_OUT_OF_RANGE" 2 "PCS_PH_SHUTDOWN_HW_ENABLE" 4 "PCS_PH_SHUTDOWN_HW_FAULT" 7 "PCS_PH_SHUTDOWN_INPUT_OV" 6 "PCS_PH_SHUTDOWN_INPUT_UV" 11 "PCS_PH_SHUTDOWN_INT_BUS_UV" 17 "PCS_PH_SHUTDOWN_LINE_TRANSIENT_FAULT" 9 "PCS_PH_SHUTDOWN_OUTPUT_OV" 8 "PCS_PH_SHUTDOWN_OUTPUT_UV" 13 "PCS_PH_SHUTDOWN_OVER_TEMPERATURE" 5 "PCS_PH_SHUTDOWN_PLL_NOT_LOCKED" 10 "PCS_PH_SHUTDOWN_PRECHARGE_TIMEOUT" 0 "PCS_PH_SHUTDOWN_REASON_NONE" 15 "PCS_PH_SHUTDOWN_SENSOR_IRRATIONAL" 1 "PCS_PH_SHUTDOWN_SW_ENABLE" 3 "PCS_PH_SHUTDOWN_SW_FAULT" 14 "PCS_PH_SHUTDOWN_TEMP_IRRATIONAL" ; -VAL_ 708 PCS_chgPhCState 5 "PCS_PH_STATE_CLEAR_FAULTS" 3 "PCS_PH_STATE_ENABLE" 4 "PCS_PH_STATE_FAULT" 1 "PCS_PH_STATE_IDLE" 0 "PCS_PH_STATE_INIT" 2 "PCS_PH_STATE_PRECHARGE" 6 "PCS_PH_STATE_SHUTTING_DOWN" ; -VAL_ 708 PCS_chgPhasesPriority 36 "PHASES_PRIORITY_ABC" 24 "PHASES_PRIORITY_ACB" 33 "PHASES_PRIORITY_BAC" 9 "PHASES_PRIORITY_BCA" 18 "PHASES_PRIORITY_CAB" 6 "PHASES_PRIORITY_CBA" 0 "UNDEFINED_PHASES_PRIORITY" ; -VAL_ 708 PCS_cpu2BootState 2 "CPU2_STATE_APPLICATION" 1 "CPU2_STATE_BOOTLOADER" 0 "CPU2_STATE_BOOTROM" 3 "CPU2_STATE_ERROR" ; -VAL_ 708 PCS_dLogPhAChannel1Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhAChannel2Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhAChannel3Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhAChannel4Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhBChannel1Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhBChannel2Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhBChannel3Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhBChannel4Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhCChannel1Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhCChannel2Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhCChannel3Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dLogPhCChannel4Content 1 "PCS_DLOG_INPUT_CURRENT" 0 "PCS_DLOG_INPUT_VOLTAGE" 3 "PCS_DLOG_INT_BUS_VOLTAGE" 2 "PCS_DLOG_OUTPUT_CURRENT" ; -VAL_ 708 PCS_dcdcTankVoltage -1024 "TANK_VOLTAGE_SNA" ; -VAL_ 2005 DIR_aebFaultReason 9 "DI_AEB_FAULT_ACCEL_OUT_OF_BOUNDS" 14 "DI_AEB_FAULT_ACCEL_REQ_INVALID" 5 "DI_AEB_FAULT_DAS_CONTROL_MIA" 15 "DI_AEB_FAULT_DAS_REQ_DI_UNAVAIL" 6 "DI_AEB_FAULT_DAS_SNA" 3 "DI_AEB_FAULT_EBR_FAULT" 1 "DI_AEB_FAULT_EPB_MIA" 10 "DI_AEB_FAULT_EPB_NOT_PARKED" 11 "DI_AEB_FAULT_ESP_FAULT" 12 "DI_AEB_FAULT_ESP_MIA" 13 "DI_AEB_FAULT_MIN_TIME_BTWN_EVENTS" 0 "DI_AEB_FAULT_NONE" 2 "DI_AEB_FAULT_PM_MIA" 8 "DI_AEB_FAULT_PM_REQUEST" 4 "DI_AEB_FAULT_SPEED_DELTA" 7 "DI_AEB_FAULT_VEL_EST_ABNORMAL" ; -VAL_ 2005 DIR_aebUnavailableReason 1 "DI_AEB_UNAVAILABLE_CLOSURE" 5 "DI_AEB_UNAVAILABLE_DI_STATE" 6 "DI_AEB_UNAVAILABLE_EBR_UNAVAILABLE" 7 "DI_AEB_UNAVAILABLE_EPB" 2 "DI_AEB_UNAVAILABLE_GEAR" 8 "DI_AEB_UNAVAILABLE_HYSTERESIS" 4 "DI_AEB_UNAVAILABLE_NEGATIVE_SPEED" 0 "DI_AEB_UNAVAILABLE_NONE" 10 "DI_AEB_UNAVAILABLE_REVERSE_SPEED" 3 "DI_AEB_UNAVAILABLE_SKID" 9 "DI_AEB_UNAVAILABLE_TRACK_MODE" ; -VAL_ 2005 DIR_brkStState 6 "BRKST_STATE_FINISHED" 1 "BRKST_STATE_IDLE" 5 "BRKST_STATE_INTERRUPTED" 4 "BRKST_STATE_RUNNING_PRESSED" 3 "BRKST_STATE_RUNNING_PRESSING" 2 "BRKST_STATE_RUNNING_UNPRESSED" 0 "BRKST_STATE_UNAVAILABLE" ; +VAL_ 1493 DI_IGBTJunctTemp 255 "SNA" ; +VAL_ 1366 DIF_IGBTJunctTemp 255 "SNA" ; VAL_ 2005 DIR_fluxState 5 "DI_FLUXSTATE_ENABLED" 9 "DI_FLUXSTATE_FAULT" 4 "DI_FLUXSTATE_FLUX_DOWN" 3 "DI_FLUXSTATE_FLUX_UP" 6 "DI_FLUXSTATE_ICONTROL" 2 "DI_FLUXSTATE_STANDBY" 0 "DI_FLUXSTATE_START" 10 "DI_FLUXSTATE_STATIONARY_WASTE" 1 "DI_FLUXSTATE_TEST" 7 "DI_FLUXSTATE_VCONTROL" ; VAL_ 2005 DIR_gateDriveState 3 "PSTG_GD_STATE_CONFIGURED" 2 "PSTG_GD_STATE_CONFIGURING" 0 "PSTG_GD_STATE_INIT" 4 "PSTG_GD_STATE_NOT_CONFIGURED" 1 "PSTG_GD_STATE_SELFTEST" ; VAL_ 2005 DIR_gateDriveSupplyState 0 "PSTG_GD_SUPPLY_DOWN" 3 "PSTG_GD_SUPPLY_FALLING" 1 "PSTG_GD_SUPPLY_RISING" 2 "PSTG_GD_SUPPLY_UP" ; -VAL_ 2005 DIR_immobilizerCondition 1 "DI_IMM_CONDITION_LEARNED" 0 "DI_IMM_CONDITION_VIRGIN_SNA" ; VAL_ 2005 DIR_magnetTempEst 0 "SNA" ; -VAL_ 2005 DIR_motorType 8 "DI_MOTOR_F1A" 10 "DI_MOTOR_F1AC" 11 "DI_MOTOR_F2AB" 12 "DI_MOTOR_F2AC" 13 "DI_MOTOR_F2AD" 14 "DI_MOTOR_F2AE" 26 "DI_MOTOR_F2AE_AL" 15 "DI_MOTOR_F2APMSRM" 17 "DI_MOTOR_IM100A" 19 "DI_MOTOR_IM100B" 22 "DI_MOTOR_IM130C" 24 "DI_MOTOR_IM130D" 25 "DI_MOTOR_IM130D_AL" 27 "DI_MOTOR_IM130D_AL_POSCO" 20 "DI_MOTOR_IM216A" 3 "DI_MOTOR_M7M3" 4 "DI_MOTOR_M7M4" 5 "DI_MOTOR_M7M5" 7 "DI_MOTOR_M7M6" 6 "DI_MOTOR_M8A" 16 "DI_MOTOR_PM216A" 18 "DI_MOTOR_PM216B" 21 "DI_MOTOR_PM216C" 23 "DI_MOTOR_PM216D" 1 "DI_MOTOR_ROADSTER_BASE" 2 "DI_MOTOR_ROADSTER_SPORT" 0 "DI_MOTOR_SNA" 9 "DI_MOTOR_SSR1A" ; +VAL_ 2005 DIR_motorType 8 "DI_MOTOR_F1A" 10 "DI_MOTOR_F1AC" 11 "DI_MOTOR_F2AB" 12 "DI_MOTOR_F2AC" 13 "DI_MOTOR_F2AD" 14 "DI_MOTOR_F2AE" 26 "DI_MOTOR_F2AE_AL" 15 "DI_MOTOR_F2APMSRM" 17 "DI_MOTOR_IM100A" 19 "DI_MOTOR_IM100B" 22 "DI_MOTOR_IM130C" 24 "DI_MOTOR_IM130D" 25 "DI_MOTOR_IM130D_AL" 27 "DI_MOTOR_IM130D_AL_POSCO" 20 "DI_MOTOR_IM216A" 3 "DI_MOTOR_M7M3" 4 "DI_MOTOR_M7M4" 5 "DI_MOTOR_M7M5" 7 "DI_MOTOR_M7M6" 6 "DI_MOTOR_M8A" 16 "DI_MOTOR_PM216A" 18 "DI_MOTOR_PM216B" 21 "DI_MOTOR_PM216C" 30 "DI_MOTOR_PM216CSR" 31 "DI_MOTOR_PM216CSR_N42" 23 "DI_MOTOR_PM216D" 32 "DI_MOTOR_PM228B" 28 "DI_MOTOR_PM275B" 29 "DI_MOTOR_PM350B" 1 "DI_MOTOR_ROADSTER_BASE" 2 "DI_MOTOR_ROADSTER_SPORT" 0 "DI_MOTOR_SNA" 9 "DI_MOTOR_SSR1A" ; VAL_ 2005 DIR_oilPumpPhaseVoltage 255 "SNA" ; VAL_ 2005 DIR_oilPumpPressureEstimateMax 255 "SNA" ; VAL_ 2005 DIR_oilPumpPressureExpectedMin 255 "SNA" ; -VAL_ 2005 DIR_opdUnavailableReason 1 "DI_OPD_UNAVAILABLE_DISABLED" 4 "DI_OPD_UNAVAILABLE_DI_SYS_STATE" 7 "DI_OPD_UNAVAILABLE_EPB_FAULT" 3 "DI_OPD_UNAVAILABLE_GEAR" 11 "DI_OPD_UNAVAILABLE_GRADE_ESTIMATE" 5 "DI_OPD_UNAVAILABLE_INVALID_BRAKE_SENSE" 14 "DI_OPD_UNAVAILABLE_INVALID_MSPD" 15 "DI_OPD_UNAVAILABLE_MOTOR_HOLD_TIMEOUT" 0 "DI_OPD_UNAVAILABLE_NONE" 13 "DI_OPD_UNAVAILABLE_PARKED" 2 "DI_OPD_UNAVAILABLE_PM_FAULT" 6 "DI_OPD_UNAVAILABLE_SKID" 12 "DI_OPD_UNAVAILABLE_TORQUE_LIMIT" 8 "DI_OPD_UNAVAILABLE_TRACK_MODE" 10 "DI_OPD_UNAVAILABLE_TRACTION_CONTROL" 9 "DI_OPD_UNAVAILABLE_VELOCITY_ESTIMATE" ; VAL_ 2005 DIR_powerStageSafeState 2 "PSTG_SAFESTATE_3PS_HIGH" 3 "PSTG_SAFESTATE_3PS_LOW" 1 "PSTG_SAFESTATE_ALL_OFF" 0 "PSTG_SAFESTATE_NONE" ; +VAL_ 2005 DIR_pwmState 1 "PWMSTATE_DPWM2" 2 "PWMSTATE_OPWM1" 3 "PWMSTATE_OPWM2" 0 "PWMSTATE_SVPWM" ; VAL_ 2005 DIR_rotorOffsetLearningState 9 "ROL_NUM_STATES" 2 "ROL_STATE_ACCELERATE" 5 "ROL_STATE_CORRECT" 8 "ROL_STATE_DONE" 0 "ROL_STATE_INIT" 4 "ROL_STATE_MEASURE" 3 "ROL_STATE_SHIFT" 6 "ROL_STATE_VERIFY" 1 "ROL_STATE_WAIT" 7 "ROL_STATE_WRITE" ; VAL_ 2005 DIR_ssmState 5 "SSM_STATE_ABORT" 4 "SSM_STATE_ENABLE" 8 "SSM_STATE_FAULT" 2 "SSM_STATE_IDLE" 7 "SSM_STATE_RETRY" 3 "SSM_STATE_STANDBY" 0 "SSM_STATE_START" 1 "SSM_STATE_UNAVAILABLE" 6 "SSM_STATE_WAIT_FOR_RETRY" ; VAL_ 2005 DIR_tcMaxRequest 255 "SNA" ; VAL_ 2005 DIR_tcMinRequest 255 "SNA" ; VAL_ 2005 DIR_usmState 3 "USM_STATE_ABORT" 4 "USM_STATE_ENABLE" 5 "USM_STATE_FAULT" 2 "USM_STATE_RETRY" 1 "USM_STATE_STANDBY" 0 "USM_STATE_START" 6 "USM_STATE_UNAVAILABLE" 7 "USM_STATE_WAIT_FOR_RETRY" ; -VAL_ 2005 DIR_velocityEstimatorState 4 "VE_STATE_BACKUP_MOTOR" 2 "VE_STATE_BACKUP_WHEELS_A" 3 "VE_STATE_BACKUP_WHEELS_B" 0 "VE_STATE_NOT_INITIALIZED" 1 "VE_STATE_WHEELS_NORMAL" ; -VAL_ 1879 DIF_aebFaultReason 9 "DI_AEB_FAULT_ACCEL_OUT_OF_BOUNDS" 14 "DI_AEB_FAULT_ACCEL_REQ_INVALID" 5 "DI_AEB_FAULT_DAS_CONTROL_MIA" 15 "DI_AEB_FAULT_DAS_REQ_DI_UNAVAIL" 6 "DI_AEB_FAULT_DAS_SNA" 3 "DI_AEB_FAULT_EBR_FAULT" 1 "DI_AEB_FAULT_EPB_MIA" 10 "DI_AEB_FAULT_EPB_NOT_PARKED" 11 "DI_AEB_FAULT_ESP_FAULT" 12 "DI_AEB_FAULT_ESP_MIA" 13 "DI_AEB_FAULT_MIN_TIME_BTWN_EVENTS" 0 "DI_AEB_FAULT_NONE" 2 "DI_AEB_FAULT_PM_MIA" 8 "DI_AEB_FAULT_PM_REQUEST" 4 "DI_AEB_FAULT_SPEED_DELTA" 7 "DI_AEB_FAULT_VEL_EST_ABNORMAL" ; -VAL_ 1879 DIF_aebUnavailableReason 1 "DI_AEB_UNAVAILABLE_CLOSURE" 5 "DI_AEB_UNAVAILABLE_DI_STATE" 6 "DI_AEB_UNAVAILABLE_EBR_UNAVAILABLE" 7 "DI_AEB_UNAVAILABLE_EPB" 2 "DI_AEB_UNAVAILABLE_GEAR" 8 "DI_AEB_UNAVAILABLE_HYSTERESIS" 4 "DI_AEB_UNAVAILABLE_NEGATIVE_SPEED" 0 "DI_AEB_UNAVAILABLE_NONE" 10 "DI_AEB_UNAVAILABLE_REVERSE_SPEED" 3 "DI_AEB_UNAVAILABLE_SKID" 9 "DI_AEB_UNAVAILABLE_TRACK_MODE" ; -VAL_ 1879 DIF_brkStState 6 "BRKST_STATE_FINISHED" 1 "BRKST_STATE_IDLE" 5 "BRKST_STATE_INTERRUPTED" 4 "BRKST_STATE_RUNNING_PRESSED" 3 "BRKST_STATE_RUNNING_PRESSING" 2 "BRKST_STATE_RUNNING_UNPRESSED" 0 "BRKST_STATE_UNAVAILABLE" ; VAL_ 1879 DIF_fluxState 5 "DI_FLUXSTATE_ENABLED" 9 "DI_FLUXSTATE_FAULT" 4 "DI_FLUXSTATE_FLUX_DOWN" 3 "DI_FLUXSTATE_FLUX_UP" 6 "DI_FLUXSTATE_ICONTROL" 2 "DI_FLUXSTATE_STANDBY" 0 "DI_FLUXSTATE_START" 10 "DI_FLUXSTATE_STATIONARY_WASTE" 1 "DI_FLUXSTATE_TEST" 7 "DI_FLUXSTATE_VCONTROL" ; VAL_ 1879 DIF_gateDriveState 3 "PSTG_GD_STATE_CONFIGURED" 2 "PSTG_GD_STATE_CONFIGURING" 0 "PSTG_GD_STATE_INIT" 4 "PSTG_GD_STATE_NOT_CONFIGURED" 1 "PSTG_GD_STATE_SELFTEST" ; VAL_ 1879 DIF_gateDriveSupplyState 0 "PSTG_GD_SUPPLY_DOWN" 3 "PSTG_GD_SUPPLY_FALLING" 1 "PSTG_GD_SUPPLY_RISING" 2 "PSTG_GD_SUPPLY_UP" ; -VAL_ 1879 DIF_immobilizerCondition 1 "DI_IMM_CONDITION_LEARNED" 0 "DI_IMM_CONDITION_VIRGIN_SNA" ; VAL_ 1879 DIF_magnetTempEst 0 "SNA" ; -VAL_ 1879 DIF_motorType 8 "DI_MOTOR_F1A" 10 "DI_MOTOR_F1AC" 11 "DI_MOTOR_F2AB" 12 "DI_MOTOR_F2AC" 13 "DI_MOTOR_F2AD" 14 "DI_MOTOR_F2AE" 26 "DI_MOTOR_F2AE_AL" 15 "DI_MOTOR_F2APMSRM" 17 "DI_MOTOR_IM100A" 19 "DI_MOTOR_IM100B" 22 "DI_MOTOR_IM130C" 24 "DI_MOTOR_IM130D" 25 "DI_MOTOR_IM130D_AL" 27 "DI_MOTOR_IM130D_AL_POSCO" 20 "DI_MOTOR_IM216A" 3 "DI_MOTOR_M7M3" 4 "DI_MOTOR_M7M4" 5 "DI_MOTOR_M7M5" 7 "DI_MOTOR_M7M6" 6 "DI_MOTOR_M8A" 16 "DI_MOTOR_PM216A" 18 "DI_MOTOR_PM216B" 21 "DI_MOTOR_PM216C" 23 "DI_MOTOR_PM216D" 1 "DI_MOTOR_ROADSTER_BASE" 2 "DI_MOTOR_ROADSTER_SPORT" 0 "DI_MOTOR_SNA" 9 "DI_MOTOR_SSR1A" ; +VAL_ 1879 DIF_motorType 8 "DI_MOTOR_F1A" 10 "DI_MOTOR_F1AC" 11 "DI_MOTOR_F2AB" 12 "DI_MOTOR_F2AC" 13 "DI_MOTOR_F2AD" 14 "DI_MOTOR_F2AE" 26 "DI_MOTOR_F2AE_AL" 15 "DI_MOTOR_F2APMSRM" 17 "DI_MOTOR_IM100A" 19 "DI_MOTOR_IM100B" 22 "DI_MOTOR_IM130C" 24 "DI_MOTOR_IM130D" 25 "DI_MOTOR_IM130D_AL" 27 "DI_MOTOR_IM130D_AL_POSCO" 20 "DI_MOTOR_IM216A" 3 "DI_MOTOR_M7M3" 4 "DI_MOTOR_M7M4" 5 "DI_MOTOR_M7M5" 7 "DI_MOTOR_M7M6" 6 "DI_MOTOR_M8A" 16 "DI_MOTOR_PM216A" 18 "DI_MOTOR_PM216B" 21 "DI_MOTOR_PM216C" 30 "DI_MOTOR_PM216CSR" 31 "DI_MOTOR_PM216CSR_N42" 23 "DI_MOTOR_PM216D" 32 "DI_MOTOR_PM228B" 28 "DI_MOTOR_PM275B" 29 "DI_MOTOR_PM350B" 1 "DI_MOTOR_ROADSTER_BASE" 2 "DI_MOTOR_ROADSTER_SPORT" 0 "DI_MOTOR_SNA" 9 "DI_MOTOR_SSR1A" ; VAL_ 1879 DIF_oilPumpPhaseVoltage 255 "SNA" ; VAL_ 1879 DIF_oilPumpPressureEstimateMax 255 "SNA" ; VAL_ 1879 DIF_oilPumpPressureExpectedMin 255 "SNA" ; -VAL_ 1879 DIF_opdUnavailableReason 1 "DI_OPD_UNAVAILABLE_DISABLED" 4 "DI_OPD_UNAVAILABLE_DI_SYS_STATE" 7 "DI_OPD_UNAVAILABLE_EPB_FAULT" 3 "DI_OPD_UNAVAILABLE_GEAR" 11 "DI_OPD_UNAVAILABLE_GRADE_ESTIMATE" 5 "DI_OPD_UNAVAILABLE_INVALID_BRAKE_SENSE" 14 "DI_OPD_UNAVAILABLE_INVALID_MSPD" 15 "DI_OPD_UNAVAILABLE_MOTOR_HOLD_TIMEOUT" 0 "DI_OPD_UNAVAILABLE_NONE" 13 "DI_OPD_UNAVAILABLE_PARKED" 2 "DI_OPD_UNAVAILABLE_PM_FAULT" 6 "DI_OPD_UNAVAILABLE_SKID" 12 "DI_OPD_UNAVAILABLE_TORQUE_LIMIT" 8 "DI_OPD_UNAVAILABLE_TRACK_MODE" 10 "DI_OPD_UNAVAILABLE_TRACTION_CONTROL" 9 "DI_OPD_UNAVAILABLE_VELOCITY_ESTIMATE" ; VAL_ 1879 DIF_powerStageSafeState 2 "PSTG_SAFESTATE_3PS_HIGH" 3 "PSTG_SAFESTATE_3PS_LOW" 1 "PSTG_SAFESTATE_ALL_OFF" 0 "PSTG_SAFESTATE_NONE" ; +VAL_ 1879 DIF_pwmState 1 "PWMSTATE_DPWM2" 2 "PWMSTATE_OPWM1" 3 "PWMSTATE_OPWM2" 0 "PWMSTATE_SVPWM" ; VAL_ 1879 DIF_rotorOffsetLearningState 9 "ROL_NUM_STATES" 2 "ROL_STATE_ACCELERATE" 5 "ROL_STATE_CORRECT" 8 "ROL_STATE_DONE" 0 "ROL_STATE_INIT" 4 "ROL_STATE_MEASURE" 3 "ROL_STATE_SHIFT" 6 "ROL_STATE_VERIFY" 1 "ROL_STATE_WAIT" 7 "ROL_STATE_WRITE" ; VAL_ 1879 DIF_ssmState 5 "SSM_STATE_ABORT" 4 "SSM_STATE_ENABLE" 8 "SSM_STATE_FAULT" 2 "SSM_STATE_IDLE" 7 "SSM_STATE_RETRY" 3 "SSM_STATE_STANDBY" 0 "SSM_STATE_START" 1 "SSM_STATE_UNAVAILABLE" 6 "SSM_STATE_WAIT_FOR_RETRY" ; VAL_ 1879 DIF_tcMaxRequest 255 "SNA" ; VAL_ 1879 DIF_tcMinRequest 255 "SNA" ; VAL_ 1879 DIF_usmState 3 "USM_STATE_ABORT" 4 "USM_STATE_ENABLE" 5 "USM_STATE_FAULT" 2 "USM_STATE_RETRY" 1 "USM_STATE_STANDBY" 0 "USM_STATE_START" 6 "USM_STATE_UNAVAILABLE" 7 "USM_STATE_WAIT_FOR_RETRY" ; -VAL_ 1879 DIF_velocityEstimatorState 4 "VE_STATE_BACKUP_MOTOR" 2 "VE_STATE_BACKUP_WHEELS_A" 3 "VE_STATE_BACKUP_WHEELS_B" 0 "VE_STATE_NOT_INITIALIZED" 1 "VE_STATE_WHEELS_NORMAL" ; VAL_ 694 DI_ptcStateUI 0 "FAULTED" 1 "BACKUP" 2 "ON" 3 "SNA" ; -VAL_ 694 DI_tractionControlModeUI 0 "NORMAL" 1 "SLIP_START" 2 "DEV_MODE_1" 3 "DEV_MODE_2" 4 "ROLLS_MODE" 5 "DYNO_MODE" ; +VAL_ 694 DI_tractionControlModeUI 0 "NORMAL" 1 "SLIP_START" 2 "DEV_MODE_1" 3 "DEV_MODE_2" 4 "ROLLS_MODE" 5 "DYNO_MODE" 6 "OFFROAD_ASSIST" ; VAL_ 545 VCFRONT_LVPowerStateIndex 0 "Mux0" 1 "Mux1" ; VAL_ 545 VCFRONT_CMPDLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; VAL_ 545 VCFRONT_amplifierLVRequest 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; @@ -3969,6 +3944,16 @@ VAL_ 545 VCFRONT_tunerLVRequest 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ VAL_ 545 VCFRONT_uiHiCurrentLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; VAL_ 545 VCFRONT_vcleftHiCurrentLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; VAL_ 545 VCFRONT_vcrightHiCurrentLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_amplifierLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_eFuseLockoutStatus 2 "EFUSE_LOCKOUT_STATUS_ACTIVE" 0 "EFUSE_LOCKOUT_STATUS_IDLE" 1 "EFUSE_LOCKOUT_STATUS_PENDING" ; +VAL_ 549 VCRIGHT_hvcLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_lumbarLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_ocsLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_ptcLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_rcmLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_rearOilPumpLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_tunerLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 549 VCRIGHT_vehiclePowerStateDBG 2 "VEHICLE_POWER_STATE_ACCESSORY" 1 "VEHICLE_POWER_STATE_CONDITIONING" 3 "VEHICLE_POWER_STATE_DRIVE" 0 "VEHICLE_POWER_STATE_OFF" ; VAL_ 753 VCFRONT_eFuseDebugStatusIndex 8 "VCF_DBG_STS_AUTOPILOT_1" 9 "VCF_DBG_STS_AUTOPILOT_2" 4 "VCF_DBG_STS_EPAS3P" 5 "VCF_DBG_STS_EPAS3S" 6 "VCF_DBG_STS_ESP_MOTOR" 7 "VCF_DBG_STS_ESP_VALVE" 12 "VCF_DBG_STS_HEADLAMPS" 3 "VCF_DBG_STS_IBOOSTER" 18 "VCF_DBG_STS_INVALID" 17 "VCF_DBG_STS_LV_BATTERY_DEBUG" 16 "VCF_DBG_STS_MISC_RAILS" 2 "VCF_DBG_STS_PCS" 14 "VCF_DBG_STS_PUMPS" 15 "VCF_DBG_STS_RAILS_A_B" 10 "VCF_DBG_STS_SLEEP_BYPASS" 11 "VCF_DBG_STS_UI" 13 "VCF_DBG_STS_VBAT_FUSED_HIGH_CURRENT" 1 "VCF_DBG_STS_VCLEFT" 0 "VCF_DBG_STS_VCRIGHT" ; VAL_ 753 VCFRONT_EPAS3PSelfTestResult 4 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_EFUSE_OUTPUT_SHORT" 8 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_HIGH_MALFUNCTION" 6 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_LOW_MALFUNCTION" 10 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_NOT_LATCHED" 7 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_CHANNEL_OPEN" 5 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_STUCK_ON" 3 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_RAILS_UNSTABLE" 9 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_TURN_OFF_PATH_TOO_SLOW" 0 "EFUSE_SELF_TEST_EFUSE_RESULT_NOT_RUN" 2 "EFUSE_SELF_TEST_EFUSE_RESULT_PASSED" 1 "EFUSE_SELF_TEST_EFUSE_RESULT_RUNNING" 11 "EFUSE_SELF_TEST_EFUSE_RESULT_SKIPPED" ; VAL_ 753 VCFRONT_EPAS3PState 2 "EFUSE_STATE_LOCKED_OUT" 0 "EFUSE_STATE_OFF" 1 "EFUSE_STATE_ON" ; @@ -3980,9 +3965,9 @@ VAL_ 753 VCFRONT_ESPValveState 2 "EFUSE_STATE_LOCKED_OUT" 0 "EFUSE_STATE_OFF" 1 VAL_ 753 VCFRONT_PCSState 2 "EFUSE_STATE_LOCKED_OUT" 0 "EFUSE_STATE_OFF" 1 "EFUSE_STATE_ON" ; VAL_ 753 VCFRONT_autopilot1State 2 "EFUSE_STATE_LOCKED_OUT" 0 "EFUSE_STATE_OFF" 1 "EFUSE_STATE_ON" ; VAL_ 753 VCFRONT_autopilot2State 2 "EFUSE_STATE_LOCKED_OUT" 0 "EFUSE_STATE_OFF" 1 "EFUSE_STATE_ON" ; -VAL_ 753 VCFRONT_headlampLeftTemperature -128 "SNA" ; +VAL_ 753 VCFRONT_headlampLeftTemperature 128 "SNA" ; VAL_ 753 VCFRONT_headlampLeftVoltage 255 "SNA" ; -VAL_ 753 VCFRONT_headlampRightTemperature -128 "SNA" ; +VAL_ 753 VCFRONT_headlampRightTemperature 128 "SNA" ; VAL_ 753 VCFRONT_headlampRightVoltage 255 "SNA" ; VAL_ 753 VCFRONT_iBoosterSelfTestResult 4 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_EFUSE_OUTPUT_SHORT" 8 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_HIGH_MALFUNCTION" 6 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_LOW_MALFUNCTION" 10 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_NOT_LATCHED" 7 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_CHANNEL_OPEN" 5 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_STUCK_ON" 3 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_RAILS_UNSTABLE" 9 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_TURN_OFF_PATH_TOO_SLOW" 0 "EFUSE_SELF_TEST_EFUSE_RESULT_NOT_RUN" 2 "EFUSE_SELF_TEST_EFUSE_RESULT_PASSED" 1 "EFUSE_SELF_TEST_EFUSE_RESULT_RUNNING" 11 "EFUSE_SELF_TEST_EFUSE_RESULT_SKIPPED" ; VAL_ 753 VCFRONT_iBoosterState 2 "EFUSE_STATE_LOCKED_OUT" 0 "EFUSE_STATE_OFF" 1 "EFUSE_STATE_ON" ; @@ -3992,103 +3977,140 @@ VAL_ 753 VCFRONT_rightControllerState 2 "EFUSE_STATE_LOCKED_OUT" 0 "EFUSE_STATE_ VAL_ 753 VCFRONT_vbatFusedSelfTestResult 4 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_EFUSE_OUTPUT_SHORT" 8 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_HIGH_MALFUNCTION" 6 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_LOW_MALFUNCTION" 10 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_NOT_LATCHED" 7 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_CHANNEL_OPEN" 5 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_STUCK_ON" 3 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_RAILS_UNSTABLE" 9 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_TURN_OFF_PATH_TOO_SLOW" 0 "EFUSE_SELF_TEST_EFUSE_RESULT_NOT_RUN" 2 "EFUSE_SELF_TEST_EFUSE_RESULT_PASSED" 1 "EFUSE_SELF_TEST_EFUSE_RESULT_RUNNING" 11 "EFUSE_SELF_TEST_EFUSE_RESULT_SKIPPED" ; VAL_ 753 VCFRONT_vcleftSelfTestResult 4 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_EFUSE_OUTPUT_SHORT" 8 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_HIGH_MALFUNCTION" 6 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_LOW_MALFUNCTION" 10 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_NOT_LATCHED" 7 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_CHANNEL_OPEN" 5 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_STUCK_ON" 3 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_RAILS_UNSTABLE" 9 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_TURN_OFF_PATH_TOO_SLOW" 0 "EFUSE_SELF_TEST_EFUSE_RESULT_NOT_RUN" 2 "EFUSE_SELF_TEST_EFUSE_RESULT_PASSED" 1 "EFUSE_SELF_TEST_EFUSE_RESULT_RUNNING" 11 "EFUSE_SELF_TEST_EFUSE_RESULT_SKIPPED" ; VAL_ 753 VCFRONT_vcrightSelfTestResult 4 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_EFUSE_OUTPUT_SHORT" 8 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_HIGH_MALFUNCTION" 6 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_ENABLE_LOW_MALFUNCTION" 10 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_NOT_LATCHED" 7 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_CHANNEL_OPEN" 5 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_POWER_FET_STUCK_ON" 3 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_RAILS_UNSTABLE" 9 "EFUSE_SELF_TEST_EFUSE_RESULT_FAILED_TURN_OFF_PATH_TOO_SLOW" 0 "EFUSE_SELF_TEST_EFUSE_RESULT_NOT_RUN" 2 "EFUSE_SELF_TEST_EFUSE_RESULT_PASSED" 1 "EFUSE_SELF_TEST_EFUSE_RESULT_RUNNING" 11 "EFUSE_SELF_TEST_EFUSE_RESULT_SKIPPED" ; -VAL_ 579 VCRIGHT_hvacStatusIndex 2 "END" 0 "STATUS_UI" 1 "STATUS_VCFRONT" ; +VAL_ 578 VCLEFT_cpLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 578 VCLEFT_diLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 578 VCLEFT_lumbarLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 578 VCLEFT_rcmLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 578 VCLEFT_sccmLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 578 VCLEFT_swcLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 578 VCLEFT_tpmsLVState 3 "LV_FAULT" 2 "LV_GOING_DOWN" 0 "LV_OFF" 1 "LV_ON" ; +VAL_ 578 VCLEFT_vehiclePowerStateDBG 2 "VEHICLE_POWER_STATE_ACCESSORY" 1 "VEHICLE_POWER_STATE_CONDITIONING" 3 "VEHICLE_POWER_STATE_DRIVE" 0 "VEHICLE_POWER_STATE_OFF" ; +VAL_ 579 VCRIGHT_hvacStatusIndex 3 "END" 0 "STATUS_UI" 1 "STATUS_VCFRONT" 2 "STATUS_VCFRONT2" ; VAL_ 579 VCRIGHT_hvacACRunning 0 "OFF" 1 "ON" ; VAL_ 579 VCRIGHT_hvacAirDistributionMode 4 "DEFROST" 5 "DEFROST_FLOOR" 6 "DEFROST_PANEL" 7 "DEFROST_PANEL_FLOOR" 1 "FLOOR" 0 "NONE" 2 "PANEL" 3 "PANEL_FLOOR" ; VAL_ 579 VCRIGHT_hvacBlowerSegment 1 "1" 10 "10" 11 "11" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6" 7 "7" 8 "8" 9 "9" 0 "OFF" ; VAL_ 579 VCRIGHT_hvacDuctTargetLeft 255 "SNA" ; VAL_ 579 VCRIGHT_hvacDuctTargetRight 255 "SNA" ; +VAL_ 579 VCRIGHT_hvacEvapInletTempEstimat 1023 "SNA" ; +VAL_ 579 VCRIGHT_hvacModelInitStatus 4 "INIT_FORWARD_CALC" 2 "INIT_FROM_SENSORS" 3 "INIT_FROM_SENSORS_PREDICTION_ERROR" 5 "INIT_WAITING_FOR_SENSORS" 1 "NOT_INIT_WAIT_FOR_GTW" 0 "NOT_INIT_WAIT_FOR_SENSORS" ; VAL_ 579 VCRIGHT_hvacPowerState 0 "OFF" 1 "ON" 4 "OVERHEAT_PROTECT" 3 "OVERHEAT_PROTECT_FANONLY" 2 "PRECONDITION" ; VAL_ 579 VCRIGHT_hvacRecirc 0 "AUTO" 2 "FRESH" 1 "RECIRC" ; VAL_ 579 VCRIGHT_hvacSecondRowState 0 "AUTO" 4 "HIGH" 2 "LOW" 3 "MED" 1 "OFF" ; -VAL_ 579 VCRIGHT_tempDuctLeft 511 "SNA" ; -VAL_ 579 VCRIGHT_tempDuctRight 511 "SNA" ; +VAL_ 579 VCRIGHT_hvacVentStatus 0 "BOTH" 1 "LEFT" 2 "RIGHT" ; +VAL_ 579 VCRIGHT_tempDuctLeft 255 "SNA" ; +VAL_ 579 VCRIGHT_tempDuctLeftLower 255 "SNA" ; +VAL_ 579 VCRIGHT_tempDuctLeftUpper 255 "SNA" ; +VAL_ 579 VCRIGHT_tempDuctRight 255 "SNA" ; +VAL_ 579 VCRIGHT_tempDuctRightLower 255 "SNA" ; +VAL_ 579 VCRIGHT_tempDuctRightUpper 255 "SNA" ; +VAL_ 524 VCRIGHT_hvacPerfTestState 2 "BLOWING" 0 "STOPPED" 1 "WAITING" ; VAL_ 524 VCRIGHT_tempAmbientRaw 0 "SNA" ; VAL_ 524 VCRIGHT_tempEvaporator 2047 "SNA" ; VAL_ 524 VCRIGHT_tempEvaporatorTarget 255 "SNA" ; -VAL_ 691 VCRIGHT_logging1HzIndex 11 "END" 5 "HEATER_AND_DUCT_TARGETS" 7 "HVAC_ACTUATOR_ENDSTOP" 6 "HVAC_ACTUATOR_VOLTAGES" 8 "HVAC_ACTUATOR_ZEROSTOP" 4 "HVAC_COMFORT_SOLAR" 2 "HVAC_HUMIDITY_HEATER_TEMP" 9 "HVAC_MISCELLANEOUS_1" 10 "HVAC_MISCELLANEOUS_2" 3 "HVAC_STATUS_AIRFLOW" 0 "HVAC_TEMP_SENSORS_AND_ESTIMATES_1" 1 "HVAC_TEMP_SENSORS_AND_ESTIMATES_2" ; -VAL_ 691 VCRIGHT_cabinTempBreathLevel 255 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempGlassRoof 255 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempInterior 240 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempInteriorL2 240 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempInteriorL3 240 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempInteriorSunny 240 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempInteriorSunnyL2 240 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempInteriorSunnyL3 240 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempSideGlassLeft 255 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempSideGlassRight 255 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempTopPadAir 240 "SNA" ; -VAL_ 691 VCRIGHT_cabinTempWindshield 255 "SNA" ; -VAL_ 691 VCRIGHT_convectionDeliveredLeft 255 "SNA" ; -VAL_ 691 VCRIGHT_convectionDeliveredRight 255 "SNA" ; -VAL_ 691 VCRIGHT_convectionTargetLeft 255 "SNA" ; -VAL_ 691 VCRIGHT_convectionTargetRight 255 "SNA" ; -VAL_ 691 VCRIGHT_filterLifeBlowerTorque 1023 "SNA" ; -VAL_ 691 VCRIGHT_hvacAirFlowModeRow1 4 "DEFROST" 5 "DEFROST_FLOOR" 6 "DEFROST_PANEL" 7 "DEFROST_PANEL_FLOOR" 1 "FLOOR" 0 "NONE" 2 "PANEL" 3 "PANEL_FLOOR" ; -VAL_ 691 VCRIGHT_hvacAirFlowModeRow2 4 "DEFROST" 5 "DEFROST_FLOOR" 6 "DEFROST_PANEL" 7 "DEFROST_PANEL_FLOOR" 1 "FLOOR" 0 "NONE" 2 "PANEL" 3 "PANEL_FLOOR" ; -VAL_ 691 VCRIGHT_hvacAirflowReason 10 "CABIN_OVERHEAT_PROTECT" 9 "CABIN_PURGE" 3 "CABIN_TEMPERATURE_CONTROL" 8 "COLD_DUCT_LOCKOUT" 12 "EVAP_DRYING" 0 "HVAC_OFF" 1 "MANUAL_FAN_SPEED" 4 "MINIMUM_AUTO_AIRFLOW" 13 "NONE" 7 "OCCUPANT_CONVECTION_REQUIREMENT" 11 "SCREEN_PROTECTION" 5 "STRATIFICATION_GLASS_ROOF" 6 "STRATIFICATION_INTERIOR_SURFACES" 2 "UI_SHORTCUT" ; -VAL_ 691 VCRIGHT_hvacAutoTransitionReason 10 "BI_LEVEL_LANDING" 14 "CABIN_PURGE" 11 "DEFOG_OVERRIDE" 9 "DUCTS_COLD" 17 "DUCT_TARGETS_INVALID" 18 "END" 15 "EVAP_DRYING" 6 "EXCESS_OCCUPANT_CONVECTION" 1 "HUMIDITY_HIGH" 3 "HUMIDITY_LOW" 2 "HUMIDITY_MODERATE" 16 "HVAC_OFF" 0 "NONE" 7 "OCCUPANT_CONVECTION_REQUIREMENT" 13 "SET_TEMP_HI" 12 "SET_TEMP_LO" 5 "TEMP_TARGET_ABOVE_THRESHOLD" 4 "TEMP_TARGET_BELOW_THRESHOLD" 8 "TEMP_TARGET_LOW" ; -VAL_ 691 VCRIGHT_solarLoadLeftOccupant 127 "SNA" ; -VAL_ 691 VCRIGHT_solarLoadOnVehFiltered 255 "SNA" ; -VAL_ 691 VCRIGHT_solarLoadOnVehicle 255 "SNA" ; -VAL_ 691 VCRIGHT_solarLoadRightOccupant 127 "SNA" ; -VAL_ 691 VCRIGHT_tempDuctModeledLeft 511 "SNA" ; -VAL_ 691 VCRIGHT_tempDuctModeledRight 511 "SNA" ; -VAL_ 691 VCRIGHT_tempHtrSurfaceModeledL 511 "SNA" ; -VAL_ 691 VCRIGHT_tempHtrSurfaceModeledR 511 "SNA" ; -VAL_ 691 VCRIGHT_tempIncarCabinDeep 255 "SNA" ; -VAL_ 691 VCRIGHT_tempIncarCabinMid 250 "SNA" ; -VAL_ 691 VCRIGHT_tempIncarCabinProbe 255 "SNA" ; -VAL_ 705 VCFront10HzIndex 0 "COOLANT_PUMPS" 1 "THERMAL_FAN" 2 "FIVE_WAY_VALVE" 3 "REFRIGERANT_LV8907" 4 "COMPRESSOR" 5 "EXV_EVAP_SOLENOID_AIRFLOW" 6 "END" ; -VAL_ 705 VCfrontfiveWayValveMode 0 "SERIES" 1 "PARALLEL" ; -VAL_ 705 VCfrontcoolantTempBasedMode 0 "SERIES" 1 "PARALLEL" ; -VAL_ 705 VCfrontfiveWayValveState 0 "UNPOWERED" 1 "CALIBRATING" 2 "READY" 3 "FAULT" ; -VAL_ 705 VCfrontcompressorState 0 "STANDBY" 1 "READY" 2 "RUNNING" 3 "FAULT" ; VAL_ 737 VCFRONT_statusIndex 0 "VCF_STS_IDX_BODY_CONTROLS" 2 "VCF_STS_IDX_HOMELINK" 6 "VCF_STS_IDX_INVALID" 4 "VCF_STS_IDX_LV_BATTERY" 3 "VCF_STS_IDX_REFRIGERANT_SYSTEM" 5 "VCF_STS_IDX_SYSTEM_HEALTH" 1 "VCF_STS_IDX_VEHICLE_STATE" ; VAL_ 737 VCFRONT_AS8510Voltage 4095 "SNA" ; VAL_ 737 VCFRONT_airCompressorStatus 4 "VCFRONT_AIR_COMPRESSOR_STATUS_FAULT" 0 "VCFRONT_AIR_COMPRESSOR_STATUS_OFF" 1 "VCFRONT_AIR_COMPRESSOR_STATUS_ON" 5 "VCFRONT_AIR_COMPRESSOR_STATUS_RETRY_AVAILABLE" 7 "VCFRONT_AIR_COMPRESSOR_STATUS_SNA" 2 "VCFRONT_AIR_COMPRESSOR_STATUS_TURNING_OFF" 3 "VCFRONT_AIR_COMPRESSOR_STATUS_TURNING_ON" ; -VAL_ 737 VCFRONT_batterySMState 1 "BATTERY_SM_STATE_CHARGE" 2 "BATTERY_SM_STATE_DISCHARGE" 6 "BATTERY_SM_STATE_DISCONNECTED_BATTERY_TEST" 7 "BATTERY_SM_STATE_FAULT" 0 "BATTERY_SM_STATE_INIT" 5 "BATTERY_SM_STATE_OTA_STANDBY" 4 "BATTERY_SM_STATE_RESISTANCE_ESTIMATION" 3 "BATTERY_SM_STATE_STANDBY" ; -VAL_ 737 VCFRONT_crashDetectedType 1 "CRASH_DETECTED_TYPE_MINOR" 0 "CRASH_DETECTED_TYPE_NONE" 2 "CRASH_DETECTED_TYPE_SEVERE" ; -VAL_ 737 VCFRONT_crashState 0 "CRASH_STATE_IDLE" 1 "CRASH_STATE_MINOR" 2 "CRASH_STATE_SEVERE" ; +VAL_ 737 VCFRONT_batterySMState 1 "BATTERY_SM_STATE_CHARGE" 2 "BATTERY_SM_STATE_DISCHARGE" 6 "BATTERY_SM_STATE_DISCONNECTED_BATTERY_TEST" 8 "BATTERY_SM_STATE_FAULT" 0 "BATTERY_SM_STATE_INIT" 5 "BATTERY_SM_STATE_OTA_STANDBY" 4 "BATTERY_SM_STATE_RESISTANCE_ESTIMATION" 7 "BATTERY_SM_STATE_SHORTED_CELL_TEST" 3 "BATTERY_SM_STATE_STANDBY" ; +VAL_ 737 VCFRONT_coolantFillRoutineStatus 3 "FAULTED" 1 "MOVING_TO_FILL_POSITION" 0 "NOT_READY" 2 "READY_TO_FILL" ; +VAL_ 737 VCFRONT_crashDetectedType 1 "CRASH_DETECTED_TYPE_MINOR_1" 2 "CRASH_DETECTED_TYPE_MINOR_2" 0 "CRASH_DETECTED_TYPE_NONE" 3 "CRASH_DETECTED_TYPE_SEVERE" ; +VAL_ 737 VCFRONT_crashState 0 "CRASH_STATE_IDLE" 1 "CRASH_STATE_MINOR_1" 2 "CRASH_STATE_MINOR_2" 3 "CRASH_STATE_SEVERE" ; VAL_ 737 VCFRONT_frunkLatchStatus 5 "LATCH_AJAR" 2 "LATCH_CLOSED" 3 "LATCH_CLOSING" 7 "LATCH_DEFAULT" 8 "LATCH_FAULT" 1 "LATCH_OPENED" 4 "LATCH_OPENING" 0 "LATCH_SNA" 6 "LATCH_TIMEOUT" ; +VAL_ 737 VCFRONT_frunkLatchType 1 "FRUNK_LATCH_TYPE_DOUBLE_ACTUATOR" 2 "FRUNK_LATCH_TYPE_DOUBLE_PULL" 0 "FRUNK_LATCH_TYPE_UNKNOWN" ; VAL_ 737 VCFRONT_homelinkCommStatus 3 "HOMELINK_COMM_STATUS_FAULT" 1 "HOMELINK_COMM_STATUS_OFF" 2 "HOMELINK_COMM_STATUS_ON" 0 "HOMELINK_COMM_STATUS_SNA" ; +VAL_ 737 VCFRONT_hvacPerfTestCommand 2 "BLOW" 1 "INIT" 0 "NOT_STARTED" 3 "STOP" ; VAL_ 737 VCFRONT_iBoosterStateDBG 4 "IBOOSTER_FORCE_OFF" 2 "IBOOSTER_GOING_DOWN" 0 "IBOOSTER_OFF" 1 "IBOOSTER_ON" 3 "IBOOSTER_WRITING_DATA_SHUTDOWN" ; +VAL_ 737 VCFRONT_passengerBuckleStatus 1 "BUCKLED" 0 "UNBUCKLED" ; VAL_ 737 VCFRONT_pressureRefrigDischarge 255 "SNA" ; VAL_ 737 VCFRONT_pressureRefrigSuction 127 "SNA" ; +VAL_ 737 VCFRONT_radarHeaterState 4 "HEATER_STATE_FAULT" 2 "HEATER_STATE_OFF" 3 "HEATER_STATE_OFF_UNAVAILABLE" 1 "HEATER_STATE_ON" 0 "HEATER_STATE_SNA" ; +VAL_ 737 VCFRONT_refrigFillRoutineStatus 3 "FAULTED" 1 "MOVING_TO_FILL_POSITION" 0 "NOT_READY" 2 "READY_TO_FILL" ; VAL_ 737 VCFRONT_vbatMonitorVoltage 4095 "SNA" ; VAL_ 737 VCFRONT_vehicleStatusDBG 10 "VEHICLE_STATUS_ACCESSORY" 11 "VEHICLE_STATUS_ACCESSORY_PLUS" 3 "VEHICLE_STATUS_BATTERY_POST_WAKE" 12 "VEHICLE_STATUS_CONDITIONING" 14 "VEHICLE_STATUS_CRASH" 13 "VEHICLE_STATUS_DRIVE" 9 "VEHICLE_STATUS_HV_UP_STANDBY" 0 "VEHICLE_STATUS_INIT" 1 "VEHICLE_STATUS_LOW_POWER_STANDBY" 8 "VEHICLE_STATUS_LV_AWAKE" 7 "VEHICLE_STATUS_LV_SHUTDOWN" 15 "VEHICLE_STATUS_OTA" 17 "VEHICLE_STATUS_RESET" 2 "VEHICLE_STATUS_SILENT_WAKE" 5 "VEHICLE_STATUS_SLEEP_SHUTDOWN" 6 "VEHICLE_STATUS_SLEEP_STANDBY" 4 "VEHICLE_STATUS_SYSTEM_CHECKS" 16 "VEHICLE_STATUS_TURN_ON_RAILS" ; VAL_ 737 VCFRONT_voltageProfile 3 "VOLTAGE_PROFILE_ALWAYS_CLOSED_CONTACTORS" 0 "VOLTAGE_PROFILE_CHARGE" 1 "VOLTAGE_PROFILE_FLOAT" 2 "VOLTAGE_PROFILE_REDUCED_FLOAT" ; VAL_ 737 VCFRONT_wiperPosition 3 "WIPER_POSITION_DELAYED_REST" 2 "WIPER_POSITION_DEPRESSED_PARK" 1 "WIPER_POSITION_SERVICE" 0 "WIPER_POSITION_SNA" 4 "WIPER_POSITION_WIPING" ; VAL_ 737 VCFRONT_wiperSpeed 2 "WIPER_SPEED_1" 3 "WIPER_SPEED_2" 4 "WIPER_SPEED_3" 5 "WIPER_SPEED_4" 6 "WIPER_SPEED_5" 8 "WIPER_SPEED_HIGH" 7 "WIPER_SPEED_LOW" 1 "WIPER_SPEED_OFF" 0 "WIPER_SPEED_SNA" ; VAL_ 737 VCFRONT_wiperState 9 "WIPER_STATE_CONT_FAST" 10 "WIPER_STATE_CONT_SLOW" 3 "WIPER_STATE_DELAYED_REST" 2 "WIPER_STATE_FAULT" 7 "WIPER_STATE_INTERMITTENT_HIGH" 8 "WIPER_STATE_INTERMITTENT_LOW" 12 "WIPER_STATE_INT_AUTO_HIGH" 11 "WIPER_STATE_INT_AUTO_LOW" 6 "WIPER_STATE_MOMENTARY_WIPE" 4 "WIPER_STATE_PARK" 1 "WIPER_STATE_SERVICE" 0 "WIPER_STATE_SNA" 5 "WIPER_STATE_WASH" ; -VAL_ 897 VCFRONT_logging1HzIndex 0 "COOLANT" 11 "END" 1 "FAN_DEMAND_CONDENSER_AND_FET_TEMPS" 2 "FIVE_WAY_VALVE" 3 "HCML_LED_TEMPS" 4 "HCMR_LED_TEMPS" 6 "HEADLAMP_AIM" 5 "HOMELINK" 9 "HP_CONTROL_LOOP_AND_STATE" 10 "HP_CYCLE_MODEL" 8 "HP_DATA_AND_ACCUMULATORS" 7 "HP_EXV_RANGE" ; -VAL_ 897 VCFRONT_HCML_bladeTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCML_diffuseTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCML_highBeamTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCML_lowBeamSpotTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCML_turnTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCMR_bladeTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCMR_diffuseTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCMR_highBeamTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCMR_lowBeamSpotTemp -128 "SNA" ; -VAL_ 897 VCFRONT_HCMR_turnTemp -128 "SNA" ; -VAL_ 897 VCFRONT_fiveWayValveCountRange 1023 "SNA" ; -VAL_ 897 VCFRONT_fiveWayValveRadBypass 127 "SNA" ; -VAL_ 897 VCFRONT_fiveWayValveRecalReason 3 "CALIBRATION_FAULT_NO_TRAVEL" 2 "GENERAL_FAULT" 1 "MAX_TRAVEL" 5 "MOTOR_FEEDBACK_INTERRUPTED" 4 "SELF_TEST" 0 "UNDEFINED" ; +VAL_ 897 VCFRONT_logging1HzIndex 18 "BODY_CONTROL" 0 "COOLANT" 19 "COOLANT_2" 2 "COOLANT_VALVE" 20 "END" 1 "FAN_DEMAND_CONDENSER_AND_FET_TEMPS" 3 "HCML_LED_TEMPS" 4 "HCMR_LED_TEMPS" 6 "HEADLAMP_AIM" 5 "HOMELINK" 15 "HP_ARBITRATION" 9 "HP_CONTROL_LOOP_AND_STATE" 10 "HP_CYCLE_MODEL" 8 "HP_DATA_AND_ACCUMULATORS" 12 "HP_DISSIPATION_AND_POWER" 11 "HP_EXV_CALIBRATION" 7 "HP_EXV_RANGE" 17 "HP_MODE_OPTIONS_AND_ESTIMATES" 16 "HP_MODE_SELECT_AND_ESTIMATES" 14 "HP_PRESSURE_CONTROL" 13 "HP_TEMPS_AND_DEMANDS" ; +VAL_ 897 VCFRONT_HCML_bladeTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCML_diffuseTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCML_highBeamTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCML_lowBeamSpotTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCML_turnTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCMR_bladeTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCMR_diffuseTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCMR_highBeamTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCMR_lowBeamSpotTemp 128 "SNA" ; +VAL_ 897 VCFRONT_HCMR_turnTemp 128 "SNA" ; +VAL_ 897 VCFRONT_coolantValveCountRange 1023 "SNA" ; +VAL_ 897 VCFRONT_coolantValveRadBypass 127 "SNA" ; +VAL_ 897 VCFRONT_coolantValveRecalReason 3 "CALIBRATION_FAULT_NO_TRAVEL" 2 "GENERAL_FAULT" 1 "MAX_TRAVEL" 5 "MOTOR_FEEDBACK_INTERRUPTED" 6 "NVRAM_LOSS" 4 "SELF_TEST" 7 "SYSTEM_LEVEL_FAULT_RESPONSE" 0 "UNDEFINED" ; +VAL_ 897 VCFRONT_drlMode 2 "DRL_MODE_DRL" 0 "DRL_MODE_OFF" 1 "DRL_MODE_POSITION" ; VAL_ 897 VCFRONT_homelinkRegionCode 5 "HOMELINK_REGION_CODE_AMERICAS" 9 "HOMELINK_REGION_CODE_CHINA" 1 "HOMELINK_REGION_CODE_EUROPE" 8 "HOMELINK_REGION_CODE_REST_OF_WORLD" 0 "HOMELINK_REGION_CODE_UNKNOWN" ; +VAL_ 897 VCFRONT_hpMode 2 "AMBIENT_SOURCE" 15 "BATTERY_COOL" 17 "BATTERY_COOL_CABIN_CONDENSER" 16 "BATTERY_COOL_CABIN_CONDENSER_REHEAT" 18 "BATTERY_COOL_CABIN_REHEAT" 19 "BATTERY_COOL_EVAPORATOR" 13 "BATTERY_HEAT_AMBIENT_SOURCE" 14 "BATTERY_HEAT_COP1" 11 "CABIN_COOL_EVAPORATOR" 12 "CABIN_COOL_EVAPORATOR_REHEAT" 4 "CABIN_HEAT_AMBIENT_SOURCE" 10 "CABIN_HEAT_BATTERY_COOL_REHEAT" 9 "CABIN_HEAT_BATTERY_HEAT_REHEAT_AMBIENT_SOURCE" 7 "CABIN_HEAT_BLEND" 8 "CABIN_HEAT_COP1" 6 "CABIN_HEAT_REHEAT_AMBIENT_SOURCE" 5 "CABIN_HEAT_REHEAT_SCAVENGE" 3 "CABIN_HEAT_SCAVENGE_ONLY" 1 "GENERAL" 0 "NONE" ; +VAL_ 897 VCFRONT_hpRefrigerantPurgeState 2 "COMPLETE" 1 "EVAP_PURGE" 0 "IDLE" ; VAL_ 897 VCFRONT_modeDesired 3 "AMBIENT_SOURCE" 2 "BLEND" 1 "PARALLEL" 0 "SERIES" ; -VAL_ 897 VCFRONT_modeTransitionID 23 "ENTER_AMBIENTSOURCE" 24 "EXIT_AMBIENTSOURCE" 20 "INIT" 21 "OVERRIDE" 6 "PARALLEL_2_drive_batteryWantsHeat" 7 "PARALLEL_3_drive_batteryWantsCool" 8 "PARALLEL_4_drive_batteryNeedsCool" 11 "PARALLEL_5_charge_batteryWantsHeat" 12 "PARALLEL_6_charge_batteryWantsCool" 15 "PARALLEL_7_fastCharge_batteryWantsCool" 16 "PARALLEL_8_fastCharge_batteryWantsHeat" 19 "PARALLEL_9_drive_batteryThermalLimiting" 0 "PARALLEL_F1_noFlowRequest" 28 "PAR_1_drive_chillerPassivelyCoolsBatt" 29 "PAR_2_FC_battHeatingNotNeeded" 3 "SERIES_1_drive_batteryWantsCool" 4 "SERIES_2_drive_batteryNeedsHeat" 5 "SERIES_3_drive_batteryWantsHeat" 9 "SERIES_4_charge_batteryNeedsHeat" 10 "SERIES_5_charge_batteryWantsHeat" 13 "SERIES_6_fastCharge_batteryNeedsHeat" 14 "SERIES_7_fastCharge_batteryWantsCool" 17 "SERIES_8_preConditioning_batteryNeedsHeat" 18 "SERIES_9_drive_driveUnitThermalLimiting" 1 "SERIES_F2_faultPumps" 2 "SERIES_F3_faultTempSensors" 25 "SER_1_drive_battBelowPassiveTarget" 26 "SER_2_drive_chillerPassivelyCools" 27 "SER_3_drive_radPassivelyCoolsBatt" 22 "UNDEFINED" ; -VAL_ 897 VCFRONT_passiveCoolingState 2 "ChillerAndRadCoolSeriesLoop" 1 "ChillerCoolsParallelBattLoop" 0 "ChillerCoolsSeriesLoop" ; +VAL_ 897 VCFRONT_modeTransitionID 23 "ENTER_AMBIENTSOURCE" 24 "EXIT_AMBIENTSOURCE" 20 "INIT" 21 "OVERRIDE" 6 "PARALLEL_2_drive_batteryWantsHeat" 7 "PARALLEL_3_drive_batteryWantsCool" 8 "PARALLEL_4_drive_batteryNeedsCool" 11 "PARALLEL_5_charge_batteryWantsHeat" 12 "PARALLEL_6_charge_batteryWantsCool" 15 "PARALLEL_7_fastCharge_batteryWantsCool" 16 "PARALLEL_8_fastCharge_batteryWantsHeat" 19 "PARALLEL_9_drive_batteryThermalLimiting" 0 "PARALLEL_F1_noFlowRequest" 33 "PAR_1_drive_battNeedsActiveCooling_evapDisabled" 34 "PAR_2_drive_ptNeedsActiveCooling" 35 "PAR_3_drive_chillerPassivelyCoolsBatt" 36 "PAR_4_drive_cannotPassivelyCoolBatt" 37 "PAR_5_drive_battAboveHotStagnationTemp" 38 "PAR_6_FC_battNeedsActiveCooling_evapDisabled" 39 "PAR_7_FC_battNeedsActiveCooling_evapEnabled" 40 "PAR_8_charge_battAbovePassiveTarget" 3 "SERIES_1_drive_batteryWantsCool" 4 "SERIES_2_drive_batteryNeedsHeat" 5 "SERIES_3_drive_batteryWantsHeat" 9 "SERIES_4_charge_batteryNeedsHeat" 10 "SERIES_5_charge_batteryWantsHeat" 13 "SERIES_6_fastCharge_batteryNeedsHeat" 14 "SERIES_7_fastCharge_batteryWantsCool" 17 "SERIES_8_preConditioning_batteryNeedsHeat" 18 "SERIES_9_drive_driveUnitThermalLimiting" 1 "SERIES_F2_faultPumps" 2 "SERIES_F3_faultTempSensors" 25 "SER_1_drive_battNeedsActiveCooling_evapEnabled" 26 "SER_2_drive_battBelowHotStagnationTemp" 27 "SER_3_drive_chillerPassivelyCools" 28 "SER_4_drive_radPassivelyCoolsBatt" 29 "SER_5_FC_battHeatingNeeded" 30 "SER_6_FC_battNeedsActiveCooling_evapDisabled" 31 "SER_7_FC_battNeedsActiveCooling_evapEnabled" 32 "SER_8_charge_battBelowPassiveTarget" 22 "UNDEFINED" ; +VAL_ 897 VCFRONT_passiveCoolingState 3 "CannotCoolBattery" 2 "ChillerAndRadCoolSeriesLoop" 1 "ChillerCoolsParallelBattLoop" 0 "ChillerCoolsSeriesLoop" ; VAL_ 897 VCFRONT_pumpBatteryFETTemp 255 "SNA" ; VAL_ 897 VCFRONT_pumpPowertrainFETTemp 255 "SNA" ; VAL_ 897 VCFRONT_radiatorFanFETTemp 255 "SNA" ; +VAL_ 897 VCFRONT_radiatorFanRunReason 1 "ACTIVE_MANAGER" 2 "AMBIENT_SNIFF" 5 "COAST_MODE" 4 "HEAT_PUMP" 6 "MIN_ON_GLOBAL" 7 "MIN_ON_NVH" 0 "NONE" 3 "NVH_MASKING" 8 "UDS" ; VAL_ 897 VCFRONT_tempRefrigSuction 255 "SNA" ; VAL_ 553 GearLeverPosition229 4 "Full Up" 3 "Half Up" 2 "Full Down" 1 "Half Down" 0 "Center" ; VAL_ 585 SCCM_highBeamStalkStatus 0 "IDLE" 1 "PULL" 2 "PUSH" 3 "SNA" ; VAL_ 585 SCCM_turnIndicatorStalkStatus 5 "DOWN_0_5" 6 "DOWN_1" 7 "DOWN_1_5" 8 "DOWN_2" 0 "IDLE" 9 "SNA" 1 "UP_0_5" 2 "UP_1" 3 "UP_1_5" 4 "UP_2" ; VAL_ 585 SCCM_washWipeButtonStatus 1 "1ST_DETENT" 2 "2ND_DETENT" 0 "NOT_PRESSED" 3 "SNA" ; +VAL_ 390 DIF_axleSpeed 32768 "SNA" ; +VAL_ 390 DIF_slavePedalPos 255 "SNA" ; +VAL_ 390 DIF_torqueActual 4096 "SNA" ; +VAL_ 390 DIF_torqueCommand 4096 "SNA" ; VAL_ 918 FrontOilPumpState396 7 "OIL_PUMP_SNA" 6 "OIL_PUMP_FAULTED" 2 "OIL_PUMP_COLD_STARTUP" 1 "OIL_PUMP_ENABLE" 0 "OIL_PUMP_STANDBY" ; -VAL_ 917 RearOilPumpState395 7 "OIL_PUMP_SNA" 6 "OIL_PUMP_FAULTED" 2 "OIL_PUMP_COLD_STARTUP" 1 "OIL_PUMP_ENABLE" 0 "OIL_PUMP_STANDBY" ; +VAL_ 917 DIR_oilPumpFluidTQF 1 "OIL_PUMP_FLUIDT_HIGH_CONFIDENCE" 0 "OIL_PUMP_FLUIDT_LOW_CONFIDENCE" ; +VAL_ 917 DIR_oilPumpState 2 "OIL_PUMP_COLD_STARTUP" 1 "OIL_PUMP_ENABLE" 6 "OIL_PUMP_FAULTED" 7 "OIL_PUMP_SNA" 0 "OIL_PUMP_STANDBY" ; +VAL_ 341 ESP_WheelRotationReR 3 "WR_NOT_DEFINABLE" 2 "WR_STANDSTILL" 1 "WR_BACKWARD" 0 "WR_FORWARD" ; +VAL_ 341 ESP_WheelRotationReL 3 "WR_NOT_DEFINABLE" 2 "WR_STANDSTILL" 1 "WR_BACKWARD" 0 "WR_FORWARD" ; +VAL_ 341 ESP_WheelRotationFrR 3 "WR_NOT_DEFINABLE" 2 "WR_STANDSTILL" 1 "WR_BACKWARD" 0 "WR_FORWARD" ; +VAL_ 341 ESP_WheelRotationFrL 3 "WR_NOT_DEFINABLE" 2 "WR_STANDSTILL" 1 "WR_BACKWARD" 0 "WR_FORWARD" ; +VAL_ 341 ESP_wheelSpeedsQF 1 "ALL_WSS_VALID" 0 "ONE_OR_MORE_WSS_INVALID" ; +VAL_ 341 ESP_vehicleStandstillSts 1 "STANDSTILL" 0 "NOT_STANDSTILL" ; +VAL_ 341 ESP_vehicleSpeed 1023 "ESP_VEHICLE_SPEED_SNA" ; +VAL_ 373 WheelSpeedRR175 8191 "SNA" ; +VAL_ 373 WheelSpeedRL175 8191 "SNA" ; +VAL_ 373 WheelSpeedFR175 8191 "SNA" ; +VAL_ 373 WheelSpeedFL175 8191 "SNA" ; +VAL_ 389 ESP_brakeTorqueFrL 4095 "SNA" ; +VAL_ 389 ESP_brakeTorqueFrR 4095 "SNA" ; +VAL_ 389 ESP_brakeTorqueReL 4095 "SNA" ; +VAL_ 389 ESP_brakeTorqueReR 4095 "SNA" ; +VAL_ 389 ESP_brakeTorqueQF 1 "IN_SPEC" 0 "UNDEFINABLE_ACCURACY" ; +VAL_ 962 VCLEFT_switchStatusIndex 0 "VCLEFT_SWITCH_STATUS_INDEX_0" 1 "VCLEFT_SWITCH_STATUS_INDEX_1" 2 "VCLEFT_SWITCH_STATUS_INDEX_INVALID" ; +VAL_ 962 VCLEFT_frontBuckleSwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontOccupancySwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatBackrestBack 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatBackrestForward 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatLiftDown 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatLiftUp 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatLumbarDown 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatLumbarIn 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatLumbarOut 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatLumbarUp 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatTiltDown 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatTiltUp 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatTrackBack 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_frontSeatTrackForward 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_rearCenterBuckleSwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_rearCenterOccupancySwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_rearLeftBuckleSwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_rearLeftOccupancySwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_rearRightOccupancySwitch 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_rightMirrorTilt 1 "MIRROR_TILT_DOWN" 4 "MIRROR_TILT_LEFT" 3 "MIRROR_TILT_RIGHT" 0 "MIRROR_TILT_STOP" 2 "MIRROR_TILT_UP" ; +VAL_ 962 VCLEFT_swcLeftPressed 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_swcLeftTiltLeft 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_swcLeftTiltRight 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_swcRightPressed 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_swcRightTiltLeft 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 962 VCLEFT_swcRightTiltRight 3 "SWITCH_FAULT" 1 "SWITCH_OFF" 2 "SWITCH_ON" 0 "SWITCH_SNA" ; +VAL_ 822 DI_performancePackage 0 "BASE" 3 "BASE_PLUS" 1 "PERFORMANCE" 4 "SNA" ; VAL_ 659 UI_accOvertakeEnable 0 "ACC_OVERTAKE_OFF" 1 "ACC_OVERTAKE_ON" 3 "SNA" ; VAL_ 659 UI_aebEnable 0 "AEB_OFF" 1 "AEB_ON" 3 "SNA" ; VAL_ 659 UI_aesEnable 0 "AES_OFF" 1 "AES_ON" 3 "SNA" ; @@ -4106,15 +4128,20 @@ VAL_ 659 UI_pedalSafetyEnable 0 "PEDAL_SAFETY_OFF" 1 "PEDAL_SAFETY_ON" 3 "SNA" ; VAL_ 659 UI_redLightStopSignEnable 0 "RLSSW_OFF" 1 "RLSSW_ON" 3 "SNA" ; VAL_ 659 UI_selfParkTune 15 "SNA" ; VAL_ 659 UI_steeringTuneRequest 0 "STEERING_TUNE_COMFORT" 2 "STEERING_TUNE_SPORT" 1 "STEERING_TUNE_STANDARD" ; -VAL_ 659 UI_tractionControlMode 2 "TC_DEV_MODE_1_SELECTED" 3 "TC_DEV_MODE_2_SELECTED" 5 "TC_DYNO_MODE_SELECTED" 0 "TC_NORMAL_SELECTED" 4 "TC_ROLLS_MODE_SELECTED" 1 "TC_SLIP_START_SELECTED" ; +VAL_ 659 UI_tractionControlMode 2 "TC_DEV_MODE_1_SELECTED" 3 "TC_DEV_MODE_2_SELECTED" 5 "TC_DYNO_MODE_SELECTED" 0 "TC_NORMAL_SELECTED" 6 "TC_OFFROAD_ASSIST_SELECTED" 4 "TC_ROLLS_MODE_SELECTED" 1 "TC_SLIP_START_SELECTED" ; VAL_ 659 UI_trailerMode 0 "TRAILER_MODE_OFF" 1 "TRAILER_MODE_ON" ; VAL_ 659 UI_winchModeRequest 1 "WINCH_MODE_ENTER" 2 "WINCH_MODE_EXIT" 0 "WINCH_MODE_IDLE" ; VAL_ 659 UI_zeroSpeedConfirmed 0 "ZERO_SPEED_CANCELED" 1 "ZERO_SPEED_CONFIRMED" 3 "ZERO_SPEED_SNA" 2 "ZERO_SPEED_UNUSED" ; VAL_ 616 DI_primaryUnitSiliconType 1 "IGBT" 0 "MOSFET" ; -VAL_ 532 FCtype214 7 "error" 6 "other" 5 "MCEVSE" 4 "Combo" 3 "CCS" 2 "GB" 1 "CHADEMO" 0 "Supercharger" ; -VAL_ 535 FCclass217 2 "UrbanSC" 1 "Supercharger" 0 "err" ; -VAL_ 535 FCbrand217 1 "Tesla" 0 "err" ; -VAL_ 535 FCcoolingType217 2 "Liquid" 1 "Convection" 0 "err" ; +VAL_ 532 FC_postID 2 "FC_POST_ID_2" 3 "FC_POST_ID_SNA" 0 "FC_POST_MASTER" 1 "FC_POST_SLAVE" ; +VAL_ 532 FC_statusCode 3 "FC_STATUS_DEPRECATED_3" 4 "FC_STATUS_DEPRECATED_4" 6 "FC_STATUS_EXT_ISOACTIVE" 5 "FC_STATUS_INT_ISOACTIVE" 14 "FC_STATUS_MALFUNCTION" 15 "FC_STATUS_NODATA" 13 "FC_STATUS_NOTCOMPATIBLE" 0 "FC_STATUS_NOTREADY_SNA" 7 "FC_STATUS_POST_OUT_OF_SERVICE" 1 "FC_STATUS_READY" 2 "FC_STATUS_UPDATE_IN_PROGRESS" ; +VAL_ 532 FC_type 3 "FC_TYPE_CC_EVSE" 1 "FC_TYPE_CHADEMO" 4 "FC_TYPE_COMBO" 2 "FC_TYPE_GB" 5 "FC_TYPE_MC_EVSE" 6 "FC_TYPE_OTHER" 7 "FC_TYPE_SNA" 0 "FC_TYPE_SUPERCHARGER" ; +VAL_ 535 FC_status3DataSelect 0 "Mux0" 1 "Mux1" ; +VAL_ 535 FC_brand 0 "FC_BRAND_SNA" 1 "FC_BRAND_TESLA" ; +VAL_ 535 FC_class 0 "FC_CLASS_SNA" 1 "FC_CLASS_SUPERCHARGER" 2 "FC_CLASS_URBANCHARGER" ; +VAL_ 535 FC_coolingType 2 "FC_COOLING_TYPE_CONVECTION" 1 "FC_COOLING_TYPE_LIQUID" 0 "FC_COOLING_TYPE_SNA" ; +VAL_ 535 FC_generation 0 "GENERATION_SNA" ; +VAL_ 535 FC_uiStopType 2 "FC_UI_STOP_TYPE_MOMENTARY" 0 "FC_UI_STOP_TYPE_SNA" 1 "FC_UI_STOP_TYPE_TOGGLE" ; VAL_ 801 VCFRONT_brakeFluidLevel 1 "LOW" 2 "NORMAL" 0 "SNA" ; VAL_ 801 VCFRONT_coolantLevel 1 "FILLED" 0 "NOT_OK" ; VAL_ 801 VCFRONT_tempAmbient 0 "SNA" ; @@ -4125,10 +4152,14 @@ VAL_ 801 VCFRONT_washerFluidLevel 1 "LOW" 2 "NORMAL" 0 "SNA" ; VAL_ 769 VCFRONT_infoIndex 13 "BC_INFO_APP_CRC" 17 "BC_INFO_APP_GITHASH" 15 "BC_INFO_BOOTLOADER_CRC" 18 "BC_INFO_BOOTLOADER_GITHASH" 14 "BC_INFO_BOOTLOADER_SVN" 10 "BC_INFO_BUILD_HWID_COMPONENTID" 0 "BC_INFO_DEPRECATED_0" 1 "BC_INFO_DEPRECATED_1" 2 "BC_INFO_DEPRECATED_2" 3 "BC_INFO_DEPRECATED_3" 4 "BC_INFO_DEPRECATED_4" 5 "BC_INFO_DEPRECATED_5" 6 "BC_INFO_DEPRECATED_6" 7 "BC_INFO_DEPRECATED_7" 8 "BC_INFO_DEPRECATED_8" 9 "BC_INFO_DEPRECATED_9" 255 "BC_INFO_END" 11 "BC_INFO_PCBAID_ASSYID_USAGEID" 16 "BC_INFO_SUBCOMPONENT1" 23 "BC_INFO_SUBCOMPONENT2" 24 "BC_INFO_SUBCOMPONENT3" 31 "BC_INFO_SUBCOMPONENT4" 32 "BC_INFO_SUBCOMPONENT5" 33 "BC_INFO_SUBCOMPONENT6" 20 "BC_INFO_UDS_PROTOCOL_BOOTCRC" 19 "BC_INFO_VERSION_DEPRECATED" ; VAL_ 769 VCFRONT_infoAssemblyId 1 "ASSEMBLY1" 255 "ASSEMBLY_SNA" ; VAL_ 769 VCFRONT_infoBuildType 2 "INFO_LOCAL_BUILD" 4 "INFO_MFG_BUILD" 1 "INFO_PLATFORM_BUILD" 3 "INFO_TRACEABLE_CI_BUILD" 0 "INFO_UNKNOWN_BUILD" ; -VAL_ 513 VCFRONT_loggingAndVitals10HzInde 5 "END" 3 "EXV_FLOW" 4 "HP_STATE" 2 "STATES_AND_SENSORS" 0 "TARGETS_AND_ACTUALS_0" 1 "TARGETS_SENSORS_AND_ACTUALS_1" ; +VAL_ 513 VCFRONT_loggingAndVitals10HzInde 7 "END" 3 "EXV_FLOW" 5 "EXV_FLOW_TARGET" 6 "EXV_STATE" 4 "HP_STATE" 2 "STATES_AND_SENSORS" 0 "TARGETS_AND_ACTUALS_0" 1 "TARGETS_SENSORS_AND_ACTUALS_1" ; +VAL_ 513 VCFRONT_cclExvState 8 "CALIB_CLOSE" 9 "CALIB_CLOSE_OVERDRIVE" 4 "FAULTED" 2 "INIT_CLOSE" 1 "INIT_OPEN" 6 "OVERDRIVING_SHUT" 3 "READY" 7 "READY_SHUT" 0 "UNINIT" 5 "WAIT" ; +VAL_ 513 VCFRONT_ccrExvState 8 "CALIB_CLOSE" 9 "CALIB_CLOSE_OVERDRIVE" 4 "FAULTED" 2 "INIT_CLOSE" 1 "INIT_OPEN" 6 "OVERDRIVING_SHUT" 3 "READY" 7 "READY_SHUT" 0 "UNINIT" 5 "WAIT" ; +VAL_ 513 VCFRONT_chillerExvState 8 "CALIB_CLOSE" 9 "CALIB_CLOSE_OVERDRIVE" 4 "FAULTED" 2 "INIT_CLOSE" 1 "INIT_OPEN" 6 "OVERDRIVING_SHUT" 3 "READY" 7 "READY_SHUT" 0 "UNINIT" 5 "WAIT" ; VAL_ 513 VCFRONT_compressorState 3 "FAULT" 1 "READY" 2 "RUNNING" 0 "STANDBY" ; -VAL_ 513 VCFRONT_exvState 4 "FAULTED" 2 "INIT_CLOSE" 1 "INIT_OPEN" 3 "READY" 0 "UNINIT" 5 "WAIT" ; -VAL_ 513 VCFRONT_fiveWayValveMode 3 "AMBIENT_SOURCE" 2 "BLEND" 1 "PARALLEL" 0 "SERIES" ; +VAL_ 513 VCFRONT_coolantValveMode 3 "AMBIENT_SOURCE" 2 "BLEND" 1 "PARALLEL" 0 "SERIES" ; +VAL_ 513 VCFRONT_evapExvState 8 "CALIB_CLOSE" 9 "CALIB_CLOSE_OVERDRIVE" 4 "FAULTED" 2 "INIT_CLOSE" 1 "INIT_OPEN" 6 "OVERDRIVING_SHUT" 3 "READY" 7 "READY_SHUT" 0 "UNINIT" 5 "WAIT" ; +VAL_ 513 VCFRONT_exvState 8 "CALIB_CLOSE" 9 "CALIB_CLOSE_OVERDRIVE" 4 "FAULTED" 2 "INIT_CLOSE" 1 "INIT_OPEN" 6 "OVERDRIVING_SHUT" 3 "READY" 7 "READY_SHUT" 0 "UNINIT" 5 "WAIT" ; VAL_ 513 VCFRONT_hpBatteryLoadType 2 "BATT_COOL" 1 "BATT_HEAT" 0 "NONE" ; VAL_ 513 VCFRONT_hpBlendType 2 "HP_FULL" 0 "HP_NONE" 1 "HP_PARTIAL" ; VAL_ 513 VCFRONT_hpCabinLoadType 1 "CC" 3 "EVAP" 0 "NONE" 2 "REHEAT" ; @@ -4136,39 +4167,64 @@ VAL_ 513 VCFRONT_hpDominantLoad 5 "CC" 2 "CHILLER" 1 "EVAP" 6 "HIGH_BOTH" 4 "LCC VAL_ 513 VCFRONT_hpHighSideHX 3 "BOTH" 2 "CC" 1 "LCC" 0 "NONE" ; VAL_ 513 VCFRONT_hpLowSideHX 3 "BOTH" 1 "CHILLER" 2 "EVAP" 0 "NONE" ; VAL_ 513 VCFRONT_hpReqCoolantMode 4 "AMBIENT_SOURCE" 0 "ANY" 3 "PARALLEL" 2 "SERIES_BYPASS" 1 "SERIES_NO_BYPASS" ; +VAL_ 513 VCFRONT_lccExvState 8 "CALIB_CLOSE" 9 "CALIB_CLOSE_OVERDRIVE" 4 "FAULTED" 2 "INIT_CLOSE" 1 "INIT_OPEN" 6 "OVERDRIVING_SHUT" 3 "READY" 7 "READY_SHUT" 0 "UNINIT" 5 "WAIT" ; VAL_ 513 VCFRONT_pressureRefrigDischargeV 255 "SNA" ; VAL_ 513 VCFRONT_pressureRefrigLiquid 255 "SNA" ; VAL_ 513 VCFRONT_pressureRefrigSuctionVit 127 "SNA" ; VAL_ 513 VCFRONT_pumpBatteryRPMActual 1023 "SNA" ; VAL_ 513 VCFRONT_pumpPowertrainRPMActual 1023 "SNA" ; VAL_ 513 VCFRONT_radiatorFanRPMActual 1023 "SNA" ; +VAL_ 513 VCFRONT_recircExvState 8 "CALIB_CLOSE" 9 "CALIB_CLOSE_OVERDRIVE" 4 "FAULTED" 2 "INIT_CLOSE" 1 "INIT_OPEN" 6 "OVERDRIVING_SHUT" 3 "READY" 7 "READY_SHUT" 0 "UNINIT" 5 "WAIT" ; VAL_ 513 VCFRONT_solenoidEvapState 2 "CLOSED" 3 "FAULTED" 1 "OPENED" 0 "UNDEFINED" ; VAL_ 513 VCFRONT_tempRefrigDischarge 2047 "SNA" ; VAL_ 513 VCFRONT_tempRefrigLiquid 2047 "SNA" ; VAL_ 513 VCFRONT_tempSuperheatActual 1023 "SNA" ; VAL_ 548 DCDCstate224 6 "Error" 5 "Shutdown" 4 "HVactive" 3 "Precharge" 2 "PrechargeStart" 1 "12vChg" 0 "Idle" ; VAL_ 548 DCDCSubState224 0 "PWR_UP_INIT" 1 "STANDBY" 2 "12V_SUPPORT_ACTIVE" 3 "DIS_HVBUS" 4 "PCHG_FAST_DIS_HVBUS" 5 "PCHG_SLOW_DIS_HVBUS" 6 "PCHG_DWELL_CHARGE" 7 "PCHG_DWELL_WAIT" 8 "PCHG_DI_RECOVERY_WAIT" 9 "PCHG_ACTIVE" 10 "PCHG_FLT_FAST_DIS_HVBUS" 11 "SHUTDOWN" 12 "12V_SUPPORT_FAULTED" 13 "DIS_HVBUS_FAULTED" 14 "PCHG_FAULTED" 15 "CLEAR_FAULTS" 16 "FAULTED" 17 "NUM" ; -VAL_ 280 ImmobilizerState118 2 "DI_IMM_STATE_AUTHENTICATING" 3 "DI_IMM_STATE_DISARMED" 6 "DI_IMM_STATE_FAULT" 4 "DI_IMM_STATE_IDLE" 0 "DI_IMM_STATE_INIT_SNA" 1 "DI_IMM_STATE_REQUEST" 5 "DI_IMM_STATE_RESET" ; -VAL_ 280 DriveState118 5 "Driving" 4 "Abort" 3 "Fault?" 2 "Standby" 1 "ChargeHeat" 0 "Idle" ; -VAL_ 280 TractionControl118 5 "Dyno Mode" 4 "Rolls Mode" 3 "Dev2" 2 "Dev1" 1 "Slip Start" 0 "Standard" ; -VAL_ 280 ParkingBrake118 2 "Disengage" 1 "Engage" 0 "Idle" ; -VAL_ 280 BrakeState118 1 "RegenBrake" ; -VAL_ 280 DIgear118 3 "Neutral" 7 "Idle" 1 "Park" 2 "Reverse" 4 "Drive" ; -VAL_ 280 BrakePedal118 1 "PedalBrake" ; -VAL_ 280 TrackMode118 1 "TRACK_MODE_AVAILABLE" 2 "TRACK_MODE_ON" 0 "TRACK_MODE_UNAVAILABLE" ; +VAL_ 551 CMP_state 3 "CMP_STATE_FAULT" 0 "CMP_STATE_NONE" 1 "CMP_STATE_NORMAL" 15 "CMP_STATE_SNA" 5 "CMP_STATE_SOFT_SHUTDOWN" 4 "CMP_STATE_SOFT_START" 2 "CMP_STATE_WAIT" ; +VAL_ 280 DI_accelPedalPos 255 "SNA" ; +VAL_ 280 DI_brakePedalState 2 "INVALID" 0 "OFF" 1 "ON" ; VAL_ 280 DI_driveBlocked 1 "DRIVE_BLOCKED_FRUNK" 0 "DRIVE_BLOCKED_NONE" 2 "DRIVE_BLOCKED_PROX" ; +VAL_ 280 DI_epbRequest 0 "DI_EPBREQUEST_NO_REQUEST" 1 "DI_EPBREQUEST_PARK" 2 "DI_EPBREQUEST_UNPARK" ; +VAL_ 280 DI_gear 4 "DI_GEAR_D" 0 "DI_GEAR_INVALID" 3 "DI_GEAR_N" 1 "DI_GEAR_P" 2 "DI_GEAR_R" 7 "DI_GEAR_SNA" ; +VAL_ 280 DI_immobilizerState 2 "DI_IMM_STATE_AUTHENTICATING" 3 "DI_IMM_STATE_DISARMED" 6 "DI_IMM_STATE_FAULT" 4 "DI_IMM_STATE_IDLE" 0 "DI_IMM_STATE_INIT_SNA" 1 "DI_IMM_STATE_REQUEST" 5 "DI_IMM_STATE_RESET" ; +VAL_ 280 DI_keepDrivePowerStateRequest 1 "KEEP_ALIVE" 0 "NO_REQUEST" ; +VAL_ 280 DI_systemState 4 "DI_SYS_ABORT" 5 "DI_SYS_ENABLE" 3 "DI_SYS_FAULT" 1 "DI_SYS_IDLE" 2 "DI_SYS_STANDBY" 0 "DI_SYS_UNAVAILABLE" ; +VAL_ 280 DI_trackModeState 1 "TRACK_MODE_AVAILABLE" 2 "TRACK_MODE_ON" 0 "TRACK_MODE_UNAVAILABLE" ; +VAL_ 280 DI_tractionControlMode 6 "Offroad Assist" 5 "Dyno Mode" 4 "Rolls Mode" 3 "Dev2" 2 "Dev1" 1 "Slip Start" 0 "Standard" ; +VAL_ 850 BMS_energyBuffer 255 "SNA" ; +VAL_ 850 BMS_energyToChargeComplete 2047 "SNA" ; +VAL_ 850 BMS_expectedEnergyRemaining 2047 "SNA" ; +VAL_ 850 BMS_idealEnergyRemaining 2047 "SNA" ; +VAL_ 850 BMS_nominalEnergyRemaining 2047 "SNA" ; +VAL_ 850 BMS_nominalFullPackEnergy 2047 "SNA" ; +VAL_ 914 BMS_moduleType 0 "UNKNOWN" 1 "E3_NCT" 2 "E1_NCT" 3 "E3_CT" 4 "E1_CT" 5 "E1_CP" ; +VAL_ 914 BMS_packConfigMultiplexer 0 "Mux0" 1 "Mux1" ; +VAL_ 914 BMS_reservedConfig_0 0 "BMS_CONFIG_0" 1 "BMS_CONFIG_1" 10 "BMS_CONFIG_10" 11 "BMS_CONFIG_11" 12 "BMS_CONFIG_12" 13 "BMS_CONFIG_13" 14 "BMS_CONFIG_14" 15 "BMS_CONFIG_15" 16 "BMS_CONFIG_16" 17 "BMS_CONFIG_17" 18 "BMS_CONFIG_18" 19 "BMS_CONFIG_19" 2 "BMS_CONFIG_2" 20 "BMS_CONFIG_20" 21 "BMS_CONFIG_21" 22 "BMS_CONFIG_22" 23 "BMS_CONFIG_23" 24 "BMS_CONFIG_24" 25 "BMS_CONFIG_25" 26 "BMS_CONFIG_26" 27 "BMS_CONFIG_27" 28 "BMS_CONFIG_28" 29 "BMS_CONFIG_29" 3 "BMS_CONFIG_3" 30 "BMS_CONFIG_30" 31 "BMS_CONFIG_31" 4 "BMS_CONFIG_4" 5 "BMS_CONFIG_5" 6 "BMS_CONFIG_6" 7 "BMS_CONFIG_7" 8 "BMS_CONFIG_8" 9 "BMS_CONFIG_9" ; VAL_ 594 BMS_powerLimitsState 1 "POWER_CALCULATED_FOR_DRIVE" 0 "POWER_NOT_CALCULATED_FOR_DRIVE" ; VAL_ 658 BattBeginningOfLifeEnergy292 1023 "SNA" ; VAL_ 658 BMS_battTempPct 255 "SNA" ; -VAL_ 599 UIspeedUnits257 1 "KPH" 0 "MPH" ; +VAL_ 599 DI_uiSpeed 511 "DI_UI_SPEED_SNA" ; +VAL_ 599 DI_uiSpeedHighSpeed 511 "DI_UI_HIGH_SPEED_SNA" ; +VAL_ 599 DI_uiSpeedUnits 1 "DI_SPEED_KPH" 0 "DI_SPEED_MPH" ; +VAL_ 599 DI_vehicleSpeed 4095 "SNA" ; +VAL_ 680 CMPD_state 3 "CMPD_STATE_FAULT" 4 "CMPD_STATE_IDLE" 0 "CMPD_STATE_INIT" 1 "CMPD_STATE_RUNNING" 15 "CMPD_STATE_SNA" 2 "CMPD_STATE_STANDBY" ; +VAL_ 680 CMPD_wasteHeatState 1 "CMPD_WASTE_HEAT_STATE_ACTIVE" 2 "CMPD_WASTE_HEAT_STATE_NOT_AVAILABLE" 0 "CMPD_WASTE_HEAT_STATE_OFF" 3 "CMPD_WASTE_HEAT_STATE_UNUSED" ; +VAL_ 886 DIF_inverterTQF 0 "INVERTERT_INIT" 1 "INVERTERT_IRRATIONAL" 2 "INVERTERT_RATIONAL" 3 "INVERTERT_UNKNOWN" ; +VAL_ 789 DIR_inverterTQF 0 "INVERTERT_INIT" 1 "INVERTERT_IRRATIONAL" 2 "INVERTERT_RATIONAL" 3 "INVERTERT_UNKNOWN" ; VAL_ 950 Odometer3B6 4294967 "SNA" ; +VAL_ 264 DIR_axleSpeed 32768 "SNA" ; +VAL_ 264 DIR_slavePedalPos 255 "SNA" ; +VAL_ 264 DIR_torqueActual 4096 "SNA" ; +VAL_ 264 DIR_torqueCommand 4096 "SNA" ; +VAL_ 294 DIR_vBatQF 0 "NOT_QUALIFIED" 1 "QUALIFIED" ; +VAL_ 421 DIF_vBatQF 0 "NOT_QUALIFIED" 1 "QUALIFIED" ; VAL_ 552 EPBResmCaliperRequest228 3 "disengaging" 2 "engaging" 1 "idle" ; VAL_ 552 EPBResmOperationTrigger228 22 "SuperPark" 6 "Released" 1 "ParkEngaged" ; VAL_ 552 EPBRunitStatus228 10 "Disengaging" 8 "Engaging" 3 "ParkEngaged" 1 "DriveReleased" ; VAL_ 648 EPBLesmCaliperRequest288 3 "disengaging" 2 "engaging" 1 "idle" ; VAL_ 648 EPBLesmOperationTrigger288 22 "SuperPark" 6 "Released" 1 "ParkEngaged" ; VAL_ 648 EPBLunitStatus288 10 "Disengaging" 8 "Engaging" 3 "ParkEngaged" 1 "DriveReleased" ; -VAL_ 2047 GTW_CabinBlowerCtrlType 0 "LV8907" 1 "TMS320F28027F" ; VAL_ 2047 GTW_activeHighBeam 1 "ACTIVE" 0 "NOT_ACTIVE" ; VAL_ 2047 GTW_airSuspension 0 "NONE" 2 "TESLA_ADAPTIVE" 1 "TESLA_STANDARD" ; VAL_ 2047 GTW_airbagCutoffSwitch 0 "CUTOFF_SWITCH_DISABLED" 1 "CUTOFF_SWITCH_ENABLED" ; @@ -4177,15 +4233,18 @@ VAL_ 2047 GTW_autopilot 4 "BASIC" 2 "ENHANCED" 1 "HIGHWAY" 0 "NONE" 3 "SELF_DRIV VAL_ 2047 GTW_autopilotCameraType 0 "RCCB_CAMERAS" ; VAL_ 2047 GTW_auxParkLamps 2 "EU" 0 "NA_BASE" 1 "NA_PREMIUM" 3 "NONE" ; VAL_ 2047 GTW_bPillarNFCParam 0 "MODEL_3" 1 "MODEL_Y" ; -VAL_ 2047 GTW_brakeHWType 1 "BREMBO_LARGE_P42_BREMBO_44MOC" 0 "BREMBO_P42_MANDO_43MOC" ; -VAL_ 2047 GTW_chassisType 3 "MODEL_Y_CHASSIS" 2 "MODEL_3_CHASSIS" 0 "MODEL_S_CHASSIS" 1 "MODEL_X_CHASSIS" ; +VAL_ 2047 GTW_brakeHWType 1 "BREMBO_LARGE_P42_BREMBO_44MOC" 3 "BREMBO_LARGE_P42_BREMBO_LARGE_44MOC" 2 "BREMBO_LARGE_P42_MANDO_43MOC" 0 "BREMBO_P42_MANDO_43MOC" ; +VAL_ 2047 GTW_brakeLineSwitchType 0 "DI_VC_SHARED" 1 "VC_ONLY" ; +VAL_ 2047 GTW_cabinPTCHeaterType 0 "BORGWARNER" 1 "NONE" ; +VAL_ 2047 GTW_chassisType 2 "MODEL_3_CHASSIS" 0 "MODEL_S_CHASSIS" 1 "MODEL_X_CHASSIS" 3 "MODEL_Y_CHASSIS" ; +VAL_ 2047 GTW_compressorType 2 "DENSO_41CC_11K" 1 "DENSO_41CC_8K" 0 "HANON_33CC" ; VAL_ 2047 GTW_connectivityPackage 0 "BASE" 1 "PREMIUM" ; VAL_ 2047 GTW_coolantPumpType 0 "DUAL" 1 "SINGLE_PUMP_BATT" ; VAL_ 2047 GTW_dasHw 3 "PARKER_PASCAL_2_5" 4 "TESLA_AP3" ; VAL_ 2047 GTW_deliveryStatus 1 "DELIVERED" 0 "NOT_DELIVERED" ; VAL_ 2047 GTW_drivetrainType 1 "AWD" 0 "RWD" ; VAL_ 2047 GTW_eBuckConfig 1 "DEV_BUCK" 0 "NONE" ; -VAL_ 2047 GTW_eCallEnabled 0 "DISABLED" 1 "ENABLED" ; +VAL_ 2047 GTW_eCallEnabled 0 "DISABLED" 1 "ENABLED_OHC_SOS" 2 "ENABLED_UI_SOS" ; VAL_ 2047 GTW_efficiencyPackage 0 "DEFAULT" 2 "M3_LR_2020" 3 "M3_LR_PERFORMANCE_2020" 1 "M3_SR_PLUS_2020" ; VAL_ 2047 GTW_epasType 0 "MANDO_VGR69_GEN3" ; VAL_ 2047 GTW_espValveType 0 "UNKNOWN" 1 "VALVE_TYPE_1" 2 "VALVE_TYPE_2" ; @@ -4196,46 +4255,43 @@ VAL_ 2047 GTW_frontSeatReclinerHardware 3 "LEFT_RIGHT_SEAT_REDUCED_RANGE" 2 "LEF VAL_ 2047 GTW_frontSeatType 0 "BASE_TESLA" 3 "PREMIUM_L_TESLA_R_YANFENG" 2 "PREMIUM_L_YANFENG_R_TESLA" 1 "PREMIUM_TESLA" 4 "PREMIUM_YANFENG" ; VAL_ 2047 GTW_headlamps 0 "BASE" 1 "PREMIUM" ; VAL_ 2047 GTW_headlightLevelerType 1 "GEN1" 0 "NONE" ; -VAL_ 2047 GTW_heatedWipers 0 "FALSE" 1 "TRUE" ; VAL_ 2047 GTW_homelinkType 1 "HOMELINK_V_OPT_2" 0 "NONE" ; VAL_ 2047 GTW_hvacPanelVaneType 1 "CONVERGENT_V1" 0 "PARALLEL_V1" ; -VAL_ 2047 GTW_hvacQuietSnorkelType 0 "DEFAULT" 1 "QUIET_V1" ; -VAL_ 2047 GTW_ibstWakeType 0 "NONE" 1 "WAKE_PIN_20" ; VAL_ 2047 GTW_immersiveAudio 1 "BASE" 0 "DISABLED" 2 "PREMIUM" ; VAL_ 2047 GTW_interiorLighting 0 "BASE" 1 "PREMIUM" 2 "PREMIUM_NO_POCKET_LIGHT" ; VAL_ 2047 GTW_intrusionSensorType 0 "NOT_INSTALLED" 1 "VODAFONE" ; -VAL_ 2047 GTW_loggingVersion 0 "MESSAGE_BASED" 1 "SIGNAL_BASED" ; VAL_ 2047 GTW_lumbarECUType 1 "ALFMEIER" 0 "NONE" ; VAL_ 2047 GTW_mapRegion 4 "AU" 3 "CN" 1 "EU" 9 "HK" 5 "JP" 7 "KR" 8 "ME" 10 "MO" 2 "NONE" 6 "TW" 0 "US" ; VAL_ 2047 GTW_memoryMirrors 0 "NOT_INSTALLED" 1 "SMR" ; VAL_ 2047 GTW_numberHVILNodes 0 "HVIL_NODES_0" 1 "HVIL_NODES_1" 2 "HVIL_NODES_2" 3 "HVIL_NODES_3" 4 "HVIL_NODES_4" 5 "HVIL_NODES_5" ; VAL_ 2047 GTW_packEnergy 3 "PACK_100_KWH" 0 "PACK_50_KWH" 2 "PACK_62_KWH" 1 "PACK_74_KWH" 4 "PACK_75_KWH" ; -VAL_ 2047 GTW_passengerAirbagType 0 "FULL_SUPPRESSION" 1 "SAFETY_VENT" ; +VAL_ 2047 GTW_passengerAirbagType 2 "EUROW" 0 "FULL_SUPPRESSION" 1 "SAFETY_VENT" ; VAL_ 2047 GTW_passengerOccupancySensorType 0 "OCS" 1 "RESISTIVE_PAD" ; VAL_ 2047 GTW_pedestrianWarningSound 0 "NONE" 1 "SPEAKER" ; VAL_ 2047 GTW_performancePackage 0 "BASE" 3 "BASE_PLUS" 4 "BASE_PLUS_AWD" 2 "LUDICROUS" 1 "PERFORMANCE" ; VAL_ 2047 GTW_plcSupportType 2 "NATIVE_CHARGE_PORT" 0 "NONE" 1 "ONBOARD_ADAPTER" ; VAL_ 2047 GTW_powerSteeringColumn 0 "NOT_INSTALLED" 1 "TK" ; -VAL_ 2047 GTW_rearDriveUnitType 0 "LARGE_REAR" 1 "SMALL_REAR" ; +VAL_ 2047 GTW_radarHeaterType 1 "BECKER_THIN_3M" 0 "NONE" ; VAL_ 2047 GTW_rearFogLamps 1 "INSTALLED" 0 "NOT_INSTALLED" ; VAL_ 2047 GTW_rearGlassType 0 "NX" 1 "TSA5_NOPET" ; -VAL_ 2047 GTW_rearLightType 1 "EU_CN" 0 "NA" ; +VAL_ 2047 GTW_rearLightType 1 "EU_CN" 2 "GLOBAL" 0 "NA" ; VAL_ 2047 GTW_rearSeatHeaters 1 "KONGSBERG_LOW_POWER" 0 "NONE" ; VAL_ 2047 GTW_refrigerantType 0 "Default" 2 "R1234YF" 1 "R134A" ; -VAL_ 2047 GTW_restraintsHardwareType 22 "EUROW_ECALL_M3" 32 "EUROW_ECALL_MY" 23 "EUROW_NO_ECALL_M3" 33 "EUROW_NO_ECALL_MY" 21 "NA_M3" 31 "NA_MY" ; +VAL_ 2047 GTW_restraintsHardwareType 22 "EUROW_ECALL_M3" 33 "EUROW_ECALL_MY" 23 "EUROW_NO_ECALL_M3" 34 "EUROW_NO_ECALL_MY" 21 "NA_M3" 32 "NA_MY" 31 "NA_MY_OLD" ; VAL_ 2047 GTW_rightHandDrive 0 "LEFT" 1 "RIGHT" ; VAL_ 2047 GTW_roofGlassType 0 "TSA3_PET" 1 "TSA5_NOPET" ; VAL_ 2047 GTW_roofType 1 "FIXED_GLASS" 0 "METAL" 2 "PANORAMIC" ; VAL_ 2047 GTW_softRange 1 "RANGE_220_MILES" 2 "RANGE_93_MILES" 0 "STANDARD" ; VAL_ 2047 GTW_spoilerType 0 "NOT_INSTALLED" 1 "PASSIVE" ; +VAL_ 2047 GTW_steeringColumnMotorType 0 "BOSCH" 1 "JE" ; +VAL_ 2047 GTW_steeringColumnUJointType 0 "B_SAMPLE_PHASING" 1 "C_SAMPLE_PHASING" ; VAL_ 2047 GTW_superchargingAccess 1 "ALLOWED" 0 "NOT_ALLOWED" 2 "PAY_AS_YOU_GO" ; -VAL_ 2047 GTW_tireType 4 "CONTI_ALL_SEASON_19" 3 "HANKOOK_SUMMER_19" 1 "MICHELIN_ALL_SEASON_18" 2 "MICHELIN_SUMMER_18" 5 "MICHELIN_SUMMER_20" 0 "UNKNOWN" ; +VAL_ 2047 GTW_tireType 4 "CONTI_ALL_SEASON_19" 17 "GOODYEAR_ALL_SEASON_20" 3 "HANKOOK_SUMMER_19" 1 "MICHELIN_ALL_SEASON_18" 19 "MICHELIN_ALL_SEASON_21" 2 "MICHELIN_SUMMER_18" 5 "MICHELIN_SUMMER_20" 18 "PIRELLI_SUMMER_21" 0 "UNKNOWN" ; VAL_ 2047 GTW_towPackage 0 "NONE" 1 "TESLA_REV1" ; VAL_ 2047 GTW_tpmsType 0 "CONTI_2" 1 "TESLA_BLE" ; -VAL_ 2047 GTW_trackModePackage 0 "NONE" 1 "PERFORMANCE" ; VAL_ 2047 GTW_twelveVBatteryType 0 "ATLASBX_B24_FLOODED" 1 "CLARIOS_B24_FLOODED" ; VAL_ 2047 GTW_vdcType 0 "BOSCH_VDC" 1 "TESLA_VDC" ; -VAL_ 2047 GTW_wheelType 4 "GEMINI_19_SQUARE" 5 "GEMINI_19_STAGGERED" 0 "PINWHEEL_18" 18 "PINWHEEL_18_CAP_KIT" 1 "STILETTO_19" 2 "STILETTO_20" 14 "STILETTO_20_DARK_SQUARE" 3 "STILETTO_20_DARK_STAGGERED" 19 "ZEROG_20_GUNPOWDER" ; +VAL_ 2047 GTW_wheelType 4 "GEMINI_19_SQUARE" 5 "GEMINI_19_STAGGERED" 0 "PINWHEEL_18" 18 "PINWHEEL_18_CAP_KIT" 1 "STILETTO_19" 2 "STILETTO_20" 14 "STILETTO_20_DARK_SQUARE" 3 "STILETTO_20_DARK_STAGGERED" 19 "ZEROG_20_GUNPOWDER" 17 "APOLLO_19_SILVER" 20 "APOLLO_19_SILVER_CAP_KIT" 15 "INDUCTION_20_BLACK" 16 "UBERTURBINE_21_BLACK" ; VAL_ 2047 GTW_windshieldType 1 "EASTMAN_ACOUSTIC" 0 "SEKISUI_ACOUSTIC" ; VAL_ 2047 GTW_xcpESP 0 "FALSE" 1 "TRUE" ; VAL_ 2047 GTW_xcpIbst 0 "FALSE" 1 "TRUE" ; diff --git a/integration_test/volumes/dbc2val/it-mapping.yml b/integration_test/volumes/dbc2val/it-mapping.yml deleted file mode 100644 index 996a642..0000000 --- a/integration_test/volumes/dbc2val/it-mapping.yml +++ /dev/null @@ -1,125 +0,0 @@ -# Mapping Dog Mode -DogModeOn: - vss: # taken from not available on VSS - datatype: bool - type: attribute - unit: none - description: Enable Dog Mode. - databroker: - datatype: 1 # BOOL number taken from types_pb2.py - changetype: 2 # ON_CHANGE number taken from types_pb2.py - minupdatedelay: 100 - targets: - Vehicle.Cabin.DogMode: {} - -# Mapping Dog Mode Temperature -DogModeTempSet: - vss: # taken from not available on VSS - datatype: float - type: attribute - unit: celsius - description: Set desired temperature for Dog Mode. - databroker: - datatype: 10 # FLOAT number taken from types_pb2.py - changetype: 2 # ON_CHANGE number taken from types_pb2.py - minupdatedelay: 100 - targets: - Vehicle.Cabin.DogModeTemperature: {} - -# Mapping Speed -UIspeed_signed257: - minupdatedelay: 500 - vss: # taken from https://github.com/COVESA/vehicle_signal_specification/blob/master/spec/Vehicle/Vehicle.vspec - datatype: float - type: sensor - unit: km/h - description: Vehicle speed - databroker: - datatype: 10 # FLOAT number taken from types_pb2.py - changetype: 1 # CONTINUOUS number taken from types_pb2.py - targets: - Vehicle.OBD.Speed: {} - -# Mapping Power, this is kW do some magic to get in 0-100 int range -RearPower266: - minupdatedelay: 500 - vss: # taken from https://github.com/COVESA/vehicle_signal_specification/blob/master/spec/OBD/OBD.vspec - datatype: float - type: sensor - unit: percent - description: PID 04 - Engine load in percent - 0 = no load, 100 = full load - databroker: - datatype: 10 # FLOAT number taken from types_pb2.py - changetype: 2 # ON_CHANGE number taken from types_pb2.py - targets: - Vehicle.OBD.EngineLoad: - transform: - math: "floor(abs(x/5))" - -# Mapping Gears -DIgear118: - vss: # taken from https://github.com/COVESA/vehicle_signal_specification/blob/master/spec/Powertrain/Transmission.vspec - datatype: int8 - type: sensor - unit: none - description: The current gear. 0=Neutral, 1/2/..=Forward, -1/-2/..=Reverse - databroker: - datatype: 2 # INT8 number taken from types_pb2.py - changetype: 2 # ON_CHANGE number taken from types_pb2.py - minupdatedelay: 1000 - targets: - Vehicle.Powertrain.Transmission.Gear: - transform: - partialmapping: - Park: 126 - Reverse: -1 - Neutral: 0 - Drive: 127 - Idle: 7 - -# Mapping Parking brake -ParkingBrake118: - vss: # taken from https://github.com/COVESA/vehicle_signal_specification/blob/master/spec/Chassis/Chassis.vspec - datatype: boolean - type: actuator - unit: none - description: Parking brake status. True = Parking Brake is Engaged. False = Parking Brake is not Engaged. - databroker: - datatype: 1 # BOOL number taken from types_pb2.py - changetype: 2 # ON_CHANGE number taken from types_pb2.py - minupdatedelay: 1000 - targets: - Vehicle.Chassis.ParkingBrake.IsEngaged: - transform: - partialmapping: - Idle: false - Engage: true - Disengage: false - -# Mapping Ambient Air Temperature -VCRIGHT_hvacCabinTempEst: - vss: # taken from https://github.com/COVESA/vehicle_signal_specification/blob/master/spec/Cabin/HVAC.vspec - datatype: float - type: sensor - unit: celsius - description: Ambient air temperature inside the vehicle. - databroker: - datatype: 10 # FLOAT number taken from types_pb2.py - changetype: 2 # ON_CHANGE number taken from types_pb2.py - minupdatedelay: 100 - targets: - Vehicle.Cabin.AmbientAirTemperature: {} - -# Mapping SOC State of Charge -UI_SOC: - vss: # taken from https://github.com/COVESA/vehicle_signal_specification/blob/master/spec/Powertrain/Battery.vspec - datatype: float - type: sensor - unit: percent - description: Physical state of charge of the high voltage battery. This is not necessarily the state of charge being displayed to the customer. - databroker: - datatype: 10 # FLOAT number taken from types_pb2.py - changetype: 2 # ON_CHANGE number taken from types_pb2.py - minupdatedelay: 100 - targets: - Vehicle.Powertrain.Battery.StateOfCharge.Current: {} diff --git a/integration_test/volumes/dbc2val/it-vss_4.0-dogmode.json b/integration_test/volumes/dbc2val/it-vss_4.0-dogmode.json new file mode 100644 index 0000000..58fe952 --- /dev/null +++ b/integration_test/volumes/dbc2val/it-vss_4.0-dogmode.json @@ -0,0 +1,9898 @@ +{ + "Vehicle": { + "children": { + "ADAS": { + "children": { + "ABS": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if ABS is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "cad374fbfdc65df9b777508f04d5b073" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if ABS is currently regulating brake pressure. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "6dd21979a2225e31940dc2ece1aa9a04" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if ABS incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "13cfabb3122254128234f9a696f14678" + } + }, + "description": "Antilock Braking System signals.", + "type": "branch", + "uuid": "219270ef27c4531f874bbda63743b330" + }, + "ActiveAutonomyLevel": { + "allowed": [ + "SAE_0", + "SAE_1", + "SAE_2_DISENGAGING", + "SAE_2", + "SAE_3_DISENGAGING", + "SAE_3", + "SAE_4_DISENGAGING", + "SAE_4", + "SAE_5_DISENGAGING", + "SAE_5" + ], + "comment": "Complies with https://www.sae.org/standards/content/j3016_202104/ and https://www.sae.org/blog/sae-j3016-update. Level 5 and 4 ADS (Automated driving system) disengage, if appropriate, only after it achieves a minimal risk condition or a driver is performing the DDT. Level 3 ADS disengages either an appropriate time after issuing a request to intervene or immediately upon user request. Level 2 DAS (Driving automation system) disengages immediately upon driver request. However, since many Level 2 DAS, often termed \"Level 2.5\", warn the driver shortly before reaching their operational limits, the VSS also supports the DISENGAGING state for SAE_2. Nevertheless, it should be noted that the SAE J3016 states that it is incorrect to describe driving automation features using fractional levels.", + "datatype": "string", + "description": "Indicates the currently active level of driving automation according to the SAE J3016 (Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles).", + "type": "sensor", + "uuid": "b101c6928fc55948b1cc485e568ecd8d" + }, + "CruiseControl": { + "children": { + "IsActive": { + "datatype": "boolean", + "description": "Indicates if cruise control system is active (i.e. actively controls speed). True = Active. False = Inactive.", + "type": "actuator", + "uuid": "78ab5ce923dc5aa1a6622bcb948e1561" + }, + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if cruise control system is enabled (e.g. ready to receive configurations and settings) True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "018417f6c8535315895d0f54d209035a" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if cruise control system incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "22923d4a36bc5192a08e40fe9e5ed458" + }, + "SpeedSet": { + "datatype": "float", + "description": "Set cruise control speed in kilometers per hour.", + "type": "actuator", + "unit": "km/h", + "uuid": "b3f3a53ccd825e4da5cb1226f94dc005" + } + }, + "description": "Signals from Cruise Control system.", + "type": "branch", + "uuid": "c4d751cf74f9576dbba3cc820991c1fb" + }, + "DMS": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if DMS is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "63e6d3803ce35fd79afc728c65295804" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if DMS incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "d5213c8cb5d5575994b2c8ee1ad8eccf" + }, + "IsWarning": { + "datatype": "boolean", + "description": "Indicates if DMS has registered a driver alert condition.", + "type": "sensor", + "uuid": "2c86cd0363cd55ffb175a9e07cc32e4d" + } + }, + "description": "Driver Monitoring System signals.", + "type": "branch", + "uuid": "1cd72c7fc7fe5269a93c9954f46a4f60" + }, + "EBA": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if EBA is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "3ae9171b69555fb08855054ab38e9b17" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if EBA is currently regulating brake pressure. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "86360c44ead354d18af7ff14176151f6" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if EBA incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "bae0fe856398502ba4a09283867c6c81" + } + }, + "description": "Emergency Brake Assist (EBA) System signals.", + "type": "branch", + "uuid": "51ec0930d0af5b91b84a0775c6e87a97" + }, + "EBD": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if EBD is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "30f88d3e68575b67853b14ce5f7a08e5" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if EBD is currently regulating vehicle brakeforce distribution. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "67aa2a598f635edda6eb944af99b06db" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if EBD incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "918157073be95015ae38913cd7a9796a" + } + }, + "description": "Electronic Brakeforce Distribution (EBD) System signals.", + "type": "branch", + "uuid": "3f4c74a588735b10ac9fe918d305cd5a" + }, + "ESC": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if ESC is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "3f4f39b8d8c05c97a6de685282ba74b7" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if ESC is currently regulating vehicle stability. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "2088953a28385353a9d46b3a3dc11cac" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if ESC incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "6c237535654b5bc7a70f6a70c760b9d4" + }, + "IsStrongCrossWindDetected": { + "datatype": "boolean", + "description": "Indicates if the ESC system is detecting strong cross winds. True = Strong cross winds detected. False = No strong cross winds detected.", + "type": "sensor", + "uuid": "ebfd609531345c37914b89e553df80cb" + }, + "RoadFriction": { + "children": { + "LowerBound": { + "datatype": "float", + "description": "Lower bound road friction, as calculated by the ESC system. 5% possibility that road friction is below this value. 0 = no friction, 100 = maximum friction.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "634289f58b5d511ea9979f04a9d0f2ab" + }, + "MostProbable": { + "datatype": "float", + "description": "Most probable road friction, as calculated by the ESC system. Exact meaning of most probable is implementation specific. 0 = no friction, 100 = maximum friction.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "b0eb72430cd95bfbba0d187fcb6e2a62" + }, + "UpperBound": { + "datatype": "float", + "description": "Upper bound road friction, as calculated by the ESC system. 95% possibility that road friction is below this value. 0 = no friction, 100 = maximum friction.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "ad0415a799575fcd8d1f49bed9a2baeb" + } + }, + "description": "Road friction values reported by the ESC system.", + "type": "branch", + "uuid": "71a32e4eb131532c82195508d93807ed" + } + }, + "description": "Electronic Stability Control System signals.", + "type": "branch", + "uuid": "636b4586ce7854b4b270a2f3b6c0af4f" + }, + "LaneDepartureDetection": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if lane departure detection system is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "c099ae97260f5c418977cd14631e95be" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if lane departure system incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "73b2fc4f6a4952e4b7886671450e7798" + }, + "IsWarning": { + "datatype": "boolean", + "description": "Indicates if lane departure detection registered a lane departure.", + "type": "sensor", + "uuid": "c32fcd1d56035cb08acfd380be224c6a" + } + }, + "description": "Signals from Lane Departure Detection System.", + "type": "branch", + "uuid": "e45f33fdcf245f11981b2f201ee8281a" + }, + "ObstacleDetection": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if obstacle sensor system is enabled (i.e. monitoring for obstacles). True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "cc0cd497285e5034a1cccb25f02e9db9" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if obstacle sensor system incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "368b74e2468d5217925a478ed6e34f9f" + }, + "IsWarning": { + "datatype": "boolean", + "description": "Indicates if obstacle sensor system registered an obstacle.", + "type": "sensor", + "uuid": "b0b1eab51f135ffcb2a17a7603415fec" + } + }, + "description": "Signals form Obstacle Sensor System.", + "type": "branch", + "uuid": "e7b6d81631cc5ac584d027d4c1a66cb5" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "044ad42893e65993bfc439455fb08faa" + }, + "SupportedAutonomyLevel": { + "allowed": [ + "SAE_0", + "SAE_1", + "SAE_2", + "SAE_3", + "SAE_4", + "SAE_5" + ], + "datatype": "string", + "description": "Indicates the highest level of driving automation according to the SAE J3016 taxonomy the vehicle is capable of.", + "type": "attribute", + "uuid": "020410189ab4517cb85ceda268b40f51" + }, + "TCS": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if TCS is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "1d2dda19b11758a19ba7c1d5cd2d7956" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if TCS is currently regulating traction. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "b33d70009ad5589fbffe17fa7e827242" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if TCS incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "08f88723ba63558b8c804b8fe8e3f149" + } + }, + "description": "Traction Control System signals.", + "type": "branch", + "uuid": "0572e9f6b1aa5fb5b2f68086aff05073" + } + }, + "description": "All Advanced Driver Assist Systems data.", + "type": "branch", + "uuid": "14c2b2e1297b513197d320a5ce58f42e" + }, + "Acceleration": { + "children": { + "Lateral": { + "datatype": "float", + "description": "Vehicle acceleration in Y (lateral acceleration).", + "type": "sensor", + "unit": "m/s^2", + "uuid": "7522c5d6b7665b16a099643b2700e93c" + }, + "Longitudinal": { + "datatype": "float", + "description": "Vehicle acceleration in X (longitudinal acceleration).", + "type": "sensor", + "unit": "m/s^2", + "uuid": "3d511fe7232b5841be311b37f322de5a" + }, + "Vertical": { + "datatype": "float", + "description": "Vehicle acceleration in Z (vertical acceleration).", + "type": "sensor", + "unit": "m/s^2", + "uuid": "a4a8a7c4ac5b52deb0b3ee4ed8787c59" + } + }, + "description": "Spatial acceleration. Axis definitions according to ISO 8855.", + "type": "branch", + "uuid": "6c490e6a798c5abc8f0178ed6deae0a8" + }, + "AngularVelocity": { + "children": { + "Pitch": { + "datatype": "float", + "description": "Vehicle rotation rate along Y (lateral).", + "type": "sensor", + "unit": "degrees/s", + "uuid": "42236f4a01f45313a97fdd9b6848ce4f" + }, + "Roll": { + "datatype": "float", + "description": "Vehicle rotation rate along X (longitudinal).", + "type": "sensor", + "unit": "degrees/s", + "uuid": "221e6b93881e5771bcbd03e0849e0075" + }, + "Yaw": { + "datatype": "float", + "description": "Vehicle rotation rate along Z (vertical).", + "type": "sensor", + "unit": "degrees/s", + "uuid": "4114c41552565c1f9035670cabe2a611" + } + }, + "description": "Spatial rotation. Axis definitions according to ISO 8855.", + "type": "branch", + "uuid": "1eef530a43de56aab665d2766483cde2" + }, + "AverageSpeed": { + "comment": "A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled. The signal may however keep the value of the last trip until a new trip is started. Calculation of average speed may exclude periods when the vehicle for example is not moving or transmission is in neutral.", + "datatype": "float", + "description": "Average speed for the current trip.", + "type": "sensor", + "unit": "km/h", + "uuid": "43a489636a665c3abb99b63174eb552b" + }, + "Body": { + "children": { + "BodyType": { + "datatype": "string", + "description": "Body type code as defined by ISO 3779.", + "type": "attribute", + "uuid": "6253412513105deea63b1d424117fd88" + }, + "Hood": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "890aa3359e1a579288af1cf8e6b5b71f" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "b79e060142095986aaeffcddd26d0d53" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "256f856f00725f1fbd733b78f864c10d" + } + }, + "comment": "The hood is the hinged cover over the engine compartment of a motor vehicles. Depending on vehicle, it can be either in the front or back of the vehicle. Luggage compartments are in VSS called trunks, even if they are located at the front of the vehicle.", + "description": "Hood status. Start position for Hood is Closed.", + "type": "branch", + "uuid": "84510652bf915bbe8bf5f477aab2b44a" + }, + "Horn": { + "children": { + "IsActive": { + "datatype": "boolean", + "description": "Horn active or inactive. True = Active. False = Inactive.", + "type": "actuator", + "uuid": "ba20deed9314525bb9d552a2b787fb20" + } + }, + "description": "Horn signals.", + "type": "branch", + "uuid": "09c76633887f52268b960740eb969c89" + }, + "Lights": { + "children": { + "Backup": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "b907c4ac4ee459faa987c64a6da424c3" + }, + "IsOn": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_reverseLightStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": false + }, + { + "from": "LIGHT_ON", + "to": true + }, + { + "from": "LIGHT_FAULT", + "to": false + }, + { + "from": "LIGHT_SNA", + "to": false + } + ] + } + }, + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "ef23a3fa6106564195a66e21d8cf69b4" + } + }, + "description": "Backup lights.", + "type": "branch", + "uuid": "4fe2cb68fc77506686eced7225aeff9a" + }, + "Beam": { + "children": { + "High": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "83561d8c9a025cfdad6c4b325829fa00" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "24d1346519b05697b872c06556a09fb4" + } + }, + "description": "Beam lights.", + "type": "branch", + "uuid": "306b51d2e1ec572fa80172aad6727da0" + }, + "Low": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "3a135f1267ea5b2a80aa9a17fc8072db" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "8b4d4855b0c95963a25dc564c9758610" + } + }, + "description": "Beam lights.", + "type": "branch", + "uuid": "f6f21ea5b263545297f4411b2e15037f" + } + }, + "description": "Beam lights.", + "type": "branch", + "uuid": "6685308a9d955ecdad92a7cc68666a12" + }, + "Brake": { + "children": { + "IsActive": { + "allowed": [ + "INACTIVE", + "ACTIVE", + "ADAPTIVE" + ], + "datatype": "string", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_brakeLightStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": "INACTIVE" + }, + { + "from": "LIGHT_ON", + "to": "ACTIVE" + }, + { + "from": "LIGHT_FAULT", + "to": "INACTIVE" + }, + { + "from": "LIGHT_SNA", + "to": "INACTIVE" + } + ] + } + }, + "description": "Indicates if break-light is active. INACTIVE means lights are off. ACTIVE means lights are on. ADAPTIVE means that break-light is indicating emergency-breaking.", + "type": "actuator", + "uuid": "65eb84d61ea95313985054f626b85b59" + }, + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "1db542c5ba715e09b948527418966728" + } + }, + "description": "Brake lights.", + "type": "branch", + "uuid": "30eabe704102501cb299d03696fad92a" + }, + "DirectionIndicator": { + "children": { + "Left": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "32a092936fb65165ba1dd8dfa38bf77d" + }, + "IsSignaling": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCLEFT_turnSignalStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": false + }, + { + "from": "LIGHT_ON", + "to": true + }, + { + "from": "LIGHT_FAULT", + "to": false + }, + { + "from": "LIGHT_SNA", + "to": false + } + ] + } + }, + "description": "Indicates if light is signaling or off. True = signaling. False = Off.", + "type": "actuator", + "uuid": "33ac6ec5e4d9550aac6ae0ce97dae259" + } + }, + "description": "Indicator lights.", + "type": "branch", + "uuid": "446dea42b8e95d87b45e5e51c881bf98" + }, + "Right": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "db70c2d885725583a7ed95b215a8ec6c" + }, + "IsSignaling": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_turnSignalStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": false + }, + { + "from": "LIGHT_ON", + "to": true + }, + { + "from": "LIGHT_FAULT", + "to": false + }, + { + "from": "LIGHT_SNA", + "to": false + } + ] + } + }, + "description": "Indicates if light is signaling or off. True = signaling. False = Off.", + "type": "actuator", + "uuid": "9b0a1dab153f5dcda8df2116c3b6d487" + } + }, + "description": "Indicator lights.", + "type": "branch", + "uuid": "9922f6b417e95f1c945ef9f414bcdf78" + } + }, + "description": "Indicator lights.", + "type": "branch", + "uuid": "0566cb97d05c554eb88a07142f2475ac" + }, + "Fog": { + "children": { + "Front": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "f9238f15d2615a22802ce9ec9f1d72e9" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "0ec10846d20a5d1b9b8a286303ecb844" + } + }, + "description": "Fog lights.", + "type": "branch", + "uuid": "230cc65abaaf500c9085c29d48107552" + }, + "Rear": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "1d44e594ffa35d73a6f620f479eeef4c" + }, + "IsOn": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_brakeLightStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": false + }, + { + "from": "LIGHT_ON", + "to": true + }, + { + "from": "LIGHT_FAULT", + "to": false + }, + { + "from": "LIGHT_SNA", + "to": false + } + ] + } + }, + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "1fe08a2f687c5c2880adef26cc7de746" + } + }, + "description": "Fog lights.", + "type": "branch", + "uuid": "38359f258135516cb49c0fa1f093d478" + } + }, + "description": "Fog lights.", + "type": "branch", + "uuid": "1e90cf42bb825217b283c7285a606953" + }, + "Hazard": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "25cd3475beb6543a8538974b67544c43" + }, + "IsSignaling": { + "datatype": "boolean", + "description": "Indicates if light is signaling or off. True = signaling. False = Off.", + "type": "actuator", + "uuid": "c53950205aa15dffa304390dcb761cc3" + } + }, + "description": "Hazard lights.", + "type": "branch", + "uuid": "803498c3be6253dfb074c0e0294be758" + }, + "IsHighBeamSwitchOn": { + "comment": "This signal indicates the status of the switch and does not indicate if low or high beam actually are on. That typically depends on vehicle logic and other signals like Lights.LightSwitch and Vehicle.LowVoltageSystemState.", + "datatype": "boolean", + "description": "Status of the high beam switch. True = high beam enabled. False = high beam not enabled.", + "type": "actuator", + "uuid": "ac7db3cd30f55650bc6939df504f1a79" + }, + "LicensePlate": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "4de6594de7815cec97e5b851d70e239b" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "afeace5d76ed53f989ae4251090ba069" + } + }, + "description": "License plate lights.", + "type": "branch", + "uuid": "7bb12e42a8c45c198f83bf41b19131fa" + }, + "LightSwitch": { + "allowed": [ + "OFF", + "POSITION", + "DAYTIME_RUNNING_LIGHTS", + "AUTO", + "BEAM" + ], + "comment": "A vehicle typically does not support all alternatives. Which lights that actually are lit may vary according to vehicle configuration and local legislation. OFF is typically indicated by 0. POSITION is typically indicated by ISO 7000 symbol 0456. DAYTIME_RUNNING_LIGHTS (DRL) can be indicated by ISO 7000 symbol 2611. AUTO indicates that vehicle automatically selects suitable lights. BEAM is typically indicated by ISO 7000 symbol 0083.", + "datatype": "string", + "description": "Status of the vehicle main light switch.", + "type": "actuator", + "uuid": "2feb14a3558256339442413783969f4f" + }, + "Parking": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "56761305eae559c7931f6ff5fee0dfa8" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "6ba0825427335408ad7d0f148d6250ea" + } + }, + "description": "Parking lights.", + "type": "branch", + "uuid": "dfb819be5cec5be09b9fb743829301c3" + }, + "Running": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "7cda127e6d45547681757e789c0b7a87" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "1c4e44f1e0275965b466ac674a5b8cac" + } + }, + "description": "Daytime running lights (DRL).", + "type": "branch", + "uuid": "38868a9f1bda573595501302c1f0a1db" + } + }, + "description": "Exterior lights.", + "type": "branch", + "uuid": "399d1ec14d6f55bb825e078a801bde55" + }, + "Mirrors": { + "children": { + "DriverSide": { + "children": { + "IsFolded": { + "datatype": "boolean", + "description": "Is mirror folded? True = Fully or partially folded. False = Fully unfolded.", + "type": "actuator", + "uuid": "0ade6b89326052829a49da918aacf0b7" + }, + "IsHeatingOn": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCLEFT_mirrorHeatState", + "transform": { + "mapping": [ + { + "from": "HEATER_STATE_ON", + "to": true + }, + { + "from": "HEATER_STATE_OFF", + "to": false + } + ] + } + }, + "description": "Mirror Heater on or off. True = Heater On. False = Heater Off.", + "type": "actuator", + "uuid": "21262ce775a85abe9f6354f9c3ac9988" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is mirror movement locked? True = Locked, mirror will not react to Tilt/Pan change. False = Unlocked.", + "type": "actuator", + "uuid": "d267fc64959e59ce8335911faa87980f" + }, + "Pan": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCLEFT_mirrorTiltXPosition", + "transform": { + "math": "floor((x*40)-100)" + } + }, + "description": "Mirror pan as a percent. 0 = Center Position. 100 = Fully Left Position. -100 = Fully Right Position.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "4749ae14c526547c9b511f66a67b3d27" + }, + "Tilt": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCLEFT_mirrorTiltYPosition", + "transform": { + "math": "floor((x*40)-100)" + } + }, + "description": "Mirror tilt as a percent. 0 = Center Position. 100 = Fully Upward Position. -100 = Fully Downward Position.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "eafa81963c315aa78eda11eec8012d34" + } + }, + "description": "All mirrors.", + "type": "branch", + "uuid": "3c62705bbcf654489c8179b63118829f" + }, + "PassengerSide": { + "children": { + "IsFolded": { + "datatype": "boolean", + "description": "Is mirror folded? True = Fully or partially folded. False = Fully unfolded.", + "type": "actuator", + "uuid": "2b0bedf76d29520d9b96469695c3e0e8" + }, + "IsHeatingOn": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCLEFT_mirrorHeatState", + "transform": { + "mapping": [ + { + "from": "HEATER_STATE_ON", + "to": true + }, + { + "from": "HEATER_STATE_OFF", + "to": false + } + ] + } + }, + "description": "Mirror Heater on or off. True = Heater On. False = Heater Off.", + "type": "actuator", + "uuid": "9d64ad38532658298e5f59a2f999ef57" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is mirror movement locked? True = Locked, mirror will not react to Tilt/Pan change. False = Unlocked.", + "type": "actuator", + "uuid": "b919c8699dae540a840fbd296df49aca" + }, + "Pan": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_mirrorTiltXPosition", + "transform": { + "math": "floor((x*40)-100)" + } + }, + "description": "Mirror pan as a percent. 0 = Center Position. 100 = Fully Left Position. -100 = Fully Right Position.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "d3dc2e11874f528fa0987e596993bde8" + }, + "Tilt": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_mirrorTiltYPosition", + "transform": { + "math": "floor((x*40)-100)" + } + }, + "description": "Mirror tilt as a percent. 0 = Center Position. 100 = Fully Upward Position. -100 = Fully Downward Position.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "0f3734b090065873a7feb40931c72a28" + } + }, + "description": "All mirrors.", + "type": "branch", + "uuid": "8025a1e06e9d5ddb96405cce1f1f38cb" + } + }, + "description": "All mirrors.", + "type": "branch", + "uuid": "a4ea618914885a239ef5fa62c671a800" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "2fe44a1c3bb155aca782b017efeb6175" + }, + "Raindetection": { + "children": { + "Intensity": { + "datatype": "uint8", + "description": "Rain intensity. 0 = Dry, No Rain. 100 = Covered.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "1ee0a2f22e8257d299425a4ff2652555" + } + }, + "description": "Rain sensor signals.", + "type": "branch", + "uuid": "f16759f3dcfb5be4832e962da29ebd6c" + }, + "RearMainSpoilerPosition": { + "datatype": "float", + "description": "Rear spoiler position, 0% = Spoiler fully stowed. 100% = Spoiler fully exposed.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6209a82390585b869cc3d00d069eade2" + }, + "RefuelPosition": { + "allowed": [ + "FRONT_LEFT", + "FRONT_RIGHT", + "MIDDLE_LEFT", + "MIDDLE_RIGHT", + "REAR_LEFT", + "REAR_RIGHT" + ], + "datatype": "string", + "deprecation": "v4.1 replaced with Vehicle.Powertrain.TractionBattery.Charging.ChargePortPosition and Vehicle.Powertrain.FuelSystem.RefuelPortPosition", + "description": "Location of the fuel cap or charge port.", + "type": "attribute", + "uuid": "53ef90a851fa57f0810d50238e852f02" + }, + "Trunk": { + "children": { + "Front": { + "children": { + "IsLightOn": { + "comment": "V4.0 Moved from Vehicle.Cabin.Lights.IsTrunkOn because Trunk is not defined as part of the Cabin.", + "datatype": "boolean", + "description": "Is trunk light on", + "type": "actuator", + "uuid": "43d7844934a45890bf2a287b676a994b" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "e0eabc210f07505fa1b66b67729d681b" + }, + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "2047de0896a352fcaf02baa06819a023" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6d871111a565517098cd29936a30dd22" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "63a651cd414652aba970a937af0b3621" + } + }, + "comment": "A trunk is a luggage compartment in a vehicle. Depending on vehicle, it can be either in the front or back of the vehicle. Some vehicles may have trunks both at the front and at the rear of the vehicle.", + "description": "Trunk status. Start position for Trunk is Closed.", + "type": "branch", + "uuid": "a455aca5bae55c22b7949fd31a765a6c" + }, + "Rear": { + "children": { + "IsLightOn": { + "comment": "V4.0 Moved from Vehicle.Cabin.Lights.IsTrunkOn because Trunk is not defined as part of the Cabin.", + "datatype": "boolean", + "description": "Is trunk light on", + "type": "actuator", + "uuid": "a1065214515c5f7aa86f51eb7bf36664" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "8f9b55b002ed59d3ac2ef0b014abf4aa" + }, + "IsOpen": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCRIGHT_trunkLatchStatus", + "transform": { + "mapping": [ + { + "from": "LATCH_AJAR", + "to": true + }, + { + "from": "LATCH_CLOSED", + "to": false + }, + { + "from": "LATCH_CLOSING", + "to": true + }, + { + "from": "LATCH_FAULT", + "to": true + }, + { + "from": "LATCH_OPENED", + "to": true + }, + { + "from": "LATCH_OPENING", + "to": true + } + ] + } + }, + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "3d3249e59306594698367b839b12c938" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "574ae721a062565b9c057d813782909e" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "7a9f400abf875713adb5c696ae29b2be" + } + }, + "comment": "A trunk is a luggage compartment in a vehicle. Depending on vehicle, it can be either in the front or back of the vehicle. Some vehicles may have trunks both at the front and at the rear of the vehicle.", + "description": "Trunk status. Start position for Trunk is Closed.", + "type": "branch", + "uuid": "a6170ff5e4325f38b5d57402e1d95e5a" + } + }, + "comment": "A trunk is a luggage compartment in a vehicle. Depending on vehicle, it can be either in the front or back of the vehicle. Some vehicles may have trunks both at the front and at the rear of the vehicle.", + "description": "Trunk status. Start position for Trunk is Closed.", + "type": "branch", + "uuid": "a584c6a5aa235cb88ac686f8d72a1dff" + }, + "Windshield": { + "children": { + "Front": { + "children": { + "IsHeatingOn": { + "datatype": "boolean", + "description": "Windshield heater status. False - off, True - on.", + "type": "actuator", + "uuid": "26e6a3b7e9bb58bebba29258faa6e300" + }, + "WasherFluid": { + "children": { + "IsLevelLow": { + "datatype": "boolean", + "description": "Low level indication for washer fluid. True = Level Low. False = Level OK.", + "type": "sensor", + "uuid": "8ca54695ad115f9bb6f56d7c450781a7" + }, + "Level": { + "datatype": "uint8", + "description": "Washer fluid level as a percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "a36dfb91414f5792bd01d193dceff1f4" + } + }, + "description": "Windshield washer fluid signals", + "type": "branch", + "uuid": "2de24016515353289953de5ea81efd3c" + }, + "Wiping": { + "children": { + "Intensity": { + "datatype": "uint8", + "description": "Relative intensity/sensitivity for interval and rain sensor mode as requested by user/driver. Has no significance if Windshield.Wiping.Mode is OFF/SLOW/MEDIUM/FAST 0 - wipers inactive. 1 - minimum intensity (lowest frequency/sensitivity, longest interval). 2/3/4/... - higher intensity (higher frequency/sensitivity, shorter interval). Maximum value supported is vehicle specific.", + "type": "actuator", + "uuid": "7cdd36d1cc8f5f9a9f079f663190b588" + }, + "IsWipersWorn": { + "datatype": "boolean", + "description": "Wiper wear status. True = Worn, Replacement recommended or required. False = Not Worn.", + "type": "sensor", + "uuid": "b04ccc7daedb559c9bcdda6b00332be5" + }, + "Mode": { + "allowed": [ + "OFF", + "SLOW", + "MEDIUM", + "FAST", + "INTERVAL", + "RAIN_SENSOR" + ], + "datatype": "string", + "description": "Wiper mode requested by user/driver. INTERVAL indicates intermittent wiping, with fixed time interval between each wipe. RAIN_SENSOR indicates intermittent wiping based on rain intensity.", + "type": "actuator", + "uuid": "3ee6552c96e551c5b06b79ad30226767" + }, + "System": { + "children": { + "ActualPosition": { + "comment": "Default parking position might be used as reference position.", + "datatype": "float", + "description": "Actual position of main wiper blade for the wiper system relative to reference position. Location of reference position (0 degrees) and direction of positive/negative degrees is vehicle specific.", + "type": "actuator", + "unit": "degrees", + "uuid": "026307b591465a8a99ffc0ebf262b393" + }, + "DriveCurrent": { + "comment": "May be negative in special situations.", + "datatype": "float", + "description": "Actual current used by wiper drive.", + "type": "sensor", + "unit": "A", + "uuid": "251e695821b758e7b7d459d5e2ab6ca4" + }, + "Frequency": { + "comment": "Examples - 0 = Wipers stopped, 80 = Wipers doing 80 cycles per minute (in WIPE mode).", + "datatype": "uint8", + "description": "Wiping frequency/speed, measured in cycles per minute. The signal concerns the actual speed of the wiper blades when moving. Intervals/pauses are excluded, i.e. the value corresponds to the number of cycles that would be completed in 1 minute if wiping permanently over default range.", + "type": "actuator", + "unit": "cpm", + "uuid": "7394c8b8d20d52638881161ec1b41fc0" + }, + "IsBlocked": { + "datatype": "boolean", + "description": "Indicates if wiper movement is blocked. True = Movement blocked. False = Movement not blocked.", + "type": "sensor", + "uuid": "4b526a2c781e56e386c82df226061f9e" + }, + "IsEndingWipeCycle": { + "comment": "In continuous wiping between A and B this sensor can be used a trigger to update TargetPosition.", + "datatype": "boolean", + "description": "Indicates if current wipe movement is completed or near completion. True = Movement is completed or near completion. Changes to RequestedPosition will be executed first after reaching previous RequestedPosition, if it has not already been reached. False = Movement is not near completion. Any change to RequestedPosition will be executed immediately. Change of direction may not be allowed.", + "type": "sensor", + "uuid": "5000f7f0c39e5fed9a95413ae4166482" + }, + "IsOverheated": { + "datatype": "boolean", + "description": "Indicates if wiper system is overheated. True = Wiper system overheated. False = Wiper system not overheated.", + "type": "sensor", + "uuid": "e05d376ec2525ba2b61039d55f93760f" + }, + "IsPositionReached": { + "datatype": "boolean", + "description": "Indicates if a requested position has been reached. IsPositionReached refers to the previous position in case the TargetPosition is updated while IsEndingWipeCycle=True. True = Current or Previous TargetPosition reached. False = Position not (yet) reached, or wipers have moved away from the reached position.", + "type": "sensor", + "uuid": "d42149fa8982593991aa5cd13a1cdee9" + }, + "IsWiperError": { + "datatype": "boolean", + "description": "Indicates system failure. True if wiping is disabled due to system failure.", + "type": "sensor", + "uuid": "5276055d973f57998e1b8d6e536de735" + }, + "IsWiping": { + "datatype": "boolean", + "description": "Indicates wiper movement. True if wiper blades are moving. Change of direction shall be considered as IsWiping if wipers will continue to move directly after the change of direction.", + "type": "sensor", + "uuid": "2015a4610d7a5fbdbb63b260640838e6" + }, + "Mode": { + "allowed": [ + "STOP_HOLD", + "WIPE", + "PLANT_MODE", + "EMERGENCY_STOP" + ], + "datatype": "string", + "description": "Requested mode of wiper system. STOP_HOLD means that the wipers shall move to position given by TargetPosition and then hold the position. WIPE means that wipers shall move to the position given by TargetPosition and then hold the position if no new TargetPosition is requested. PLANT_MODE means that wiping is disabled. Exact behavior is vehicle specific. EMERGENCY_STOP means that wiping shall be immediately stopped without holding the position.", + "type": "actuator", + "uuid": "d15518f5d1bc54a38718f43ef749dd34" + }, + "TargetPosition": { + "comment": "Default parking position might be used as reference position.", + "datatype": "float", + "description": "Requested position of main wiper blade for the wiper system relative to reference position. Location of reference position (0 degrees) and direction of positive/negative degrees is vehicle specific. System behavior when receiving TargetPosition depends on Mode and IsEndingWipeCycle. Supported values are vehicle specific and might be dynamically corrected. If IsEndingWipeCycle=True then wipers will complete current movement before actuating new TargetPosition. If IsEndingWipeCycle=False then wipers will directly change destination if the TargetPosition is changed.", + "type": "actuator", + "unit": "degrees", + "uuid": "7a4a3fdd2947596dbada6980c142f090" + } + }, + "comment": "These signals are typically not directly available to the user/driver of the vehicle. The overlay in overlays/extensions/dual_wiper_systems.vspec can be used to modify this branch to support two instances; Primary and Secondary.", + "description": "Signals to control behavior of wipers in detail. By default VSS expects only one instance.", + "type": "branch", + "uuid": "9002ff76166950e0aa3b7c9df3b53468" + }, + "WiperWear": { + "datatype": "uint8", + "description": "Wiper wear as percent. 0 = No Wear. 100 = Worn. Replacement required. Method for calculating or estimating wiper wear is vehicle specific. For windshields with multiple wipers the wear reported shall correspond to the most worn wiper.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "92c879c11bc65e6da30d582a3928caac" + } + }, + "description": "Windshield wiper signals.", + "type": "branch", + "uuid": "2cffeccdc19a587cbe2264f426c6881a" + } + }, + "description": "Windshield signals.", + "type": "branch", + "uuid": "8f0c61e4e4f557d98729210fc3c74f72" + }, + "Rear": { + "children": { + "IsHeatingOn": { + "datatype": "boolean", + "description": "Windshield heater status. False - off, True - on.", + "type": "actuator", + "uuid": "76d811b4c4c356f4898dd6383e28bc6f" + }, + "WasherFluid": { + "children": { + "IsLevelLow": { + "datatype": "boolean", + "description": "Low level indication for washer fluid. True = Level Low. False = Level OK.", + "type": "sensor", + "uuid": "8ca0356548ae54e8af3aeace49e5ed71" + }, + "Level": { + "datatype": "uint8", + "description": "Washer fluid level as a percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "c167e5b265895c108da1b9582de2dd91" + } + }, + "description": "Windshield washer fluid signals", + "type": "branch", + "uuid": "1ea4ac2370e1567b9b812c1e3020ddfb" + }, + "Wiping": { + "children": { + "Intensity": { + "datatype": "uint8", + "description": "Relative intensity/sensitivity for interval and rain sensor mode as requested by user/driver. Has no significance if Windshield.Wiping.Mode is OFF/SLOW/MEDIUM/FAST 0 - wipers inactive. 1 - minimum intensity (lowest frequency/sensitivity, longest interval). 2/3/4/... - higher intensity (higher frequency/sensitivity, shorter interval). Maximum value supported is vehicle specific.", + "type": "actuator", + "uuid": "f18b13b9d96b51c492c031d3d86d22da" + }, + "IsWipersWorn": { + "datatype": "boolean", + "description": "Wiper wear status. True = Worn, Replacement recommended or required. False = Not Worn.", + "type": "sensor", + "uuid": "0e8d5f7cb6295b908be3a03e8792cca8" + }, + "Mode": { + "allowed": [ + "OFF", + "SLOW", + "MEDIUM", + "FAST", + "INTERVAL", + "RAIN_SENSOR" + ], + "datatype": "string", + "description": "Wiper mode requested by user/driver. INTERVAL indicates intermittent wiping, with fixed time interval between each wipe. RAIN_SENSOR indicates intermittent wiping based on rain intensity.", + "type": "actuator", + "uuid": "8cc0b88ac8b45f5fa30bb7755ce22648" + }, + "System": { + "children": { + "ActualPosition": { + "comment": "Default parking position might be used as reference position.", + "datatype": "float", + "description": "Actual position of main wiper blade for the wiper system relative to reference position. Location of reference position (0 degrees) and direction of positive/negative degrees is vehicle specific.", + "type": "actuator", + "unit": "degrees", + "uuid": "eddee2607a135582bbcf3d3afc845892" + }, + "DriveCurrent": { + "comment": "May be negative in special situations.", + "datatype": "float", + "description": "Actual current used by wiper drive.", + "type": "sensor", + "unit": "A", + "uuid": "7a254692329055dfb4089e2dcc1d4ef3" + }, + "Frequency": { + "comment": "Examples - 0 = Wipers stopped, 80 = Wipers doing 80 cycles per minute (in WIPE mode).", + "datatype": "uint8", + "description": "Wiping frequency/speed, measured in cycles per minute. The signal concerns the actual speed of the wiper blades when moving. Intervals/pauses are excluded, i.e. the value corresponds to the number of cycles that would be completed in 1 minute if wiping permanently over default range.", + "type": "actuator", + "unit": "cpm", + "uuid": "371171d971995c999585b028e19be461" + }, + "IsBlocked": { + "datatype": "boolean", + "description": "Indicates if wiper movement is blocked. True = Movement blocked. False = Movement not blocked.", + "type": "sensor", + "uuid": "046e818b4dd9595a8301503e9afe028b" + }, + "IsEndingWipeCycle": { + "comment": "In continuous wiping between A and B this sensor can be used a trigger to update TargetPosition.", + "datatype": "boolean", + "description": "Indicates if current wipe movement is completed or near completion. True = Movement is completed or near completion. Changes to RequestedPosition will be executed first after reaching previous RequestedPosition, if it has not already been reached. False = Movement is not near completion. Any change to RequestedPosition will be executed immediately. Change of direction may not be allowed.", + "type": "sensor", + "uuid": "c1357156d87c58f49d4c43c2a6e97c03" + }, + "IsOverheated": { + "datatype": "boolean", + "description": "Indicates if wiper system is overheated. True = Wiper system overheated. False = Wiper system not overheated.", + "type": "sensor", + "uuid": "d30bc6f33b995ef491c252980a559ee2" + }, + "IsPositionReached": { + "datatype": "boolean", + "description": "Indicates if a requested position has been reached. IsPositionReached refers to the previous position in case the TargetPosition is updated while IsEndingWipeCycle=True. True = Current or Previous TargetPosition reached. False = Position not (yet) reached, or wipers have moved away from the reached position.", + "type": "sensor", + "uuid": "ad35e8d17cd95273b1091dcef2104ea1" + }, + "IsWiperError": { + "datatype": "boolean", + "description": "Indicates system failure. True if wiping is disabled due to system failure.", + "type": "sensor", + "uuid": "ac5983deacbe59d7ba1312d44bfd9cd4" + }, + "IsWiping": { + "datatype": "boolean", + "description": "Indicates wiper movement. True if wiper blades are moving. Change of direction shall be considered as IsWiping if wipers will continue to move directly after the change of direction.", + "type": "sensor", + "uuid": "4e001bf679e85c9aa7319bafc3a86e75" + }, + "Mode": { + "allowed": [ + "STOP_HOLD", + "WIPE", + "PLANT_MODE", + "EMERGENCY_STOP" + ], + "datatype": "string", + "description": "Requested mode of wiper system. STOP_HOLD means that the wipers shall move to position given by TargetPosition and then hold the position. WIPE means that wipers shall move to the position given by TargetPosition and then hold the position if no new TargetPosition is requested. PLANT_MODE means that wiping is disabled. Exact behavior is vehicle specific. EMERGENCY_STOP means that wiping shall be immediately stopped without holding the position.", + "type": "actuator", + "uuid": "f2f47522466d570baa7618fac5b0359c" + }, + "TargetPosition": { + "comment": "Default parking position might be used as reference position.", + "datatype": "float", + "description": "Requested position of main wiper blade for the wiper system relative to reference position. Location of reference position (0 degrees) and direction of positive/negative degrees is vehicle specific. System behavior when receiving TargetPosition depends on Mode and IsEndingWipeCycle. Supported values are vehicle specific and might be dynamically corrected. If IsEndingWipeCycle=True then wipers will complete current movement before actuating new TargetPosition. If IsEndingWipeCycle=False then wipers will directly change destination if the TargetPosition is changed.", + "type": "actuator", + "unit": "degrees", + "uuid": "c39bef0760185555904a92a305392080" + } + }, + "comment": "These signals are typically not directly available to the user/driver of the vehicle. The overlay in overlays/extensions/dual_wiper_systems.vspec can be used to modify this branch to support two instances; Primary and Secondary.", + "description": "Signals to control behavior of wipers in detail. By default VSS expects only one instance.", + "type": "branch", + "uuid": "a00826f6ecc25c3fae7ad164361bdb33" + }, + "WiperWear": { + "datatype": "uint8", + "description": "Wiper wear as percent. 0 = No Wear. 100 = Worn. Replacement required. Method for calculating or estimating wiper wear is vehicle specific. For windshields with multiple wipers the wear reported shall correspond to the most worn wiper.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "afd6a352230f5eeaa8ac5f1f188bfd33" + } + }, + "description": "Windshield wiper signals.", + "type": "branch", + "uuid": "f56e80a50fd75dbca48581aea4f012b7" + } + }, + "description": "Windshield signals.", + "type": "branch", + "uuid": "095ff58459b854aaa742e56447fe7a93" + } + }, + "description": "Windshield signals.", + "type": "branch", + "uuid": "73efba535dcb5032b9edc43406b050b8" + } + }, + "description": "All body components.", + "type": "branch", + "uuid": "bd2854e6a9165c5698ce8dd9f0438ecc" + }, + "Cabin": { + "children": { + "Convertible": { + "children": { + "Status": { + "allowed": [ + "UNDEFINED", + "CLOSED", + "OPEN", + "CLOSING", + "OPENING", + "STALLED" + ], + "datatype": "string", + "description": "Roof status on convertible vehicles.", + "type": "sensor", + "uuid": "c8812698198a56d7a1adcc8bbe87845f" + } + }, + "description": "Convertible roof.", + "type": "branch", + "uuid": "2aece85d39d6569e93cf842387a645d9" + }, + "DogMode": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 500, + "on_change": true, + "signal": "DogModeOn" + }, + "description": "Enable Dog Mode.", + "type": "attribute", + "uuid": "dd8f729173665938b27d5fa648bfd5cc" + }, + "DogModeTemperature": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 500, + "on_change": true, + "signal": "DogModeTempSet" + }, + "description": "Set desired temperature for Dog Mode.", + "type": "attribute", + "unit": "celsius", + "uuid": "f5098a5c5ae3504baf6004f31ab58f5a" + }, + "Door": { + "children": { + "Row1": { + "children": { + "DriverSide": { + "children": { + "IsChildLockActive": { + "datatype": "boolean", + "description": "Is door child lock active. True = Door cannot be opened from inside. False = Door can be opened from inside.", + "type": "sensor", + "uuid": "62a265895be0566694358eecab381a4c" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "9080712219dc57eaacf85d6630e01ca0" + }, + "IsOpen": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 500, + "signal": "VCLEFT_frontDoorState", + "transform": { + "mapping": [ + { + "from": "DOOR_STATE_CLOSED", + "to": false + }, + { + "from": "DOOR_STATE_OPEN_OR_AJAR", + "to": true + }, + { + "from": "DOOR_STATE_RELEASING_LATCH", + "to": true + } + ] + } + }, + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "da3dccb4ab085fcabca24efd99435d87" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6ef9c60445f9577e83ffff4ea6d863b9" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "112a180977c956aab6c5422cb6cc46e7" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "7ec218dfc5855bfa88af947d7b06b1f4" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "fea7f9577a8456128c548daf3c548ea4" + } + }, + "description": "Side window shade. Open = Retracted, Closed = Deployed. Start position for Shade is Open/Retracted.", + "type": "branch", + "uuid": "7220d013b9205e1b9e7ca6b95cb14058" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "1b93676e79ea5a9095327bde69927a21" + }, + "Window": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "ff58aae512475431bec02b5c4a36b6f9" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "83da2e0448465874bf2bff9aeff91793" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "5d3f802110a95653b4518b8f21836113" + } + }, + "description": "Door window status. Start position for Window is Closed.", + "type": "branch", + "uuid": "6ab9b77468d45cdfadebe124256aa910" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "0fe04659010a505a9816a3a9457b3540" + }, + "PassengerSide": { + "children": { + "IsChildLockActive": { + "datatype": "boolean", + "description": "Is door child lock active. True = Door cannot be opened from inside. False = Door can be opened from inside.", + "type": "sensor", + "uuid": "74a842786a73553ba3491975c2077ac7" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "48d4388ec67b519ab500ee424ce4b6cb" + }, + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "80aca3884840557db10f1314a27a5eeb" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "7002316cdf9852afb027abc03309b15d" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "46bec5f9c4ef594fb41836d413e79400" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "8f583d09021e51319aa6bdd0e29aefc8" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "c700d6a13a16522ead84b81314fd452b" + } + }, + "description": "Side window shade. Open = Retracted, Closed = Deployed. Start position for Shade is Open/Retracted.", + "type": "branch", + "uuid": "dfe64259f26a54bda64b9aa24362c7eb" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "c1244ebb7ef35c2a9e0f6ebf47710536" + }, + "Window": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "120e3b950fd657fabd90069e6e01f44e" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "ec293d2eb9e052e88d01927c811711ef" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "36efa23a161a5fe1b65e36f5656738fb" + } + }, + "description": "Door window status. Start position for Window is Closed.", + "type": "branch", + "uuid": "c588ac43d3945dc0a45994c4d298d9b0" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "9ea0425fb2085ded9a393d4e999ae90a" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "fd3fcb481cb953dc9a853125c6ca0453" + }, + "Row2": { + "children": { + "DriverSide": { + "children": { + "IsChildLockActive": { + "datatype": "boolean", + "description": "Is door child lock active. True = Door cannot be opened from inside. False = Door can be opened from inside.", + "type": "sensor", + "uuid": "707facc3d89052d8ae66675ffd8755a8" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "df98641aae1553a68b741826496d9d42" + }, + "IsOpen": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 500, + "signal": "VCLEFT_rearDoorState", + "transform": { + "mapping": [ + { + "from": "DOOR_STATE_CLOSED", + "to": false + }, + { + "from": "DOOR_STATE_OPEN_OR_AJAR", + "to": true + }, + { + "from": "DOOR_STATE_RELEASING_LATCH", + "to": true + } + ] + } + }, + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "49c55921d1825bc1a82334a40eeb45f9" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "bf1d5b2f6a0b59bcb18abf24ea45c11e" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "69c6da83b3aa51cd8156e57b2ba431a5" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "96227261fc205735adb031fb549de6bf" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "81f6196e909d590d858fe4da18c60590" + } + }, + "description": "Side window shade. Open = Retracted, Closed = Deployed. Start position for Shade is Open/Retracted.", + "type": "branch", + "uuid": "9b08a5dc400253b8bf31776582f275fd" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "3e46afea496054afb12653a9c82c66ad" + }, + "Window": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "1fa3b2f43118575aa2f136fdd15ff61f" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "8a097ade895c5cd8afe9efeef79532fc" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "4dd1a3858c1b54cc94a8dc4d011ea307" + } + }, + "description": "Door window status. Start position for Window is Closed.", + "type": "branch", + "uuid": "bb6ac206a45b507f9f1fe5fdfcf82b31" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "996c7ede1ac453ae9aed508c2835ae56" + }, + "PassengerSide": { + "children": { + "IsChildLockActive": { + "datatype": "boolean", + "description": "Is door child lock active. True = Door cannot be opened from inside. False = Door can be opened from inside.", + "type": "sensor", + "uuid": "082f7e3633ab56d4a48817329cf46ef9" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "32fa3a8c0b2d5451a4a1976438417305" + }, + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "84cab77c9c1d59aba1565b3484c5e01f" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "74e971377a1053d284a6bf80cf1aa1c1" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "d667cda8637e518e900f0e599f59ca1d" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "aa5627291c29505b8d2f7d652cc4800d" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "0c33dd31375452d6ad0c531eac1637c6" + } + }, + "description": "Side window shade. Open = Retracted, Closed = Deployed. Start position for Shade is Open/Retracted.", + "type": "branch", + "uuid": "8dc8133322a65057844f9b7eceee6ef9" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "1411f865d2065849aeb214875d0c099b" + }, + "Window": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "13e37e2924115c73a36df78f09fad493" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "e3e3fa03f4e357ae8ac8f43799a99350" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "174b3bc145625a22b23a283c424c28b4" + } + }, + "description": "Door window status. Start position for Window is Closed.", + "type": "branch", + "uuid": "b64ba696bf7b5fdc8dba79ae5cb119d1" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "16bc38dcd8055f50b54f87478f72f776" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "74c8a76ad2545ceba474a85ae84eec8e" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "fd7f4d16f8965419a9a69fd66b40c1d7" + }, + "DoorCount": { + "datatype": "uint8", + "default": 4, + "description": "Number of doors in vehicle.", + "type": "attribute", + "uuid": "c293fbef75725c57a9918dd5a34055c4" + }, + "DriverPosition": { + "allowed": [ + "LEFT", + "MIDDLE", + "RIGHT" + ], + "comment": "Some signals use DriverSide and PassengerSide as instances. If this signal specifies that DriverPosition is LEFT or MIDDLE, then DriverSide refers to left side and PassengerSide to right side. If this signal specifies that DriverPosition is RIGHT, then DriverSide refers to right side and PassengerSide to left side.", + "datatype": "string", + "description": "The position of the driver seat in row 1.", + "type": "attribute", + "uuid": "bca9ccd50358584d8d20865694b0d15f" + }, + "HVAC": { + "children": { + "AmbientAirTemperature": { + "datatype": "float", + "description": "Ambient air temperature inside the vehicle.", + "type": "sensor", + "unit": "celsius", + "uuid": "611868a24bc25eb9a837208c235e9491" + }, + "IsAirConditioningActive": { + "datatype": "boolean", + "description": "Is Air conditioning active.", + "type": "actuator", + "uuid": "dc4f79e4211c54a6b4eed0236aae84a6" + }, + "IsFrontDefrosterActive": { + "datatype": "boolean", + "description": "Is front defroster active.", + "type": "actuator", + "uuid": "afa678c87182544bb6ab81fa6a770791" + }, + "IsRearDefrosterActive": { + "datatype": "boolean", + "description": "Is rear defroster active.", + "type": "actuator", + "uuid": "d342a7939f2e5adeaeb5e68e3a314445" + }, + "IsRecirculationActive": { + "datatype": "boolean", + "description": "Is recirculation active.", + "type": "actuator", + "uuid": "7b80c41c63b35c9299a410166cd33c81" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "ee011a09ebc6519183177b05d7302ce8" + }, + "Station": { + "children": { + "Row1": { + "children": { + "Driver": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "8b7412018a6f5c0a8467bdddb53e76f7" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "3db004f9a2ee528099499d660bfa715f" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "1eae45dbda85581ca794b6b4513376cd" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "7480dcf1e7375c7491a4dc083a8a7d15" + }, + "Passenger": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "610facc5829f5d52a40e8b1e9706866c" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "2d00c3cf2f735a37b646d9a51e77ef9e" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "3a7a6b5f8c4756d4bcf540ee41c781e1" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "e536a7f5f6a05ff48f26f96ef5772455" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "80860491fba75babaf3c439d1d471a6d" + }, + "Row2": { + "children": { + "Driver": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "8a021c3941ee5fed99efb5b8c7e6882a" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "873e0193650f5f4a88bdb9777ead4df7" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "50d268809c555b82b275884f8c170825" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "d1dd7712867d51ec847afa67e6dd3c92" + }, + "Passenger": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "06105fb9e69755f38a02132b4b432351" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "a9d1c8e5a9e35e7ca924ec4871364de8" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "a83b6548c3c95d288072caa1a7dc2904" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "ed9c94346bd8511584c4d9a8e2d49ec0" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "d98e8f5f94da5acfbf428c635a8bcc0c" + }, + "Row3": { + "children": { + "Driver": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "ec927fbdee9e51c89ccba5c3752189cb" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "9c111ac7582752228e43bda739c0a26a" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "d16ac539f8035e209831c1f4c7c39c83" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "299b787af2fe56ab9721086824692e10" + }, + "Passenger": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "5cf67ab3c7d1500ab306c397b7dddb12" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "71f5693b021f52ca888335848535db51" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "1499ad96881c551886081c52d404d3e3" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "810eed3a9836574a886923f2ddf67dfd" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "6eb8d63b66c859d5b36ef52d264aed2b" + }, + "Row4": { + "children": { + "Driver": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "984add0704f850f2bb06a748c43211fb" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "fbd6ca78cdc557078f91b3d649866ec2" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "9db31f66a7575255864758d62a4e0185" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "7211e138449252378f1a6ffbece35753" + }, + "Passenger": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "2c829297b81e54cf85a04bde79f31f34" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "580538988d3f513c88612665621bba09" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "06b974ba5325558793b8a7dccb560bde" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "30fac3fdc3785d7fa8eb4298da45e95b" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "ff0c0fa26de7508dbe92a83bc087dff6" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "253e683e6f135b83b6302a30b6c0ec8d" + } + }, + "description": "Climate control", + "type": "branch", + "uuid": "f8ff34337cdf568e91ab406a365c3249" + }, + "Infotainment": { + "children": { + "HMI": { + "children": { + "Brightness": { + "comment": "The value 0 does not necessarily correspond to a turned off HMI, as it may not be allowed/supported to turn off the HMI completely.", + "datatype": "float", + "description": "Brightness of the HMI, relative to supported range. 0 = Lowest brightness possible. 100 = Maximum Brightness possible.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "44147980dabd56b883ae4d2491383a17" + }, + "CurrentLanguage": { + "datatype": "string", + "description": "ISO 639-1 standard language code for the current HMI", + "type": "sensor", + "uuid": "dc29ee5b7f7154b4ab05a9771fe930b3" + }, + "DateFormat": { + "allowed": [ + "YYYY_MM_DD", + "DD_MM_YYYY", + "MM_DD_YYYY", + "YY_MM_DD", + "DD_MM_YY", + "MM_DD_YY" + ], + "datatype": "string", + "description": "Date format used in the current HMI", + "type": "actuator", + "uuid": "0f03c3955fe953e9893a1f52e964919e" + }, + "DayNightMode": { + "allowed": [ + "DAY", + "NIGHT" + ], + "datatype": "string", + "description": "Current display theme", + "type": "actuator", + "uuid": "a892039ba136588fa26b2670f839c0cc" + }, + "DisplayOffDuration": { + "comment": "Display shall be turned off at HMI.LastActionTime + HMI.DisplayOffDuration, unless HMI.IsScreenAlwaysOn==True.", + "datatype": "uint16", + "description": "Duration in seconds before the display is turned off. Value shall be 0 if screen never shall turn off.", + "type": "actuator", + "unit": "s", + "uuid": "130114ebf81f59718cf257e198b90e01" + }, + "DistanceUnit": { + "allowed": [ + "MILES", + "KILOMETERS" + ], + "datatype": "string", + "description": "Distance unit used in the current HMI", + "type": "actuator", + "uuid": "4b40e8bdb1a053ee9ee35338d8804e7b" + }, + "EVEconomyUnits": { + "allowed": [ + "MILES_PER_KILOWATT_HOUR", + "KILOMETERS_PER_KILOWATT_HOUR", + "KILOWATT_HOURS_PER_100_MILES", + "KILOWATT_HOURS_PER_100_KILOMETERS", + "WATT_HOURS_PER_MILE", + "WATT_HOURS_PER_KILOMETER" + ], + "datatype": "string", + "description": "EV fuel economy unit used in the current HMI", + "type": "actuator", + "uuid": "914846f6804757ba81ca6bcfac8d2c48" + }, + "EVEnergyUnits": { + "allowed": [ + "WATT_HOURS", + "AMPERE_HOURS", + "KILOWATT_HOURS" + ], + "comment": "Ampere hours is by definition not an energy unit, but can be used as a measurement of energy if the voltage, like nominal voltage of the battery, is known.", + "datatype": "string", + "description": "EV energy unit used in the current HMI", + "type": "actuator", + "uuid": "cf09b365499859c5a916d7fc1ea2d3ba" + }, + "FontSize": { + "allowed": [ + "STANDARD", + "LARGE", + "EXTRA_LARGE" + ], + "datatype": "string", + "description": "Font size used in the current HMI", + "type": "actuator", + "uuid": "630bf4a73340503799e8d86889ffd863" + }, + "FuelEconomyUnits": { + "allowed": [ + "MPG_UK", + "MPG_US", + "MILES_PER_LITER", + "KILOMETERS_PER_LITER", + "LITERS_PER_100_KILOMETERS" + ], + "datatype": "string", + "description": "Fuel economy unit used in the current HMI", + "type": "actuator", + "uuid": "0e6a43ce1aa45243b753545ffa1f0f8c" + }, + "FuelVolumeUnit": { + "allowed": [ + "LITER", + "GALLON_US", + "GALLON_UK" + ], + "datatype": "string", + "description": "Fuel volume unit used in the current HMI", + "type": "actuator", + "uuid": "aef80d0bd01d593082e41abf072dab9b" + }, + "IsScreenAlwaysOn": { + "datatype": "boolean", + "description": "Used to prevent the screen going black if no action placed.", + "type": "actuator", + "uuid": "f6f2bffbad7e5e9098b351bf99b71624" + }, + "LastActionTime": { + "datatype": "string", + "description": "Time for last hmi action, formatted according to ISO 8601 with UTC time zone.", + "type": "sensor", + "uuid": "19b4f7e950bc526f8c263b4cc5954960" + }, + "SpeedUnit": { + "allowed": [ + "METERS_PER_SECOND", + "MILES_PER_HOUR", + "KILOMETERS_PER_HOUR" + ], + "datatype": "string", + "description": "Speed unit used in the current HMI", + "type": "actuator", + "uuid": "9bb9811aaa1c5ce79e0c19f5ba6049bb" + }, + "TemperatureUnit": { + "allowed": [ + "C", + "F" + ], + "datatype": "string", + "description": "Temperature unit used in the current HMI", + "type": "actuator", + "uuid": "a7d1533490bb52b6b4f650280e72543d" + }, + "TimeFormat": { + "allowed": [ + "HR_12", + "HR_24" + ], + "datatype": "string", + "description": "Time format used in the current HMI", + "type": "actuator", + "uuid": "73083b87a4e25c02aee672ea32e40005" + }, + "TirePressureUnit": { + "allowed": [ + "PSI", + "KPA", + "BAR" + ], + "datatype": "string", + "description": "Tire pressure unit used in the current HMI", + "type": "actuator", + "uuid": "e5ffaf58cc10523fa0858deafb61a8ce" + } + }, + "description": "HMI related signals", + "type": "branch", + "uuid": "271e3d9202825f37bd054820e5ea8141" + }, + "Media": { + "children": { + "Action": { + "allowed": [ + "UNKNOWN", + "STOP", + "PLAY", + "FAST_FORWARD", + "FAST_BACKWARD", + "SKIP_FORWARD", + "SKIP_BACKWARD" + ], + "datatype": "string", + "description": "Tells if the media was", + "type": "actuator", + "uuid": "0357aea525bf505981a14e4fc720094e" + }, + "DeclinedURI": { + "datatype": "string", + "description": "URI of suggested media that was declined", + "type": "sensor", + "uuid": "51b0d6227db55b92bc35eedd8277f4c4" + }, + "Played": { + "children": { + "Album": { + "datatype": "string", + "description": "Name of album being played", + "type": "sensor", + "uuid": "1d80b1e2c1085def92b3548b5db2786e" + }, + "Artist": { + "datatype": "string", + "description": "Name of artist being played", + "type": "sensor", + "uuid": "076af7ad8aff5110ab5a64d1f58ccdcb" + }, + "PlaybackRate": { + "comment": "The normal playback rate is multiplied by this value to obtain the current rate, so a value of 1.0 indicates normal speed. Values of lower than 1.0 make the media play slower than normal. Values of higher than 1.0 make the media play faster than normal.", + "datatype": "float", + "description": "Current playback rate of media being played.", + "type": "actuator", + "uuid": "f5e58f66f21f560fbd0124ab5b17460e" + }, + "Source": { + "allowed": [ + "UNKNOWN", + "SIRIUS_XM", + "AM", + "FM", + "DAB", + "TV", + "CD", + "DVD", + "AUX", + "USB", + "DISK", + "BLUETOOTH", + "INTERNET", + "VOICE", + "BEEP" + ], + "datatype": "string", + "description": "Media selected for playback", + "type": "actuator", + "uuid": "54fb88a7d7cf5e3aab63e8f52415c187" + }, + "Track": { + "datatype": "string", + "description": "Name of track being played", + "type": "sensor", + "uuid": "ee800d62a40351e6934649ca75927d69" + }, + "URI": { + "datatype": "string", + "description": "User Resource associated with the media", + "type": "sensor", + "uuid": "1ed22b9925c3502d8d1389c8e02d0f07" + } + }, + "description": "Collection of signals updated in concert when a new media is played", + "type": "branch", + "uuid": "6585e9d3b6ff596da72a5f8c98d2d47a" + }, + "SelectedURI": { + "datatype": "string", + "description": "URI of suggested media that was selected", + "type": "actuator", + "uuid": "4820f7a961c25e91af12d3417a145d32" + }, + "Volume": { + "datatype": "uint8", + "description": "Current Media Volume", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "8b344688816f5844ae5812bb136c8006" + } + }, + "description": "All Media actions", + "type": "branch", + "uuid": "3f324d13873e501a84daf2cfade24d0f" + }, + "Navigation": { + "children": { + "DestinationSet": { + "children": { + "Latitude": { + "datatype": "double", + "description": "Latitude of destination in WGS 84 geodetic coordinates.", + "max": 90, + "min": -90, + "type": "actuator", + "unit": "degrees", + "uuid": "3e33f3252934565d86de5409c761262b" + }, + "Longitude": { + "datatype": "double", + "description": "Longitude of destination in WGS 84 geodetic coordinates.", + "max": 180, + "min": -180, + "type": "actuator", + "unit": "degrees", + "uuid": "e9bd511146ca51639c8d42c0702e22ee" + } + }, + "description": "A navigation has been selected.", + "type": "branch", + "uuid": "f51ce253dc5b58168ecca99297139455" + }, + "GuidanceVoice": { + "allowed": [ + "STANDARD_MALE", + "STANDARD_FEMALE", + "ETC" + ], + "comment": "ETC indicates a voice alternative not covered by the explicitly listed alternatives.", + "datatype": "string", + "description": "Navigation guidance state that was selected.", + "type": "actuator", + "uuid": "f5404f515db05e518d7b74460cf83eee" + }, + "Map": { + "children": { + "IsAutoScaleModeUsed": { + "comment": "If true, then auto-scaling mode is used. If false, then manual-scaling mode is used.", + "datatype": "boolean", + "description": "Used to select auto-scaling mode. This feature dynamically adjusts the zoom level of the map to provide an optimal view based on the current speed of the vehicle", + "type": "actuator", + "uuid": "86cb8301b6205fa98a737cb02d3d5ce9" + } + }, + "description": "All map actions", + "type": "branch", + "uuid": "4df6f1ab5f6c51d6b9c7af2b13daa2bc" + }, + "Mute": { + "allowed": [ + "MUTED", + "ALERT_ONLY", + "UNMUTED" + ], + "datatype": "string", + "description": "Navigation mute state that was selected.", + "type": "actuator", + "uuid": "d7ab68ec65aa5bafa95f042a60c91639" + }, + "Volume": { + "datatype": "uint8", + "description": "Current navigation volume", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "3609ff09d29d54d596068f978cbc0777" + } + }, + "description": "All navigation actions", + "type": "branch", + "uuid": "79bb0cc4acae5d1eb34fb214352d7863" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "7be907e3d9fd5c46a516f7cd07f050a3" + }, + "SmartphoneProjection": { + "children": { + "Active": { + "allowed": [ + "NONE", + "ACTIVE", + "INACTIVE" + ], + "comment": "NONE indicates that projection is not supported.", + "datatype": "string", + "description": "Projection activation info.", + "type": "actuator", + "uuid": "7156b00b47a8513c8e86f50f7d152614" + }, + "Source": { + "allowed": [ + "USB", + "BLUETOOTH", + "WIFI" + ], + "datatype": "string", + "description": "Connectivity source selected for projection.", + "type": "actuator", + "uuid": "1c2d1f379f5752ac802456a992b88156" + }, + "SupportedMode": { + "allowed": [ + "ANDROID_AUTO", + "APPLE_CARPLAY", + "MIRROR_LINK", + "OTHER" + ], + "datatype": "string[]", + "description": "Supportable list for projection.", + "type": "attribute", + "uuid": "80fa132703655d989386bc6711afed49" + } + }, + "description": "All smartphone projection actions.", + "type": "branch", + "uuid": "fd47f73b4d6b51679f4bed75f6d63518" + } + }, + "description": "Infotainment system.", + "type": "branch", + "uuid": "d88f92fbdda35012a2443b5e130d5eff" + }, + "IsWindowChildLockEngaged": { + "comment": "Window child lock refers to the functionality to disable the move window button next to most windows, so that they only can be operated by the driver.", + "datatype": "boolean", + "description": "Is window child lock engaged. True = Engaged. False = Disengaged.", + "type": "actuator", + "uuid": "23d94405d1035201ae2866f911f02063" + }, + "Light": { + "children": { + "AmbientLight": { + "children": { + "Row1": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "c5717a5df33359959d1df3ae75dd687e" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "a9ddbecc501e5ad4b95b7197cd4d6edf" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "3b6d9d8d6acb55bc81022522cf2499a3" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "e42bfc0abac857f0a40f579cc0ced424" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "a58681f838a75596b6b64623803479cc" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "9d9096fdd737597b8423214633a97063" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "a52466424a9550868a5f6a1aa83f3dce" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "05a04fb5fb025049b9e9fbb109fef22a" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "b3447dca710f51e39ed1af3d240f8851" + }, + "Row2": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "8eb7ad17cb3f546c96fb8f76a7ac09f6" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "93c3bf189e045a52b2134aa20cfcf2b2" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "c95376e9f63f5ae996907ab83fa40a0b" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "ddf477f1910e595f8c8055508cbdd808" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "6ed1d61f74155275bde970d8233f0f51" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "1e9bcef987795ad3a38bc76de810df19" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "e61968ff0fb15adf891efadc9181f78c" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "b9a621db27d75d56b377890d98222d53" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "f4462f76907e529fbcc7cc6761ca5cbe" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "c3983df208565cb78c8af970a57351fd" + }, + "InteractiveLightBar": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "099955ec87a0528ba1a89cc3e439c806" + }, + "Effect": { + "comment": "Default and allowed values are OEM-specific and should be defined accordingly (e.g. with the use of overlays).", + "datatype": "string", + "description": "Light effect selection from a predefined set of allowed values.", + "type": "actuator", + "uuid": "c0167026c1575ec8a2de0901a71d0d8d" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "9c73159ff0db5341af2bd3aaffc183c5" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "7c858ba899585fd6bb65a981db056fd7" + } + }, + "description": "Decorative coloured light bar that supports effects, usually mounted on the dashboard (e.g. BMW i7 Interactive bar).", + "type": "branch", + "uuid": "de6062a1a9c05ff687128f748307e331" + }, + "IsDomeOn": { + "datatype": "boolean", + "description": "Is central dome light on", + "type": "actuator", + "uuid": "0dcbdddcc3bb59d292bd7a0cf3747c83" + }, + "IsGloveBoxOn": { + "datatype": "boolean", + "description": "Is glove box light on", + "type": "actuator", + "uuid": "9b4db6bf8cc95c7a855442b95e1e0e18" + }, + "PerceivedAmbientLight": { + "comment": "V4.0 named changed from \"AmbientLight\" to \"PerceivedAmbientLight\". This is a read-only property that refers to the pre-existing light (e.g., natural light). If you are looking for the in-cabin decorative lights that sometimes are also called \"AmbientLights\", please refer to the branch Vehicle.Cabin.Light.AmbientLight.", + "datatype": "uint8", + "description": "The percentage of ambient light that is measured (e.g., by a sensor) inside the cabin. 0 = No ambient light. 100 = Full brightness.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "4d605e0e591a510d9613bdb412175729" + }, + "Spotlight": { + "children": { + "Row1": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "838b3bc619d153d993ddfad96918ad7e" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "497ba6de557452829f1c3bbcad2c1386" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "dff99845cbdf54239f1cc36834434a91" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "39ac4414f40754e2ab28a6bb10b397bb" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "7643021f0af15edeba9e35f7e87a7bd5" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "a2d72853978f54379cd66a2c82cd63fa" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "834df09382ee509b898b2ff2652a3ea2" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "669fe375bd1151b497eab93492e41597" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "35f4c5574dbb5c5bafe82107b55377ec" + }, + "Row2": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "fddcfd397c63530b8b7e6f3c5fd98b20" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "054dfd5255675357b090663df26c6370" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "d7cdb8c7fe305b99a482ac7f8025519b" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "92fe0ca17e39548d8681a0fdd4f2a035" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "bdc48b556b565f0e9fd4e68b814ee934" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "b5e5c87ee11c5f84a7d92dc7871f3241" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "ded8281b9520524ead6bc1a5c3cccd5d" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "1e9617c06a0b53eca745dcf96f8d5d70" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "259f6228620a532abbac5548c72b3c35" + }, + "Row3": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "5394e601144f5d75ae66a1566d182c68" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "50376cb5f02750d599f3ae5932520952" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "fa58686f4c925907a17f40aded066a01" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "36bd0e114ba652b0919db771e3a0d946" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "b50787e8b3bf56ebb3e007ee21aa1f30" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "b8e1a7326abe538199f595555c4c0ca0" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "68eacf65617c56489f0c1f475576eaaa" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "69b6df651e9b5154b46c5709ce167fb6" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "7b6666a198e8514582f8c85525dccceb" + }, + "Row4": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "6cc3fc21887c593a90d799209dcc40c0" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "5459910482cb507db1583252b26e62c7" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "ca9e9652c52757ce98744209c0d2344f" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "661dcc2f512159329fc272128a054b0b" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "fde4be32cd6f5fcf8997b01564eaadaf" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "8be53f681198503bb8f93d331e2315cd" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "c35925e7af4d5a929b153cb7f587ca5b" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "fbffb10dc86a523bb40f624c1ad385e7" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "41b0adb2cba85665824d3ad497b593a8" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "a03cd35849a05136ac8e16f4e96d866b" + } + }, + "comment": "V4.0 branch renamed from \"Lights\" to \"Light\" to comply with singular naming of entities. Use SingleConfigurableLight.vspec to describe interior lights that can be configured.", + "description": "Light that is part of the Cabin.", + "type": "branch", + "uuid": "2fc2ad48d5315cc4aa1e4638a6985585" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "728b62b170055bd8b1530ec423dd5a9a" + }, + "RearShade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "4190436709bc5b1896fad8fd5c624ff2" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "9e16fc53f2ec575dbf66c79f969949a9" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "da9f01e9baf35544842f1a7674c5172a" + } + }, + "description": "Rear window shade. Open = Retracted, Closed = Deployed. Start position for RearShade is Open/Retracted.", + "type": "branch", + "uuid": "8a0c86f4fc6f5ea8ac8cf8f327969dcc" + }, + "RearviewMirror": { + "children": { + "DimmingLevel": { + "datatype": "uint8", + "description": "Dimming level of rear-view mirror. 0 = Undimmed. 100 = Fully dimmed.", + "max": 100, + "type": "actuator", + "unit": "percent", + "uuid": "4e2bcbaa6dc1586d8282324b475e5dee" + } + }, + "description": "Rear-view mirror.", + "type": "branch", + "uuid": "e655b654ab9f55bbb04952a99755efae" + }, + "Seat": { + "children": { + "Row1": { + "children": { + "DriverSide": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "7308c4cd91025db3aad6dee3e4f9d2a1" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "cf3eca19b11e5e3ea66a078bed805968" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "637adce522d45075a064f3f94dc568ce" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "dc2da05595a151ada19e6d86037abaf0" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "2112602ef7ab5470b3e57b85d6ff903f" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "c58f21ae6ce150bc8f0b2cdd4698f958" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "c3bcf9587aac58af827a41364bc91b55" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "bd36af767f2e582bae11c7a62b635789" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "876fb7f9209155749108c95bb268836b" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "55cf95c00d2056be859d330d0060a363" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "51de4b90534a5f089a9d81d53a663704" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "4b193a02bffe52819b69d422d5e50042" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "efeb2be118bb5f5eb796a81d298ab560" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "32ee42cdcf0c5ba3a963d0c11881e0c2" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "f44c52884b5c58e4ae462656832c888b" + }, + "IsBelted": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCFRONT_driverBuckleStatus", + "transform": { + "mapping": [ + { + "from": "BUCKLED", + "to": true + }, + { + "from": "UNBUCKLED", + "to": false + } + ] + } + }, + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "db477d45def05e11a90689c9e655cad9" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "e8b805d0bd3e56be9258685f390a7a9c" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6d333404bc155fd2afa57a6380ecfd5c" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "a48e731c91b55a2c9022b21774923b73" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "c4bb8a01fe8a5335b1c7c9288b9863c9" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "972f188af9425bc186a075224bbc3630" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "936f0c2fad4855d382e92393ec6223d7" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "b9587caa89dd50d2af7167c99c13bc85" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "4e5f01eef7ce5005b4d8420fcd233336" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "b030abb632dc503aa313ba5c75ba36f1" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "1e49fb9d59d85494b290e53b7753dd72" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "7cc9aaaa51085baaa45be2ee7c7330bf" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "794645c172745cb0ba6b081d9903be78" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "e34e3c3330ac503a962eb076c7a05209" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "30ac7b216df9562abc6b7a2c6e0f665c" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "9645281792d65ada94160182c5ef2722" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "07e098c9c24c5500ac7054a75529187d" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "e69977f72c375925ac2817d8313a78e6" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "381639fd2a2751a9bb1429be5e0d5a99" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "056e7fa78a095b3e8c4e025ac7f69893" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "2702b44037a05092987a5da7a1b4e582" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "27ef6aedeefb5b288d191ca8e5306f55" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "5d2d997eaadc510fa7a0ff4f0422aa7e" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "14783a76b08953bca5d24ebc8d59b824" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "fe246f08a3ba5fe89703bf807c479528" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "31d5f0a7c65f51c4b7e67d1c8b45b9b8" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "2839bf77f2e95c17afd1a63e2d85249c" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "242ef7b872b25d9b94db1553e7f0cb0e" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "5e450517dd065464ac9a4927abc936a7" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "d982ff943e5e5e06a7984a2e7bfe2f45" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "3414b4d1e0ea5887b900171cb52e13b5" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "b3862480ad00587598d3f3f7c3468443" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "abef0f196c08580f8b5e610071167e41" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "baef531919455c159b068c8ac8e2bca2" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "c7bd527be0fc59208eae631000d0ecf8" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "dfcf5fbc84955377b1024600afdb6128" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "f321c48d000a5cf88d144e6c8aaebf64" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "6d9d54a7a13e57769cf6ec91e63b4190" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "7f35a13f8af55631bc280df0fedf00be" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "ea6bcaed18645c6fa9110c68b0dcc8b1" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "d71f5acd57365612bf06f4c372bcbc13" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "3eb5fc8b515e5a90baaeb10bed7d68ca" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "c4d3fb129999531a9b59ecff95cfc1c2" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "a8dd9e808a765a04874c2853c7926ed4" + }, + "Middle": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "41909de6e59a56f8b4d3d3a4296c4cb5" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "278a7e2126435a46a04dec92fd50ff8a" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "32c42eb692605c0c8c2dc7df74a65f4e" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "22125fcec8aa5bc99fca8b86edbed2f0" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "03d5b5e01dcb54e5a3f3ce890cd27cee" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "f16a244ea7e2560db3991cb581149683" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "94e5f2630b7355c7b1b3ac75785bc5c6" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "0c0b84957f8158d98f5a8c6d4f3265e5" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "5bef9412aeaf582284dc8f9cca5a5129" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "d5cc4a79f94f515aa8f5fa59184a5c35" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "520ec12b50515918a664ae6f2ac6b702" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "a183fc37f47d55de8c5d2f2f27c779e0" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "85e4a1400e1455149687f608cd4a4d08" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "fa7d96abfc2351fbbac29047c3bb46cd" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "e9ada64ce4b454928de166adaa4344da" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "42a9c6f57d75550180138950e91e096e" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "decf460a32ce5f1a9f2d4b68329707eb" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "17936943738e57888f4c11a38570f25c" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "a22655ee843f5faf8c86daf55abad5f4" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "d3fda2f366ea5b60a284b945c21aeb17" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "acfb210c54605ebeb1d231aa09d98575" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "cd842b8d4e7359d3ac47e8b39ab25ea9" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "a9c61deb42ac5bb1b2c92fb5ee222db9" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "7e7b9ef4f3b350e9adf8091dff7e799f" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "6fcbf711e9c852ba91f7d846f6066978" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "46a99e1f2b3553099fbb046a6b7dd86d" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "a1b764756af559c0b850ee370d859c86" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "8bd7805b426b5e439abd732e9b503bb3" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "7f7face91df2506f9351f8c27915bc18" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "0f54dcace731576785322d02b68d2068" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "44923c7fe53c5fa39b632f999a6a951e" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "a947a1e52c3850e8ae81e12ef503c472" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "acb8e84f703d518dbf6c9c8b899766b0" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "a7d928b58dc152408e38fc7b6fdf6851" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "34016708d65655708157e432fad53f1f" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "b2617422a80e5d409d5e327bec8a5895" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "d386d2b7ca955caf8a4d2467d4c7603e" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "a7eee2a690c75ab7b7143d95b89d0678" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "90d5bb0917875c009a7ee80b61a00e24" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "cbecebd77ff953c5830fbab699a3e0b8" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "4abfea463f0359fcb387aa1538f12d52" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "ec7f8f340e005006bc966a96829f886d" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "3fdbbe5de45356d383be845b5deeceb8" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "4ad9208a44b555d5a80b819aaf97b2c8" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "f108af06fb3954d5a87fb97cfadba808" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "6ebb2556d17959ec9bfc1d796e1f34c6" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "c7ece3b4d7435fed910b23f7ea5360d1" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "77dca23345a358fa99636c734b4de8ac" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "a5628090d3465668adb6f1bc32bd2329" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "874c7f1345975e67b6a691d541cf46f1" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "cd3226582b7a5f6590d983a6ed661a7b" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "932e55cb1ea154a0ac35170f8c63cf01" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "d51481c8a5e05a1ca9481cd8fbaa6844" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "c47a888b0ff85426a98fdcc6763abe10" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "e262f30a38285d7da365a42960f440e2" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "965137f2801f50e292cfc673a3e145ed" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "85bc5781995852329c3f56ab07a00a39" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "a9931f9f76cd5c9aa7cac23c43d09e38" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "bb6213be75be5b33adf6ad5957bb64e9" + }, + "PassengerSide": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "31e4cea8ba6a5254bf1d1471402d0700" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "c931d21b21005b5c9f0eb9a732f9b2ef" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "0df596249cce5c77955e6938c0c9bea6" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "e8b52c64f1e957cbbbaf63b03c3dd9ef" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "c2fbe0340f245b4ab3b1269de65b4c2d" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "089f2ca3258e5f94871953539fe5acbc" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "bd9dfba052ab5b24aa0eaa35fa47914f" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "4c48af687fd15c7785b9c4c075dc457c" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "999c7466ce1f5354b4695626f3a2e935" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "5456d8e86ecb5cdf91b2bc08fe696d19" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "2701bc81fcc059b2b4ddc938407a503a" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "f13eb4ad4b7a51bbad88db50dae636d3" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "f62e56245db158508c9535a07474eed7" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "9545cb7d8a4c53b6a0c27aeacc2c229f" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "ae6a103cb748510e9383e2b72d6f2a00" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "ed71588a6ea1511cbd4578967a94f963" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "05a31ee58c97506485a19a2e0c213244" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "89f7a63fc4f65f05b7df4b74b232cc9f" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "bab527a608bd55d4b8a9d4b7d46c7037" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "121cb6ae3f4451df848f7809b313c392" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "c7156b61e1b45698ae98b5d30c31ade3" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "fd753377a2335b9fbda2cc2d29f826a6" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "3d09265704af56d59e5d80f92be3d66f" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "3ad476825c6b598e8c468c49f0aaec10" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "c4dfd494ffc95c4abdc49716a3b73c53" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "4ae8093ea56d5613a782b97c8b1be915" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "8e0c8a7fbb8a5cee933b3b1b50d4cbf1" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "2a19419f5c355aff9a41ee8c8ec434a0" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "5e8dd9ae1001569388bb4da677bdb377" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "cb08d335fa245f34b616f9c56fc529e0" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "c688f60d0f0650868ac32cba3d0c526e" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "10c691cb05f0581b8a6c4e764d81404d" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "73c59cba46725637bfa725a042713d0b" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "0ef641f1e4e75200879330a5de3d3315" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "811d841212295f92a7d070dac262ef84" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "8dfa254cccc059e881af97bce032cea9" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "d035fd8a2e855edfb90e7955b3bd8065" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "e5b1e2a73c1d530298be5aa2b92ceb6a" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "2bd34fa3b02d54b0822890750a57eaae" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "5486d882309558cd95a5d0742d9eea2a" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "90a53f3c0a585c7cb5b1565092e62539" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "3d328ade9dbf52e1bf8002caed74253f" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "d1a57d3e62725e51871433889877eb3e" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "5861078e66285792a4c5caa3158c3b93" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "ec27034136cd5e728c88c7ac0b87cf04" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "012004eeaa2250758c2fea329aec9dc2" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "a49e3b4e3047525ab1034e04896f7a73" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "1abb80c7ce615f73a2e0fb6583b09431" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "d4d0df3f6b5b51039847f748282d77ab" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "597dd13468fd5b57858c6bbbc911392e" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "8044c9338f5e5df1a036c91cc4d91423" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "1d7d951e97b45aa5824f4e959c68737b" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "3739036112535b9cbdad726a5f6e17a4" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "87edf3b9896659f6a87d05531c260a36" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "aaf6db1585b15365be9ac729c11688e3" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "12458c0216335477882e669e98330a1a" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "d7c6f91f09425d619cb93542ea55bed4" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "086f231720875bb5b4d5e2b8ed0092df" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "c9eef94c5e075ce088020f8a568c0183" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "7a420ddeac6f538eb3939bb4a242d136" + }, + "Row2": { + "children": { + "DriverSide": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "1ec1956a54ae5107a802b9ec2b215b41" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "215134942dea5de0bf542dc6b1f7aeb3" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "eb67d32eadf15c0085f6314546e86e20" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "c8fec973719351b3b17f3824653d685a" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "5eb73ac74d6a56ba9155cf16e145b9b4" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "65cf20c7effb5d159fd1099869cd0ebe" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "04cc8929b0f0509495b512a77b48afef" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "2e06cc24d15651a1a1616fc77a5ba23b" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "1b7a7b3e344d50cca118327668f35be5" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "b7ee83ec92ac5595b56557cecbce7fd2" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "916740f753715f3ea6c55b5284613f8e" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "67f772d705af5fac95ec768cf2bfe557" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "7ae50ab2fea25798adc27814579bd33b" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "2b4be8391f405e99a77ba65e3ea80aba" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "2bd4b50c13d7541db0a86a945c728849" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "ec3dc746a34752a1b55ac428579c3dfc" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "3752de2ef1d85781a6e0a20a6812b9fc" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "d7428179c70d576fb626a9a4bae4299e" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "a6b6158bc96c5ac98ad206193ff8b358" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "dfc0fb66d7c058b7925970667b284bea" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "a12121bc096c5224a14c2d8ab10ae88b" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "e4a46503b2945ab18ac1ad96f0517151" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "71b34d4141225b77bc232bd3a2efa86f" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "6a6313644782587d84fb04eb2c6397d8" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "4a5bd16967c65dd88eacf3e4ef8c071f" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "5e581a713efc5867b769f38e64a2f320" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "d45a563848b15928885bc7abb88a2d29" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "838457df1a415fd1a9575eda730a3fa0" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "802ef996df3850c299f5c88dff83ab13" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "9c6786e620f151a3a5eeb4b54395d2d8" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "eeaa79b8443c59c28ba4eed3d2cc1aa1" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "ebf3534d31615c55803dc8b48d92ca6f" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "7789f295ccf75ab2aa899d2b095bafd4" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "ed76c57d2d0c5a1d851a708fbc750a29" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "a5bcb578170d5442aad65c116302557c" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "a5e3d845386b51c7bd2b054b81025112" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "55b0756c450a5df2b1a4b0e54b27804b" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "c2654d9579905679b73ab44b6028b664" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "10092cdf11165ffdb1e5b616fa5f841a" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "aa341f93f6095298ba328a8f164452cd" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "bf7acae10ed55aa49a9579f7dd028a8d" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "bb516988089154dfaff8b5b376778d76" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "a313045c29195b9ab11141155dd7ce17" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "05e311e0669d5c128757475c8a83dc51" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "192b6f898aa35459baa670b58c59c48f" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "95928045f69d5bfe9ef1c3eb2afec32a" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "d4f3974ffcd75ba3a5f040f9e823fffe" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "aa71ac6246895ec1b6c74fd76ceecdda" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "c2915c2c175c5a3a862b99d9d2a9cc9a" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "65c26ab3824b5208bb21d7b8e2dd0124" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "854f8899693756e8840ee04c856dd12b" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "a10a2542fdc85bd59286d62f5af32210" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "e40ca46bfdeb5a82965c1d6b0fc06890" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "5d6d6db128965724a9e6f236d9532377" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "9ec6de29b168513f823be11c8f348e8c" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "f28ce1da77645fcd83aa72171ea172e8" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "7a5a1ffb9ab65c6a9ee4cb581077f015" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "68275a8560a95481a54b590ce458d0e9" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "a3956dd19f73577a9e118e5ee6f5a180" + }, + "Middle": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "cc06da5cab1e5b2e91d180c93c9e8eab" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "aa6d77c09158565787a2e418a1c9ea98" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "1a20e907d2515d669c8207a464685be8" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "c281162d58ed50ccbd90fa58a1478047" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "f675492be60e5a1f9e4ed760a2ee4c33" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "d24b223dcbb0534389c6c506126497e7" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "b391d00bfb8f5e699fa2332cb5991cdb" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "10538af050535035a3a20e6f702ce99f" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "4f54b32f4c85549b88acbe7cd19dcb20" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "41f7b225f1485deaba50f489d58656da" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "987682ae6e7a539897bab4d96458fe15" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "eb9a3ea623445fbab28e98ace9716f48" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "3b6a82f5f68f56bba88b7c5349e1a45d" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "1b0129f265225acba5f18aef705b9c54" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "5e2a819627075c7ea1a6fb2c6b7e550d" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "a4c37cf044a25eb9925b2278786b6cba" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "50e0eeee98e95db58b87aa11a9285492" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "d5c053d69d3457ecb3b87be15ccbfe1c" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "299d9f7fadef59859076cc783c2c6044" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "2b257368bdb556d087e8f13806003ab2" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "3216275b8b6e5ab2a5f739232945c139" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "6850b36bd23f57d682a3ef7bc4faab5d" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "c7e61a5fe6f35d0fb50a4cbb3c5d15e8" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "6c22e3d28bcd51ae97e01c8ace4dee74" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "76071549a729587fbdebb78ef360cad9" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "8a5674259c805a498c827cc4341b20c7" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "28a3b3bd920c552b8079c52743f10c22" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "2f81fa98e09b5cbdb462747053b61fe0" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "fbb8355fefd151b58936c7adbde8edd2" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "03390dc0feb256f4977f5aadcdef1663" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "703ec67285de5b3799ebd2e4f090e2eb" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "24535eb7418f5bd4ac16900ea925c3ee" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "11adccdb44b15e26b22252dd75810422" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "c67fc3cb95bf54ef988ec24b76db4221" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "dfcaac526f3952e0aa29caacf9cd796e" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "0618172eae735abdb3c40ed24481cb68" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "ea42e74c9ee55a188af9e0728428a991" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "aec4843ad9435b9785f0d2485d457c56" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "e993d306024f5d5d8f1ffe8897d76a38" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "bbeb896cdb5059ea83add870abb45c69" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "2078f41ff0505639aab472a9793e0767" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "84788fd7b9215fa78374c9ca196e5d2d" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "f9b78ecd6f065a59918c8fea51464f7a" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "36969412c2325b81906fc4a327a22c84" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "7507db75bf2d541e8eba802db5108fa7" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "0075b9cb31ae5a0c8172e966e6b40954" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "974123228c7a5fc0bbbc8b13063eb76e" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "736dd231351d54389a65e77e39e28816" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "f8ded34424025a93b04ee9d47f451b22" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "2cdec47cb7565df3934ed28acf1e05a3" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "07e2a1c17a1854abb180fdf2038ece03" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "9c2cd2dab1d65532b6b738966db8af41" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "dc5720a01af45e78a562d12a93db0fbd" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "fb25e00b59f1513eb66355fd254e3bbe" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "45ef8de577b55ff9b621aad08238edaf" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "473086da2fc4501f9b3bdbc94133eb92" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "c634c8cf644d57098ae8b5337dec44a9" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "30d7caa224e6589a882751be94fb7a33" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "a27650921e1e5ee0bd56562364c7dd6f" + }, + "PassengerSide": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "a73fecde42375d07834a6670209228f4" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "d16d61dc474f514fb10d1c8ecbeb9179" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "a8bcc5c7172e545db2b7d56611d5ab6a" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "b29e1fd9898e5981807d74caa94dd16a" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "4eb3938a709f5e4dbdefeada15a4ddb9" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "6e3669fe31425539a49a2235c11bd5b5" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "a97af5b193b1521e90eb0fd33472ab38" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "7e9c0a02e46b57879a2e3a0e66f02137" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "ea5285b1124c527681e1a45c51429bdb" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "13f6bb21aa64545c97257c2b614622cb" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "a82bd9a0a9745ef68dae31474a095294" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "a5449c4df2955aac981992fcbb581b84" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "4c0ab40eaf745f12a09dc2c5acbedae9" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "61dbad56f18e5ecba04d189ebd943770" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "b1ca33bf7f4455ada6be941b92b824da" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "c7d63d6c97845df5b602791f700968f7" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "516d511279a75513a53ca57adade3a99" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "bd9ec382d92e52ae826cb532ba13e11f" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "3acca59e11b95e92945ac8ea568a3213" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "9fc55976f51c552fac70632a7e61b1f4" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "d18aded275a454068904eb5371a69f4d" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "0cd5c8c3bd3f55ee8cc4c876cad0b75f" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "07a8fe28cc1850dc96458e827a9ebeb5" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "9648e0ea501b583a86d211d09a953b14" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "68e28b1aadcf5c3db177943af27a9098" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "ef3307b33fae500b837da872d2fad454" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "e9591a8c0ef551dd8d2da760bf96045a" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "9fca194c445257049d2ba0bc5d134e12" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "32defc92edd159bc96939d399202d4ca" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "54dd7359d76f5caeb221807f3c9f05d6" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "bc763cfcd7fd511cbdc8ae2cc64a0ac7" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "8bc621f1041052c7abf17124cb6dc270" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "ee7310791c475bcb946bd7074fb375af" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "ccdd90ab2f3152be80c64b4500c78a8b" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "cd893883ea4857b8a42e02dccd7c48d6" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "a69bfc99fd21564b9d6e06504063f3f0" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "9417cfbf4a08528f9a6bb6de95dd53a3" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "0f6c3fada9695cfc89309bca1941d0f5" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "263c5edb7c7c515581a853327df34215" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "d86793d827f6545e97e03d1b8363236d" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "b77c09fbcec95c5fb04a6d14af5b9f94" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "0db2d43128845f65a029915777d30ac9" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "cefaab13d761577f86c35403460a83de" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "119275e2b8b9579fbaf45f419f01879b" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "00793becfbf35a1f9e22e62c0ee23382" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "6c4cb5e0ab59597db55b22918510c1a1" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "d6a316b6a3455e9da8769144aece2a74" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "b601c11e3b525dd19933adaf807bc5c1" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "0f1060fee7e05b2b91cc51d5a9b3da74" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "a6ae083174c65a9599901c00819694f8" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "399c59f3d97151499a9005b329368baf" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "ac7635aa2fc7578aae97d8a253e9a303" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "bd644892090f5bd9a4b89281331cbe4d" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "ed70ebf0a7065894af1ac26e409d2408" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "ef90f29f5ab65b0cbf271a7e06fa848d" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "0b6331463cf65b44a5709705a1e55d7c" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "dc15316849e75f6d9995d428eee65421" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "646c179da57a59c39ca9777a4808980b" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "8cd32cb3e2d157b39af57d9cfe2e128c" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "8c3aaf015ef8595cb45d9461a9c1195f" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "b0b253106b2851e3bb5c71ae3b09f09d" + }, + "SeatPosCount": { + "comment": "Default value corresponds to two seats in front row and 3 seats in second row.", + "datatype": "uint8[]", + "default": [ + 2, + 3 + ], + "description": "Number of seats across each row from the front to the rear.", + "type": "attribute", + "uuid": "8dd40ecd47ab51c79ed9c74ae4296d7e" + }, + "SeatRowCount": { + "comment": "Default value corresponds to two rows of seats.", + "datatype": "uint8", + "default": 2, + "description": "Number of seat rows in vehicle.", + "type": "attribute", + "uuid": "1002a7a4a954581b9cbc72fa438c5292" + }, + "Sunroof": { + "children": { + "Position": { + "datatype": "int8", + "description": "Sunroof position. 0 = Fully closed 100 = Fully opened. -100 = Fully tilted.", + "max": 100, + "min": -100, + "type": "sensor", + "unit": "percent", + "uuid": "ab598697f1c852eda4df9ed62a956d17" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "f6c7020849fe5431b648a8a283d9751b" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "5f78c2a631b75abc88744f9bad277f5a" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "3836077128c65381b01e74a1a8be1c40" + } + }, + "description": "Sun roof shade status. Open = Retracted, Closed = Deployed. Start position for Sunroof.Shade is Open/Retracted.", + "type": "branch", + "uuid": "eeaae5977adb5683b16f405993405b2e" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN", + "TILT_UP", + "TILT_DOWN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or shade.", + "type": "actuator", + "uuid": "88c39afd45a25ea2b474ff581e1fb138" + } + }, + "description": "Sun roof status.", + "type": "branch", + "uuid": "8ff70db05c065e3eb530082a0b6983cf" + } + }, + "description": "All in-cabin components, including doors.", + "type": "branch", + "uuid": "1a94457b237f5e8eb3c77c0532ac88d7" + }, + "CargoVolume": { + "datatype": "float", + "description": "The available volume for cargo or luggage. For automobiles, this is usually the trunk volume.", + "min": 0, + "type": "attribute", + "unit": "l", + "uuid": "789feabca2e8560ea3c1852371b4096e" + }, + "Chassis": { + "children": { + "Accelerator": { + "children": { + "PedalPosition": { + "datatype": "uint8", + "description": "Accelerator pedal position as percent. 0 = Not depressed. 100 = Fully depressed.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "2fabd8b61db45f62b4e97e7a612b4a73" + } + }, + "description": "Accelerator signals", + "type": "branch", + "uuid": "3b2b562086a45eb29c55186f3b710621" + }, + "Axle": { + "children": { + "Row1": { + "children": { + "AxleWidth": { + "comment": "Corresponds to SAE J1100-2009 W113.", + "datatype": "uint16", + "description": "The lateral distance between the wheel mounting faces, measured along the spindle axis.", + "type": "attribute", + "unit": "mm", + "uuid": "4458487c2a4e51efa3762349188ce2a1" + }, + "SteeringAngle": { + "comment": "Single track two-axle model steering angle refers to the angle that a centrally mounted wheel would have.", + "datatype": "float", + "description": "Single track two-axle model steering angle. Angle according to ISO 8855. Positive = degrees to the left. Negative = degrees to the right.", + "type": "sensor", + "unit": "degrees", + "uuid": "91310e9ef88450c68791fbb07d83f104" + }, + "TireAspectRatio": { + "datatype": "uint8", + "description": "Aspect ratio between tire section height and tire section width, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "percent", + "uuid": "716fec24167e5c36b2b97daaf091f911" + }, + "TireDiameter": { + "datatype": "float", + "description": "Outer diameter of tires, in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "ed9f037c1b5d53c78c90b71179db1f4f" + }, + "TireWidth": { + "datatype": "uint16", + "description": "Nominal section width of tires, in mm, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "mm", + "uuid": "3444d8773c215cd7a076d688eb7f1afc" + }, + "TrackWidth": { + "comment": "Corresponds to SAE J1100-2009 W102.", + "datatype": "uint16", + "description": "The lateral distance between the centers of the wheels, measured along the spindle, or axle axis. If there are dual rear wheels, measure from the midway points between the inner and outer tires.", + "type": "attribute", + "unit": "mm", + "uuid": "d854bb9c72615e2896c1ed084db515fa" + }, + "TreadWidth": { + "comment": "Corresponds to SAE J1100-2009 W101.", + "datatype": "uint16", + "description": "The lateral distance between the centerlines of the base tires at ground, including camber angle. If there are dual rear wheels, measure from the midway points between the inner and outer tires.", + "type": "attribute", + "unit": "mm", + "uuid": "0851716e0b635392b6bb64cb478e82b0" + }, + "Wheel": { + "children": { + "Left": { + "children": { + "Brake": { + "children": { + "FluidLevel": { + "datatype": "uint8", + "description": "Brake fluid level as percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "63aa9c4973ef50b18bd7214c9f2634c5" + }, + "IsBrakesWorn": { + "datatype": "boolean", + "description": "Brake pad wear status. True = Worn. False = Not Worn.", + "type": "sensor", + "uuid": "901771088eb35dec9e69b56a8cb3e8f5" + }, + "IsFluidLevelLow": { + "datatype": "boolean", + "description": "Brake fluid level status. True = Brake fluid level low. False = Brake fluid level OK.", + "type": "sensor", + "uuid": "713da56818e55714ac441e10870b3753" + }, + "PadWear": { + "datatype": "uint8", + "description": "Brake pad wear as percent. 0 = No Wear. 100 = Worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "b4ed36f8143d512fadaca3e641739ee2" + } + }, + "description": "Brake signals for wheel", + "type": "branch", + "uuid": "162dab13d5815ec4bc22888b0bc59cbf" + }, + "Speed": { + "datatype": "float", + "description": "Rotational speed of a vehicle's wheel.", + "type": "sensor", + "unit": "km/h", + "uuid": "47897f20b2745b6aa2d0f76f1ecf824a" + }, + "Tire": { + "children": { + "IsPressureLow": { + "datatype": "boolean", + "description": "Tire Pressure Status. True = Low tire pressure. False = Good tire pressure.", + "type": "sensor", + "uuid": "4088315cfaa05c28b51c3d3462c65339" + }, + "Pressure": { + "datatype": "uint16", + "description": "Tire pressure in kilo-Pascal.", + "type": "sensor", + "unit": "kPa", + "uuid": "9fa3f176fd975d28a68f70c7d72e370f" + }, + "Temperature": { + "datatype": "float", + "description": "Tire temperature in Celsius.", + "type": "sensor", + "unit": "celsius", + "uuid": "093d8fb119755f6bafa979e4eae201a0" + } + }, + "description": "Tire signals for wheel.", + "type": "branch", + "uuid": "17c60ec3c02054b4951c975156375d9a" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "0cd478c6e72b55c6be6d3d9df9624545" + }, + "Right": { + "children": { + "Brake": { + "children": { + "FluidLevel": { + "datatype": "uint8", + "description": "Brake fluid level as percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "386bfddee4605e419d59755a51835650" + }, + "IsBrakesWorn": { + "datatype": "boolean", + "description": "Brake pad wear status. True = Worn. False = Not Worn.", + "type": "sensor", + "uuid": "4c669b71c91e57dd8fd804ee68174b9c" + }, + "IsFluidLevelLow": { + "datatype": "boolean", + "description": "Brake fluid level status. True = Brake fluid level low. False = Brake fluid level OK.", + "type": "sensor", + "uuid": "bb2057bc31c25beda1da0610ca62bd51" + }, + "PadWear": { + "datatype": "uint8", + "description": "Brake pad wear as percent. 0 = No Wear. 100 = Worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "f3c53c8c5628527a8501e12778dae6c7" + } + }, + "description": "Brake signals for wheel", + "type": "branch", + "uuid": "f334a45b92215f86b4ecadbd82c8b249" + }, + "Speed": { + "datatype": "float", + "description": "Rotational speed of a vehicle's wheel.", + "type": "sensor", + "unit": "km/h", + "uuid": "c288d064d56e53bfb94cef8670872587" + }, + "Tire": { + "children": { + "IsPressureLow": { + "datatype": "boolean", + "description": "Tire Pressure Status. True = Low tire pressure. False = Good tire pressure.", + "type": "sensor", + "uuid": "93fa1125894e53259af5b7e1d991c8da" + }, + "Pressure": { + "datatype": "uint16", + "description": "Tire pressure in kilo-Pascal.", + "type": "sensor", + "unit": "kPa", + "uuid": "ea8038b63e6650ffb1a20539e915064a" + }, + "Temperature": { + "datatype": "float", + "description": "Tire temperature in Celsius.", + "type": "sensor", + "unit": "celsius", + "uuid": "58d4cee188d353d7996e855d48bb92df" + } + }, + "description": "Tire signals for wheel.", + "type": "branch", + "uuid": "660f90ae8f14594cb6e97d000c1985a1" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "c7ae1f1787ec502d8aea41802dc9a203" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "8ed02c02eee0502ba6d94a5d5f1fb789" + }, + "WheelCount": { + "datatype": "uint8", + "description": "Number of wheels on the axle", + "type": "attribute", + "uuid": "7232effafb7d5c908a9bafe1cef2ff3e" + }, + "WheelDiameter": { + "datatype": "float", + "description": "Diameter of wheels (rims without tires), in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "60d4b948ae8a5485bd77c45e1f648c13" + }, + "WheelWidth": { + "datatype": "float", + "description": "Width of wheels (rims without tires), in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "5b92bdab1e035ff4ba000330e20f826b" + } + }, + "description": "Axle signals", + "type": "branch", + "uuid": "d7e93a94af0752aaab36819f6be4f67a" + }, + "Row2": { + "children": { + "AxleWidth": { + "comment": "Corresponds to SAE J1100-2009 W113.", + "datatype": "uint16", + "description": "The lateral distance between the wheel mounting faces, measured along the spindle axis.", + "type": "attribute", + "unit": "mm", + "uuid": "99860d78f2b25ae0b420660b76f933f0" + }, + "SteeringAngle": { + "comment": "Single track two-axle model steering angle refers to the angle that a centrally mounted wheel would have.", + "datatype": "float", + "description": "Single track two-axle model steering angle. Angle according to ISO 8855. Positive = degrees to the left. Negative = degrees to the right.", + "type": "sensor", + "unit": "degrees", + "uuid": "bf1960525e725d2ca145ce12ba939ea3" + }, + "TireAspectRatio": { + "datatype": "uint8", + "description": "Aspect ratio between tire section height and tire section width, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "percent", + "uuid": "9b4515273bf1554dab746212db05d352" + }, + "TireDiameter": { + "datatype": "float", + "description": "Outer diameter of tires, in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "4dc46ee7fe0a5240a6eb67f9bf43a1ea" + }, + "TireWidth": { + "datatype": "uint16", + "description": "Nominal section width of tires, in mm, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "mm", + "uuid": "76a9071697b25fb8ab42393dfb77f0ef" + }, + "TrackWidth": { + "comment": "Corresponds to SAE J1100-2009 W102.", + "datatype": "uint16", + "description": "The lateral distance between the centers of the wheels, measured along the spindle, or axle axis. If there are dual rear wheels, measure from the midway points between the inner and outer tires.", + "type": "attribute", + "unit": "mm", + "uuid": "b6c5ba52f1985f179c9346edbabe2f9b" + }, + "TreadWidth": { + "comment": "Corresponds to SAE J1100-2009 W101.", + "datatype": "uint16", + "description": "The lateral distance between the centerlines of the base tires at ground, including camber angle. If there are dual rear wheels, measure from the midway points between the inner and outer tires.", + "type": "attribute", + "unit": "mm", + "uuid": "bdfd2fb7c3b25091a48f873462466f84" + }, + "Wheel": { + "children": { + "Left": { + "children": { + "Brake": { + "children": { + "FluidLevel": { + "datatype": "uint8", + "description": "Brake fluid level as percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "4b0d4f80b8855973a55ffee80fdfc4ba" + }, + "IsBrakesWorn": { + "datatype": "boolean", + "description": "Brake pad wear status. True = Worn. False = Not Worn.", + "type": "sensor", + "uuid": "3d9bae5bf0705de99789ecea26b99a5c" + }, + "IsFluidLevelLow": { + "datatype": "boolean", + "description": "Brake fluid level status. True = Brake fluid level low. False = Brake fluid level OK.", + "type": "sensor", + "uuid": "01f57161b0bf539fad1d2bfa9d9a9fc4" + }, + "PadWear": { + "datatype": "uint8", + "description": "Brake pad wear as percent. 0 = No Wear. 100 = Worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "8eff72d583015e1e94eab98bf8f0497e" + } + }, + "description": "Brake signals for wheel", + "type": "branch", + "uuid": "774d0a5771d35975872870cf71ea1487" + }, + "Speed": { + "datatype": "float", + "description": "Rotational speed of a vehicle's wheel.", + "type": "sensor", + "unit": "km/h", + "uuid": "427abdd04fc355769697d998a47d3f58" + }, + "Tire": { + "children": { + "IsPressureLow": { + "datatype": "boolean", + "description": "Tire Pressure Status. True = Low tire pressure. False = Good tire pressure.", + "type": "sensor", + "uuid": "d895b1e23a4f59ec92735fc317e44769" + }, + "Pressure": { + "datatype": "uint16", + "description": "Tire pressure in kilo-Pascal.", + "type": "sensor", + "unit": "kPa", + "uuid": "ea414012c36e54fc84ec1d421f370ddd" + }, + "Temperature": { + "datatype": "float", + "description": "Tire temperature in Celsius.", + "type": "sensor", + "unit": "celsius", + "uuid": "06ab6b3fe7bb5f7c9e2e104ee0e7cfd5" + } + }, + "description": "Tire signals for wheel.", + "type": "branch", + "uuid": "edfee87117dc5a6f9d970167f26ec090" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "4c32a1c722a45ea09a52c389e8a8a618" + }, + "Right": { + "children": { + "Brake": { + "children": { + "FluidLevel": { + "datatype": "uint8", + "description": "Brake fluid level as percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "83e5e261302d5ab38c9ee4dddc18c8ae" + }, + "IsBrakesWorn": { + "datatype": "boolean", + "description": "Brake pad wear status. True = Worn. False = Not Worn.", + "type": "sensor", + "uuid": "9b5963e98a9c5b229a61df76ef5c86e0" + }, + "IsFluidLevelLow": { + "datatype": "boolean", + "description": "Brake fluid level status. True = Brake fluid level low. False = Brake fluid level OK.", + "type": "sensor", + "uuid": "727823c7e0d551f48f26a5dd4f0578bd" + }, + "PadWear": { + "datatype": "uint8", + "description": "Brake pad wear as percent. 0 = No Wear. 100 = Worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "63a564bca18a5b1fabd7d3cff1af0e6d" + } + }, + "description": "Brake signals for wheel", + "type": "branch", + "uuid": "5c33ec4bd8a15d3590f59e7257bf4d25" + }, + "Speed": { + "datatype": "float", + "description": "Rotational speed of a vehicle's wheel.", + "type": "sensor", + "unit": "km/h", + "uuid": "85b41a82f4775fcea57dcc6218fb6d7b" + }, + "Tire": { + "children": { + "IsPressureLow": { + "datatype": "boolean", + "description": "Tire Pressure Status. True = Low tire pressure. False = Good tire pressure.", + "type": "sensor", + "uuid": "da2f63312a455d92abd5edc405f01903" + }, + "Pressure": { + "datatype": "uint16", + "description": "Tire pressure in kilo-Pascal.", + "type": "sensor", + "unit": "kPa", + "uuid": "0cd3dd4be36c5fcda49d6360556ba7c8" + }, + "Temperature": { + "datatype": "float", + "description": "Tire temperature in Celsius.", + "type": "sensor", + "unit": "celsius", + "uuid": "7c08b5778bc05265bb8d4e08fdca29cf" + } + }, + "description": "Tire signals for wheel.", + "type": "branch", + "uuid": "d855fe9ffb4e52be83ebfc7967c1c3ee" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "f59f6ce66b1454498f5dc71be581732a" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "87b119ed6de254159877b24047fd3026" + }, + "WheelCount": { + "datatype": "uint8", + "description": "Number of wheels on the axle", + "type": "attribute", + "uuid": "ac6fe103410153d382306426d14213ab" + }, + "WheelDiameter": { + "datatype": "float", + "description": "Diameter of wheels (rims without tires), in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "af27b1d18a5455e593692a9929909bb9" + }, + "WheelWidth": { + "datatype": "float", + "description": "Width of wheels (rims without tires), in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "889d279053c051979ebbe301bacac206" + } + }, + "description": "Axle signals", + "type": "branch", + "uuid": "8ef77768446659b6b5020a06c7b23c8b" + } + }, + "description": "Axle signals", + "type": "branch", + "uuid": "0a3ebde7efa85c04ac6c29b5676fec5d" + }, + "AxleCount": { + "datatype": "uint8", + "default": 2, + "description": "Number of axles on the vehicle", + "type": "attribute", + "uuid": "86d084c9148d5f22b5402a030413ed79" + }, + "Brake": { + "children": { + "IsDriverEmergencyBrakingDetected": { + "comment": "Detection of emergency braking can trigger Emergency Brake Assist (EBA) to engage.", + "datatype": "boolean", + "description": "Indicates if emergency braking initiated by driver is detected. True = Emergency braking detected. False = Emergency braking not detected.", + "type": "sensor", + "uuid": "0d462892aeac5062a62ee7d07306f6a6" + }, + "PedalPosition": { + "datatype": "uint8", + "description": "Brake pedal position as percent. 0 = Not depressed. 100 = Fully depressed.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "0477d3a4a831564ea473976cf34374f2" + } + }, + "description": "Brake system signals", + "type": "branch", + "uuid": "38df972e5c6b558e93839a5e97238c5a" + }, + "ParkingBrake": { + "children": { + "IsAutoApplyEnabled": { + "datatype": "boolean", + "description": "Indicates if parking brake will be automatically engaged when the vehicle engine is turned off.", + "type": "actuator", + "uuid": "26c694c9a1c75b699cc8c1dd2986ab90" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Parking brake status. True = Parking Brake is Engaged. False = Parking Brake is not Engaged.", + "type": "actuator", + "uuid": "faa7f94e6a5555c6b2d62e3328520ce0" + } + }, + "description": "Parking brake signals", + "type": "branch", + "uuid": "3849d42292f4551590fa4bf716fc90f7" + }, + "SteeringWheel": { + "children": { + "Angle": { + "datatype": "int16", + "dbc2vss": { + "interval_ms": 100, + "signal": "SteeringAngle129", + "transform": { + "math": "floor(x+0.5)" + } + }, + "description": "Steering wheel angle. Positive = degrees to the left. Negative = degrees to the right.", + "type": "sensor", + "unit": "degrees", + "uuid": "92cd3b3d37585b2291806fe5127d9393" + }, + "Extension": { + "datatype": "uint8", + "description": "Steering wheel column extension from dashboard. 0 = Closest to dashboard. 100 = Furthest from dashboard.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6a84cc3604fc5960a1fb384fe63fae72" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "74e1f4888a9a5dc6b3bbdda9ecafef39" + }, + "Tilt": { + "datatype": "uint8", + "description": "Steering wheel column tilt. 0 = Lowest position. 100 = Highest position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "33e979769f91521d8080384447d06c00" + } + }, + "description": "Steering wheel signals", + "type": "branch", + "uuid": "8c759072791e5986ac4efe9df0c2b751" + }, + "Wheelbase": { + "datatype": "uint16", + "default": 0, + "description": "Overall wheelbase, in mm.", + "type": "attribute", + "unit": "mm", + "uuid": "11677e0433935dc7aa9c1806c96a8a6b" + } + }, + "description": "All data concerning steering, suspension, wheels, and brakes.", + "type": "branch", + "uuid": "87d260d635425da0a4ebd62bc4e5c313" + }, + "Connectivity": { + "children": { + "IsConnectivityAvailable": { + "comment": "This signal can be used by onboard vehicle services to decide what features that shall be offered to the driver, for example disable the 'check for update' button if vehicle does not have connectivity.", + "datatype": "boolean", + "description": "Indicates if connectivity between vehicle and cloud is available. True = Connectivity is available. False = Connectivity is not available.", + "type": "sensor", + "uuid": "b6d11be2a6565996b68ffb07a96595a7" + } + }, + "description": "Connectivity data.", + "type": "branch", + "uuid": "89c267fccea35f3da9871cca2b4dc4df" + }, + "CurbWeight": { + "datatype": "uint16", + "default": 0, + "description": "Vehicle curb weight, including all liquids and full tank of fuel, but no cargo or passengers.", + "type": "attribute", + "unit": "kg", + "uuid": "69ac6ca079de59d19737f75e4c5c4342" + }, + "CurrentLocation": { + "children": { + "Altitude": { + "datatype": "double", + "description": "Current altitude relative to WGS 84 reference ellipsoid, as measured at the position of GNSS receiver antenna.", + "type": "sensor", + "unit": "m", + "uuid": "d3ead98ab0b751c1a5b5dd5bc0e5e216" + }, + "GNSSReceiver": { + "children": { + "FixType": { + "allowed": [ + "NONE", + "TWO_D", + "TWO_D_SATELLITE_BASED_AUGMENTATION", + "TWO_D_GROUND_BASED_AUGMENTATION", + "TWO_D_SATELLITE_AND_GROUND_BASED_AUGMENTATION", + "THREE_D", + "THREE_D_SATELLITE_BASED_AUGMENTATION", + "THREE_D_GROUND_BASED_AUGMENTATION", + "THREE_D_SATELLITE_AND_GROUND_BASED_AUGMENTATION" + ], + "datatype": "string", + "description": "Fix status of GNSS receiver.", + "type": "sensor", + "uuid": "52853b33d4605608bd0ae50595c69309" + }, + "MountingPosition": { + "children": { + "X": { + "datatype": "int16", + "description": "Mounting position of GNSS receiver antenna relative to vehicle coordinate system. Axis definitions according to ISO 8855. Origin at center of (first) rear axle. Positive values = forward of rear axle. Negative values = backward of rear axle.", + "type": "attribute", + "unit": "mm", + "uuid": "f23d40f3556b5676a0d1e3def037197f" + }, + "Y": { + "datatype": "int16", + "description": "Mounting position of GNSS receiver antenna relative to vehicle coordinate system. Axis definitions according to ISO 8855. Origin at center of (first) rear axle. Positive values = left of origin. Negative values = right of origin. Left/Right is as seen from driver perspective, i.e. by a person looking forward.", + "type": "attribute", + "unit": "mm", + "uuid": "16745ae827c0527ea2c48c20f0c146f1" + }, + "Z": { + "datatype": "int16", + "description": "Mounting position of GNSS receiver on Z-axis. Axis definitions according to ISO 8855. Origin at center of (first) rear axle. Positive values = above center of rear axle. Negative values = below center of rear axle.", + "type": "attribute", + "unit": "mm", + "uuid": "a4d04e86518e5c5ab60e5e4face35756" + } + }, + "description": "Mounting position of GNSS receiver antenna relative to vehicle coordinate system. Axis definitions according to ISO 8855. Origin at center of (first) rear axle.", + "type": "branch", + "uuid": "5c0887bce6fb5eb79402baaccb203e61" + } + }, + "description": "Information on the GNSS receiver used for determining current location.", + "type": "branch", + "uuid": "b1bea5d88662539a8cff6f8fe4974740" + }, + "Heading": { + "datatype": "double", + "description": "Current heading relative to geographic north. 0 = North, 90 = East, 180 = South, 270 = West.", + "max": 360, + "min": 0, + "type": "sensor", + "unit": "degrees", + "uuid": "2a8f0afa2b315943aa001278875ce012" + }, + "HorizontalAccuracy": { + "datatype": "double", + "description": "Accuracy of the latitude and longitude coordinates.", + "type": "sensor", + "unit": "m", + "uuid": "bf25ef243f0c5f839f7ef874f9c57fda" + }, + "Latitude": { + "datatype": "double", + "description": "Current latitude of vehicle in WGS 84 geodetic coordinates, as measured at the position of GNSS receiver antenna.", + "max": 90, + "min": -90, + "type": "sensor", + "unit": "degrees", + "uuid": "08933c5a445055df80bea15fbfa07f1c" + }, + "Longitude": { + "datatype": "double", + "description": "Current longitude of vehicle in WGS 84 geodetic coordinates, as measured at the position of GNSS receiver antenna.", + "max": 180, + "min": -180, + "type": "sensor", + "unit": "degrees", + "uuid": "5246f2ec5fea550cb1b36f110854cfbb" + }, + "Timestamp": { + "datatype": "string", + "description": "Timestamp from GNSS system for current location, formatted according to ISO 8601 with UTC time zone.", + "type": "sensor", + "uuid": "094aeff73be05c08905690be0e82a438" + }, + "VerticalAccuracy": { + "datatype": "double", + "description": "Accuracy of altitude.", + "type": "sensor", + "unit": "m", + "uuid": "8f54055bce9e5e8e97fb6051582707ab" + } + }, + "description": "The current latitude and longitude of the vehicle.", + "type": "branch", + "uuid": "24777bd485f15fb69550ae0520c40ad5" + }, + "CurrentOverallWeight": { + "datatype": "uint16", + "description": "Current overall Vehicle weight. Including passengers, cargo and other load inside the car.", + "type": "sensor", + "unit": "kg", + "uuid": "75599d7628bb5f35839055269d3ad205" + }, + "Driver": { + "children": { + "AttentiveProbability": { + "datatype": "float", + "description": "Probability of attentiveness of the driver.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "fcd202467afb533fbbf9e7da89cc1cee" + }, + "DistractionLevel": { + "datatype": "float", + "description": "Distraction level of the driver, which can be evaluated by multiple factors e.g. driving situation, acoustical or optical signals inside the cockpit, ongoing phone calls.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "cb35ec0b924e58979e1469146d65c3fa" + }, + "FatigueLevel": { + "datatype": "float", + "description": "Fatigue level of the driver, which can be evaluated by multiple factors e.g. trip time, behaviour of steering, eye status.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "49b1626295705a79ae20d8a270c48b6b" + }, + "HeartRate": { + "datatype": "uint16", + "description": "Heart rate of the driver.", + "type": "sensor", + "unit": "bpm", + "uuid": "d71516905f785c4da867a2f86e774d93" + }, + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "ee7988d26d7156d2a030ecc506ea97e7" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "b41ec688af265f10824bc9635989ac55" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "89705397069c5ec58d607318f2ff0ea8" + }, + "IsEyesOnRoad": { + "datatype": "boolean", + "description": "Has driver the eyes on road or not?", + "type": "sensor", + "uuid": "625e5009f1145aa0b797ee6c335ca2fe" + }, + "IsHandsOnWheel": { + "datatype": "boolean", + "description": "Are the driver's hands on the steering wheel or not?", + "type": "sensor", + "uuid": "90d7dc2c408c528d941829ff88075f24" + } + }, + "description": "Driver data.", + "type": "branch", + "uuid": "1cac57e7b7e756dc8a154eaacbce6426" + }, + "EmissionsCO2": { + "datatype": "int16", + "description": "The CO2 emissions.", + "type": "attribute", + "unit": "g/km", + "uuid": "b73e8f1ed17d584fad3f088c666dc2a5" + }, + "Exterior": { + "children": { + "AirTemperature": { + "datatype": "float", + "description": "Air temperature outside the vehicle.", + "type": "sensor", + "unit": "celsius", + "uuid": "a38d3f5dfeb35317aca8b90453dc1a75" + }, + "Humidity": { + "datatype": "float", + "description": "Relative humidity outside the vehicle. 0 = Dry, 100 = Air fully saturated.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "6c785ec5d9a5534f98be7ce198d25d6b" + }, + "LightIntensity": { + "comment": "Mapping to physical units and calculation method is sensor specific.", + "datatype": "float", + "description": "Light intensity outside the vehicle. 0 = No light detected, 100 = Fully lit.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "9b46b70490f853e891e1cc35dd08dddc" + } + }, + "description": "Information about exterior measured by vehicle.", + "type": "branch", + "uuid": "06c5def549f3580e8cdaffa3e0f5d25c" + }, + "GrossWeight": { + "datatype": "uint16", + "default": 0, + "description": "Curb weight of vehicle, including all liquids and full tank of fuel and full load of cargo and passengers.", + "type": "attribute", + "unit": "kg", + "uuid": "9671cb551dd8570fbe5d7cd797265e6a" + }, + "Height": { + "datatype": "uint16", + "default": 0, + "description": "Overall vehicle height.", + "type": "attribute", + "unit": "mm", + "uuid": "9784d39f68b8541f90c355178ded7d7c" + }, + "IsBrokenDown": { + "comment": "Actual criteria and method used to decide if a vehicle is broken down is implementation specific.", + "datatype": "boolean", + "description": "Vehicle breakdown or any similar event causing vehicle to stop on the road, that might pose a risk to other road users. True = Vehicle broken down on the road, due to e.g. engine problems, flat tire, out of gas, brake problems. False = Vehicle not broken down.", + "type": "sensor", + "uuid": "469ebd2a76b45e5b97b799262a085330" + }, + "IsMoving": { + "datatype": "boolean", + "description": "Indicates whether the vehicle is stationary or moving.", + "type": "sensor", + "uuid": "db69549cc7375e919c2a2883b41cd19c" + }, + "Length": { + "datatype": "uint16", + "default": 0, + "description": "Overall vehicle length.", + "type": "attribute", + "unit": "mm", + "uuid": "885f1be6842a513582e52a42edb3176f" + }, + "LowVoltageBattery": { + "children": { + "CurrentCurrent": { + "datatype": "float", + "description": "Current current flowing in/out of the low voltage battery. Positive = Current flowing in to battery, e.g. during charging or driving. Negative = Current flowing out of battery, e.g. when using the battery to start a combustion engine.", + "type": "sensor", + "unit": "A", + "uuid": "e1d76e489d505b03ace30771ba4291b1" + }, + "CurrentVoltage": { + "datatype": "float", + "description": "Current Voltage of the low voltage battery.", + "type": "sensor", + "unit": "V", + "uuid": "1394234e8b975a279959ae82e03df786" + }, + "NominalCapacity": { + "datatype": "uint16", + "description": "Nominal capacity of the low voltage battery.", + "type": "attribute", + "unit": "Ah", + "uuid": "d9f32612cb2f58d3b863a0dae21ff7af" + }, + "NominalVoltage": { + "comment": "Nominal voltage typically refers to voltage of fully charged battery when delivering rated capacity.", + "datatype": "uint16", + "description": "Nominal Voltage of the battery.", + "type": "attribute", + "unit": "V", + "uuid": "bd5d4b6ee33f507fb49782505c3040e0" + } + }, + "description": "Signals related to low voltage battery.", + "type": "branch", + "uuid": "ab8c5816d44f55b68f6e1d6d9e5acb0b" + }, + "LowVoltageSystemState": { + "allowed": [ + "UNDEFINED", + "LOCK", + "OFF", + "ACC", + "ON", + "START" + ], + "datatype": "string", + "description": "State of the supply voltage of the control units (usually 12V).", + "type": "sensor", + "uuid": "d7391ceb132e5519b02d4c13d5513d99" + }, + "MaxTowBallWeight": { + "datatype": "uint16", + "default": 0, + "description": "Maximum vertical weight on the tow ball of a trailer.", + "type": "attribute", + "unit": "kg", + "uuid": "fec550f2064750e8b65b54fbf1368d68" + }, + "MaxTowWeight": { + "datatype": "uint16", + "default": 0, + "description": "Maximum weight of trailer.", + "type": "attribute", + "unit": "kg", + "uuid": "a1b8fd65897654aa8a418bccf443f1f3" + }, + "OBD": { + "children": { + "AbsoluteLoad": { + "datatype": "float", + "description": "PID 43 - Absolute load value", + "type": "sensor", + "unit": "percent", + "uuid": "b3dd889a42ce5de9a7904b7196ae325c" + }, + "AcceleratorPositionD": { + "datatype": "float", + "description": "PID 49 - Accelerator pedal position D", + "type": "sensor", + "unit": "percent", + "uuid": "7e63256081ac5a7b8a28a6fa3c2c2ff9" + }, + "AcceleratorPositionE": { + "datatype": "float", + "description": "PID 4A - Accelerator pedal position E", + "type": "sensor", + "unit": "percent", + "uuid": "4104e7fc25355e25b4522d233565d84b" + }, + "AcceleratorPositionF": { + "datatype": "float", + "description": "PID 4B - Accelerator pedal position F", + "type": "sensor", + "unit": "percent", + "uuid": "95f5c2a209a857ff930e2f8e32ac2d3f" + }, + "AirStatus": { + "datatype": "string", + "description": "PID 12 - Secondary air status", + "type": "sensor", + "uuid": "548f65bf59ed505a86dfaa1c33342e4d" + }, + "AmbientAirTemperature": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCFRONT_tempAmbientFiltered" + }, + "description": "PID 46 - Ambient air temperature", + "type": "sensor", + "unit": "celsius", + "uuid": "220a90f183c5583ea8b8b6454d774517" + }, + "BarometricPressure": { + "datatype": "float", + "description": "PID 33 - Barometric pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "1966bfff4d235767bfd9a21afb445ac7" + }, + "Catalyst": { + "children": { + "Bank1": { + "children": { + "Temperature1": { + "datatype": "float", + "description": "PID 3C - Catalyst temperature from bank 1, sensor 1", + "type": "sensor", + "unit": "celsius", + "uuid": "5a770f13939e5d069682d408f160a895" + }, + "Temperature2": { + "datatype": "float", + "description": "PID 3E - Catalyst temperature from bank 1, sensor 2", + "type": "sensor", + "unit": "celsius", + "uuid": "ca9419a5d23b5937af23b51d823722fa" + } + }, + "description": "Catalyst bank 1 signals", + "type": "branch", + "uuid": "0c3aaf014ba95b938b639d4202ef8b25" + }, + "Bank2": { + "children": { + "Temperature1": { + "datatype": "float", + "description": "PID 3D - Catalyst temperature from bank 2, sensor 1", + "type": "sensor", + "unit": "celsius", + "uuid": "011658e4ee89502c9a33877c92dbf888" + }, + "Temperature2": { + "datatype": "float", + "description": "PID 3F - Catalyst temperature from bank 2, sensor 2", + "type": "sensor", + "unit": "celsius", + "uuid": "f60c68f0ebca5fcf97086ce04e16d661" + } + }, + "description": "Catalyst bank 2 signals", + "type": "branch", + "uuid": "9a20459754755146a3b9608bf6384835" + } + }, + "description": "Catalyst signals", + "type": "branch", + "uuid": "4eb0b191d6445de081f3f3f759af31c2" + }, + "CommandedEGR": { + "datatype": "float", + "description": "PID 2C - Commanded exhaust gas recirculation (EGR)", + "type": "sensor", + "unit": "percent", + "uuid": "0265890a4a695ee6952c9b9f565ddaa5" + }, + "CommandedEVAP": { + "datatype": "float", + "description": "PID 2E - Commanded evaporative purge (EVAP) valve", + "type": "sensor", + "unit": "percent", + "uuid": "5e6295d04a9159b88f4698b561b86842" + }, + "CommandedEquivalenceRatio": { + "datatype": "float", + "description": "PID 44 - Commanded equivalence ratio", + "type": "sensor", + "unit": "ratio", + "uuid": "104e39e816f65fa791d0afa24603292b" + }, + "ControlModuleVoltage": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 1000, + "signal": "PCS_dcdcLvBusVolt" + }, + "description": "PID 42 - Control module voltage", + "type": "sensor", + "unit": "V", + "uuid": "59e072b932605ffc88a299c874d885c4" + }, + "CoolantTemperature": { + "datatype": "float", + "description": "PID 05 - Coolant temperature", + "type": "sensor", + "unit": "celsius", + "uuid": "824892cdc72d5f92a38ef3136576edc8" + }, + "DTCList": { + "datatype": "string[]", + "description": "List of currently active DTCs formatted according OBD II (SAE-J2012DA_201812) standard ([P|C|B|U]XXXXX )", + "type": "sensor", + "uuid": "eee1b64e69845d5ab5e793b74631f9dc" + }, + "DistanceSinceDTCClear": { + "datatype": "float", + "description": "PID 31 - Distance traveled since codes cleared", + "type": "sensor", + "unit": "km", + "uuid": "0da628e2c69d561eb86216ddcb6e7b2a" + }, + "DistanceWithMIL": { + "datatype": "float", + "description": "PID 21 - Distance traveled with MIL on", + "type": "sensor", + "unit": "km", + "uuid": "a9a522e343f25522b08f11e81bb91349" + }, + "DriveCycleStatus": { + "children": { + "DTCCount": { + "datatype": "uint8", + "description": "Number of sensor Trouble Codes (DTC)", + "type": "sensor", + "uuid": "312856f746ff560e8098c19196964d3b" + }, + "IgnitionType": { + "allowed": [ + "SPARK", + "COMPRESSION" + ], + "datatype": "string", + "description": "Type of the ignition for ICE - spark = spark plug ignition, compression = self-igniting (Diesel engines)", + "type": "sensor", + "uuid": "1aeb7b6d025f5a8693104824abaa1c49" + }, + "IsMILOn": { + "datatype": "boolean", + "description": "Malfunction Indicator Light (MIL) - False = Off, True = On", + "type": "sensor", + "uuid": "e367394c9a075eef8fd66499e3d9cf14" + } + }, + "description": "PID 41 - OBD status for the current drive cycle", + "type": "branch", + "uuid": "5215e28062f75154822789b8a5f30630" + }, + "EGRError": { + "datatype": "float", + "description": "PID 2D - Exhaust gas recirculation (EGR) error", + "type": "sensor", + "unit": "percent", + "uuid": "80a7000c5c7b5444b5571a26264061e5" + }, + "EVAPVaporPressure": { + "datatype": "float", + "description": "PID 32 - Evaporative purge (EVAP) system pressure", + "type": "sensor", + "unit": "Pa", + "uuid": "70b5dae2ffd0561eab73efed8ad2f0ad" + }, + "EVAPVaporPressureAbsolute": { + "datatype": "float", + "description": "PID 53 - Absolute evaporative purge (EVAP) system pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "ef188a1e1a1356f7bc425081e3e00805" + }, + "EVAPVaporPressureAlternate": { + "datatype": "float", + "description": "PID 54 - Alternate evaporative purge (EVAP) system pressure", + "type": "sensor", + "unit": "Pa", + "uuid": "68eaba3c79975d61bc35b92cd3e5e8d0" + }, + "EngineLoad": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 100, + "signal": "RearPower266", + "transform": { + "math": "floor(abs(x/5))" + } + }, + "description": "PID 04 - Engine load in percent - 0 = no load, 100 = full load", + "type": "sensor", + "unit": "percent", + "uuid": "a8fda8a1b4c6534aa49c447bafc1c700" + }, + "EngineSpeed": { + "datatype": "float", + "description": "PID 0C - Engine speed measured as rotations per minute", + "type": "sensor", + "unit": "rpm", + "uuid": "b682eea93b3e5874ab3b52e95a1fad37" + }, + "EthanolPercent": { + "datatype": "float", + "description": "PID 52 - Percentage of ethanol in the fuel", + "type": "sensor", + "unit": "percent", + "uuid": "a207e7de17e1520c894b412af6f2522c" + }, + "FreezeDTC": { + "datatype": "string", + "description": "PID 02 - DTC that triggered the freeze frame", + "type": "sensor", + "uuid": "5b87fae8dda4522aae209ae528960782" + }, + "FuelInjectionTiming": { + "datatype": "float", + "description": "PID 5D - Fuel injection timing", + "type": "sensor", + "unit": "degrees", + "uuid": "ab4869446f5357d6936838983e1b8949" + }, + "FuelLevel": { + "datatype": "float", + "description": "PID 2F - Fuel level in the fuel tank", + "type": "sensor", + "unit": "percent", + "uuid": "fd39813424ee5cd08c44714b35697287" + }, + "FuelPressure": { + "datatype": "float", + "description": "PID 0A - Fuel pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "34e6b0689f025d7b9bfa1fc49bb30c0f" + }, + "FuelRailPressureAbsolute": { + "datatype": "float", + "description": "PID 59 - Absolute fuel rail pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "83c88b13d30153949eeca1b1180a9061" + }, + "FuelRailPressureDirect": { + "datatype": "float", + "description": "PID 23 - Fuel rail pressure direct inject", + "type": "sensor", + "unit": "kPa", + "uuid": "039cb7bf1a8356a98d09eaf4fc029fe9" + }, + "FuelRailPressureVac": { + "datatype": "float", + "description": "PID 22 - Fuel rail pressure relative to vacuum", + "type": "sensor", + "unit": "kPa", + "uuid": "b3b0adf44aa3572fa07e7434993e6458" + }, + "FuelRate": { + "datatype": "float", + "description": "PID 5E - Engine fuel rate", + "type": "sensor", + "unit": "l/h", + "uuid": "4ab7c2b710f95ceb9c7d01d19dabac38" + }, + "FuelStatus": { + "datatype": "string", + "description": "PID 03 - Fuel status", + "type": "sensor", + "uuid": "15fa2f3f667a5f5786eda5c83435ef16" + }, + "FuelType": { + "datatype": "uint8", + "description": "PID 51 - Fuel type", + "max": 23, + "min": 0, + "type": "attribute", + "uuid": "aefb45bdd8035904b0c8f3ffcedc53a9" + }, + "HybridBatteryRemaining": { + "datatype": "float", + "description": "PID 5B - Remaining life of hybrid battery", + "type": "sensor", + "unit": "percent", + "uuid": "c9517b6243df5e8d8f3aa3e57f71ec37" + }, + "IntakeTemp": { + "datatype": "float", + "description": "PID 0F - Intake temperature", + "type": "sensor", + "unit": "celsius", + "uuid": "7c108305178b5854b430a23e125588bd" + }, + "IsPTOActive": { + "datatype": "boolean", + "description": "PID 1E - Auxiliary input status (power take off)", + "type": "sensor", + "uuid": "ce291dc40bba5a969e57b17f11ae23a9" + }, + "LongTermFuelTrim1": { + "datatype": "float", + "description": "PID 07 - Long Term (learned) Fuel Trim - Bank 1 - negative percent leaner, positive percent richer", + "type": "sensor", + "unit": "percent", + "uuid": "1c203b11667150f0b4ee1be26a60c084" + }, + "LongTermFuelTrim2": { + "datatype": "float", + "description": "PID 09 - Long Term (learned) Fuel Trim - Bank 2 - negative percent leaner, positive percent richer", + "type": "sensor", + "unit": "percent", + "uuid": "b02aff2efce05632b5694a256e5b9ec7" + }, + "LongTermO2Trim1": { + "datatype": "float", + "description": "PID 56 (byte A) - Long term secondary O2 trim - Bank 1", + "type": "sensor", + "unit": "percent", + "uuid": "9a9586e29a02567e9920cb9b0aa2e3f5" + }, + "LongTermO2Trim2": { + "datatype": "float", + "description": "PID 58 (byte A) - Long term secondary O2 trim - Bank 2", + "type": "sensor", + "unit": "percent", + "uuid": "e579f6c930605b389e8ce2d7edd92999" + }, + "LongTermO2Trim3": { + "datatype": "float", + "description": "PID 56 (byte B) - Long term secondary O2 trim - Bank 3", + "type": "sensor", + "unit": "percent", + "uuid": "50ea51ad343a5e59b1d214053e522a45" + }, + "LongTermO2Trim4": { + "datatype": "float", + "description": "PID 58 (byte B) - Long term secondary O2 trim - Bank 4", + "type": "sensor", + "unit": "percent", + "uuid": "f9c20edd12f456e5ace21581cea484bd" + }, + "MAF": { + "datatype": "float", + "description": "PID 10 - Grams of air drawn into engine per second", + "type": "sensor", + "unit": "g/s", + "uuid": "f3acdf89fb865313883d5d3126f15518" + }, + "MAP": { + "datatype": "float", + "description": "PID 0B - Intake manifold pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "335991b1b53f56f097fea7b05d4db83b" + }, + "MaxMAF": { + "datatype": "float", + "description": "PID 50 - Maximum flow for mass air flow sensor", + "type": "sensor", + "unit": "g/s", + "uuid": "e21826479f715ee7afe8dc485f109b11" + }, + "O2": { + "children": { + "Sensor1": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "ee366d40132456c0bce8cac3a837f16a" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "e95f4ea667265ee3a68ab57b86ecbf66" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "3aa8859203d4545083196a9690d72627" + }, + "Sensor2": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "92e6e172777457a9866ca045d0d79853" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "5f1781bde96b53ce9b810a5a56b7c8ed" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "efcb337cf94056c8a724e76bcfee6765" + }, + "Sensor3": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "66c300d35eb85e7387dc42528cca48d9" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "a86a1986f0fe5d25b6c438a00438ff60" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "b8c145402b7a5cffaa2699ed61b056fa" + }, + "Sensor4": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "b71dcf9d850c5d5686f14ad46cd2cae3" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "772cbfab91be59f7bbf3ec4140ffbcc4" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "853945bce86c5c4f95081075ae32261c" + }, + "Sensor5": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "7604de26198b51e28a441f79b1d84242" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "155a0816093b5aee8012ed2a8d532b7f" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "f48c76c9c7ec5ddcb6838ced0bd7517b" + }, + "Sensor6": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "2fb034769cab5089986d90bf7f9000ca" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "85430592fb795e848d7bb91e6b9f1e00" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "5269c1877ded507b87d7d1d7bec10605" + }, + "Sensor7": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "81f34b16b5e05d1ab159de9474eaf5bc" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "23984a68e63f532bab18679e1174130d" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "4b565102e4a052aa8aa64f27dc678ce3" + }, + "Sensor8": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "1699eb2267615e258259e480be0fa606" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "23e057b3629a5136bb585638725fe0a2" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "d5eef24c35f1561982127404b50ece11" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "31f007df72af50f0925d2b4647682a4d" + }, + "O2WR": { + "children": { + "Sensor1": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "bb4c70d9d2ae56c8a9a3be446db6f54c" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "b809083454a5516f995477c59bf4d3c6" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "396251cbfa5a57ffb1dd743298dfcdf9" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "496074cec04a5260b60fd39bb7ed1479" + }, + "Sensor2": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "442ab33180ca5028a37a487056ba4a51" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "ce55aed0e8705a49970566db71ebcf90" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "a784675c3b765d42ad023d8ee412be26" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "079f9960f75d5f399df7ff86fcea8f0c" + }, + "Sensor3": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "c942468e349e5aaebde4d90ee0bc3814" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "f2ae7c781b0a5dcf8db91558e3cf4c13" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "a78f7621a3f75df2adc1dc940219834a" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "a8a83d3e33f9584b824088e830bcbaec" + }, + "Sensor4": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "f16b31fde63a516db04cb44feaa7c27b" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "be09013f423c588eae9c06da9ddf290f" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "abeca90ba22d5c32a34ee907cedf3192" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "bb67047ddad158ba98876a6a87d02e97" + }, + "Sensor5": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "40494cb5826554929f5ecadd5b9173fd" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "16a957200f5c51f89824bbb76a23b9c0" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "699c4db2439f51af8465e823687018b8" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "01c4160d39af5db59c66db844646195e" + }, + "Sensor6": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "06a38b6b4784545bb637279e96d48eb5" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "fdae9bb9a3a45b4680450f0347cf6d66" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "304c181c76d55c3abe75382a935c7bde" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "cff12c30bde957798daaa3a91758b48b" + }, + "Sensor7": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "6ed46315325d540eb95c86ec61eef8e4" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "9221a5289157538b9dcaa0d961c335fa" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "0ad1d79dcce65c00ac48421b5b54ca0e" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "44459df1f25f5d43a07b00f2bad65ef5" + }, + "Sensor8": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "96de3c3b036c50c2978ab2aa490d4d9e" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "c56db1195fa3519ab6718ab57d2cd543" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "ab7d6c739f025782bba640e58123f0c8" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "b8865e72055d52a086f6935d5c188cc1" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "a439f2bc16575318afe20d0bc6a8cacf" + }, + "OBDStandards": { + "datatype": "uint8", + "description": "PID 1C - OBD standards this vehicle conforms to", + "type": "attribute", + "uuid": "1aa8d7d055cf5a29a31b04a12124f673" + }, + "OilTemperature": { + "datatype": "float", + "description": "PID 5C - Engine oil temperature", + "type": "sensor", + "unit": "celsius", + "uuid": "ef3dfc11085d5077b363b1a4e8e4a84e" + }, + "OxygenSensorsIn2Banks": { + "datatype": "uint8", + "description": "PID 13 - Presence of oxygen sensors in 2 banks. [A0..A3] == Bank 1, Sensors 1-4. [A4..A7] == Bank 2, Sensors 1-4", + "type": "sensor", + "uuid": "0a9ba3f0a9b256d78bafd62ee8ce73cd" + }, + "OxygenSensorsIn4Banks": { + "datatype": "uint8", + "description": "PID 1D - Presence of oxygen sensors in 4 banks. Similar to PID 13, but [A0..A7] == [B1S1, B1S2, B2S1, B2S2, B3S1, B3S2, B4S1, B4S2]", + "type": "sensor", + "uuid": "41d3377813d651aa9b9344ba9fd2f880" + }, + "PidsA": { + "allowed": [ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "0A", + "0B", + "0C", + "0D", + "0E", + "0F", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "1A", + "1B", + "1C", + "1D", + "1E", + "1F", + "20" + ], + "datatype": "string[]", + "description": "PID 00 - Array of the supported PIDs 01 to 20 in Hexadecimal.", + "type": "attribute", + "uuid": "ba1c1b9034955d2d97249c3b4516beef" + }, + "PidsB": { + "allowed": [ + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "2A", + "2B", + "2C", + "2D", + "2E", + "2F", + "30", + "31", + "32", + "33", + "34", + "35", + "36", + "37", + "38", + "39", + "3A", + "3B", + "3C", + "3D", + "3E", + "3F", + "40" + ], + "datatype": "string[]", + "description": "PID 20 - Array of the supported PIDs 21 to 40 in Hexadecimal.", + "type": "attribute", + "uuid": "00193c560a0a5525baa45681e07b50f6" + }, + "PidsC": { + "allowed": [ + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "4A", + "4B", + "4C", + "4D", + "4E", + "4F", + "50", + "51", + "52", + "53", + "54", + "55", + "56", + "57", + "58", + "59", + "5A", + "5B", + "5C", + "5D", + "5E", + "5F", + "60" + ], + "datatype": "string[]", + "description": "PID 40 - Array of the supported PIDs 41 to 60 in Hexadecimal.", + "type": "attribute", + "uuid": "7c3a3f0ecc5d593aa996892668afe4b0" + }, + "RelativeAcceleratorPosition": { + "datatype": "float", + "description": "PID 5A - Relative accelerator pedal position", + "type": "sensor", + "unit": "percent", + "uuid": "e25de9aacad3549285b4fb234f10be8f" + }, + "RelativeThrottlePosition": { + "datatype": "float", + "description": "PID 45 - Relative throttle position", + "type": "sensor", + "unit": "percent", + "uuid": "54ecf7dd671c5053aac4bc1bb061d64b" + }, + "RunTime": { + "datatype": "float", + "description": "PID 1F - Engine run time", + "type": "sensor", + "unit": "s", + "uuid": "acf70773752256d1a227ab48257624b5" + }, + "RunTimeMIL": { + "datatype": "float", + "description": "PID 4D - Run time with MIL on", + "type": "sensor", + "unit": "min", + "uuid": "555604a484535f60adf8894a6bd895b6" + }, + "ShortTermFuelTrim1": { + "datatype": "float", + "description": "PID 06 - Short Term (immediate) Fuel Trim - Bank 1 - negative percent leaner, positive percent richer", + "type": "sensor", + "unit": "percent", + "uuid": "569c983874335fb392d4e82a002654cb" + }, + "ShortTermFuelTrim2": { + "datatype": "float", + "description": "PID 08 - Short Term (immediate) Fuel Trim - Bank 2 - negative percent leaner, positive percent richer", + "type": "sensor", + "unit": "percent", + "uuid": "53a39620773a523a8182169027169ec2" + }, + "ShortTermO2Trim1": { + "datatype": "float", + "description": "PID 55 (byte A) - Short term secondary O2 trim - Bank 1", + "type": "sensor", + "unit": "percent", + "uuid": "be7ed33a854557ba802da0c51f9f4564" + }, + "ShortTermO2Trim2": { + "datatype": "float", + "description": "PID 57 (byte A) - Short term secondary O2 trim - Bank 2", + "type": "sensor", + "unit": "percent", + "uuid": "c8b962f8990e51d294621408ceaa21d9" + }, + "ShortTermO2Trim3": { + "datatype": "float", + "description": "PID 55 (byte B) - Short term secondary O2 trim - Bank 3", + "type": "sensor", + "unit": "percent", + "uuid": "af58212df970568b9edcc5e58fa36f8d" + }, + "ShortTermO2Trim4": { + "datatype": "float", + "description": "PID 57 (byte B) - Short term secondary O2 trim - Bank 4", + "type": "sensor", + "unit": "percent", + "uuid": "8ef0516c0c965fd6aecbacd6b9120a5b" + }, + "Speed": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 100, + "signal": "DI_uiSpeed" + }, + "description": "PID 0D - Vehicle speed", + "type": "sensor", + "unit": "km/h", + "uuid": "91ed0bb43eb054759813cd784b071764" + }, + "Status": { + "children": { + "DTCCount": { + "datatype": "uint8", + "description": "Number of Diagnostic Trouble Codes (DTC)", + "type": "sensor", + "uuid": "4afdf65e788c5f69baf682597e69fb67" + }, + "IgnitionType": { + "allowed": [ + "SPARK", + "COMPRESSION" + ], + "datatype": "string", + "description": "Type of the ignition for ICE - spark = spark plug ignition, compression = self-igniting (Diesel engines)", + "type": "attribute", + "uuid": "7ffd71caac8e5bd18f93366afdfe534d" + }, + "IsMILOn": { + "datatype": "boolean", + "description": "Malfunction Indicator Light (MIL) False = Off, True = On", + "type": "sensor", + "uuid": "8744bcb275205630932320b66185502c" + } + }, + "description": "PID 01 - OBD status", + "type": "branch", + "uuid": "474f58e593ee5bfebbb9c6ce4a453f96" + }, + "ThrottleActuator": { + "datatype": "float", + "description": "PID 4C - Commanded throttle actuator", + "type": "sensor", + "unit": "percent", + "uuid": "49a19905a1005ee3abe0c0a84d7112d1" + }, + "ThrottlePosition": { + "datatype": "float", + "description": "PID 11 - Throttle position - 0 = closed throttle, 100 = open throttle", + "type": "sensor", + "unit": "percent", + "uuid": "ec1d372020205bb4a846a014b33801e1" + }, + "ThrottlePositionB": { + "datatype": "float", + "description": "PID 47 - Absolute throttle position B", + "type": "sensor", + "unit": "percent", + "uuid": "701712a565ed5bf8b6630487a7152c87" + }, + "ThrottlePositionC": { + "datatype": "float", + "description": "PID 48 - Absolute throttle position C", + "type": "sensor", + "unit": "percent", + "uuid": "06f162dc00a85f628f9d5d1bc952665c" + }, + "TimeSinceDTCCleared": { + "datatype": "float", + "description": "PID 4E - Time since trouble codes cleared", + "type": "sensor", + "unit": "min", + "uuid": "66ea3984a2585dcdaaf6452eef835c0d" + }, + "TimingAdvance": { + "datatype": "float", + "description": "PID 0E - Time advance", + "type": "sensor", + "unit": "degrees", + "uuid": "35533b7e327d5f839b17c932b630767c" + }, + "WarmupsSinceDTCClear": { + "datatype": "uint8", + "description": "PID 30 - Number of warm-ups since codes cleared", + "type": "sensor", + "uuid": "a63ba60721785fc591e3dd067c4dc2ae" + } + }, + "description": "OBD data.", + "type": "branch", + "uuid": "7ad7c512ed5d52c8b31944d2d47a4bc3" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "add77f60f7885e39a84baae200569077" + }, + "Powertrain": { + "children": { + "AccumulatedBrakingEnergy": { + "datatype": "float", + "description": "The accumulated energy from regenerative braking over lifetime.", + "type": "sensor", + "unit": "kWh", + "uuid": "0dd466d28d3d5ad094f2015adafb91a5" + }, + "CombustionEngine": { + "children": { + "AspirationType": { + "allowed": [ + "UNKNOWN", + "NATURAL", + "SUPERCHARGER", + "TURBOCHARGER" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Type of aspiration (natural, turbocharger, supercharger etc).", + "type": "attribute", + "uuid": "3ca6a8ff30275c20a9d8d6d6829574eb" + }, + "Bore": { + "datatype": "float", + "description": "Bore in millimetres.", + "type": "attribute", + "unit": "mm", + "uuid": "1618fb16035b5464961570cc1afd934e" + }, + "CompressionRatio": { + "datatype": "string", + "description": "Engine compression ratio, specified in the format 'X:1', e.g. '9.2:1'.", + "type": "attribute", + "uuid": "ead42922511051a0a0a1b634781f3c09" + }, + "Configuration": { + "allowed": [ + "UNKNOWN", + "STRAIGHT", + "V", + "BOXER", + "W", + "ROTARY", + "RADIAL", + "SQUARE", + "H", + "U", + "OPPOSED", + "X" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Engine configuration.", + "type": "attribute", + "uuid": "586be4567fe059ee9e6cf42901c2e773" + }, + "DieselExhaustFluid": { + "children": { + "Capacity": { + "datatype": "float", + "description": "Capacity in liters of the Diesel Exhaust Fluid Tank.", + "type": "attribute", + "unit": "l", + "uuid": "863c16ad452b5cf5b7a37f58bdda14c3" + }, + "IsLevelLow": { + "datatype": "boolean", + "description": "Indicates if the Diesel Exhaust Fluid level is low. True if level is low. Definition of low is vehicle dependent.", + "type": "sensor", + "uuid": "811af3fe4f7f5270b4119bb66cff8759" + }, + "Level": { + "datatype": "uint8", + "description": "Level of the Diesel Exhaust Fluid tank as percent of capacity. 0 = empty. 100 = full.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "f5b0269b58ff5a8e8399f6d96963a3b6" + }, + "Range": { + "datatype": "uint32", + "description": "Remaining range in meters of the Diesel Exhaust Fluid present in the vehicle.", + "type": "sensor", + "unit": "m", + "uuid": "124afbee975c5a67b316413f7b805eac" + } + }, + "comment": "In retail and marketing other names are typically used for the fluid.", + "description": "Signals related to Diesel Exhaust Fluid (DEF). DEF is called AUS32 in ISO 22241.", + "type": "branch", + "uuid": "81d8eec46d9357a3b1064bfb5d070fa2" + }, + "DieselParticulateFilter": { + "children": { + "DeltaPressure": { + "datatype": "float", + "description": "Delta Pressure of Diesel Particulate Filter.", + "type": "sensor", + "unit": "Pa", + "uuid": "a6f476775c60531b93acb835e0bc6ab6" + }, + "InletTemperature": { + "datatype": "float", + "description": "Inlet temperature of Diesel Particulate Filter.", + "type": "sensor", + "unit": "celsius", + "uuid": "70e90d202d3054bd967e67dce95c8ef2" + }, + "OutletTemperature": { + "datatype": "float", + "description": "Outlet temperature of Diesel Particulate Filter.", + "type": "sensor", + "unit": "celsius", + "uuid": "e2b7f9d97bec5c0d94ade71a5e2f6518" + } + }, + "description": "Diesel Particulate Filter signals.", + "type": "branch", + "uuid": "eeddd99ad6475b1a92b9ec7bd7cefdbd" + }, + "Displacement": { + "datatype": "uint16", + "description": "Displacement in cubic centimetres.", + "type": "attribute", + "unit": "cm^3", + "uuid": "94dbd928847150ab842c00fa5caaf272" + }, + "ECT": { + "datatype": "int16", + "description": "Engine coolant temperature.", + "type": "sensor", + "unit": "celsius", + "uuid": "fff3cad23cac5b189a1a075c3ab562cd" + }, + "EOP": { + "datatype": "uint16", + "description": "Engine oil pressure.", + "type": "sensor", + "unit": "kPa", + "uuid": "76c7039dc7975ec3a003f0f4a04895ec" + }, + "EOT": { + "datatype": "int16", + "description": "Engine oil temperature.", + "type": "sensor", + "unit": "celsius", + "uuid": "eae6f5eae04f530e80f6b024f95b767d" + }, + "EngineCode": { + "comment": "For hybrid vehicles the engine code may refer to the combination of combustion and electric engine.", + "datatype": "string", + "description": "Engine code designation, as specified by vehicle manufacturer.", + "type": "attribute", + "uuid": "4ec845911b8e5b64b2cb1d34063184de" + }, + "EngineCoolantCapacity": { + "datatype": "float", + "description": "Engine coolant capacity in liters.", + "type": "attribute", + "unit": "l", + "uuid": "90b5b64808ea5f4fa2798d96143b0d60" + }, + "EngineHours": { + "datatype": "float", + "description": "Accumulated time during engine lifetime with 'engine speed (rpm) > 0'.", + "type": "sensor", + "unit": "h", + "uuid": "a23a62e24f58514d961890f53262e4e0" + }, + "EngineOilCapacity": { + "datatype": "float", + "description": "Engine oil capacity in liters.", + "type": "attribute", + "unit": "l", + "uuid": "2ca7af6facb55a13885989faa9bc6ca7" + }, + "EngineOilLevel": { + "allowed": [ + "CRITICALLY_LOW", + "LOW", + "NORMAL", + "HIGH", + "CRITICALLY_HIGH" + ], + "datatype": "string", + "description": "Engine oil level.", + "type": "sensor", + "uuid": "e3813f59e94b509eb865fd97255a8a4f" + }, + "IdleHours": { + "comment": "Vehicles may calculate accumulated idle time for an engine. It might be based on engine speed (rpm) below a certain limit or any other mechanism.", + "datatype": "float", + "description": "Accumulated idling time during engine lifetime. Definition of idling is not standardized.", + "type": "sensor", + "unit": "h", + "uuid": "6caa3d7e669c5cc6aecd4a6be9a302d4" + }, + "IsRunning": { + "datatype": "boolean", + "description": "Engine Running. True if engine is rotating (Speed > 0).", + "type": "sensor", + "uuid": "57652c27679757398c44d56af7a044d3" + }, + "MAF": { + "datatype": "uint16", + "description": "Grams of air drawn into engine per second.", + "type": "sensor", + "unit": "g/s", + "uuid": "1e222ed8c48b5dcea60e43ac8af7d6df" + }, + "MAP": { + "datatype": "uint16", + "description": "Manifold absolute pressure possibly boosted using forced induction.", + "type": "sensor", + "unit": "kPa", + "uuid": "28d4354fa34056369acb857aa7cc76ac" + }, + "MaxPower": { + "datatype": "uint16", + "default": 0, + "description": "Peak power, in kilowatts, that engine can generate.", + "type": "attribute", + "unit": "kW", + "uuid": "81fbdd5e90f557a38b96578a38dc137d" + }, + "MaxTorque": { + "datatype": "uint16", + "default": 0, + "description": "Peak torque, in newton meter, that the engine can generate.", + "type": "attribute", + "unit": "Nm", + "uuid": "471cd478c1e8597f8e97c85b4e4ebe26" + }, + "NumberOfCylinders": { + "datatype": "uint16", + "description": "Number of cylinders.", + "type": "attribute", + "uuid": "b2cd342c218257e88d214cdb511df82b" + }, + "NumberOfValvesPerCylinder": { + "datatype": "uint16", + "description": "Number of valves per cylinder.", + "type": "attribute", + "uuid": "44633204726e561ca21beff31f3fef80" + }, + "OilLifeRemaining": { + "comment": "In addition to this a signal a vehicle can report remaining time to service (including e.g. oil change) by Vehicle.Service.TimeToService.", + "datatype": "int32", + "description": "Remaining engine oil life in seconds. Negative values can be used to indicate that lifetime has been exceeded.", + "type": "sensor", + "unit": "s", + "uuid": "94303734c68c5353a02625f652103918" + }, + "Power": { + "datatype": "uint16", + "description": "Current engine power output. Shall be reported as 0 during engine breaking.", + "type": "sensor", + "unit": "kW", + "uuid": "20e8b5d2187758c2848ed421248c180d" + }, + "Speed": { + "datatype": "uint16", + "description": "Engine speed measured as rotations per minute.", + "type": "sensor", + "unit": "rpm", + "uuid": "557ce24c5a4d51cc825059c948ac9e29" + }, + "StrokeLength": { + "datatype": "float", + "description": "Stroke length in millimetres.", + "type": "attribute", + "unit": "mm", + "uuid": "1bdfdab7904d51ed93e101b84ea54ddf" + }, + "TPS": { + "datatype": "uint8", + "description": "Current throttle position.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "1ddb77860de558b4876ffb399a442bda" + }, + "Torque": { + "comment": "During engine breaking the engine delivers a negative torque to the transmission.", + "datatype": "int16", + "description": "Current engine torque. Shall be reported as a negative number during engine breaking.", + "type": "sensor", + "unit": "Nm", + "uuid": "b81f504bdb57513299ae6e9402ec7bcd" + } + }, + "description": "Engine-specific data, stopping at the bell housing.", + "type": "branch", + "uuid": "159e2e3e75f0590f95b4d2f6cfae54b5" + }, + "ElectricMotor": { + "children": { + "CoolantTemperature": { + "datatype": "int16", + "description": "Motor coolant temperature (if applicable).", + "type": "sensor", + "unit": "celsius", + "uuid": "3c5ea8c7700956518f2ae7a2a0f34f1c" + }, + "EngineCode": { + "datatype": "string", + "description": "Engine code designation, as specified by vehicle manufacturer.", + "type": "attribute", + "uuid": "e4102a5142ed501495e5edafd3d36dfb" + }, + "MaxPower": { + "datatype": "uint16", + "default": 0, + "description": "Peak power, in kilowatts, that motor(s) can generate.", + "type": "attribute", + "unit": "kW", + "uuid": "825ec7911ee958abb199b9f7903df3a6" + }, + "MaxRegenPower": { + "datatype": "uint16", + "default": 0, + "description": "Peak regen/brake power, in kilowatts, that motor(s) can generate.", + "type": "attribute", + "unit": "kW", + "uuid": "7f2cb2650ba95485b7156ffe76e27366" + }, + "MaxRegenTorque": { + "datatype": "uint16", + "default": 0, + "description": "Peak regen/brake torque, in newton meter, that the motor(s) can generate.", + "type": "attribute", + "unit": "Nm", + "uuid": "0e5190c2517b55aa80fcb9bf698e02d6" + }, + "MaxTorque": { + "datatype": "uint16", + "default": 0, + "description": "Peak power, in newton meter, that the motor(s) can generate.", + "type": "attribute", + "unit": "Nm", + "uuid": "cf31eabcde5151f589e9b0f7a6090512" + }, + "Power": { + "datatype": "int16", + "description": "Current motor power output. Negative values indicate regen mode.", + "type": "sensor", + "unit": "kW", + "uuid": "46b86286fba059349a733fed9a0e3232" + }, + "Speed": { + "datatype": "int32", + "description": "Motor rotational speed measured as rotations per minute. Negative values indicate reverse driving mode.", + "type": "sensor", + "unit": "rpm", + "uuid": "ca961aa6ca435095a89f9d404a5d849d" + }, + "Temperature": { + "datatype": "int16", + "dbc2vss": { + "interval_ms": 1000, + "signal": "PTC_rightTempIGBT" + }, + "description": "Motor temperature.", + "type": "sensor", + "unit": "celsius", + "uuid": "1b7c15e5341052139995bfacea2c05b2" + }, + "Torque": { + "datatype": "int16", + "dbc2vss": { + "interval_ms": 100, + "signal": "DIR_torqueActual" + }, + "description": "Current motor torque. Negative values indicate regen mode.", + "type": "sensor", + "unit": "Nm", + "uuid": "aceffe768ddf5b828fff0975349d2433" + } + }, + "description": "Electric Motor specific data.", + "type": "branch", + "uuid": "1ade64f6b0d05f6c9340e7a667555ae2" + }, + "FuelSystem": { + "children": { + "AbsoluteLevel": { + "datatype": "float", + "description": "Current available fuel in the fuel tank expressed in liters.", + "type": "sensor", + "unit": "l", + "uuid": "00a1399655ee5d9188022f3d55d8f05e" + }, + "AverageConsumption": { + "datatype": "float", + "description": "Average consumption in liters per 100 km.", + "min": 0, + "type": "sensor", + "unit": "l/100km", + "uuid": "e2252108125a54dcab34e1bad0fe8bdc" + }, + "ConsumptionSinceStart": { + "comment": "A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled. The signal may however keep the value of the last trip until a new trip is started.", + "datatype": "float", + "description": "Fuel amount in liters consumed since start of current trip.", + "type": "sensor", + "unit": "l", + "uuid": "adf0a40964ff556f92b10275ad918883" + }, + "HybridType": { + "allowed": [ + "UNKNOWN", + "NOT_APPLICABLE", + "STOP_START", + "BELT_ISG", + "CIMG", + "PHEV" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Defines the hybrid type of the vehicle.", + "type": "attribute", + "uuid": "f0f72012f5e453c1935ff8c3a5aff696" + }, + "InstantConsumption": { + "datatype": "float", + "description": "Current consumption in liters per 100 km.", + "min": 0, + "type": "sensor", + "unit": "l/100km", + "uuid": "cf65767ec8ad56ffadfdccd831e4b562" + }, + "IsEngineStopStartEnabled": { + "datatype": "boolean", + "description": "Indicates whether eco start stop is currently enabled.", + "type": "sensor", + "uuid": "176eed5bb0da582a9ee56f1c70e12075" + }, + "IsFuelLevelLow": { + "datatype": "boolean", + "description": "Indicates that the fuel level is low (e.g. <50km range).", + "type": "sensor", + "uuid": "65f18ee3b04f5d4c8bb76083227dd9fe" + }, + "IsFuelPortFlapOpen": { + "datatype": "boolean", + "description": "Status of the fuel port flap(s). True if at least one is open.", + "type": "actuator", + "uuid": "fded7edb113c5894a21722085834f3ae" + }, + "Range": { + "datatype": "uint32", + "description": "Remaining range in meters using only liquid fuel.", + "type": "sensor", + "unit": "m", + "uuid": "c5a0dbe5e754553897f0aed0069af57a" + }, + "RefuelPortPosition": { + "allowed": [ + "FRONT_LEFT", + "FRONT_MIDDLE", + "FRONT_RIGHT", + "REAR_LEFT", + "REAR_MIDDLE", + "REAR_RIGHT", + "LEFT_FRONT", + "LEFT_MIDDLE", + "LEFT_REAR", + "RIGHT_FRONT", + "RIGHT_MIDDLE", + "RIGHT_REAR" + ], + "datatype": "string[]", + "description": "Position of refuel port(s). First part indicates side of vehicle, second part relative position on that side.", + "type": "attribute", + "uuid": "a7b5eb269b345ef7b18602b66517f952" + }, + "RelativeLevel": { + "datatype": "uint8", + "description": "Level in fuel tank as percent of capacity. 0 = empty. 100 = full.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "e90e3daa1dcd5165a9d78b09e890fb22" + }, + "SupportedFuel": { + "allowed": [ + "E5_95", + "E5_98", + "E10_95", + "E10_98", + "E85", + "B7", + "B10", + "B20", + "B30", + "B100", + "XTL", + "LPG", + "CNG", + "LNG", + "H2", + "OTHER" + ], + "comment": "RON 95 is sometimes referred to as Super, RON 98 as Super Plus.", + "datatype": "string[]", + "description": "Detailed information on fuels supported by the vehicle. Identifiers originating from DIN EN 16942:2021-08, appendix B, with additional suffix for octane (RON) where relevant.", + "type": "attribute", + "uuid": "7fd3bf2ef0c650e69ff2037875ec59ee" + }, + "SupportedFuelTypes": { + "allowed": [ + "GASOLINE", + "DIESEL", + "E85", + "LPG", + "CNG", + "LNG", + "H2", + "OTHER" + ], + "comment": "If a vehicle also has an electric drivetrain (e.g. hybrid) that will be obvious from the PowerTrain.Type signal.", + "datatype": "string[]", + "description": "High level information of fuel types supported", + "type": "attribute", + "uuid": "80edc3002aa25097aba6455fe459fa6c" + }, + "TankCapacity": { + "datatype": "float", + "description": "Capacity of the fuel tank in liters.", + "type": "attribute", + "unit": "l", + "uuid": "362643b866c55d5386fdbdf383464e90" + }, + "TimeRemaining": { + "datatype": "uint32", + "description": "Time remaining in seconds before the fuel tank is empty.", + "type": "sensor", + "unit": "s", + "uuid": "a531b80a16bc59949abb2ab5228a1034" + } + }, + "description": "Fuel system data.", + "type": "branch", + "uuid": "dbc194a7f97d5a56bc8942c17c2db22e" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "d740b02e2fb35c07bf88a6e5ebe2f6e4" + }, + "Range": { + "datatype": "uint32", + "description": "Remaining range in meters using all energy sources available in the vehicle.", + "type": "sensor", + "unit": "m", + "uuid": "ea4b6de772d65d20b1fa611f997aa7b8" + }, + "TimeRemaining": { + "datatype": "uint32", + "description": "Time remaining in seconds before all energy sources available in the vehicle are empty.", + "type": "sensor", + "unit": "s", + "uuid": "f0154f73e2575ab5a39fd10a44ec7149" + }, + "TractionBattery": { + "children": { + "AccumulatedChargedEnergy": { + "datatype": "float", + "description": "The accumulated energy delivered to the battery during charging over lifetime of the battery.", + "type": "sensor", + "unit": "kWh", + "uuid": "739d06021d795da0877bc0ef3c107de1" + }, + "AccumulatedChargedThroughput": { + "datatype": "float", + "description": "The accumulated charge throughput delivered to the battery during charging over lifetime of the battery.", + "type": "sensor", + "unit": "Ah", + "uuid": "6d038ccc313351fba3a9104c1158a207" + }, + "AccumulatedConsumedEnergy": { + "datatype": "float", + "description": "The accumulated energy leaving HV battery for propulsion and auxiliary loads over lifetime of the battery.", + "type": "sensor", + "unit": "kWh", + "uuid": "b844cb96765f574d8d31edb09ccaef81" + }, + "AccumulatedConsumedThroughput": { + "datatype": "float", + "description": "The accumulated charge throughput leaving HV battery for propulsion and auxiliary loads over lifetime of the battery.", + "type": "sensor", + "unit": "Ah", + "uuid": "f3e2ca21f3b550288d494827c9a172dd" + }, + "CellVoltage": { + "children": { + "CellVoltages": { + "comment": "Cells are identified by relative position in array.", + "datatype": "float[]", + "description": "Array of cell voltages. Length or array shall correspond to number of cells in vehicle.", + "type": "sensor", + "uuid": "1970692bc3a457f1b6f58aa53c905264" + }, + "IdMax": { + "comment": "Identifier is supposed to be relative index of the cell, starting with 0 the first cell.", + "datatype": "uint16", + "description": "Identifier of the battery cell with highest voltage.", + "type": "sensor", + "uuid": "c84a89bd5faa5e9cb0a9bf191bfeec9c" + }, + "IdMin": { + "comment": "Identifier is supposed to be relative index of the cell, starting with 0 the first cell.", + "datatype": "uint16", + "description": "Identifier of the battery cell with lowest voltage.", + "type": "sensor", + "uuid": "cbaef92ad3f55b20bc71188fba79d00d" + }, + "Max": { + "datatype": "float", + "description": "Current voltage of the battery cell with highest voltage.", + "type": "sensor", + "unit": "V", + "uuid": "bde40aa6b442580db3c0d4c1efed8a09" + }, + "Min": { + "datatype": "float", + "description": "Current voltage of the battery cell with lowest voltage.", + "type": "sensor", + "unit": "V", + "uuid": "b868f28cc42a5ba28a127647cd16cb93" + } + }, + "description": "Voltage information for cells in the battery pack.", + "type": "branch", + "uuid": "0070210b80125f1a8e9473f8875fe3d1" + }, + "Charging": { + "children": { + "AveragePower": { + "datatype": "float", + "description": "Average charging power of last or current charging event.", + "type": "sensor", + "unit": "kW", + "uuid": "acc1728f1839516287d86975f679ec33" + }, + "ChargeCurrent": { + "children": { + "DC": { + "datatype": "float", + "description": "Current DC charging current at inlet. Negative if returning energy to grid.", + "type": "sensor", + "unit": "A", + "uuid": "44204d7ae6fd5f8e954d0670a739bdf2" + }, + "Phase1": { + "datatype": "float", + "description": "Current AC charging current (rms) at inlet for Phase 1. Negative if returning energy to grid.", + "type": "sensor", + "unit": "A", + "uuid": "400dca50fcde52a6bb605d7e86f49776" + }, + "Phase2": { + "datatype": "float", + "description": "Current AC charging current (rms) at inlet for Phase 2. Negative if returning energy to grid.", + "type": "sensor", + "unit": "A", + "uuid": "32cb24d1c495503a9087d6f55997cf57" + }, + "Phase3": { + "datatype": "float", + "description": "Current AC charging current (rms) at inlet for Phase 3. Negative if returning energy to grid.", + "type": "sensor", + "unit": "A", + "uuid": "55fb7fb7ff4a5df9b6a3af435eac868e" + } + }, + "description": "Current charging current.", + "type": "branch", + "uuid": "94739cf563735b438878ac0f85601f27" + }, + "ChargeLimit": { + "datatype": "uint8", + "default": 100, + "description": "Target charge limit (state of charge) for battery.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "62360a4ed1095275a7052d65112aaef1" + }, + "ChargePlugType": { + "allowed": [ + "IEC_TYPE_1_AC", + "IEC_TYPE_2_AC", + "IEC_TYPE_3_AC", + "IEC_TYPE_4_DC", + "IEC_TYPE_1_CCS_DC", + "IEC_TYPE_2_CCS_DC", + "TESLA_ROADSTER", + "TESLA_HPWC", + "TESLA_SUPERCHARGER", + "GBT_AC", + "GBT_DC", + "OTHER" + ], + "comment": "A vehicle may have multiple charging inlets. The signal Charging.ChargePlugPosition can be used to indicate position of the charge plug. IEC_TYPE_1_AC refers to Type 1 as defined in IEC 62196-2. Also known as Yazaki or J1772 connector. IEC_TYPE_2_AC refers to Type 2 as defined in IEC 62196-2. Also known as Mennekes connector. IEC_TYPE_3_AC refers to Type 3 as defined in IEC 62196-2. Also known as Scame connector. IEC_TYPE_4_DC refers to AA configuration as defined in IEC 62196-3. Also known as Type 4 or CHAdeMO connector. IEC_TYPE_1_CCS_DC refers to EE Configuration as defined in IEC 62196-3. Also known as CCS1 or Combo1 connector. IEC_TYPE_2_CCS_DC refers to FF Configuration as defined in IEC 62196-3. Also known as CCS2 or Combo2 connector. TESLA_ROADSTER, TESLA_HPWC (High Power Wall Connector) and TESLA_SUPERCHARGER refer to non-standardized charging inlets/methods used by Tesla. GBT_AC refers to connector specified in GB/T 20234.2. GBT_DC refers to connector specified in GB/T 20234.3. Also specified as BB Configuration in IEC 62196-3. OTHER shall be used if the vehicle has a charging connector, but not one of the connectors listed above. For additional information see https://en.wikipedia.org/wiki/IEC_62196.", + "datatype": "string[]", + "deprecation": "V4.1 renamed to Charging.ChargePortType", + "description": "Type of charge plugs (charging inlet) available on the vehicle. A charge plug type may occur multiple times in the list if there are multiple instances of that charge plug type. IEC types refer to IEC 62196, GBT refers to GB/T 20234.", + "type": "attribute", + "uuid": "4c56357a6f1d586395215a9beeb26d91" + }, + "ChargePortFlap": { + "allowed": [ + "OPEN", + "CLOSED" + ], + "datatype": "string", + "deprecation": "V4.1 - Replaced with Charging.IsChargePortFlapOpen", + "description": "Status of the charge port cover(s), can potentially be controlled manually. OPEN if at least one is open.", + "type": "actuator", + "uuid": "71bdd2145bb55c3393df194bfc2e03e5" + }, + "ChargePortPosition": { + "allowed": [ + "FRONT_LEFT", + "FRONT_MIDDLE", + "FRONT_RIGHT", + "REAR_LEFT", + "REAR_MIDDLE", + "REAR_RIGHT", + "LEFT_FRONT", + "LEFT_MIDDLE", + "LEFT_REAR", + "RIGHT_FRONT", + "RIGHT_MIDDLE", + "RIGHT_REAR" + ], + "comment": "Example - If this signal is [LEFT_FRONT, RIGHT_FRONT] and Charging.ChargePortType is [IEC_TYPE_2_AC, GBT_AC] that means that there is Mennekes port on the left side of the vehicle near the front, and a GB/T AC port on the right side, near the front.", + "datatype": "string[]", + "description": "Location of the charge port(s). First part indicates side of vehicle, second part relative position on that side. If supported, the list in this attribute shall have the same length as Charging.ChargePortType, and use same the relative order.", + "type": "attribute", + "uuid": "71ff249b26215714b9b28b1b8e066dba" + }, + "ChargePortType": { + "allowed": [ + "IEC_TYPE_1_AC", + "IEC_TYPE_2_AC", + "IEC_TYPE_3_AC", + "IEC_TYPE_4_DC", + "IEC_TYPE_1_CCS_DC", + "IEC_TYPE_2_CCS_DC", + "TESLA_ROADSTER", + "TESLA_HPWC", + "TESLA_SUPERCHARGER", + "GBT_AC", + "GBT_DC", + "OTHER" + ], + "comment": "A vehicle may have multiple charging ports. The signal Charging.ChargePortPosition can be used to indicate position of the charge port. IEC_TYPE_1_AC refers to Type 1 as defined in IEC 62196-2. Also known as Yazaki or J1772 connector. IEC_TYPE_2_AC refers to Type 2 as defined in IEC 62196-2. Also known as Mennekes connector. IEC_TYPE_3_AC refers to Type 3 as defined in IEC 62196-2. Also known as Scame connector. IEC_TYPE_4_DC refers to AA configuration as defined in IEC 62196-3. Also known as Type 4 or CHAdeMO connector. IEC_TYPE_1_CCS_DC refers to EE Configuration as defined in IEC 62196-3. Also known as CCS1 or Combo1 connector. IEC_TYPE_2_CCS_DC refers to FF Configuration as defined in IEC 62196-3. Also known as CCS2 or Combo2 connector. TESLA_ROADSTER, TESLA_HPWC (High Power Wall Connector) and TESLA_SUPERCHARGER refer to non-standardized charging ports/methods used by Tesla. GBT_AC refers to connector specified in GB/T 20234.2. GBT_DC refers to connector specified in GB/T 20234.3. Also specified as BB Configuration in IEC 62196-3. OTHER shall be used for charging ports not included in the list above. For additional information see https://en.wikipedia.org/wiki/IEC_62196.", + "datatype": "string[]", + "description": "Type of charge ports (charging inlet) available on the vehicle. A charge port type may occur multiple times in the list if there are multiple instances of that charge port type. IEC types refer to IEC 62196, GBT refers to GB/T 20234.", + "type": "attribute", + "uuid": "c6f471ec8f51546ab45b8e1fd6119d30" + }, + "ChargeRate": { + "datatype": "float", + "description": "Current charging rate, as in kilometers of range added per hour.", + "type": "sensor", + "unit": "km/h", + "uuid": "a287cea3fdaa533180c8e349343a7851" + }, + "ChargeVoltage": { + "children": { + "DC": { + "datatype": "float", + "description": "Current DC charging voltage at charging inlet.", + "type": "sensor", + "unit": "V", + "uuid": "701c21d1a4815b35ba061415789ec911" + }, + "Phase1": { + "datatype": "float", + "description": "Current AC charging voltage (rms) at inlet for Phase 1.", + "type": "sensor", + "unit": "V", + "uuid": "15991c8316585816815d6f4fb6b06776" + }, + "Phase2": { + "datatype": "float", + "description": "Current AC charging voltage (rms) at inlet for Phase 2.", + "type": "sensor", + "unit": "V", + "uuid": "6c0dcf98169d5a5190736a6dd81291a4" + }, + "Phase3": { + "datatype": "float", + "description": "Current AC charging voltage (rms) at inlet for Phase 3.", + "type": "sensor", + "unit": "V", + "uuid": "1ab06b48231e54e2ac27e543508c84f0" + } + }, + "description": "Current charging voltage, as measured at the charging inlet.", + "type": "branch", + "uuid": "7170151d653b52c6bb5e75cb0a14d1c5" + }, + "EvseId": { + "comment": "Length of id between 7 and 37 characters. ZZ00000 to be used if SECC cannot provide id", + "datatype": "string", + "description": "EVSE charging point ID (without separators) of last or current charging event according to ISO 15118-2 Annex H.", + "type": "sensor", + "uuid": "5cd32296574a5f0db05434ecb24ea778" + }, + "IsChargePortFlapOpen": { + "datatype": "boolean", + "description": "Status of the charge port flap(s), can potentially be controlled manually. True if at least one is open.", + "type": "actuator", + "uuid": "4999617956745477b905f7922b27d4ec" + }, + "IsCharging": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "CP_hvChargeStatus", + "transform": { + "mapping": [ + { + "from": "CP_CHARGE_CONNECTED", + "to": false + }, + { + "from": "CP_CHARGE_ENABLED", + "to": true + }, + { + "from": "CP_CHARGE_FAULTED", + "to": false + }, + { + "from": "CP_CHARGE_INACTIVE", + "to": false + }, + { + "from": "CP_CHARGE_STANDBY", + "to": false + }, + { + "from": "CP_EVSE_TEST_PASSED", + "to": true + }, + { + "from": "CP_EXT_EVSE_TEST_ACTIVE", + "to": true + } + ] + } + }, + "description": "True if charging is ongoing. Charging is considered to be ongoing if energy is flowing from charger to vehicle.", + "type": "sensor", + "uuid": "d28244c9e3365899954bd3e38ef46bb9" + }, + "IsChargingCableConnected": { + "datatype": "boolean", + "description": "Indicates if a charging cable is physically connected to the vehicle or not.", + "type": "sensor", + "uuid": "a1c8e2f662b95a54a9933a1b163fff84" + }, + "IsChargingCableLocked": { + "comment": "Locking of charging cable can be used to prevent unintentional removing during charging.", + "datatype": "boolean", + "description": "Is charging cable locked to prevent removal.", + "type": "actuator", + "uuid": "7fa81693f3b8587f8d71e7b1619c8e21" + }, + "IsDischarging": { + "datatype": "boolean", + "description": "True if discharging (vehicle to grid) is ongoing. Discharging is considered to be ongoing if energy is flowing from vehicle to charger/grid.", + "type": "sensor", + "uuid": "534d884fb36652688535543b52419529" + }, + "Location": { + "children": { + "Altitude": { + "datatype": "double", + "description": "Altitude relative to WGS 84 reference ellipsoid of last or current charging event.", + "type": "sensor", + "unit": "m", + "uuid": "eed551cc893a5e12ba6a3b977d93cc03" + }, + "Latitude": { + "datatype": "double", + "description": "Latitude of last or current charging event in WGS 84 geodetic coordinates.", + "max": 90, + "min": -90, + "type": "sensor", + "unit": "degrees", + "uuid": "33fc44c112735cc2bc0ee02f1786d948" + }, + "Longitude": { + "datatype": "double", + "description": "Longitude of last or current charging event in WGS 84 geodetic coordinates.", + "max": 180, + "min": -180, + "type": "sensor", + "unit": "degrees", + "uuid": "42db7473630c506eb5528c9bcaf8e8c6" + } + }, + "comment": "This may depending on implementation represent the location of (the charge port of) the vehicle during charging, or the actual location of the charger/load connected to the vehicle.", + "description": "Location of last or current charging event.", + "type": "branch", + "uuid": "5fef3925dfd55bbeb5d6590181fbbad8" + }, + "MaxPower": { + "datatype": "float", + "description": "Maximum charging power of last or current charging event.", + "type": "sensor", + "unit": "kW", + "uuid": "a8abad6796d55f8abe925c1efd76280a" + }, + "MaximumChargingCurrent": { + "children": { + "DC": { + "datatype": "float", + "description": "Maximum DC charging current at inlet that can be accepted by the system.", + "type": "sensor", + "unit": "A", + "uuid": "5a70acfd3c8959898b43738151ab36e1" + }, + "Phase1": { + "datatype": "float", + "description": "Maximum AC charging current (rms) at inlet for Phase 1 that can be accepted by the system.", + "type": "sensor", + "unit": "A", + "uuid": "e3c1034e89cc55968ff51b990906db43" + }, + "Phase2": { + "datatype": "float", + "description": "Maximum AC charging current (rms) at inlet for Phase 2 that can be accepted by the system.", + "type": "sensor", + "unit": "A", + "uuid": "ab3514bc982e54f2b98698fb6c752368" + }, + "Phase3": { + "datatype": "float", + "description": "Maximum AC charging current (rms) at inlet for Phase 3 that can be accepted by the system.", + "type": "sensor", + "unit": "A", + "uuid": "47dd5e99c30d562e9e2e1c58007846b6" + } + }, + "description": "Maximum charging current that can be accepted by the system, as measured at the charging inlet.", + "type": "branch", + "uuid": "e3f2e57e7a395d9ca9931d429e540a34" + }, + "Mode": { + "allowed": [ + "DEACTIVATED", + "AUTOMATIC", + "TRIGGERED", + "TIMER", + "PROFILE", + "EXTERNAL_ENTITY", + "MANUAL", + "GRID" + ], + "comment": "EXTERNAL_ENTITY is the only mode where discharge may occur. The mechanism to provide a profile to the vehicle is currently not covered by VSS.", + "datatype": "string", + "deprecation": "V4.1 - MANUAL and GRID are deprecated, please use AUTOMATIC/TRIGGERED or EXTERNAL_ENITY instead.", + "description": "Describes how the charging process is controlled. DEACTIVATED means that charging and discharging is deactivated, nothing will happen if charger is connected. AUTOMATIC means charging will be initiated as soon as charger is connected. TRIGGERED means charging will be initiated when triggered by user. TIMER means charging is timer-based. PROFILE means charging is controlled by profile downloaded to vehicle. EXTERNAL_ENTITY means charging/discharging is controlled by the external entity connected to the vehicle. This includes GRID-controlled charging (e.g. ISO 15118), but also other cases where vehicle is connected to an arbitrary load that is powered by the vehicle. MANUAL means manually initiated (plug-in event, companion app, etc). GRID means grid-controlled (e.g. ISO 15118).", + "type": "actuator", + "uuid": "1e4be3280b265873945531f6f6d0ec6b" + }, + "PowerLoss": { + "datatype": "float", + "description": "Electrical energy lost by power dissipation to heat inside the AC/DC converter.", + "type": "sensor", + "unit": "W", + "uuid": "88f40bbeb80b5dfb97ceba13269665c5" + }, + "StartStopCharging": { + "allowed": [ + "START", + "STOP" + ], + "datatype": "string", + "description": "Start or stop the charging process.", + "type": "actuator", + "uuid": "80506d3e9a2557c2b52f74a50d89593f" + }, + "Temperature": { + "datatype": "float", + "description": "Current temperature of AC/DC converter converting grid voltage to battery voltage.", + "type": "sensor", + "unit": "celsius", + "uuid": "c3c0ef3a41db5df1bab659803adbc7ba" + }, + "TimeToComplete": { + "comment": "Shall consider time set by Charging.Timer.Time. E.g. if charging shall start in 3 hours and 2 hours of charging is needed, then Charging.TimeToComplete shall report 5 hours.", + "datatype": "uint32", + "description": "The time needed for the current charging process to reach Charging.ChargeLimit. 0 if charging is complete or no charging process is active or planned.", + "type": "sensor", + "unit": "s", + "uuid": "c6439c2e068652b08383b9654e2e784a" + }, + "Timer": { + "children": { + "Mode": { + "allowed": [ + "INACTIVE", + "START_TIME", + "END_TIME" + ], + "datatype": "string", + "description": "Defines timer mode for charging: INACTIVE - no timer set, charging may start as soon as battery is connected to a charger. START_TIME - charging shall start at Charging.Timer.Time. END_TIME - charging shall be finished (reach Charging.ChargeLimit) at Charging.Timer.Time. When charging is completed the vehicle shall change mode to 'inactive' or set a new Charging.Timer.Time. Charging shall start immediately if mode is 'starttime' or 'endtime' and Charging.Timer.Time is a time in the past.", + "type": "actuator", + "uuid": "b09fb52261735977af275dda1904a7a1" + }, + "Time": { + "datatype": "string", + "description": "Time for next charging-related action, formatted according to ISO 8601 with UTC time zone. Value has no significance if Charging.Timer.Mode is 'inactive'.", + "type": "actuator", + "uuid": "c08dcaeda02b5e26aacd7e2542f0fc90" + } + }, + "description": "Properties related to timing of battery charging sessions.", + "type": "branch", + "uuid": "cd5b57ada627510e83f90832efed9d5a" + } + }, + "description": "Properties related to battery charging.", + "type": "branch", + "uuid": "49b9ef0c8b145a36afdf17d0cb44131b" + }, + "CurrentCurrent": { + "datatype": "float", + "description": "Current current flowing in/out of battery. Positive = Current flowing in to battery, e.g. during charging. Negative = Current flowing out of battery, e.g. during driving.", + "type": "sensor", + "unit": "A", + "uuid": "7a1488e0c83f50a6b69d8ea85c5bb592" + }, + "CurrentPower": { + "datatype": "float", + "description": "Current electrical energy flowing in/out of battery. Positive = Energy flowing in to battery, e.g. during charging. Negative = Energy flowing out of battery, e.g. during driving.", + "type": "sensor", + "unit": "W", + "uuid": "8859e1b0386a5eda880a9c30cd0dfa8e" + }, + "CurrentVoltage": { + "datatype": "float", + "description": "Current Voltage of the battery.", + "type": "sensor", + "unit": "V", + "uuid": "7b54ea22ee7d5f559da552aefcc07222" + }, + "DCDC": { + "children": { + "PowerLoss": { + "datatype": "float", + "description": "Electrical energy lost by power dissipation to heat inside DC/DC converter.", + "type": "sensor", + "unit": "W", + "uuid": "f29e37087cdf57ca998188c7b945a77b" + }, + "Temperature": { + "datatype": "float", + "description": "Current temperature of DC/DC converter converting battery high voltage to vehicle low voltage (typically 12 Volts).", + "type": "sensor", + "unit": "celsius", + "uuid": "4e587c3af2aa5fbb9205e42a64fc8d77" + } + }, + "description": "Properties related to DC/DC converter converting high voltage (from high voltage battery) to vehicle low voltage (supply voltage, typically 12 Volts).", + "type": "branch", + "uuid": "01f4943795b55cbd8f94e1bca137fc0a" + }, + "ErrorCodes": { + "comment": "Error code format is not defined, it may be DTCs according to OBD II (SAE-J2012DA_201812) standard ([P|C|B|U]XXXXX ) or any other format.", + "datatype": "string[]", + "description": "Current error codes related to the battery, if any.", + "type": "sensor", + "uuid": "bbc1f199a5965e5eb4f99709052a7cc4" + }, + "GrossCapacity": { + "datatype": "uint16", + "description": "Gross capacity of the battery.", + "type": "attribute", + "unit": "kWh", + "uuid": "5460530488435dc8bfa1298bf47a993d" + }, + "Id": { + "comment": "This could be serial number, part number plus serial number, UUID, or any other identifier that the OEM want to use to uniquely identify the battery individual.", + "datatype": "string", + "description": "Battery Identification Number as assigned by OEM.", + "type": "attribute", + "uuid": "c8279874660c55b38c7ac64a8503a519" + }, + "IsGroundConnected": { + "comment": "It might be possible to disconnect the traction battery used by an electric powertrain. This is achieved by connectors, typically one for plus and one for minus.", + "datatype": "boolean", + "description": "Indicating if the ground (negative terminator) of the traction battery is connected to the powertrain.", + "type": "sensor", + "uuid": "dd38d1c7ee12530aac03f49ad01d5c04" + }, + "IsPowerConnected": { + "comment": "It might be possible to disconnect the traction battery used by an electric powertrain. This is achieved by connectors, typically one for plus and one for minus.", + "datatype": "boolean", + "description": "Indicating if the power (positive terminator) of the traction battery is connected to the powertrain.", + "type": "sensor", + "uuid": "e30ef59fc2a25f6b8990248e19a5cdf9" + }, + "MaxVoltage": { + "datatype": "uint16", + "description": "Max allowed voltage of the battery, e.g. during charging.", + "type": "attribute", + "unit": "V", + "uuid": "a81264a0ef0c55d288671cfc62c4add5" + }, + "NetCapacity": { + "datatype": "uint16", + "description": "Total net capacity of the battery considering aging.", + "type": "sensor", + "unit": "kWh", + "uuid": "9c68fe42cb81501eb6349f8c9b0b6899" + }, + "NominalVoltage": { + "comment": "Nominal voltage typically refers to voltage of fully charged battery when delivering rated capacity.", + "datatype": "uint16", + "description": "Nominal Voltage of the battery.", + "type": "attribute", + "unit": "V", + "uuid": "3eccae5633185b998d5bdb6ea33cd926" + }, + "PowerLoss": { + "datatype": "float", + "description": "Electrical energy lost by power dissipation to heat inside the battery.", + "type": "sensor", + "unit": "W", + "uuid": "880082aafe025cb3a5776b623f9a48b5" + }, + "ProductionDate": { + "datatype": "string", + "description": "Production date of battery in ISO8601 format, e.g. YYYY-MM-DD.", + "type": "attribute", + "uuid": "c9509ba4d76c56d9a8c1d6e2280ae02f" + }, + "Range": { + "datatype": "uint32", + "description": "Remaining range in meters using only battery.", + "type": "sensor", + "unit": "m", + "uuid": "c0376a425e5d578d9d86ae0dc2ad9778" + }, + "StateOfCharge": { + "children": { + "Current": { + "datatype": "float", + "description": "Physical state of charge of the high voltage battery, relative to net capacity. This is not necessarily the state of charge being displayed to the customer.", + "max": 100.0, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "2e647ca3a1ff5e52af137aab240642da" + }, + "CurrentEnergy": { + "comment": "Current energy could be calculated as .StateOfCharge.Current * .NetCapacity.", + "datatype": "float", + "description": "Physical state of charge of high voltage battery expressed in kWh.", + "type": "sensor", + "unit": "kWh", + "uuid": "435ef8dbe4425450ae1ff6215fc9e40b" + }, + "Displayed": { + "datatype": "float", + "description": "State of charge displayed to the customer.", + "max": 100.0, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "1bfcc228293b5512aafe2508ab0500d2" + } + }, + "description": "Information on the state of charge of the vehicle's high voltage battery.", + "type": "branch", + "uuid": "26bae2ce7c4d5e2a951915ef2f5d8b7d" + }, + "StateOfHealth": { + "comment": "Exact formula is implementation dependent. Could be e.g. current capacity at 20 degrees Celsius divided with original capacity at the same temperature.", + "datatype": "float", + "description": "Calculated battery state of health at standard conditions.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "4d982c47f3245048bcfec1190973a3ed" + }, + "Temperature": { + "children": { + "Average": { + "datatype": "float", + "description": "Current average temperature of the battery cells.", + "type": "sensor", + "unit": "celsius", + "uuid": "ae28e502137f56b9a037ed9b32bc04e1" + }, + "CellTemperature": { + "comment": "Cells are identified by relative position in array.", + "datatype": "float[]", + "description": "Array of cell temperatures. Length or array shall correspond to number of cells in vehicle.", + "type": "sensor", + "uuid": "e92fede319da5e428f4bd024d7dd6970" + }, + "Max": { + "datatype": "float", + "description": "Current maximum temperature of the battery cells, i.e. temperature of the hottest cell.", + "type": "sensor", + "unit": "celsius", + "uuid": "07aa7c8ba1d355398d7469c2b337152a" + }, + "Min": { + "datatype": "float", + "description": "Current minimum temperature of the battery cells, i.e. temperature of the coldest cell.", + "type": "sensor", + "unit": "celsius", + "uuid": "4e3f630fefa7558fa302b175bc7eb5c7" + } + }, + "description": "Temperature Information for the battery pack.", + "type": "branch", + "uuid": "1cfbcf8c152959dcb3eb2c54fc42e623" + }, + "TimeRemaining": { + "datatype": "uint32", + "description": "Time remaining in seconds before the battery is empty.", + "type": "sensor", + "unit": "s", + "uuid": "7a51820010f35dcabe968e669173b27e" + } + }, + "description": "Battery Management data.", + "type": "branch", + "uuid": "1a2515d1a8875d86873431194ade2b50" + }, + "Transmission": { + "children": { + "ClutchEngagement": { + "datatype": "float", + "description": "Clutch engagement. 0% = Clutch fully disengaged. 100% = Clutch fully engaged.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "2890bd4a2b6a56c19b62d7bd95151fc6" + }, + "ClutchWear": { + "datatype": "uint8", + "description": "Clutch wear as a percent. 0 = no wear. 100 = worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "c113405ad165571a9d53ae4cf55dc929" + }, + "CurrentGear": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "DI_gear", + "transform": { + "mapping": [ + { + "from": "DI_GEAR_D", + "to": 1 + }, + { + "from": "DI_GEAR_P", + "to": 0 + }, + { + "from": "DI_GEAR_INVALID", + "to": 0 + }, + { + "from": "DI_GEAR_R", + "to": -1 + } + ] + } + }, + "description": "The current gear. 0=Neutral, 1/2/..=Forward, -1/-2/..=Reverse.", + "type": "sensor", + "uuid": "cd0ba1d772565e16bff46cbd5c9361da" + }, + "DiffLockFrontEngagement": { + "datatype": "float", + "description": "Front Diff Lock engagement. 0% = Diff lock fully disengaged. 100% = Diff lock fully engaged.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "5149afe37fbd5c24847b5820821abc02" + }, + "DiffLockRearEngagement": { + "datatype": "float", + "description": "Rear Diff Lock engagement. 0% = Diff lock fully disengaged. 100% = Diff lock fully engaged.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "197c939bd1405613b80179becec6db83" + }, + "DriveType": { + "allowed": [ + "UNKNOWN", + "FORWARD_WHEEL_DRIVE", + "REAR_WHEEL_DRIVE", + "ALL_WHEEL_DRIVE" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Drive type.", + "type": "attribute", + "uuid": "0e480b76fb2d5f8bb08fb586f90ee6ae" + }, + "GearChangeMode": { + "allowed": [ + "MANUAL", + "AUTOMATIC" + ], + "datatype": "string", + "description": "Is the gearbox in automatic or manual (paddle) mode.", + "type": "actuator", + "uuid": "ff3c69378c2f598286e51f7dac13adaa" + }, + "GearCount": { + "datatype": "int8", + "default": 0, + "description": "Number of forward gears in the transmission. -1 = CVT.", + "type": "attribute", + "uuid": "84293f40d3ed57f1a08992d97b1a9ccd" + }, + "IsElectricalPowertrainEngaged": { + "comment": "In some hybrid solutions it is possible to disconnect/disengage the electrical powertrain mechanically to avoid induced voltage reaching a too high level when driving at high speed.", + "datatype": "boolean", + "description": "Is electrical powertrain mechanically connected/engaged to the drivetrain or not. False = Disconnected/Disengaged. True = Connected/Engaged.", + "type": "actuator", + "uuid": "6660cf1d88d15430b1e7c8908a7b769b" + }, + "IsLowRangeEngaged": { + "comment": "The possibility to switch between low and high gear range is typically only available in heavy vehicles and off-road vehicles.", + "datatype": "boolean", + "description": "Is gearbox in low range mode or not. False = Normal/High range engaged. True = Low range engaged.", + "type": "actuator", + "uuid": "63ba7593926b574ebbe4f90b28557e78" + }, + "IsParkLockEngaged": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "DI_gear", + "transform": { + "mapping": [ + { + "from": "DI_GEAR_D", + "to": false + }, + { + "from": "DI_GEAR_P", + "to": true + }, + { + "from": "DI_GEAR_INVALID", + "to": false + }, + { + "from": "DI_GEAR_R", + "to": false + } + ] + } + }, + "description": "Is the transmission park lock engaged or not. False = Disengaged. True = Engaged.", + "type": "sensor", + "uuid": "1578da3f925e54ac9df978abd0195408" + }, + "PerformanceMode": { + "allowed": [ + "NORMAL", + "SPORT", + "ECONOMY", + "SNOW", + "RAIN" + ], + "datatype": "string", + "description": "Current gearbox performance mode.", + "type": "actuator", + "uuid": "6b5cfd85cb595e559503ccf993be04dd" + }, + "SelectedGear": { + "datatype": "int8", + "description": "The selected gear. 0=Neutral, 1/2/..=Forward, -1/-2/..=Reverse, 126=Park, 127=Drive.", + "type": "actuator", + "uuid": "490fd99b9d5f562eb180c19e8cef5e12" + }, + "Temperature": { + "datatype": "int16", + "description": "The current gearbox temperature.", + "type": "sensor", + "unit": "celsius", + "uuid": "4f5e48c3511b5e1abff11aa7ec62dd18" + }, + "TorqueDistribution": { + "datatype": "float", + "description": "Torque distribution between front and rear axle in percent. -100% = Full torque to front axle, 0% = 50:50 Front/Rear, 100% = Full torque to rear axle.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "d3bcaaf973d3512287817049db9bd677" + }, + "TravelledDistance": { + "datatype": "float", + "description": "Odometer reading, total distance travelled during the lifetime of the transmission.", + "type": "sensor", + "unit": "km", + "uuid": "b9dd66f20c7f5b12a046766b94dc20c1" + }, + "Type": { + "allowed": [ + "UNKNOWN", + "SEQUENTIAL", + "H", + "AUTOMATIC", + "DSG", + "CVT" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Transmission type.", + "type": "attribute", + "uuid": "f83b9e5464d85a0288fcb32c164d3c63" + } + }, + "description": "Transmission-specific data, stopping at the drive shafts.", + "type": "branch", + "uuid": "6b71e284b63a527caa6296a66e9fdd0c" + }, + "Type": { + "allowed": [ + "COMBUSTION", + "HYBRID", + "ELECTRIC" + ], + "comment": "For vehicles with a combustion engine (including hybrids) more detailed information on fuels supported can be found in FuelSystem.SupportedFuelTypes and FuelSystem.SupportedFuels.", + "datatype": "string", + "description": "Defines the powertrain type of the vehicle.", + "type": "attribute", + "uuid": "2a000da4204658a4a6e3ecd5176bdfba" + } + }, + "description": "Powertrain data for battery management, etc.", + "type": "branch", + "uuid": "12f35ec7bd1c58d1a329565ce3d053d5" + }, + "RoofLoad": { + "datatype": "int16", + "description": "The permitted total weight of cargo and installations (e.g. a roof rack) on top of the vehicle.", + "type": "attribute", + "unit": "kg", + "uuid": "97dc98269a19591d9efa455a8d943c16" + }, + "Service": { + "children": { + "DistanceToService": { + "datatype": "float", + "description": "Remaining distance to service (of any kind). Negative values indicate service overdue.", + "type": "sensor", + "unit": "km", + "uuid": "6f4347ce149759819572c8c3a17e8d93" + }, + "IsServiceDue": { + "datatype": "boolean", + "description": "Indicates if vehicle needs service (of any kind). True = Service needed now or in the near future. False = No known need for service.", + "type": "sensor", + "uuid": "3e28f85ccccd5702b9adbe9a761ea1b4" + }, + "TimeToService": { + "datatype": "int32", + "description": "Remaining time to service (of any kind). Negative values indicate service overdue.", + "type": "sensor", + "unit": "s", + "uuid": "c968be91a5685fa9ae30b84a0f91934e" + } + }, + "description": "Service data.", + "type": "branch", + "uuid": "b6463772705b56a7a993e23601bd3d47" + }, + "Speed": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 100, + "signal": "DI_uiSpeed" + }, + "description": "Vehicle speed.", + "type": "sensor", + "unit": "km/h", + "uuid": "efe50798638d55fab18ab7d43cc490e9" + }, + "StartTime": { + "comment": "This signal is supposed to be set whenever a new trip starts. A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled. The default value indicates that the vehicle never has been started, or that latest start time is unknown.", + "datatype": "string", + "default": "0000-01-01T00:00Z", + "description": "Start time of current or latest trip, formatted according to ISO 8601 with UTC time zone.", + "type": "attribute", + "uuid": "3790b5f4513c5a3d90a0503a965bbbe0" + }, + "Trailer": { + "children": { + "IsConnected": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 3000, + "signal": "VCLEFT_trailerDetected", + "transform": { + "mapping": [ + { + "from": "TRAILER_LIGHT_DETECTION_SNA", + "to": false + }, + { + "from": "TRAILER_LIGHT_DETECTION_DETECTED", + "to": true + }, + { + "from": "TRAILER_LIGHT_DETECTION_FAULT", + "to": false + }, + { + "from": "TRAILER_LIGHT_DETECTION_NOT_DETECTED", + "to": false + } + ] + } + }, + "description": "Signal indicating if trailer is connected or not.", + "type": "sensor", + "uuid": "77f28ed03c125ac9a19d22e9436b0ec4" + } + }, + "description": "Trailer signals.", + "type": "branch", + "uuid": "66206ee5c25a5817bef214c0c8ae8013" + }, + "TraveledDistance": { + "datatype": "float", + "description": "Odometer reading, total distance traveled during the lifetime of the vehicle.", + "type": "sensor", + "unit": "km", + "uuid": "32c3c3585f105d8aa5566ef5a038a741" + }, + "TraveledDistanceSinceStart": { + "comment": "A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled. The signal may however keep the value of the last trip until a new trip is started.", + "datatype": "float", + "description": "Distance traveled since start of current trip.", + "type": "sensor", + "unit": "km", + "uuid": "cfc6efd2793152e487f9fe3f4e03fd5d" + }, + "TripDuration": { + "comment": "This signal is not assumed to be continuously updated, but instead set to 0 when a trip starts and set to the actual duration of the trip when a trip ends. A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled.", + "datatype": "float", + "description": "Duration of latest trip.", + "type": "sensor", + "unit": "s", + "uuid": "84b9558ad33555389791b57d505f27a8" + }, + "TripMeterReading": { + "comment": "The trip meter is an odometer that can be manually reset by the driver", + "datatype": "float", + "description": "Trip meter reading.", + "type": "actuator", + "unit": "km", + "uuid": "81f51ebfe29c591190171d7b96e1c948" + }, + "TurningDiameter": { + "datatype": "uint16", + "description": "Minimum turning diameter, Wall-to-Wall, as defined by SAE J1100-2009 D102.", + "type": "attribute", + "unit": "mm", + "uuid": "acc4b8faccf45139a948e97570767736" + }, + "VehicleIdentification": { + "children": { + "AcrissCode": { + "datatype": "string", + "description": "The ACRISS Car Classification Code is a code used by many car rental companies.", + "type": "attribute", + "uuid": "115a821e8e0b57f08e4b9e61e85d7156" + }, + "BodyType": { + "datatype": "string", + "description": "Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).", + "type": "attribute", + "uuid": "e6d5c71ecec95d68b0b59bb7e93af759" + }, + "Brand": { + "datatype": "string", + "description": "Vehicle brand or manufacturer.", + "type": "attribute", + "uuid": "19fd645ff5385767bcdbf5dd4313483f" + }, + "DateVehicleFirstRegistered": { + "datatype": "string", + "description": "The date in ISO 8601 format of the first registration of the vehicle with the respective public authorities.", + "type": "attribute", + "uuid": "046f47acf62e50bd863d6568d73743d7" + }, + "KnownVehicleDamages": { + "datatype": "string", + "description": "A textual description of known damages, both repaired and unrepaired.", + "type": "attribute", + "uuid": "e87f352cddb15e94b340506b17207586" + }, + "LicensePlate": { + "comment": "Depending on the context, this attribute might not be up to date or might be misconfigured, and therefore should be considered untrustworthy in the absence of another method of verification.", + "datatype": "string", + "description": "The license plate of the vehicle.", + "type": "attribute", + "uuid": "81ddd35883995a61a5fb71e26d31adaa" + }, + "MeetsEmissionStandard": { + "datatype": "string", + "description": "Indicates that the vehicle meets the respective emission standard.", + "type": "attribute", + "uuid": "d75dedbfadca54d8b6c7261c37ad5d83" + }, + "Model": { + "datatype": "string", + "description": "Vehicle model.", + "type": "attribute", + "uuid": "dd3d3b72e6a85b3695ba25f829255403" + }, + "OptionalExtras": { + "comment": "Allowed values are not standardized, each OEM can specify detail descriptions of array elements.", + "datatype": "string[]", + "description": "Optional extras refers to all car equipment options that are not installed as standard by the manufacturer.", + "type": "attribute", + "uuid": "d9ecc64b0c995595967e05009d6fc1b9" + }, + "ProductionDate": { + "datatype": "string", + "description": "The date in ISO 8601 format of production of the item, e.g. vehicle.", + "type": "attribute", + "uuid": "5683877c4bac504d915b268c9476c190" + }, + "PurchaseDate": { + "datatype": "string", + "description": "The date in ISO 8601 format of the item e.g. vehicle was purchased by the current owner.", + "type": "attribute", + "uuid": "31302f8b57e85c4197afda3e3201fce8" + }, + "VIN": { + "datatype": "string", + "description": "17-character Vehicle Identification Number (VIN) as defined by ISO 3779.", + "type": "attribute", + "uuid": "6f0b6fa8c34f589baa92e565bc9df5bd" + }, + "VehicleConfiguration": { + "datatype": "string", + "description": "A short text indicating the configuration of the vehicle, e.g. '5dr hatchback ST 2.5 MT 225 hp' or 'limited edition'.", + "type": "attribute", + "uuid": "2526c7ba4c8458c78000a9e5f2fe89d5" + }, + "VehicleExteriorColor": { + "datatype": "string", + "description": "The main color of the exterior within the basic color palette (eg. red, blue, black, white, ...).", + "type": "attribute", + "uuid": "07c48d164c615369b87ccc2920edf802" + }, + "VehicleInteriorColor": { + "datatype": "string", + "description": "The color or color combination of the interior of the vehicle.", + "type": "attribute", + "uuid": "67a8b069b8bf573993d51959c24f04e2" + }, + "VehicleInteriorType": { + "datatype": "string", + "description": "The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.).", + "type": "attribute", + "uuid": "4c4eed302b2e51daa9b6f5f398987a77" + }, + "VehicleModelDate": { + "datatype": "string", + "description": "The release date in ISO 8601 format of a vehicle model (often used to differentiate versions of the same make and model).", + "type": "attribute", + "uuid": "c71b63f83dea536bac58e62bbe537f11" + }, + "VehicleSeatingCapacity": { + "datatype": "uint16", + "description": "The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law.", + "type": "attribute", + "uuid": "7ae5db0e0482555686b9be71dd8a0c38" + }, + "VehicleSpecialUsage": { + "datatype": "string", + "description": "Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school.", + "type": "attribute", + "uuid": "7e6e8a48f54a5549a8f6af8f1dc5eb8d" + }, + "WMI": { + "datatype": "string", + "description": "3-character World Manufacturer Identification (WMI) as defined by ISO 3780.", + "type": "attribute", + "uuid": "e7c86defbcd554a79f90ba85de58e133" + }, + "Year": { + "datatype": "uint16", + "description": "Model year of the vehicle.", + "type": "attribute", + "uuid": "9a76b0aca8e45f6fb33dbaf5b976b8b5" + } + }, + "description": "Attributes that identify a vehicle.", + "type": "branch", + "uuid": "c33861c3e9125208b05f23fe922bf08e" + }, + "VersionVSS": { + "children": { + "Label": { + "comment": "COVESA VSS project typically use dev for latest master, and empty string for released versions.", + "datatype": "string", + "default": "dev", + "description": "Label to further describe the version.", + "type": "attribute", + "uuid": "7c92cd50d24b5662922b27cb9a327e53" + }, + "Major": { + "datatype": "uint32", + "default": 5, + "description": "Supported Version of VSS - Major version.", + "type": "attribute", + "uuid": "5edf1a338c975cbb84d4ce3cfe1aa4b4" + }, + "Minor": { + "datatype": "uint32", + "default": 0, + "description": "Supported Version of VSS - Minor version.", + "type": "attribute", + "uuid": "6e70a598dbc7534c96c58c18e9888cfd" + }, + "Patch": { + "datatype": "uint32", + "default": 0, + "description": "Supported Version of VSS - Patch version.", + "type": "attribute", + "uuid": "69858f224af459338b9bfbff436dda45" + } + }, + "description": "Supported Version of VSS.", + "type": "branch", + "uuid": "9a687e56f1305eedb20f6a021ea58f48" + }, + "Width": { + "datatype": "uint16", + "default": 0, + "deprecation": "v4.1 replaced with WidthExcludingMirrors and WidthIncludingMirrors", + "description": "Overall vehicle width.", + "type": "attribute", + "unit": "mm", + "uuid": "b4aabe144e3259adb1459a2e25fec9bd" + }, + "WidthExcludingMirrors": { + "datatype": "uint16", + "default": 0, + "description": "Overall vehicle width excluding mirrors, as defined by SAE J1100-2009 W103.", + "type": "attribute", + "unit": "mm", + "uuid": "3b942451854151a182d8310e795dfb35" + }, + "WidthFoldedMirrors": { + "datatype": "uint16", + "description": "Overall vehicle width with mirrors folded, as defined by SAE J1100-2009 W145.", + "type": "attribute", + "unit": "mm", + "uuid": "ee3490808cc35184af9639fb2f345f38" + }, + "WidthIncludingMirrors": { + "datatype": "uint16", + "description": "Overall vehicle width including mirrors, as defined by SAE J1100-2009 W144.", + "type": "attribute", + "unit": "mm", + "uuid": "25bd8bd35fbd59f8b7b6423a90219ca1" + } + }, + "description": "High-level vehicle data.", + "type": "branch", + "uuid": "ccc825f94139544dbb5f4bfd033bece6" + } +} \ No newline at end of file diff --git a/integration_test/volumes/dbc2val/it-vss_4.0.json b/integration_test/volumes/dbc2val/it-vss_4.0.json new file mode 100644 index 0000000..9b90089 --- /dev/null +++ b/integration_test/volumes/dbc2val/it-vss_4.0.json @@ -0,0 +1,9875 @@ +{ + "Vehicle": { + "children": { + "ADAS": { + "children": { + "ABS": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if ABS is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "cad374fbfdc65df9b777508f04d5b073" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if ABS is currently regulating brake pressure. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "6dd21979a2225e31940dc2ece1aa9a04" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if ABS incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "13cfabb3122254128234f9a696f14678" + } + }, + "description": "Antilock Braking System signals.", + "type": "branch", + "uuid": "219270ef27c4531f874bbda63743b330" + }, + "ActiveAutonomyLevel": { + "allowed": [ + "SAE_0", + "SAE_1", + "SAE_2_DISENGAGING", + "SAE_2", + "SAE_3_DISENGAGING", + "SAE_3", + "SAE_4_DISENGAGING", + "SAE_4", + "SAE_5_DISENGAGING", + "SAE_5" + ], + "comment": "Complies with https://www.sae.org/standards/content/j3016_202104/ and https://www.sae.org/blog/sae-j3016-update. Level 5 and 4 ADS (Automated driving system) disengage, if appropriate, only after it achieves a minimal risk condition or a driver is performing the DDT. Level 3 ADS disengages either an appropriate time after issuing a request to intervene or immediately upon user request. Level 2 DAS (Driving automation system) disengages immediately upon driver request. However, since many Level 2 DAS, often termed \"Level 2.5\", warn the driver shortly before reaching their operational limits, the VSS also supports the DISENGAGING state for SAE_2. Nevertheless, it should be noted that the SAE J3016 states that it is incorrect to describe driving automation features using fractional levels.", + "datatype": "string", + "description": "Indicates the currently active level of driving automation according to the SAE J3016 (Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles).", + "type": "sensor", + "uuid": "b101c6928fc55948b1cc485e568ecd8d" + }, + "CruiseControl": { + "children": { + "IsActive": { + "datatype": "boolean", + "description": "Indicates if cruise control system is active (i.e. actively controls speed). True = Active. False = Inactive.", + "type": "actuator", + "uuid": "78ab5ce923dc5aa1a6622bcb948e1561" + }, + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if cruise control system is enabled (e.g. ready to receive configurations and settings) True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "018417f6c8535315895d0f54d209035a" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if cruise control system incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "22923d4a36bc5192a08e40fe9e5ed458" + }, + "SpeedSet": { + "datatype": "float", + "description": "Set cruise control speed in kilometers per hour.", + "type": "actuator", + "unit": "km/h", + "uuid": "b3f3a53ccd825e4da5cb1226f94dc005" + } + }, + "description": "Signals from Cruise Control system.", + "type": "branch", + "uuid": "c4d751cf74f9576dbba3cc820991c1fb" + }, + "DMS": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if DMS is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "63e6d3803ce35fd79afc728c65295804" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if DMS incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "d5213c8cb5d5575994b2c8ee1ad8eccf" + }, + "IsWarning": { + "datatype": "boolean", + "description": "Indicates if DMS has registered a driver alert condition.", + "type": "sensor", + "uuid": "2c86cd0363cd55ffb175a9e07cc32e4d" + } + }, + "description": "Driver Monitoring System signals.", + "type": "branch", + "uuid": "1cd72c7fc7fe5269a93c9954f46a4f60" + }, + "EBA": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if EBA is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "3ae9171b69555fb08855054ab38e9b17" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if EBA is currently regulating brake pressure. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "86360c44ead354d18af7ff14176151f6" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if EBA incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "bae0fe856398502ba4a09283867c6c81" + } + }, + "description": "Emergency Brake Assist (EBA) System signals.", + "type": "branch", + "uuid": "51ec0930d0af5b91b84a0775c6e87a97" + }, + "EBD": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if EBD is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "30f88d3e68575b67853b14ce5f7a08e5" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if EBD is currently regulating vehicle brakeforce distribution. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "67aa2a598f635edda6eb944af99b06db" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if EBD incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "918157073be95015ae38913cd7a9796a" + } + }, + "description": "Electronic Brakeforce Distribution (EBD) System signals.", + "type": "branch", + "uuid": "3f4c74a588735b10ac9fe918d305cd5a" + }, + "ESC": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if ESC is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "3f4f39b8d8c05c97a6de685282ba74b7" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if ESC is currently regulating vehicle stability. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "2088953a28385353a9d46b3a3dc11cac" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if ESC incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "6c237535654b5bc7a70f6a70c760b9d4" + }, + "IsStrongCrossWindDetected": { + "datatype": "boolean", + "description": "Indicates if the ESC system is detecting strong cross winds. True = Strong cross winds detected. False = No strong cross winds detected.", + "type": "sensor", + "uuid": "ebfd609531345c37914b89e553df80cb" + }, + "RoadFriction": { + "children": { + "LowerBound": { + "datatype": "float", + "description": "Lower bound road friction, as calculated by the ESC system. 5% possibility that road friction is below this value. 0 = no friction, 100 = maximum friction.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "634289f58b5d511ea9979f04a9d0f2ab" + }, + "MostProbable": { + "datatype": "float", + "description": "Most probable road friction, as calculated by the ESC system. Exact meaning of most probable is implementation specific. 0 = no friction, 100 = maximum friction.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "b0eb72430cd95bfbba0d187fcb6e2a62" + }, + "UpperBound": { + "datatype": "float", + "description": "Upper bound road friction, as calculated by the ESC system. 95% possibility that road friction is below this value. 0 = no friction, 100 = maximum friction.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "ad0415a799575fcd8d1f49bed9a2baeb" + } + }, + "description": "Road friction values reported by the ESC system.", + "type": "branch", + "uuid": "71a32e4eb131532c82195508d93807ed" + } + }, + "description": "Electronic Stability Control System signals.", + "type": "branch", + "uuid": "636b4586ce7854b4b270a2f3b6c0af4f" + }, + "LaneDepartureDetection": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if lane departure detection system is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "c099ae97260f5c418977cd14631e95be" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if lane departure system incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "73b2fc4f6a4952e4b7886671450e7798" + }, + "IsWarning": { + "datatype": "boolean", + "description": "Indicates if lane departure detection registered a lane departure.", + "type": "sensor", + "uuid": "c32fcd1d56035cb08acfd380be224c6a" + } + }, + "description": "Signals from Lane Departure Detection System.", + "type": "branch", + "uuid": "e45f33fdcf245f11981b2f201ee8281a" + }, + "ObstacleDetection": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if obstacle sensor system is enabled (i.e. monitoring for obstacles). True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "cc0cd497285e5034a1cccb25f02e9db9" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if obstacle sensor system incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "368b74e2468d5217925a478ed6e34f9f" + }, + "IsWarning": { + "datatype": "boolean", + "description": "Indicates if obstacle sensor system registered an obstacle.", + "type": "sensor", + "uuid": "b0b1eab51f135ffcb2a17a7603415fec" + } + }, + "description": "Signals form Obstacle Sensor System.", + "type": "branch", + "uuid": "e7b6d81631cc5ac584d027d4c1a66cb5" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "044ad42893e65993bfc439455fb08faa" + }, + "SupportedAutonomyLevel": { + "allowed": [ + "SAE_0", + "SAE_1", + "SAE_2", + "SAE_3", + "SAE_4", + "SAE_5" + ], + "datatype": "string", + "description": "Indicates the highest level of driving automation according to the SAE J3016 taxonomy the vehicle is capable of.", + "type": "attribute", + "uuid": "020410189ab4517cb85ceda268b40f51" + }, + "TCS": { + "children": { + "IsEnabled": { + "datatype": "boolean", + "description": "Indicates if TCS is enabled. True = Enabled. False = Disabled.", + "type": "actuator", + "uuid": "1d2dda19b11758a19ba7c1d5cd2d7956" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Indicates if TCS is currently regulating traction. True = Engaged. False = Not Engaged.", + "type": "sensor", + "uuid": "b33d70009ad5589fbffe17fa7e827242" + }, + "IsError": { + "datatype": "boolean", + "description": "Indicates if TCS incurred an error condition. True = Error. False = No Error.", + "type": "sensor", + "uuid": "08f88723ba63558b8c804b8fe8e3f149" + } + }, + "description": "Traction Control System signals.", + "type": "branch", + "uuid": "0572e9f6b1aa5fb5b2f68086aff05073" + } + }, + "description": "All Advanced Driver Assist Systems data.", + "type": "branch", + "uuid": "14c2b2e1297b513197d320a5ce58f42e" + }, + "Acceleration": { + "children": { + "Lateral": { + "datatype": "float", + "description": "Vehicle acceleration in Y (lateral acceleration).", + "type": "sensor", + "unit": "m/s^2", + "uuid": "7522c5d6b7665b16a099643b2700e93c" + }, + "Longitudinal": { + "datatype": "float", + "description": "Vehicle acceleration in X (longitudinal acceleration).", + "type": "sensor", + "unit": "m/s^2", + "uuid": "3d511fe7232b5841be311b37f322de5a" + }, + "Vertical": { + "datatype": "float", + "description": "Vehicle acceleration in Z (vertical acceleration).", + "type": "sensor", + "unit": "m/s^2", + "uuid": "a4a8a7c4ac5b52deb0b3ee4ed8787c59" + } + }, + "description": "Spatial acceleration. Axis definitions according to ISO 8855.", + "type": "branch", + "uuid": "6c490e6a798c5abc8f0178ed6deae0a8" + }, + "AngularVelocity": { + "children": { + "Pitch": { + "datatype": "float", + "description": "Vehicle rotation rate along Y (lateral).", + "type": "sensor", + "unit": "degrees/s", + "uuid": "42236f4a01f45313a97fdd9b6848ce4f" + }, + "Roll": { + "datatype": "float", + "description": "Vehicle rotation rate along X (longitudinal).", + "type": "sensor", + "unit": "degrees/s", + "uuid": "221e6b93881e5771bcbd03e0849e0075" + }, + "Yaw": { + "datatype": "float", + "description": "Vehicle rotation rate along Z (vertical).", + "type": "sensor", + "unit": "degrees/s", + "uuid": "4114c41552565c1f9035670cabe2a611" + } + }, + "description": "Spatial rotation. Axis definitions according to ISO 8855.", + "type": "branch", + "uuid": "1eef530a43de56aab665d2766483cde2" + }, + "AverageSpeed": { + "comment": "A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled. The signal may however keep the value of the last trip until a new trip is started. Calculation of average speed may exclude periods when the vehicle for example is not moving or transmission is in neutral.", + "datatype": "float", + "description": "Average speed for the current trip.", + "type": "sensor", + "unit": "km/h", + "uuid": "43a489636a665c3abb99b63174eb552b" + }, + "Body": { + "children": { + "BodyType": { + "datatype": "string", + "description": "Body type code as defined by ISO 3779.", + "type": "attribute", + "uuid": "6253412513105deea63b1d424117fd88" + }, + "Hood": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "890aa3359e1a579288af1cf8e6b5b71f" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "b79e060142095986aaeffcddd26d0d53" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "256f856f00725f1fbd733b78f864c10d" + } + }, + "comment": "The hood is the hinged cover over the engine compartment of a motor vehicles. Depending on vehicle, it can be either in the front or back of the vehicle. Luggage compartments are in VSS called trunks, even if they are located at the front of the vehicle.", + "description": "Hood status. Start position for Hood is Closed.", + "type": "branch", + "uuid": "84510652bf915bbe8bf5f477aab2b44a" + }, + "Horn": { + "children": { + "IsActive": { + "datatype": "boolean", + "description": "Horn active or inactive. True = Active. False = Inactive.", + "type": "actuator", + "uuid": "ba20deed9314525bb9d552a2b787fb20" + } + }, + "description": "Horn signals.", + "type": "branch", + "uuid": "09c76633887f52268b960740eb969c89" + }, + "Lights": { + "children": { + "Backup": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "b907c4ac4ee459faa987c64a6da424c3" + }, + "IsOn": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_reverseLightStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": false + }, + { + "from": "LIGHT_ON", + "to": true + }, + { + "from": "LIGHT_FAULT", + "to": false + }, + { + "from": "LIGHT_SNA", + "to": false + } + ] + } + }, + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "ef23a3fa6106564195a66e21d8cf69b4" + } + }, + "description": "Backup lights.", + "type": "branch", + "uuid": "4fe2cb68fc77506686eced7225aeff9a" + }, + "Beam": { + "children": { + "High": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "83561d8c9a025cfdad6c4b325829fa00" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "24d1346519b05697b872c06556a09fb4" + } + }, + "description": "Beam lights.", + "type": "branch", + "uuid": "306b51d2e1ec572fa80172aad6727da0" + }, + "Low": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "3a135f1267ea5b2a80aa9a17fc8072db" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "8b4d4855b0c95963a25dc564c9758610" + } + }, + "description": "Beam lights.", + "type": "branch", + "uuid": "f6f21ea5b263545297f4411b2e15037f" + } + }, + "description": "Beam lights.", + "type": "branch", + "uuid": "6685308a9d955ecdad92a7cc68666a12" + }, + "Brake": { + "children": { + "IsActive": { + "allowed": [ + "INACTIVE", + "ACTIVE", + "ADAPTIVE" + ], + "datatype": "string", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_brakeLightStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": "INACTIVE" + }, + { + "from": "LIGHT_ON", + "to": "ACTIVE" + }, + { + "from": "LIGHT_FAULT", + "to": "INACTIVE" + }, + { + "from": "LIGHT_SNA", + "to": "INACTIVE" + } + ] + } + }, + "description": "Indicates if break-light is active. INACTIVE means lights are off. ACTIVE means lights are on. ADAPTIVE means that break-light is indicating emergency-breaking.", + "type": "actuator", + "uuid": "65eb84d61ea95313985054f626b85b59" + }, + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "1db542c5ba715e09b948527418966728" + } + }, + "description": "Brake lights.", + "type": "branch", + "uuid": "30eabe704102501cb299d03696fad92a" + }, + "DirectionIndicator": { + "children": { + "Left": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "32a092936fb65165ba1dd8dfa38bf77d" + }, + "IsSignaling": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCLEFT_turnSignalStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": false + }, + { + "from": "LIGHT_ON", + "to": true + }, + { + "from": "LIGHT_FAULT", + "to": false + }, + { + "from": "LIGHT_SNA", + "to": false + } + ] + } + }, + "description": "Indicates if light is signaling or off. True = signaling. False = Off.", + "type": "actuator", + "uuid": "33ac6ec5e4d9550aac6ae0ce97dae259" + } + }, + "description": "Indicator lights.", + "type": "branch", + "uuid": "446dea42b8e95d87b45e5e51c881bf98" + }, + "Right": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "db70c2d885725583a7ed95b215a8ec6c" + }, + "IsSignaling": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_turnSignalStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": false + }, + { + "from": "LIGHT_ON", + "to": true + }, + { + "from": "LIGHT_FAULT", + "to": false + }, + { + "from": "LIGHT_SNA", + "to": false + } + ] + } + }, + "description": "Indicates if light is signaling or off. True = signaling. False = Off.", + "type": "actuator", + "uuid": "9b0a1dab153f5dcda8df2116c3b6d487" + } + }, + "description": "Indicator lights.", + "type": "branch", + "uuid": "9922f6b417e95f1c945ef9f414bcdf78" + } + }, + "description": "Indicator lights.", + "type": "branch", + "uuid": "0566cb97d05c554eb88a07142f2475ac" + }, + "Fog": { + "children": { + "Front": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "f9238f15d2615a22802ce9ec9f1d72e9" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "0ec10846d20a5d1b9b8a286303ecb844" + } + }, + "description": "Fog lights.", + "type": "branch", + "uuid": "230cc65abaaf500c9085c29d48107552" + }, + "Rear": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "1d44e594ffa35d73a6f620f479eeef4c" + }, + "IsOn": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_brakeLightStatus", + "transform": { + "mapping": [ + { + "from": "LIGHT_OFF", + "to": false + }, + { + "from": "LIGHT_ON", + "to": true + }, + { + "from": "LIGHT_FAULT", + "to": false + }, + { + "from": "LIGHT_SNA", + "to": false + } + ] + } + }, + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "1fe08a2f687c5c2880adef26cc7de746" + } + }, + "description": "Fog lights.", + "type": "branch", + "uuid": "38359f258135516cb49c0fa1f093d478" + } + }, + "description": "Fog lights.", + "type": "branch", + "uuid": "1e90cf42bb825217b283c7285a606953" + }, + "Hazard": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "25cd3475beb6543a8538974b67544c43" + }, + "IsSignaling": { + "datatype": "boolean", + "description": "Indicates if light is signaling or off. True = signaling. False = Off.", + "type": "actuator", + "uuid": "c53950205aa15dffa304390dcb761cc3" + } + }, + "description": "Hazard lights.", + "type": "branch", + "uuid": "803498c3be6253dfb074c0e0294be758" + }, + "IsHighBeamSwitchOn": { + "comment": "This signal indicates the status of the switch and does not indicate if low or high beam actually are on. That typically depends on vehicle logic and other signals like Lights.LightSwitch and Vehicle.LowVoltageSystemState.", + "datatype": "boolean", + "description": "Status of the high beam switch. True = high beam enabled. False = high beam not enabled.", + "type": "actuator", + "uuid": "ac7db3cd30f55650bc6939df504f1a79" + }, + "LicensePlate": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "4de6594de7815cec97e5b851d70e239b" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "afeace5d76ed53f989ae4251090ba069" + } + }, + "description": "License plate lights.", + "type": "branch", + "uuid": "7bb12e42a8c45c198f83bf41b19131fa" + }, + "LightSwitch": { + "allowed": [ + "OFF", + "POSITION", + "DAYTIME_RUNNING_LIGHTS", + "AUTO", + "BEAM" + ], + "comment": "A vehicle typically does not support all alternatives. Which lights that actually are lit may vary according to vehicle configuration and local legislation. OFF is typically indicated by 0. POSITION is typically indicated by ISO 7000 symbol 0456. DAYTIME_RUNNING_LIGHTS (DRL) can be indicated by ISO 7000 symbol 2611. AUTO indicates that vehicle automatically selects suitable lights. BEAM is typically indicated by ISO 7000 symbol 0083.", + "datatype": "string", + "description": "Status of the vehicle main light switch.", + "type": "actuator", + "uuid": "2feb14a3558256339442413783969f4f" + }, + "Parking": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "56761305eae559c7931f6ff5fee0dfa8" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "6ba0825427335408ad7d0f148d6250ea" + } + }, + "description": "Parking lights.", + "type": "branch", + "uuid": "dfb819be5cec5be09b9fb743829301c3" + }, + "Running": { + "children": { + "IsDefect": { + "datatype": "boolean", + "description": "Indicates if light is defect. True = Light is defect. False = Light has no defect.", + "type": "sensor", + "uuid": "7cda127e6d45547681757e789c0b7a87" + }, + "IsOn": { + "datatype": "boolean", + "description": "Indicates if light is on or off. True = On. False = Off.", + "type": "actuator", + "uuid": "1c4e44f1e0275965b466ac674a5b8cac" + } + }, + "description": "Daytime running lights (DRL).", + "type": "branch", + "uuid": "38868a9f1bda573595501302c1f0a1db" + } + }, + "description": "Exterior lights.", + "type": "branch", + "uuid": "399d1ec14d6f55bb825e078a801bde55" + }, + "Mirrors": { + "children": { + "DriverSide": { + "children": { + "IsFolded": { + "datatype": "boolean", + "description": "Is mirror folded? True = Fully or partially folded. False = Fully unfolded.", + "type": "actuator", + "uuid": "0ade6b89326052829a49da918aacf0b7" + }, + "IsHeatingOn": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCLEFT_mirrorHeatState", + "transform": { + "mapping": [ + { + "from": "HEATER_STATE_ON", + "to": true + }, + { + "from": "HEATER_STATE_OFF", + "to": false + } + ] + } + }, + "description": "Mirror Heater on or off. True = Heater On. False = Heater Off.", + "type": "actuator", + "uuid": "21262ce775a85abe9f6354f9c3ac9988" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is mirror movement locked? True = Locked, mirror will not react to Tilt/Pan change. False = Unlocked.", + "type": "actuator", + "uuid": "d267fc64959e59ce8335911faa87980f" + }, + "Pan": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCLEFT_mirrorTiltXPosition", + "transform": { + "math": "floor((x*40)-100)" + } + }, + "description": "Mirror pan as a percent. 0 = Center Position. 100 = Fully Left Position. -100 = Fully Right Position.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "4749ae14c526547c9b511f66a67b3d27" + }, + "Tilt": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCLEFT_mirrorTiltYPosition", + "transform": { + "math": "floor((x*40)-100)" + } + }, + "description": "Mirror tilt as a percent. 0 = Center Position. 100 = Fully Upward Position. -100 = Fully Downward Position.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "eafa81963c315aa78eda11eec8012d34" + } + }, + "description": "All mirrors.", + "type": "branch", + "uuid": "3c62705bbcf654489c8179b63118829f" + }, + "PassengerSide": { + "children": { + "IsFolded": { + "datatype": "boolean", + "description": "Is mirror folded? True = Fully or partially folded. False = Fully unfolded.", + "type": "actuator", + "uuid": "2b0bedf76d29520d9b96469695c3e0e8" + }, + "IsHeatingOn": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCLEFT_mirrorHeatState", + "transform": { + "mapping": [ + { + "from": "HEATER_STATE_ON", + "to": true + }, + { + "from": "HEATER_STATE_OFF", + "to": false + } + ] + } + }, + "description": "Mirror Heater on or off. True = Heater On. False = Heater Off.", + "type": "actuator", + "uuid": "9d64ad38532658298e5f59a2f999ef57" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is mirror movement locked? True = Locked, mirror will not react to Tilt/Pan change. False = Unlocked.", + "type": "actuator", + "uuid": "b919c8699dae540a840fbd296df49aca" + }, + "Pan": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_mirrorTiltXPosition", + "transform": { + "math": "floor((x*40)-100)" + } + }, + "description": "Mirror pan as a percent. 0 = Center Position. 100 = Fully Left Position. -100 = Fully Right Position.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "d3dc2e11874f528fa0987e596993bde8" + }, + "Tilt": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "VCRIGHT_mirrorTiltYPosition", + "transform": { + "math": "floor((x*40)-100)" + } + }, + "description": "Mirror tilt as a percent. 0 = Center Position. 100 = Fully Upward Position. -100 = Fully Downward Position.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "0f3734b090065873a7feb40931c72a28" + } + }, + "description": "All mirrors.", + "type": "branch", + "uuid": "8025a1e06e9d5ddb96405cce1f1f38cb" + } + }, + "description": "All mirrors.", + "type": "branch", + "uuid": "a4ea618914885a239ef5fa62c671a800" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "2fe44a1c3bb155aca782b017efeb6175" + }, + "Raindetection": { + "children": { + "Intensity": { + "datatype": "uint8", + "description": "Rain intensity. 0 = Dry, No Rain. 100 = Covered.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "1ee0a2f22e8257d299425a4ff2652555" + } + }, + "description": "Rain sensor signals.", + "type": "branch", + "uuid": "f16759f3dcfb5be4832e962da29ebd6c" + }, + "RearMainSpoilerPosition": { + "datatype": "float", + "description": "Rear spoiler position, 0% = Spoiler fully stowed. 100% = Spoiler fully exposed.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6209a82390585b869cc3d00d069eade2" + }, + "RefuelPosition": { + "allowed": [ + "FRONT_LEFT", + "FRONT_RIGHT", + "MIDDLE_LEFT", + "MIDDLE_RIGHT", + "REAR_LEFT", + "REAR_RIGHT" + ], + "datatype": "string", + "deprecation": "v4.1 replaced with Vehicle.Powertrain.TractionBattery.Charging.ChargePortPosition and Vehicle.Powertrain.FuelSystem.RefuelPortPosition", + "description": "Location of the fuel cap or charge port.", + "type": "attribute", + "uuid": "53ef90a851fa57f0810d50238e852f02" + }, + "Trunk": { + "children": { + "Front": { + "children": { + "IsLightOn": { + "comment": "V4.0 Moved from Vehicle.Cabin.Lights.IsTrunkOn because Trunk is not defined as part of the Cabin.", + "datatype": "boolean", + "description": "Is trunk light on", + "type": "actuator", + "uuid": "43d7844934a45890bf2a287b676a994b" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "e0eabc210f07505fa1b66b67729d681b" + }, + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "2047de0896a352fcaf02baa06819a023" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6d871111a565517098cd29936a30dd22" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "63a651cd414652aba970a937af0b3621" + } + }, + "comment": "A trunk is a luggage compartment in a vehicle. Depending on vehicle, it can be either in the front or back of the vehicle. Some vehicles may have trunks both at the front and at the rear of the vehicle.", + "description": "Trunk status. Start position for Trunk is Closed.", + "type": "branch", + "uuid": "a455aca5bae55c22b7949fd31a765a6c" + }, + "Rear": { + "children": { + "IsLightOn": { + "comment": "V4.0 Moved from Vehicle.Cabin.Lights.IsTrunkOn because Trunk is not defined as part of the Cabin.", + "datatype": "boolean", + "description": "Is trunk light on", + "type": "actuator", + "uuid": "a1065214515c5f7aa86f51eb7bf36664" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "8f9b55b002ed59d3ac2ef0b014abf4aa" + }, + "IsOpen": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCRIGHT_trunkLatchStatus", + "transform": { + "mapping": [ + { + "from": "LATCH_AJAR", + "to": true + }, + { + "from": "LATCH_CLOSED", + "to": false + }, + { + "from": "LATCH_CLOSING", + "to": true + }, + { + "from": "LATCH_FAULT", + "to": true + }, + { + "from": "LATCH_OPENED", + "to": true + }, + { + "from": "LATCH_OPENING", + "to": true + } + ] + } + }, + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "3d3249e59306594698367b839b12c938" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "574ae721a062565b9c057d813782909e" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "7a9f400abf875713adb5c696ae29b2be" + } + }, + "comment": "A trunk is a luggage compartment in a vehicle. Depending on vehicle, it can be either in the front or back of the vehicle. Some vehicles may have trunks both at the front and at the rear of the vehicle.", + "description": "Trunk status. Start position for Trunk is Closed.", + "type": "branch", + "uuid": "a6170ff5e4325f38b5d57402e1d95e5a" + } + }, + "comment": "A trunk is a luggage compartment in a vehicle. Depending on vehicle, it can be either in the front or back of the vehicle. Some vehicles may have trunks both at the front and at the rear of the vehicle.", + "description": "Trunk status. Start position for Trunk is Closed.", + "type": "branch", + "uuid": "a584c6a5aa235cb88ac686f8d72a1dff" + }, + "Windshield": { + "children": { + "Front": { + "children": { + "IsHeatingOn": { + "datatype": "boolean", + "description": "Windshield heater status. False - off, True - on.", + "type": "actuator", + "uuid": "26e6a3b7e9bb58bebba29258faa6e300" + }, + "WasherFluid": { + "children": { + "IsLevelLow": { + "datatype": "boolean", + "description": "Low level indication for washer fluid. True = Level Low. False = Level OK.", + "type": "sensor", + "uuid": "8ca54695ad115f9bb6f56d7c450781a7" + }, + "Level": { + "datatype": "uint8", + "description": "Washer fluid level as a percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "a36dfb91414f5792bd01d193dceff1f4" + } + }, + "description": "Windshield washer fluid signals", + "type": "branch", + "uuid": "2de24016515353289953de5ea81efd3c" + }, + "Wiping": { + "children": { + "Intensity": { + "datatype": "uint8", + "description": "Relative intensity/sensitivity for interval and rain sensor mode as requested by user/driver. Has no significance if Windshield.Wiping.Mode is OFF/SLOW/MEDIUM/FAST 0 - wipers inactive. 1 - minimum intensity (lowest frequency/sensitivity, longest interval). 2/3/4/... - higher intensity (higher frequency/sensitivity, shorter interval). Maximum value supported is vehicle specific.", + "type": "actuator", + "uuid": "7cdd36d1cc8f5f9a9f079f663190b588" + }, + "IsWipersWorn": { + "datatype": "boolean", + "description": "Wiper wear status. True = Worn, Replacement recommended or required. False = Not Worn.", + "type": "sensor", + "uuid": "b04ccc7daedb559c9bcdda6b00332be5" + }, + "Mode": { + "allowed": [ + "OFF", + "SLOW", + "MEDIUM", + "FAST", + "INTERVAL", + "RAIN_SENSOR" + ], + "datatype": "string", + "description": "Wiper mode requested by user/driver. INTERVAL indicates intermittent wiping, with fixed time interval between each wipe. RAIN_SENSOR indicates intermittent wiping based on rain intensity.", + "type": "actuator", + "uuid": "3ee6552c96e551c5b06b79ad30226767" + }, + "System": { + "children": { + "ActualPosition": { + "comment": "Default parking position might be used as reference position.", + "datatype": "float", + "description": "Actual position of main wiper blade for the wiper system relative to reference position. Location of reference position (0 degrees) and direction of positive/negative degrees is vehicle specific.", + "type": "actuator", + "unit": "degrees", + "uuid": "026307b591465a8a99ffc0ebf262b393" + }, + "DriveCurrent": { + "comment": "May be negative in special situations.", + "datatype": "float", + "description": "Actual current used by wiper drive.", + "type": "sensor", + "unit": "A", + "uuid": "251e695821b758e7b7d459d5e2ab6ca4" + }, + "Frequency": { + "comment": "Examples - 0 = Wipers stopped, 80 = Wipers doing 80 cycles per minute (in WIPE mode).", + "datatype": "uint8", + "description": "Wiping frequency/speed, measured in cycles per minute. The signal concerns the actual speed of the wiper blades when moving. Intervals/pauses are excluded, i.e. the value corresponds to the number of cycles that would be completed in 1 minute if wiping permanently over default range.", + "type": "actuator", + "unit": "cpm", + "uuid": "7394c8b8d20d52638881161ec1b41fc0" + }, + "IsBlocked": { + "datatype": "boolean", + "description": "Indicates if wiper movement is blocked. True = Movement blocked. False = Movement not blocked.", + "type": "sensor", + "uuid": "4b526a2c781e56e386c82df226061f9e" + }, + "IsEndingWipeCycle": { + "comment": "In continuous wiping between A and B this sensor can be used a trigger to update TargetPosition.", + "datatype": "boolean", + "description": "Indicates if current wipe movement is completed or near completion. True = Movement is completed or near completion. Changes to RequestedPosition will be executed first after reaching previous RequestedPosition, if it has not already been reached. False = Movement is not near completion. Any change to RequestedPosition will be executed immediately. Change of direction may not be allowed.", + "type": "sensor", + "uuid": "5000f7f0c39e5fed9a95413ae4166482" + }, + "IsOverheated": { + "datatype": "boolean", + "description": "Indicates if wiper system is overheated. True = Wiper system overheated. False = Wiper system not overheated.", + "type": "sensor", + "uuid": "e05d376ec2525ba2b61039d55f93760f" + }, + "IsPositionReached": { + "datatype": "boolean", + "description": "Indicates if a requested position has been reached. IsPositionReached refers to the previous position in case the TargetPosition is updated while IsEndingWipeCycle=True. True = Current or Previous TargetPosition reached. False = Position not (yet) reached, or wipers have moved away from the reached position.", + "type": "sensor", + "uuid": "d42149fa8982593991aa5cd13a1cdee9" + }, + "IsWiperError": { + "datatype": "boolean", + "description": "Indicates system failure. True if wiping is disabled due to system failure.", + "type": "sensor", + "uuid": "5276055d973f57998e1b8d6e536de735" + }, + "IsWiping": { + "datatype": "boolean", + "description": "Indicates wiper movement. True if wiper blades are moving. Change of direction shall be considered as IsWiping if wipers will continue to move directly after the change of direction.", + "type": "sensor", + "uuid": "2015a4610d7a5fbdbb63b260640838e6" + }, + "Mode": { + "allowed": [ + "STOP_HOLD", + "WIPE", + "PLANT_MODE", + "EMERGENCY_STOP" + ], + "datatype": "string", + "description": "Requested mode of wiper system. STOP_HOLD means that the wipers shall move to position given by TargetPosition and then hold the position. WIPE means that wipers shall move to the position given by TargetPosition and then hold the position if no new TargetPosition is requested. PLANT_MODE means that wiping is disabled. Exact behavior is vehicle specific. EMERGENCY_STOP means that wiping shall be immediately stopped without holding the position.", + "type": "actuator", + "uuid": "d15518f5d1bc54a38718f43ef749dd34" + }, + "TargetPosition": { + "comment": "Default parking position might be used as reference position.", + "datatype": "float", + "description": "Requested position of main wiper blade for the wiper system relative to reference position. Location of reference position (0 degrees) and direction of positive/negative degrees is vehicle specific. System behavior when receiving TargetPosition depends on Mode and IsEndingWipeCycle. Supported values are vehicle specific and might be dynamically corrected. If IsEndingWipeCycle=True then wipers will complete current movement before actuating new TargetPosition. If IsEndingWipeCycle=False then wipers will directly change destination if the TargetPosition is changed.", + "type": "actuator", + "unit": "degrees", + "uuid": "7a4a3fdd2947596dbada6980c142f090" + } + }, + "comment": "These signals are typically not directly available to the user/driver of the vehicle. The overlay in overlays/extensions/dual_wiper_systems.vspec can be used to modify this branch to support two instances; Primary and Secondary.", + "description": "Signals to control behavior of wipers in detail. By default VSS expects only one instance.", + "type": "branch", + "uuid": "9002ff76166950e0aa3b7c9df3b53468" + }, + "WiperWear": { + "datatype": "uint8", + "description": "Wiper wear as percent. 0 = No Wear. 100 = Worn. Replacement required. Method for calculating or estimating wiper wear is vehicle specific. For windshields with multiple wipers the wear reported shall correspond to the most worn wiper.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "92c879c11bc65e6da30d582a3928caac" + } + }, + "description": "Windshield wiper signals.", + "type": "branch", + "uuid": "2cffeccdc19a587cbe2264f426c6881a" + } + }, + "description": "Windshield signals.", + "type": "branch", + "uuid": "8f0c61e4e4f557d98729210fc3c74f72" + }, + "Rear": { + "children": { + "IsHeatingOn": { + "datatype": "boolean", + "description": "Windshield heater status. False - off, True - on.", + "type": "actuator", + "uuid": "76d811b4c4c356f4898dd6383e28bc6f" + }, + "WasherFluid": { + "children": { + "IsLevelLow": { + "datatype": "boolean", + "description": "Low level indication for washer fluid. True = Level Low. False = Level OK.", + "type": "sensor", + "uuid": "8ca0356548ae54e8af3aeace49e5ed71" + }, + "Level": { + "datatype": "uint8", + "description": "Washer fluid level as a percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "c167e5b265895c108da1b9582de2dd91" + } + }, + "description": "Windshield washer fluid signals", + "type": "branch", + "uuid": "1ea4ac2370e1567b9b812c1e3020ddfb" + }, + "Wiping": { + "children": { + "Intensity": { + "datatype": "uint8", + "description": "Relative intensity/sensitivity for interval and rain sensor mode as requested by user/driver. Has no significance if Windshield.Wiping.Mode is OFF/SLOW/MEDIUM/FAST 0 - wipers inactive. 1 - minimum intensity (lowest frequency/sensitivity, longest interval). 2/3/4/... - higher intensity (higher frequency/sensitivity, shorter interval). Maximum value supported is vehicle specific.", + "type": "actuator", + "uuid": "f18b13b9d96b51c492c031d3d86d22da" + }, + "IsWipersWorn": { + "datatype": "boolean", + "description": "Wiper wear status. True = Worn, Replacement recommended or required. False = Not Worn.", + "type": "sensor", + "uuid": "0e8d5f7cb6295b908be3a03e8792cca8" + }, + "Mode": { + "allowed": [ + "OFF", + "SLOW", + "MEDIUM", + "FAST", + "INTERVAL", + "RAIN_SENSOR" + ], + "datatype": "string", + "description": "Wiper mode requested by user/driver. INTERVAL indicates intermittent wiping, with fixed time interval between each wipe. RAIN_SENSOR indicates intermittent wiping based on rain intensity.", + "type": "actuator", + "uuid": "8cc0b88ac8b45f5fa30bb7755ce22648" + }, + "System": { + "children": { + "ActualPosition": { + "comment": "Default parking position might be used as reference position.", + "datatype": "float", + "description": "Actual position of main wiper blade for the wiper system relative to reference position. Location of reference position (0 degrees) and direction of positive/negative degrees is vehicle specific.", + "type": "actuator", + "unit": "degrees", + "uuid": "eddee2607a135582bbcf3d3afc845892" + }, + "DriveCurrent": { + "comment": "May be negative in special situations.", + "datatype": "float", + "description": "Actual current used by wiper drive.", + "type": "sensor", + "unit": "A", + "uuid": "7a254692329055dfb4089e2dcc1d4ef3" + }, + "Frequency": { + "comment": "Examples - 0 = Wipers stopped, 80 = Wipers doing 80 cycles per minute (in WIPE mode).", + "datatype": "uint8", + "description": "Wiping frequency/speed, measured in cycles per minute. The signal concerns the actual speed of the wiper blades when moving. Intervals/pauses are excluded, i.e. the value corresponds to the number of cycles that would be completed in 1 minute if wiping permanently over default range.", + "type": "actuator", + "unit": "cpm", + "uuid": "371171d971995c999585b028e19be461" + }, + "IsBlocked": { + "datatype": "boolean", + "description": "Indicates if wiper movement is blocked. True = Movement blocked. False = Movement not blocked.", + "type": "sensor", + "uuid": "046e818b4dd9595a8301503e9afe028b" + }, + "IsEndingWipeCycle": { + "comment": "In continuous wiping between A and B this sensor can be used a trigger to update TargetPosition.", + "datatype": "boolean", + "description": "Indicates if current wipe movement is completed or near completion. True = Movement is completed or near completion. Changes to RequestedPosition will be executed first after reaching previous RequestedPosition, if it has not already been reached. False = Movement is not near completion. Any change to RequestedPosition will be executed immediately. Change of direction may not be allowed.", + "type": "sensor", + "uuid": "c1357156d87c58f49d4c43c2a6e97c03" + }, + "IsOverheated": { + "datatype": "boolean", + "description": "Indicates if wiper system is overheated. True = Wiper system overheated. False = Wiper system not overheated.", + "type": "sensor", + "uuid": "d30bc6f33b995ef491c252980a559ee2" + }, + "IsPositionReached": { + "datatype": "boolean", + "description": "Indicates if a requested position has been reached. IsPositionReached refers to the previous position in case the TargetPosition is updated while IsEndingWipeCycle=True. True = Current or Previous TargetPosition reached. False = Position not (yet) reached, or wipers have moved away from the reached position.", + "type": "sensor", + "uuid": "ad35e8d17cd95273b1091dcef2104ea1" + }, + "IsWiperError": { + "datatype": "boolean", + "description": "Indicates system failure. True if wiping is disabled due to system failure.", + "type": "sensor", + "uuid": "ac5983deacbe59d7ba1312d44bfd9cd4" + }, + "IsWiping": { + "datatype": "boolean", + "description": "Indicates wiper movement. True if wiper blades are moving. Change of direction shall be considered as IsWiping if wipers will continue to move directly after the change of direction.", + "type": "sensor", + "uuid": "4e001bf679e85c9aa7319bafc3a86e75" + }, + "Mode": { + "allowed": [ + "STOP_HOLD", + "WIPE", + "PLANT_MODE", + "EMERGENCY_STOP" + ], + "datatype": "string", + "description": "Requested mode of wiper system. STOP_HOLD means that the wipers shall move to position given by TargetPosition and then hold the position. WIPE means that wipers shall move to the position given by TargetPosition and then hold the position if no new TargetPosition is requested. PLANT_MODE means that wiping is disabled. Exact behavior is vehicle specific. EMERGENCY_STOP means that wiping shall be immediately stopped without holding the position.", + "type": "actuator", + "uuid": "f2f47522466d570baa7618fac5b0359c" + }, + "TargetPosition": { + "comment": "Default parking position might be used as reference position.", + "datatype": "float", + "description": "Requested position of main wiper blade for the wiper system relative to reference position. Location of reference position (0 degrees) and direction of positive/negative degrees is vehicle specific. System behavior when receiving TargetPosition depends on Mode and IsEndingWipeCycle. Supported values are vehicle specific and might be dynamically corrected. If IsEndingWipeCycle=True then wipers will complete current movement before actuating new TargetPosition. If IsEndingWipeCycle=False then wipers will directly change destination if the TargetPosition is changed.", + "type": "actuator", + "unit": "degrees", + "uuid": "c39bef0760185555904a92a305392080" + } + }, + "comment": "These signals are typically not directly available to the user/driver of the vehicle. The overlay in overlays/extensions/dual_wiper_systems.vspec can be used to modify this branch to support two instances; Primary and Secondary.", + "description": "Signals to control behavior of wipers in detail. By default VSS expects only one instance.", + "type": "branch", + "uuid": "a00826f6ecc25c3fae7ad164361bdb33" + }, + "WiperWear": { + "datatype": "uint8", + "description": "Wiper wear as percent. 0 = No Wear. 100 = Worn. Replacement required. Method for calculating or estimating wiper wear is vehicle specific. For windshields with multiple wipers the wear reported shall correspond to the most worn wiper.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "afd6a352230f5eeaa8ac5f1f188bfd33" + } + }, + "description": "Windshield wiper signals.", + "type": "branch", + "uuid": "f56e80a50fd75dbca48581aea4f012b7" + } + }, + "description": "Windshield signals.", + "type": "branch", + "uuid": "095ff58459b854aaa742e56447fe7a93" + } + }, + "description": "Windshield signals.", + "type": "branch", + "uuid": "73efba535dcb5032b9edc43406b050b8" + } + }, + "description": "All body components.", + "type": "branch", + "uuid": "bd2854e6a9165c5698ce8dd9f0438ecc" + }, + "Cabin": { + "children": { + "Convertible": { + "children": { + "Status": { + "allowed": [ + "UNDEFINED", + "CLOSED", + "OPEN", + "CLOSING", + "OPENING", + "STALLED" + ], + "datatype": "string", + "description": "Roof status on convertible vehicles.", + "type": "sensor", + "uuid": "c8812698198a56d7a1adcc8bbe87845f" + } + }, + "description": "Convertible roof.", + "type": "branch", + "uuid": "2aece85d39d6569e93cf842387a645d9" + }, + "Door": { + "children": { + "Row1": { + "children": { + "DriverSide": { + "children": { + "IsChildLockActive": { + "datatype": "boolean", + "description": "Is door child lock active. True = Door cannot be opened from inside. False = Door can be opened from inside.", + "type": "sensor", + "uuid": "62a265895be0566694358eecab381a4c" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "9080712219dc57eaacf85d6630e01ca0" + }, + "IsOpen": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 500, + "signal": "VCLEFT_frontDoorState", + "transform": { + "mapping": [ + { + "from": "DOOR_STATE_CLOSED", + "to": false + }, + { + "from": "DOOR_STATE_OPEN_OR_AJAR", + "to": true + }, + { + "from": "DOOR_STATE_RELEASING_LATCH", + "to": true + } + ] + } + }, + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "da3dccb4ab085fcabca24efd99435d87" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6ef9c60445f9577e83ffff4ea6d863b9" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "112a180977c956aab6c5422cb6cc46e7" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "7ec218dfc5855bfa88af947d7b06b1f4" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "fea7f9577a8456128c548daf3c548ea4" + } + }, + "description": "Side window shade. Open = Retracted, Closed = Deployed. Start position for Shade is Open/Retracted.", + "type": "branch", + "uuid": "7220d013b9205e1b9e7ca6b95cb14058" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "1b93676e79ea5a9095327bde69927a21" + }, + "Window": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "ff58aae512475431bec02b5c4a36b6f9" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "83da2e0448465874bf2bff9aeff91793" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "5d3f802110a95653b4518b8f21836113" + } + }, + "description": "Door window status. Start position for Window is Closed.", + "type": "branch", + "uuid": "6ab9b77468d45cdfadebe124256aa910" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "0fe04659010a505a9816a3a9457b3540" + }, + "PassengerSide": { + "children": { + "IsChildLockActive": { + "datatype": "boolean", + "description": "Is door child lock active. True = Door cannot be opened from inside. False = Door can be opened from inside.", + "type": "sensor", + "uuid": "74a842786a73553ba3491975c2077ac7" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "48d4388ec67b519ab500ee424ce4b6cb" + }, + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "80aca3884840557db10f1314a27a5eeb" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "7002316cdf9852afb027abc03309b15d" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "46bec5f9c4ef594fb41836d413e79400" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "8f583d09021e51319aa6bdd0e29aefc8" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "c700d6a13a16522ead84b81314fd452b" + } + }, + "description": "Side window shade. Open = Retracted, Closed = Deployed. Start position for Shade is Open/Retracted.", + "type": "branch", + "uuid": "dfe64259f26a54bda64b9aa24362c7eb" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "c1244ebb7ef35c2a9e0f6ebf47710536" + }, + "Window": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "120e3b950fd657fabd90069e6e01f44e" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "ec293d2eb9e052e88d01927c811711ef" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "36efa23a161a5fe1b65e36f5656738fb" + } + }, + "description": "Door window status. Start position for Window is Closed.", + "type": "branch", + "uuid": "c588ac43d3945dc0a45994c4d298d9b0" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "9ea0425fb2085ded9a393d4e999ae90a" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "fd3fcb481cb953dc9a853125c6ca0453" + }, + "Row2": { + "children": { + "DriverSide": { + "children": { + "IsChildLockActive": { + "datatype": "boolean", + "description": "Is door child lock active. True = Door cannot be opened from inside. False = Door can be opened from inside.", + "type": "sensor", + "uuid": "707facc3d89052d8ae66675ffd8755a8" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "df98641aae1553a68b741826496d9d42" + }, + "IsOpen": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 500, + "signal": "VCLEFT_rearDoorState", + "transform": { + "mapping": [ + { + "from": "DOOR_STATE_CLOSED", + "to": false + }, + { + "from": "DOOR_STATE_OPEN_OR_AJAR", + "to": true + }, + { + "from": "DOOR_STATE_RELEASING_LATCH", + "to": true + } + ] + } + }, + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "49c55921d1825bc1a82334a40eeb45f9" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "bf1d5b2f6a0b59bcb18abf24ea45c11e" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "69c6da83b3aa51cd8156e57b2ba431a5" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "96227261fc205735adb031fb549de6bf" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "81f6196e909d590d858fe4da18c60590" + } + }, + "description": "Side window shade. Open = Retracted, Closed = Deployed. Start position for Shade is Open/Retracted.", + "type": "branch", + "uuid": "9b08a5dc400253b8bf31776582f275fd" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "3e46afea496054afb12653a9c82c66ad" + }, + "Window": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "1fa3b2f43118575aa2f136fdd15ff61f" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "8a097ade895c5cd8afe9efeef79532fc" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "4dd1a3858c1b54cc94a8dc4d011ea307" + } + }, + "description": "Door window status. Start position for Window is Closed.", + "type": "branch", + "uuid": "bb6ac206a45b507f9f1fe5fdfcf82b31" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "996c7ede1ac453ae9aed508c2835ae56" + }, + "PassengerSide": { + "children": { + "IsChildLockActive": { + "datatype": "boolean", + "description": "Is door child lock active. True = Door cannot be opened from inside. False = Door can be opened from inside.", + "type": "sensor", + "uuid": "082f7e3633ab56d4a48817329cf46ef9" + }, + "IsLocked": { + "datatype": "boolean", + "description": "Is item locked or unlocked. True = Locked. False = Unlocked.", + "type": "actuator", + "uuid": "32fa3a8c0b2d5451a4a1976438417305" + }, + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "84cab77c9c1d59aba1565b3484c5e01f" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "74e971377a1053d284a6bf80cf1aa1c1" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "d667cda8637e518e900f0e599f59ca1d" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "aa5627291c29505b8d2f7d652cc4800d" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "0c33dd31375452d6ad0c531eac1637c6" + } + }, + "description": "Side window shade. Open = Retracted, Closed = Deployed. Start position for Shade is Open/Retracted.", + "type": "branch", + "uuid": "8dc8133322a65057844f9b7eceee6ef9" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "1411f865d2065849aeb214875d0c099b" + }, + "Window": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "13e37e2924115c73a36df78f09fad493" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "e3e3fa03f4e357ae8ac8f43799a99350" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "174b3bc145625a22b23a283c424c28b4" + } + }, + "description": "Door window status. Start position for Window is Closed.", + "type": "branch", + "uuid": "b64ba696bf7b5fdc8dba79ae5cb119d1" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "16bc38dcd8055f50b54f87478f72f776" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "74c8a76ad2545ceba474a85ae84eec8e" + } + }, + "description": "All doors, including windows and switches.", + "type": "branch", + "uuid": "fd7f4d16f8965419a9a69fd66b40c1d7" + }, + "DoorCount": { + "datatype": "uint8", + "default": 4, + "description": "Number of doors in vehicle.", + "type": "attribute", + "uuid": "c293fbef75725c57a9918dd5a34055c4" + }, + "DriverPosition": { + "allowed": [ + "LEFT", + "MIDDLE", + "RIGHT" + ], + "comment": "Some signals use DriverSide and PassengerSide as instances. If this signal specifies that DriverPosition is LEFT or MIDDLE, then DriverSide refers to left side and PassengerSide to right side. If this signal specifies that DriverPosition is RIGHT, then DriverSide refers to right side and PassengerSide to left side.", + "datatype": "string", + "description": "The position of the driver seat in row 1.", + "type": "attribute", + "uuid": "bca9ccd50358584d8d20865694b0d15f" + }, + "HVAC": { + "children": { + "AmbientAirTemperature": { + "datatype": "float", + "description": "Ambient air temperature inside the vehicle.", + "type": "sensor", + "unit": "celsius", + "uuid": "611868a24bc25eb9a837208c235e9491" + }, + "IsAirConditioningActive": { + "datatype": "boolean", + "description": "Is Air conditioning active.", + "type": "actuator", + "uuid": "dc4f79e4211c54a6b4eed0236aae84a6" + }, + "IsFrontDefrosterActive": { + "datatype": "boolean", + "description": "Is front defroster active.", + "type": "actuator", + "uuid": "afa678c87182544bb6ab81fa6a770791" + }, + "IsRearDefrosterActive": { + "datatype": "boolean", + "description": "Is rear defroster active.", + "type": "actuator", + "uuid": "d342a7939f2e5adeaeb5e68e3a314445" + }, + "IsRecirculationActive": { + "datatype": "boolean", + "description": "Is recirculation active.", + "type": "actuator", + "uuid": "7b80c41c63b35c9299a410166cd33c81" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "ee011a09ebc6519183177b05d7302ce8" + }, + "Station": { + "children": { + "Row1": { + "children": { + "Driver": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "8b7412018a6f5c0a8467bdddb53e76f7" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "3db004f9a2ee528099499d660bfa715f" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "1eae45dbda85581ca794b6b4513376cd" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "7480dcf1e7375c7491a4dc083a8a7d15" + }, + "Passenger": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "610facc5829f5d52a40e8b1e9706866c" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "2d00c3cf2f735a37b646d9a51e77ef9e" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "3a7a6b5f8c4756d4bcf540ee41c781e1" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "e536a7f5f6a05ff48f26f96ef5772455" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "80860491fba75babaf3c439d1d471a6d" + }, + "Row2": { + "children": { + "Driver": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "8a021c3941ee5fed99efb5b8c7e6882a" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "873e0193650f5f4a88bdb9777ead4df7" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "50d268809c555b82b275884f8c170825" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "d1dd7712867d51ec847afa67e6dd3c92" + }, + "Passenger": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "06105fb9e69755f38a02132b4b432351" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "a9d1c8e5a9e35e7ca924ec4871364de8" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "a83b6548c3c95d288072caa1a7dc2904" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "ed9c94346bd8511584c4d9a8e2d49ec0" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "d98e8f5f94da5acfbf428c635a8bcc0c" + }, + "Row3": { + "children": { + "Driver": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "ec927fbdee9e51c89ccba5c3752189cb" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "9c111ac7582752228e43bda739c0a26a" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "d16ac539f8035e209831c1f4c7c39c83" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "299b787af2fe56ab9721086824692e10" + }, + "Passenger": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "5cf67ab3c7d1500ab306c397b7dddb12" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "71f5693b021f52ca888335848535db51" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "1499ad96881c551886081c52d404d3e3" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "810eed3a9836574a886923f2ddf67dfd" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "6eb8d63b66c859d5b36ef52d264aed2b" + }, + "Row4": { + "children": { + "Driver": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "984add0704f850f2bb06a748c43211fb" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "fbd6ca78cdc557078f91b3d649866ec2" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "9db31f66a7575255864758d62a4e0185" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "7211e138449252378f1a6ffbece35753" + }, + "Passenger": { + "children": { + "AirDistribution": { + "allowed": [ + "UP", + "MIDDLE", + "DOWN" + ], + "datatype": "string", + "description": "Direction of airstream", + "type": "actuator", + "uuid": "2c829297b81e54cf85a04bde79f31f34" + }, + "FanSpeed": { + "datatype": "uint8", + "description": "Fan Speed, 0 = off. 100 = max", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "580538988d3f513c88612665621bba09" + }, + "Temperature": { + "datatype": "float", + "description": "Temperature", + "type": "actuator", + "unit": "celsius", + "uuid": "06b974ba5325558793b8a7dccb560bde" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "30fac3fdc3785d7fa8eb4298da45e95b" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "ff0c0fa26de7508dbe92a83bc087dff6" + } + }, + "description": "HVAC for single station in the vehicle", + "type": "branch", + "uuid": "253e683e6f135b83b6302a30b6c0ec8d" + } + }, + "description": "Climate control", + "type": "branch", + "uuid": "f8ff34337cdf568e91ab406a365c3249" + }, + "Infotainment": { + "children": { + "HMI": { + "children": { + "Brightness": { + "comment": "The value 0 does not necessarily correspond to a turned off HMI, as it may not be allowed/supported to turn off the HMI completely.", + "datatype": "float", + "description": "Brightness of the HMI, relative to supported range. 0 = Lowest brightness possible. 100 = Maximum Brightness possible.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "44147980dabd56b883ae4d2491383a17" + }, + "CurrentLanguage": { + "datatype": "string", + "description": "ISO 639-1 standard language code for the current HMI", + "type": "sensor", + "uuid": "dc29ee5b7f7154b4ab05a9771fe930b3" + }, + "DateFormat": { + "allowed": [ + "YYYY_MM_DD", + "DD_MM_YYYY", + "MM_DD_YYYY", + "YY_MM_DD", + "DD_MM_YY", + "MM_DD_YY" + ], + "datatype": "string", + "description": "Date format used in the current HMI", + "type": "actuator", + "uuid": "0f03c3955fe953e9893a1f52e964919e" + }, + "DayNightMode": { + "allowed": [ + "DAY", + "NIGHT" + ], + "datatype": "string", + "description": "Current display theme", + "type": "actuator", + "uuid": "a892039ba136588fa26b2670f839c0cc" + }, + "DisplayOffDuration": { + "comment": "Display shall be turned off at HMI.LastActionTime + HMI.DisplayOffDuration, unless HMI.IsScreenAlwaysOn==True.", + "datatype": "uint16", + "description": "Duration in seconds before the display is turned off. Value shall be 0 if screen never shall turn off.", + "type": "actuator", + "unit": "s", + "uuid": "130114ebf81f59718cf257e198b90e01" + }, + "DistanceUnit": { + "allowed": [ + "MILES", + "KILOMETERS" + ], + "datatype": "string", + "description": "Distance unit used in the current HMI", + "type": "actuator", + "uuid": "4b40e8bdb1a053ee9ee35338d8804e7b" + }, + "EVEconomyUnits": { + "allowed": [ + "MILES_PER_KILOWATT_HOUR", + "KILOMETERS_PER_KILOWATT_HOUR", + "KILOWATT_HOURS_PER_100_MILES", + "KILOWATT_HOURS_PER_100_KILOMETERS", + "WATT_HOURS_PER_MILE", + "WATT_HOURS_PER_KILOMETER" + ], + "datatype": "string", + "description": "EV fuel economy unit used in the current HMI", + "type": "actuator", + "uuid": "914846f6804757ba81ca6bcfac8d2c48" + }, + "EVEnergyUnits": { + "allowed": [ + "WATT_HOURS", + "AMPERE_HOURS", + "KILOWATT_HOURS" + ], + "comment": "Ampere hours is by definition not an energy unit, but can be used as a measurement of energy if the voltage, like nominal voltage of the battery, is known.", + "datatype": "string", + "description": "EV energy unit used in the current HMI", + "type": "actuator", + "uuid": "cf09b365499859c5a916d7fc1ea2d3ba" + }, + "FontSize": { + "allowed": [ + "STANDARD", + "LARGE", + "EXTRA_LARGE" + ], + "datatype": "string", + "description": "Font size used in the current HMI", + "type": "actuator", + "uuid": "630bf4a73340503799e8d86889ffd863" + }, + "FuelEconomyUnits": { + "allowed": [ + "MPG_UK", + "MPG_US", + "MILES_PER_LITER", + "KILOMETERS_PER_LITER", + "LITERS_PER_100_KILOMETERS" + ], + "datatype": "string", + "description": "Fuel economy unit used in the current HMI", + "type": "actuator", + "uuid": "0e6a43ce1aa45243b753545ffa1f0f8c" + }, + "FuelVolumeUnit": { + "allowed": [ + "LITER", + "GALLON_US", + "GALLON_UK" + ], + "datatype": "string", + "description": "Fuel volume unit used in the current HMI", + "type": "actuator", + "uuid": "aef80d0bd01d593082e41abf072dab9b" + }, + "IsScreenAlwaysOn": { + "datatype": "boolean", + "description": "Used to prevent the screen going black if no action placed.", + "type": "actuator", + "uuid": "f6f2bffbad7e5e9098b351bf99b71624" + }, + "LastActionTime": { + "datatype": "string", + "description": "Time for last hmi action, formatted according to ISO 8601 with UTC time zone.", + "type": "sensor", + "uuid": "19b4f7e950bc526f8c263b4cc5954960" + }, + "SpeedUnit": { + "allowed": [ + "METERS_PER_SECOND", + "MILES_PER_HOUR", + "KILOMETERS_PER_HOUR" + ], + "datatype": "string", + "description": "Speed unit used in the current HMI", + "type": "actuator", + "uuid": "9bb9811aaa1c5ce79e0c19f5ba6049bb" + }, + "TemperatureUnit": { + "allowed": [ + "C", + "F" + ], + "datatype": "string", + "description": "Temperature unit used in the current HMI", + "type": "actuator", + "uuid": "a7d1533490bb52b6b4f650280e72543d" + }, + "TimeFormat": { + "allowed": [ + "HR_12", + "HR_24" + ], + "datatype": "string", + "description": "Time format used in the current HMI", + "type": "actuator", + "uuid": "73083b87a4e25c02aee672ea32e40005" + }, + "TirePressureUnit": { + "allowed": [ + "PSI", + "KPA", + "BAR" + ], + "datatype": "string", + "description": "Tire pressure unit used in the current HMI", + "type": "actuator", + "uuid": "e5ffaf58cc10523fa0858deafb61a8ce" + } + }, + "description": "HMI related signals", + "type": "branch", + "uuid": "271e3d9202825f37bd054820e5ea8141" + }, + "Media": { + "children": { + "Action": { + "allowed": [ + "UNKNOWN", + "STOP", + "PLAY", + "FAST_FORWARD", + "FAST_BACKWARD", + "SKIP_FORWARD", + "SKIP_BACKWARD" + ], + "datatype": "string", + "description": "Tells if the media was", + "type": "actuator", + "uuid": "0357aea525bf505981a14e4fc720094e" + }, + "DeclinedURI": { + "datatype": "string", + "description": "URI of suggested media that was declined", + "type": "sensor", + "uuid": "51b0d6227db55b92bc35eedd8277f4c4" + }, + "Played": { + "children": { + "Album": { + "datatype": "string", + "description": "Name of album being played", + "type": "sensor", + "uuid": "1d80b1e2c1085def92b3548b5db2786e" + }, + "Artist": { + "datatype": "string", + "description": "Name of artist being played", + "type": "sensor", + "uuid": "076af7ad8aff5110ab5a64d1f58ccdcb" + }, + "PlaybackRate": { + "comment": "The normal playback rate is multiplied by this value to obtain the current rate, so a value of 1.0 indicates normal speed. Values of lower than 1.0 make the media play slower than normal. Values of higher than 1.0 make the media play faster than normal.", + "datatype": "float", + "description": "Current playback rate of media being played.", + "type": "actuator", + "uuid": "f5e58f66f21f560fbd0124ab5b17460e" + }, + "Source": { + "allowed": [ + "UNKNOWN", + "SIRIUS_XM", + "AM", + "FM", + "DAB", + "TV", + "CD", + "DVD", + "AUX", + "USB", + "DISK", + "BLUETOOTH", + "INTERNET", + "VOICE", + "BEEP" + ], + "datatype": "string", + "description": "Media selected for playback", + "type": "actuator", + "uuid": "54fb88a7d7cf5e3aab63e8f52415c187" + }, + "Track": { + "datatype": "string", + "description": "Name of track being played", + "type": "sensor", + "uuid": "ee800d62a40351e6934649ca75927d69" + }, + "URI": { + "datatype": "string", + "description": "User Resource associated with the media", + "type": "sensor", + "uuid": "1ed22b9925c3502d8d1389c8e02d0f07" + } + }, + "description": "Collection of signals updated in concert when a new media is played", + "type": "branch", + "uuid": "6585e9d3b6ff596da72a5f8c98d2d47a" + }, + "SelectedURI": { + "datatype": "string", + "description": "URI of suggested media that was selected", + "type": "actuator", + "uuid": "4820f7a961c25e91af12d3417a145d32" + }, + "Volume": { + "datatype": "uint8", + "description": "Current Media Volume", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "8b344688816f5844ae5812bb136c8006" + } + }, + "description": "All Media actions", + "type": "branch", + "uuid": "3f324d13873e501a84daf2cfade24d0f" + }, + "Navigation": { + "children": { + "DestinationSet": { + "children": { + "Latitude": { + "datatype": "double", + "description": "Latitude of destination in WGS 84 geodetic coordinates.", + "max": 90, + "min": -90, + "type": "actuator", + "unit": "degrees", + "uuid": "3e33f3252934565d86de5409c761262b" + }, + "Longitude": { + "datatype": "double", + "description": "Longitude of destination in WGS 84 geodetic coordinates.", + "max": 180, + "min": -180, + "type": "actuator", + "unit": "degrees", + "uuid": "e9bd511146ca51639c8d42c0702e22ee" + } + }, + "description": "A navigation has been selected.", + "type": "branch", + "uuid": "f51ce253dc5b58168ecca99297139455" + }, + "GuidanceVoice": { + "allowed": [ + "STANDARD_MALE", + "STANDARD_FEMALE", + "ETC" + ], + "comment": "ETC indicates a voice alternative not covered by the explicitly listed alternatives.", + "datatype": "string", + "description": "Navigation guidance state that was selected.", + "type": "actuator", + "uuid": "f5404f515db05e518d7b74460cf83eee" + }, + "Map": { + "children": { + "IsAutoScaleModeUsed": { + "comment": "If true, then auto-scaling mode is used. If false, then manual-scaling mode is used.", + "datatype": "boolean", + "description": "Used to select auto-scaling mode. This feature dynamically adjusts the zoom level of the map to provide an optimal view based on the current speed of the vehicle", + "type": "actuator", + "uuid": "86cb8301b6205fa98a737cb02d3d5ce9" + } + }, + "description": "All map actions", + "type": "branch", + "uuid": "4df6f1ab5f6c51d6b9c7af2b13daa2bc" + }, + "Mute": { + "allowed": [ + "MUTED", + "ALERT_ONLY", + "UNMUTED" + ], + "datatype": "string", + "description": "Navigation mute state that was selected.", + "type": "actuator", + "uuid": "d7ab68ec65aa5bafa95f042a60c91639" + }, + "Volume": { + "datatype": "uint8", + "description": "Current navigation volume", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "3609ff09d29d54d596068f978cbc0777" + } + }, + "description": "All navigation actions", + "type": "branch", + "uuid": "79bb0cc4acae5d1eb34fb214352d7863" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "7be907e3d9fd5c46a516f7cd07f050a3" + }, + "SmartphoneProjection": { + "children": { + "Active": { + "allowed": [ + "NONE", + "ACTIVE", + "INACTIVE" + ], + "comment": "NONE indicates that projection is not supported.", + "datatype": "string", + "description": "Projection activation info.", + "type": "actuator", + "uuid": "7156b00b47a8513c8e86f50f7d152614" + }, + "Source": { + "allowed": [ + "USB", + "BLUETOOTH", + "WIFI" + ], + "datatype": "string", + "description": "Connectivity source selected for projection.", + "type": "actuator", + "uuid": "1c2d1f379f5752ac802456a992b88156" + }, + "SupportedMode": { + "allowed": [ + "ANDROID_AUTO", + "APPLE_CARPLAY", + "MIRROR_LINK", + "OTHER" + ], + "datatype": "string[]", + "description": "Supportable list for projection.", + "type": "attribute", + "uuid": "80fa132703655d989386bc6711afed49" + } + }, + "description": "All smartphone projection actions.", + "type": "branch", + "uuid": "fd47f73b4d6b51679f4bed75f6d63518" + } + }, + "description": "Infotainment system.", + "type": "branch", + "uuid": "d88f92fbdda35012a2443b5e130d5eff" + }, + "IsWindowChildLockEngaged": { + "comment": "Window child lock refers to the functionality to disable the move window button next to most windows, so that they only can be operated by the driver.", + "datatype": "boolean", + "description": "Is window child lock engaged. True = Engaged. False = Disengaged.", + "type": "actuator", + "uuid": "23d94405d1035201ae2866f911f02063" + }, + "Light": { + "children": { + "AmbientLight": { + "children": { + "Row1": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "c5717a5df33359959d1df3ae75dd687e" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "a9ddbecc501e5ad4b95b7197cd4d6edf" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "3b6d9d8d6acb55bc81022522cf2499a3" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "e42bfc0abac857f0a40f579cc0ced424" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "a58681f838a75596b6b64623803479cc" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "9d9096fdd737597b8423214633a97063" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "a52466424a9550868a5f6a1aa83f3dce" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "05a04fb5fb025049b9e9fbb109fef22a" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "b3447dca710f51e39ed1af3d240f8851" + }, + "Row2": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "8eb7ad17cb3f546c96fb8f76a7ac09f6" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "93c3bf189e045a52b2134aa20cfcf2b2" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "c95376e9f63f5ae996907ab83fa40a0b" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "ddf477f1910e595f8c8055508cbdd808" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "6ed1d61f74155275bde970d8233f0f51" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "1e9bcef987795ad3a38bc76de810df19" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "e61968ff0fb15adf891efadc9181f78c" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "b9a621db27d75d56b377890d98222d53" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "f4462f76907e529fbcc7cc6761ca5cbe" + } + }, + "description": "Decorative coloured light inside the cabin, usually mounted on the door, ceiling, etc.", + "type": "branch", + "uuid": "c3983df208565cb78c8af970a57351fd" + }, + "InteractiveLightBar": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "099955ec87a0528ba1a89cc3e439c806" + }, + "Effect": { + "comment": "Default and allowed values are OEM-specific and should be defined accordingly (e.g. with the use of overlays).", + "datatype": "string", + "description": "Light effect selection from a predefined set of allowed values.", + "type": "actuator", + "uuid": "c0167026c1575ec8a2de0901a71d0d8d" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "9c73159ff0db5341af2bd3aaffc183c5" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "7c858ba899585fd6bb65a981db056fd7" + } + }, + "description": "Decorative coloured light bar that supports effects, usually mounted on the dashboard (e.g. BMW i7 Interactive bar).", + "type": "branch", + "uuid": "de6062a1a9c05ff687128f748307e331" + }, + "IsDomeOn": { + "datatype": "boolean", + "description": "Is central dome light on", + "type": "actuator", + "uuid": "0dcbdddcc3bb59d292bd7a0cf3747c83" + }, + "IsGloveBoxOn": { + "datatype": "boolean", + "description": "Is glove box light on", + "type": "actuator", + "uuid": "9b4db6bf8cc95c7a855442b95e1e0e18" + }, + "PerceivedAmbientLight": { + "comment": "V4.0 named changed from \"AmbientLight\" to \"PerceivedAmbientLight\". This is a read-only property that refers to the pre-existing light (e.g., natural light). If you are looking for the in-cabin decorative lights that sometimes are also called \"AmbientLights\", please refer to the branch Vehicle.Cabin.Light.AmbientLight.", + "datatype": "uint8", + "description": "The percentage of ambient light that is measured (e.g., by a sensor) inside the cabin. 0 = No ambient light. 100 = Full brightness.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "4d605e0e591a510d9613bdb412175729" + }, + "Spotlight": { + "children": { + "Row1": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "838b3bc619d153d993ddfad96918ad7e" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "497ba6de557452829f1c3bbcad2c1386" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "dff99845cbdf54239f1cc36834434a91" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "39ac4414f40754e2ab28a6bb10b397bb" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "7643021f0af15edeba9e35f7e87a7bd5" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "a2d72853978f54379cd66a2c82cd63fa" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "834df09382ee509b898b2ff2652a3ea2" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "669fe375bd1151b497eab93492e41597" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "35f4c5574dbb5c5bafe82107b55377ec" + }, + "Row2": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "fddcfd397c63530b8b7e6f3c5fd98b20" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "054dfd5255675357b090663df26c6370" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "d7cdb8c7fe305b99a482ac7f8025519b" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "92fe0ca17e39548d8681a0fdd4f2a035" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "bdc48b556b565f0e9fd4e68b814ee934" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "b5e5c87ee11c5f84a7d92dc7871f3241" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "ded8281b9520524ead6bc1a5c3cccd5d" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "1e9617c06a0b53eca745dcf96f8d5d70" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "259f6228620a532abbac5548c72b3c35" + }, + "Row3": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "5394e601144f5d75ae66a1566d182c68" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "50376cb5f02750d599f3ae5932520952" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "fa58686f4c925907a17f40aded066a01" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "36bd0e114ba652b0919db771e3a0d946" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "b50787e8b3bf56ebb3e007ee21aa1f30" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "b8e1a7326abe538199f595555c4c0ca0" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "68eacf65617c56489f0c1f475576eaaa" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "69b6df651e9b5154b46c5709ce167fb6" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "7b6666a198e8514582f8c85525dccceb" + }, + "Row4": { + "children": { + "DriverSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "6cc3fc21887c593a90d799209dcc40c0" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "5459910482cb507db1583252b26e62c7" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "ca9e9652c52757ce98744209c0d2344f" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "661dcc2f512159329fc272128a054b0b" + }, + "PassengerSide": { + "children": { + "Color": { + "comment": "For example; \"#C0C0C0\" = Silver, \"#FFD700\" = Gold, \"#000000\" = Black, \"#FFFFFF\" = White, etc.", + "datatype": "string", + "description": "Hexadecimal color code represented as a 3-byte RGB (i.e. Red, Green, and Blue) value preceded by a hash symbol \"#\". Allowed range \"#000000\" to \"#FFFFFF\".", + "type": "actuator", + "uuid": "fde4be32cd6f5fcf8997b01564eaadaf" + }, + "Intensity": { + "comment": "Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec.", + "datatype": "uint8", + "description": "How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = No attenuation (i.e. full brightness).", + "max": 100, + "min": 1, + "type": "actuator", + "unit": "percent", + "uuid": "8be53f681198503bb8f93d331e2315cd" + }, + "IsLightOn": { + "datatype": "boolean", + "description": "Indicates whether the light is turned on. True = On, False = Off.", + "type": "actuator", + "uuid": "c35925e7af4d5a929b153cb7f587ca5b" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "fbffb10dc86a523bb40f624c1ad385e7" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "41b0adb2cba85665824d3ad497b593a8" + } + }, + "description": "Spotlight for a specific area in the vehicle.", + "type": "branch", + "uuid": "a03cd35849a05136ac8e16f4e96d866b" + } + }, + "comment": "V4.0 branch renamed from \"Lights\" to \"Light\" to comply with singular naming of entities. Use SingleConfigurableLight.vspec to describe interior lights that can be configured.", + "description": "Light that is part of the Cabin.", + "type": "branch", + "uuid": "2fc2ad48d5315cc4aa1e4638a6985585" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "728b62b170055bd8b1530ec423dd5a9a" + }, + "RearShade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "4190436709bc5b1896fad8fd5c624ff2" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "9e16fc53f2ec575dbf66c79f969949a9" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "da9f01e9baf35544842f1a7674c5172a" + } + }, + "description": "Rear window shade. Open = Retracted, Closed = Deployed. Start position for RearShade is Open/Retracted.", + "type": "branch", + "uuid": "8a0c86f4fc6f5ea8ac8cf8f327969dcc" + }, + "RearviewMirror": { + "children": { + "DimmingLevel": { + "datatype": "uint8", + "description": "Dimming level of rear-view mirror. 0 = Undimmed. 100 = Fully dimmed.", + "max": 100, + "type": "actuator", + "unit": "percent", + "uuid": "4e2bcbaa6dc1586d8282324b475e5dee" + } + }, + "description": "Rear-view mirror.", + "type": "branch", + "uuid": "e655b654ab9f55bbb04952a99755efae" + }, + "Seat": { + "children": { + "Row1": { + "children": { + "DriverSide": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "7308c4cd91025db3aad6dee3e4f9d2a1" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "cf3eca19b11e5e3ea66a078bed805968" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "637adce522d45075a064f3f94dc568ce" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "dc2da05595a151ada19e6d86037abaf0" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "2112602ef7ab5470b3e57b85d6ff903f" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "c58f21ae6ce150bc8f0b2cdd4698f958" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "c3bcf9587aac58af827a41364bc91b55" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "bd36af767f2e582bae11c7a62b635789" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "876fb7f9209155749108c95bb268836b" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "55cf95c00d2056be859d330d0060a363" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "51de4b90534a5f089a9d81d53a663704" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "4b193a02bffe52819b69d422d5e50042" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "efeb2be118bb5f5eb796a81d298ab560" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "32ee42cdcf0c5ba3a963d0c11881e0c2" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "f44c52884b5c58e4ae462656832c888b" + }, + "IsBelted": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCFRONT_driverBuckleStatus", + "transform": { + "mapping": [ + { + "from": "BUCKLED", + "to": true + }, + { + "from": "UNBUCKLED", + "to": false + } + ] + } + }, + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "db477d45def05e11a90689c9e655cad9" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "e8b805d0bd3e56be9258685f390a7a9c" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6d333404bc155fd2afa57a6380ecfd5c" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "a48e731c91b55a2c9022b21774923b73" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "c4bb8a01fe8a5335b1c7c9288b9863c9" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "972f188af9425bc186a075224bbc3630" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "936f0c2fad4855d382e92393ec6223d7" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "b9587caa89dd50d2af7167c99c13bc85" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "4e5f01eef7ce5005b4d8420fcd233336" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "b030abb632dc503aa313ba5c75ba36f1" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "1e49fb9d59d85494b290e53b7753dd72" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "7cc9aaaa51085baaa45be2ee7c7330bf" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "794645c172745cb0ba6b081d9903be78" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "e34e3c3330ac503a962eb076c7a05209" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "30ac7b216df9562abc6b7a2c6e0f665c" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "9645281792d65ada94160182c5ef2722" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "07e098c9c24c5500ac7054a75529187d" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "e69977f72c375925ac2817d8313a78e6" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "381639fd2a2751a9bb1429be5e0d5a99" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "056e7fa78a095b3e8c4e025ac7f69893" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "2702b44037a05092987a5da7a1b4e582" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "27ef6aedeefb5b288d191ca8e5306f55" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "5d2d997eaadc510fa7a0ff4f0422aa7e" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "14783a76b08953bca5d24ebc8d59b824" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "fe246f08a3ba5fe89703bf807c479528" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "31d5f0a7c65f51c4b7e67d1c8b45b9b8" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "2839bf77f2e95c17afd1a63e2d85249c" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "242ef7b872b25d9b94db1553e7f0cb0e" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "5e450517dd065464ac9a4927abc936a7" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "d982ff943e5e5e06a7984a2e7bfe2f45" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "3414b4d1e0ea5887b900171cb52e13b5" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "b3862480ad00587598d3f3f7c3468443" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "abef0f196c08580f8b5e610071167e41" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "baef531919455c159b068c8ac8e2bca2" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "c7bd527be0fc59208eae631000d0ecf8" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "dfcf5fbc84955377b1024600afdb6128" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "f321c48d000a5cf88d144e6c8aaebf64" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "6d9d54a7a13e57769cf6ec91e63b4190" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "7f35a13f8af55631bc280df0fedf00be" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "ea6bcaed18645c6fa9110c68b0dcc8b1" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "d71f5acd57365612bf06f4c372bcbc13" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "3eb5fc8b515e5a90baaeb10bed7d68ca" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "c4d3fb129999531a9b59ecff95cfc1c2" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "a8dd9e808a765a04874c2853c7926ed4" + }, + "Middle": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "41909de6e59a56f8b4d3d3a4296c4cb5" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "278a7e2126435a46a04dec92fd50ff8a" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "32c42eb692605c0c8c2dc7df74a65f4e" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "22125fcec8aa5bc99fca8b86edbed2f0" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "03d5b5e01dcb54e5a3f3ce890cd27cee" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "f16a244ea7e2560db3991cb581149683" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "94e5f2630b7355c7b1b3ac75785bc5c6" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "0c0b84957f8158d98f5a8c6d4f3265e5" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "5bef9412aeaf582284dc8f9cca5a5129" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "d5cc4a79f94f515aa8f5fa59184a5c35" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "520ec12b50515918a664ae6f2ac6b702" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "a183fc37f47d55de8c5d2f2f27c779e0" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "85e4a1400e1455149687f608cd4a4d08" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "fa7d96abfc2351fbbac29047c3bb46cd" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "e9ada64ce4b454928de166adaa4344da" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "42a9c6f57d75550180138950e91e096e" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "decf460a32ce5f1a9f2d4b68329707eb" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "17936943738e57888f4c11a38570f25c" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "a22655ee843f5faf8c86daf55abad5f4" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "d3fda2f366ea5b60a284b945c21aeb17" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "acfb210c54605ebeb1d231aa09d98575" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "cd842b8d4e7359d3ac47e8b39ab25ea9" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "a9c61deb42ac5bb1b2c92fb5ee222db9" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "7e7b9ef4f3b350e9adf8091dff7e799f" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "6fcbf711e9c852ba91f7d846f6066978" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "46a99e1f2b3553099fbb046a6b7dd86d" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "a1b764756af559c0b850ee370d859c86" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "8bd7805b426b5e439abd732e9b503bb3" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "7f7face91df2506f9351f8c27915bc18" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "0f54dcace731576785322d02b68d2068" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "44923c7fe53c5fa39b632f999a6a951e" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "a947a1e52c3850e8ae81e12ef503c472" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "acb8e84f703d518dbf6c9c8b899766b0" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "a7d928b58dc152408e38fc7b6fdf6851" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "34016708d65655708157e432fad53f1f" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "b2617422a80e5d409d5e327bec8a5895" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "d386d2b7ca955caf8a4d2467d4c7603e" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "a7eee2a690c75ab7b7143d95b89d0678" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "90d5bb0917875c009a7ee80b61a00e24" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "cbecebd77ff953c5830fbab699a3e0b8" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "4abfea463f0359fcb387aa1538f12d52" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "ec7f8f340e005006bc966a96829f886d" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "3fdbbe5de45356d383be845b5deeceb8" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "4ad9208a44b555d5a80b819aaf97b2c8" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "f108af06fb3954d5a87fb97cfadba808" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "6ebb2556d17959ec9bfc1d796e1f34c6" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "c7ece3b4d7435fed910b23f7ea5360d1" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "77dca23345a358fa99636c734b4de8ac" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "a5628090d3465668adb6f1bc32bd2329" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "874c7f1345975e67b6a691d541cf46f1" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "cd3226582b7a5f6590d983a6ed661a7b" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "932e55cb1ea154a0ac35170f8c63cf01" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "d51481c8a5e05a1ca9481cd8fbaa6844" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "c47a888b0ff85426a98fdcc6763abe10" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "e262f30a38285d7da365a42960f440e2" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "965137f2801f50e292cfc673a3e145ed" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "85bc5781995852329c3f56ab07a00a39" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "a9931f9f76cd5c9aa7cac23c43d09e38" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "bb6213be75be5b33adf6ad5957bb64e9" + }, + "PassengerSide": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "31e4cea8ba6a5254bf1d1471402d0700" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "c931d21b21005b5c9f0eb9a732f9b2ef" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "0df596249cce5c77955e6938c0c9bea6" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "e8b52c64f1e957cbbbaf63b03c3dd9ef" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "c2fbe0340f245b4ab3b1269de65b4c2d" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "089f2ca3258e5f94871953539fe5acbc" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "bd9dfba052ab5b24aa0eaa35fa47914f" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "4c48af687fd15c7785b9c4c075dc457c" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "999c7466ce1f5354b4695626f3a2e935" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "5456d8e86ecb5cdf91b2bc08fe696d19" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "2701bc81fcc059b2b4ddc938407a503a" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "f13eb4ad4b7a51bbad88db50dae636d3" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "f62e56245db158508c9535a07474eed7" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "9545cb7d8a4c53b6a0c27aeacc2c229f" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "ae6a103cb748510e9383e2b72d6f2a00" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "ed71588a6ea1511cbd4578967a94f963" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "05a31ee58c97506485a19a2e0c213244" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "89f7a63fc4f65f05b7df4b74b232cc9f" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "bab527a608bd55d4b8a9d4b7d46c7037" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "121cb6ae3f4451df848f7809b313c392" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "c7156b61e1b45698ae98b5d30c31ade3" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "fd753377a2335b9fbda2cc2d29f826a6" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "3d09265704af56d59e5d80f92be3d66f" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "3ad476825c6b598e8c468c49f0aaec10" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "c4dfd494ffc95c4abdc49716a3b73c53" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "4ae8093ea56d5613a782b97c8b1be915" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "8e0c8a7fbb8a5cee933b3b1b50d4cbf1" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "2a19419f5c355aff9a41ee8c8ec434a0" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "5e8dd9ae1001569388bb4da677bdb377" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "cb08d335fa245f34b616f9c56fc529e0" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "c688f60d0f0650868ac32cba3d0c526e" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "10c691cb05f0581b8a6c4e764d81404d" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "73c59cba46725637bfa725a042713d0b" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "0ef641f1e4e75200879330a5de3d3315" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "811d841212295f92a7d070dac262ef84" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "8dfa254cccc059e881af97bce032cea9" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "d035fd8a2e855edfb90e7955b3bd8065" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "e5b1e2a73c1d530298be5aa2b92ceb6a" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "2bd34fa3b02d54b0822890750a57eaae" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "5486d882309558cd95a5d0742d9eea2a" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "90a53f3c0a585c7cb5b1565092e62539" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "3d328ade9dbf52e1bf8002caed74253f" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "d1a57d3e62725e51871433889877eb3e" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "5861078e66285792a4c5caa3158c3b93" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "ec27034136cd5e728c88c7ac0b87cf04" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "012004eeaa2250758c2fea329aec9dc2" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "a49e3b4e3047525ab1034e04896f7a73" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "1abb80c7ce615f73a2e0fb6583b09431" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "d4d0df3f6b5b51039847f748282d77ab" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "597dd13468fd5b57858c6bbbc911392e" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "8044c9338f5e5df1a036c91cc4d91423" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "1d7d951e97b45aa5824f4e959c68737b" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "3739036112535b9cbdad726a5f6e17a4" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "87edf3b9896659f6a87d05531c260a36" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "aaf6db1585b15365be9ac729c11688e3" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "12458c0216335477882e669e98330a1a" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "d7c6f91f09425d619cb93542ea55bed4" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "086f231720875bb5b4d5e2b8ed0092df" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "c9eef94c5e075ce088020f8a568c0183" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "7a420ddeac6f538eb3939bb4a242d136" + }, + "Row2": { + "children": { + "DriverSide": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "1ec1956a54ae5107a802b9ec2b215b41" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "215134942dea5de0bf542dc6b1f7aeb3" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "eb67d32eadf15c0085f6314546e86e20" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "c8fec973719351b3b17f3824653d685a" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "5eb73ac74d6a56ba9155cf16e145b9b4" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "65cf20c7effb5d159fd1099869cd0ebe" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "04cc8929b0f0509495b512a77b48afef" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "2e06cc24d15651a1a1616fc77a5ba23b" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "1b7a7b3e344d50cca118327668f35be5" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "b7ee83ec92ac5595b56557cecbce7fd2" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "916740f753715f3ea6c55b5284613f8e" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "67f772d705af5fac95ec768cf2bfe557" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "7ae50ab2fea25798adc27814579bd33b" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "2b4be8391f405e99a77ba65e3ea80aba" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "2bd4b50c13d7541db0a86a945c728849" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "ec3dc746a34752a1b55ac428579c3dfc" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "3752de2ef1d85781a6e0a20a6812b9fc" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "d7428179c70d576fb626a9a4bae4299e" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "a6b6158bc96c5ac98ad206193ff8b358" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "dfc0fb66d7c058b7925970667b284bea" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "a12121bc096c5224a14c2d8ab10ae88b" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "e4a46503b2945ab18ac1ad96f0517151" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "71b34d4141225b77bc232bd3a2efa86f" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "6a6313644782587d84fb04eb2c6397d8" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "4a5bd16967c65dd88eacf3e4ef8c071f" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "5e581a713efc5867b769f38e64a2f320" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "d45a563848b15928885bc7abb88a2d29" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "838457df1a415fd1a9575eda730a3fa0" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "802ef996df3850c299f5c88dff83ab13" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "9c6786e620f151a3a5eeb4b54395d2d8" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "eeaa79b8443c59c28ba4eed3d2cc1aa1" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "ebf3534d31615c55803dc8b48d92ca6f" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "7789f295ccf75ab2aa899d2b095bafd4" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "ed76c57d2d0c5a1d851a708fbc750a29" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "a5bcb578170d5442aad65c116302557c" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "a5e3d845386b51c7bd2b054b81025112" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "55b0756c450a5df2b1a4b0e54b27804b" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "c2654d9579905679b73ab44b6028b664" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "10092cdf11165ffdb1e5b616fa5f841a" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "aa341f93f6095298ba328a8f164452cd" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "bf7acae10ed55aa49a9579f7dd028a8d" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "bb516988089154dfaff8b5b376778d76" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "a313045c29195b9ab11141155dd7ce17" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "05e311e0669d5c128757475c8a83dc51" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "192b6f898aa35459baa670b58c59c48f" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "95928045f69d5bfe9ef1c3eb2afec32a" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "d4f3974ffcd75ba3a5f040f9e823fffe" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "aa71ac6246895ec1b6c74fd76ceecdda" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "c2915c2c175c5a3a862b99d9d2a9cc9a" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "65c26ab3824b5208bb21d7b8e2dd0124" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "854f8899693756e8840ee04c856dd12b" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "a10a2542fdc85bd59286d62f5af32210" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "e40ca46bfdeb5a82965c1d6b0fc06890" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "5d6d6db128965724a9e6f236d9532377" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "9ec6de29b168513f823be11c8f348e8c" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "f28ce1da77645fcd83aa72171ea172e8" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "7a5a1ffb9ab65c6a9ee4cb581077f015" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "68275a8560a95481a54b590ce458d0e9" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "a3956dd19f73577a9e118e5ee6f5a180" + }, + "Middle": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "cc06da5cab1e5b2e91d180c93c9e8eab" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "aa6d77c09158565787a2e418a1c9ea98" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "1a20e907d2515d669c8207a464685be8" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "c281162d58ed50ccbd90fa58a1478047" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "f675492be60e5a1f9e4ed760a2ee4c33" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "d24b223dcbb0534389c6c506126497e7" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "b391d00bfb8f5e699fa2332cb5991cdb" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "10538af050535035a3a20e6f702ce99f" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "4f54b32f4c85549b88acbe7cd19dcb20" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "41f7b225f1485deaba50f489d58656da" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "987682ae6e7a539897bab4d96458fe15" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "eb9a3ea623445fbab28e98ace9716f48" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "3b6a82f5f68f56bba88b7c5349e1a45d" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "1b0129f265225acba5f18aef705b9c54" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "5e2a819627075c7ea1a6fb2c6b7e550d" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "a4c37cf044a25eb9925b2278786b6cba" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "50e0eeee98e95db58b87aa11a9285492" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "d5c053d69d3457ecb3b87be15ccbfe1c" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "299d9f7fadef59859076cc783c2c6044" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "2b257368bdb556d087e8f13806003ab2" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "3216275b8b6e5ab2a5f739232945c139" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "6850b36bd23f57d682a3ef7bc4faab5d" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "c7e61a5fe6f35d0fb50a4cbb3c5d15e8" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "6c22e3d28bcd51ae97e01c8ace4dee74" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "76071549a729587fbdebb78ef360cad9" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "8a5674259c805a498c827cc4341b20c7" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "28a3b3bd920c552b8079c52743f10c22" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "2f81fa98e09b5cbdb462747053b61fe0" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "fbb8355fefd151b58936c7adbde8edd2" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "03390dc0feb256f4977f5aadcdef1663" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "703ec67285de5b3799ebd2e4f090e2eb" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "24535eb7418f5bd4ac16900ea925c3ee" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "11adccdb44b15e26b22252dd75810422" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "c67fc3cb95bf54ef988ec24b76db4221" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "dfcaac526f3952e0aa29caacf9cd796e" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "0618172eae735abdb3c40ed24481cb68" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "ea42e74c9ee55a188af9e0728428a991" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "aec4843ad9435b9785f0d2485d457c56" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "e993d306024f5d5d8f1ffe8897d76a38" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "bbeb896cdb5059ea83add870abb45c69" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "2078f41ff0505639aab472a9793e0767" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "84788fd7b9215fa78374c9ca196e5d2d" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "f9b78ecd6f065a59918c8fea51464f7a" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "36969412c2325b81906fc4a327a22c84" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "7507db75bf2d541e8eba802db5108fa7" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "0075b9cb31ae5a0c8172e966e6b40954" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "974123228c7a5fc0bbbc8b13063eb76e" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "736dd231351d54389a65e77e39e28816" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "f8ded34424025a93b04ee9d47f451b22" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "2cdec47cb7565df3934ed28acf1e05a3" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "07e2a1c17a1854abb180fdf2038ece03" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "9c2cd2dab1d65532b6b738966db8af41" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "dc5720a01af45e78a562d12a93db0fbd" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "fb25e00b59f1513eb66355fd254e3bbe" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "45ef8de577b55ff9b621aad08238edaf" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "473086da2fc4501f9b3bdbc94133eb92" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "c634c8cf644d57098ae8b5337dec44a9" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "30d7caa224e6589a882751be94fb7a33" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "a27650921e1e5ee0bd56562364c7dd6f" + }, + "PassengerSide": { + "children": { + "Airbag": { + "children": { + "IsDeployed": { + "datatype": "boolean", + "description": "Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.", + "type": "sensor", + "uuid": "a73fecde42375d07834a6670209228f4" + } + }, + "description": "Airbag signals.", + "type": "branch", + "uuid": "d16d61dc474f514fb10d1c8ecbeb9179" + }, + "Backrest": { + "children": { + "Lumbar": { + "children": { + "Height": { + "datatype": "uint8", + "description": "Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "a8bcc5c7172e545db2b7d56611d5ab6a" + }, + "Support": { + "datatype": "float", + "description": "Lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "b29e1fd9898e5981807d74caa94dd16a" + } + }, + "description": "Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.", + "type": "branch", + "uuid": "4eb3938a709f5e4dbdefeada15a4ddb9" + }, + "Recline": { + "comment": "Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.", + "datatype": "float", + "description": "Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.", + "type": "actuator", + "unit": "degrees", + "uuid": "6e3669fe31425539a49a2235c11bd5b5" + }, + "SideBolster": { + "children": { + "Support": { + "datatype": "float", + "description": "Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "a97af5b193b1521e90eb0fd33472ab38" + } + }, + "description": "Backrest side bolster (lumbar side support) settings.", + "type": "branch", + "uuid": "7e9c0a02e46b57879a2e3a0e66f02137" + } + }, + "description": "Describes signals related to the backrest of the seat.", + "type": "branch", + "uuid": "ea5285b1124c527681e1a45c51429bdb" + }, + "Headrest": { + "children": { + "Angle": { + "datatype": "float", + "description": "Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.", + "type": "actuator", + "unit": "degrees", + "uuid": "13f6bb21aa64545c97257c2b614622cb" + }, + "Height": { + "datatype": "uint8", + "description": "Position of headrest relative to movable range of the head rest. 0 = Bottommost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "a82bd9a0a9745ef68dae31474a095294" + } + }, + "description": "Headrest settings.", + "type": "branch", + "uuid": "a5449c4df2955aac981992fcbb581b84" + }, + "Heating": { + "datatype": "int8", + "deprecation": "v4.1 replaced with HeatingCooling", + "description": "Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "4c0ab40eaf745f12a09dc2c5acbedae9" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "61dbad56f18e5ecba04d189ebd943770" + }, + "Height": { + "datatype": "uint16", + "description": "Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "b1ca33bf7f4455ada6be941b92b824da" + }, + "IsBelted": { + "datatype": "boolean", + "description": "Is the belt engaged.", + "type": "sensor", + "uuid": "c7d63d6c97845df5b602791f700968f7" + }, + "IsOccupied": { + "datatype": "boolean", + "description": "Does the seat have a passenger in it.", + "type": "sensor", + "uuid": "516d511279a75513a53ca57adade3a99" + }, + "Massage": { + "datatype": "uint8", + "description": "Seat massage level. 0 = off. 100 = max massage.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "bd9ec382d92e52ae826cb532ba13e11f" + }, + "Occupant": { + "children": { + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "3acca59e11b95e92945ac8ea568a3213" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "9fc55976f51c552fac70632a7e61b1f4" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "d18aded275a454068904eb5371a69f4d" + } + }, + "description": "Occupant data.", + "type": "branch", + "uuid": "0cd5c8c3bd3f55ee8cc4c876cad0b75f" + }, + "Position": { + "datatype": "uint16", + "description": "Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "07a8fe28cc1850dc96458e827a9ebeb5" + }, + "SeatBeltHeight": { + "datatype": "uint16", + "description": "Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.", + "type": "actuator", + "unit": "mm", + "uuid": "9648e0ea501b583a86d211d09a953b14" + }, + "Seating": { + "children": { + "Length": { + "datatype": "uint16", + "description": "Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).", + "min": 0, + "type": "actuator", + "unit": "mm", + "uuid": "68e28b1aadcf5c3db177943af27a9098" + } + }, + "comment": "Seating is here considered as the part of the seat that supports the thighs. Additional cushions (if any) for support of lower legs is not covered by this branch.", + "description": "Describes signals related to the seat bottom of the seat.", + "type": "branch", + "uuid": "ef3307b33fae500b837da872d2fad454" + }, + "Switch": { + "children": { + "Backrest": { + "children": { + "IsReclineBackwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline backward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "e9591a8c0ef551dd8d2da760bf96045a" + }, + "IsReclineForwardEngaged": { + "datatype": "boolean", + "description": "Backrest recline forward switch engaged (SingleSeat.Backrest.Recline).", + "type": "actuator", + "uuid": "9fca194c445257049d2ba0bc5d134e12" + }, + "Lumbar": { + "children": { + "IsDownEngaged": { + "datatype": "boolean", + "description": "Lumbar down switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "32defc92edd159bc96939d399202d4ca" + }, + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "54dd7359d76f5caeb221807f3c9f05d6" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more lumbar support engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "bc763cfcd7fd511cbdc8ae2cc64a0ac7" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Lumbar up switch engaged (SingleSeat.Backrest.Lumbar.Support).", + "type": "actuator", + "uuid": "8bc621f1041052c7abf17124cb6dc270" + } + }, + "description": "Switches for SingleSeat.Backrest.Lumbar.", + "type": "branch", + "uuid": "ee7310791c475bcb946bd7074fb375af" + }, + "SideBolster": { + "children": { + "IsLessSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for less side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "ccdd90ab2f3152be80c64b4500c78a8b" + }, + "IsMoreSupportEngaged": { + "datatype": "boolean", + "description": "Is switch for more side bolster support engaged (SingleSeat.Backrest.SideBolster.Support).", + "type": "actuator", + "uuid": "cd893883ea4857b8a42e02dccd7c48d6" + } + }, + "description": "Switches for SingleSeat.Backrest.SideBolster.", + "type": "branch", + "uuid": "a69bfc99fd21564b9d6e06504063f3f0" + } + }, + "description": "Describes switches related to the backrest of the seat.", + "type": "branch", + "uuid": "9417cfbf4a08528f9a6bb6de95dd53a3" + }, + "Headrest": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Head rest backward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "0f6c3fada9695cfc89309bca1941d0f5" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Head rest down switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "263c5edb7c7c515581a853327df34215" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Head rest forward switch engaged (SingleSeat.Headrest.Angle).", + "type": "actuator", + "uuid": "d86793d827f6545e97e03d1b8363236d" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Head rest up switch engaged (SingleSeat.Headrest.Height).", + "type": "actuator", + "uuid": "b77c09fbcec95c5fb04a6d14af5b9f94" + } + }, + "description": "Switches for SingleSeat.Headrest.", + "type": "branch", + "uuid": "0db2d43128845f65a029915777d30ac9" + }, + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Seat backward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "cefaab13d761577f86c35403460a83de" + }, + "IsCoolerEngaged": { + "datatype": "boolean", + "description": "Cooler switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "119275e2b8b9579fbaf45f419f01879b" + }, + "IsDownEngaged": { + "datatype": "boolean", + "description": "Seat down switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "00793becfbf35a1f9e22e62c0ee23382" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Seat forward switch engaged (SingleSeat.Position).", + "type": "actuator", + "uuid": "6c4cb5e0ab59597db55b22918510c1a1" + }, + "IsTiltBackwardEngaged": { + "datatype": "boolean", + "description": "Tilt backward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "d6a316b6a3455e9da8769144aece2a74" + }, + "IsTiltForwardEngaged": { + "datatype": "boolean", + "description": "Tilt forward switch engaged (SingleSeat.Tilt).", + "type": "actuator", + "uuid": "b601c11e3b525dd19933adaf807bc5c1" + }, + "IsUpEngaged": { + "datatype": "boolean", + "description": "Seat up switch engaged (SingleSeat.Height).", + "type": "actuator", + "uuid": "0f1060fee7e05b2b91cc51d5a9b3da74" + }, + "IsWarmerEngaged": { + "datatype": "boolean", + "description": "Warmer switch for Seat heater (SingleSeat.Heating).", + "type": "actuator", + "uuid": "a6ae083174c65a9599901c00819694f8" + }, + "Massage": { + "children": { + "IsDecreaseEngaged": { + "datatype": "boolean", + "description": "Decrease massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "399c59f3d97151499a9005b329368baf" + }, + "IsIncreaseEngaged": { + "datatype": "boolean", + "description": "Increase massage level switch engaged (SingleSeat.Massage).", + "type": "actuator", + "uuid": "ac7635aa2fc7578aae97d8a253e9a303" + } + }, + "description": "Switches for SingleSeat.Massage.", + "type": "branch", + "uuid": "bd644892090f5bd9a4b89281331cbe4d" + }, + "Seating": { + "children": { + "IsBackwardEngaged": { + "datatype": "boolean", + "description": "Is switch to decrease seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "ed70ebf0a7065894af1ac26e409d2408" + }, + "IsForwardEngaged": { + "datatype": "boolean", + "description": "Is switch to increase seating length engaged (SingleSeat.Seating.Length).", + "type": "actuator", + "uuid": "ef90f29f5ab65b0cbf271a7e06fa848d" + } + }, + "description": "Describes switches related to the seating of the seat.", + "type": "branch", + "uuid": "0b6331463cf65b44a5709705a1e55d7c" + } + }, + "description": "Seat switch signals", + "type": "branch", + "uuid": "dc15316849e75f6d9995d428eee65421" + }, + "Tilt": { + "comment": "In VSS it is assumed that tilting a seat affects both seating (seat bottom) and backrest, i.e. the angle between seating and backrest will not be affected when changing Tilt.", + "datatype": "float", + "description": "Tilting of seat (seating and backrest) relative to vehicle x-axis. 0 = seat bottom is flat, seat bottom and vehicle x-axis are parallel. Positive degrees = seat tilted backwards, seat x-axis tilted upward, seat z-axis is tilted backward.", + "type": "actuator", + "unit": "degrees", + "uuid": "646c179da57a59c39ca9777a4808980b" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "8cd32cb3e2d157b39af57d9cfe2e128c" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "8c3aaf015ef8595cb45d9461a9c1195f" + } + }, + "description": "All seats.", + "type": "branch", + "uuid": "b0b253106b2851e3bb5c71ae3b09f09d" + }, + "SeatPosCount": { + "comment": "Default value corresponds to two seats in front row and 3 seats in second row.", + "datatype": "uint8[]", + "default": [ + 2, + 3 + ], + "description": "Number of seats across each row from the front to the rear.", + "type": "attribute", + "uuid": "8dd40ecd47ab51c79ed9c74ae4296d7e" + }, + "SeatRowCount": { + "comment": "Default value corresponds to two rows of seats.", + "datatype": "uint8", + "default": 2, + "description": "Number of seat rows in vehicle.", + "type": "attribute", + "uuid": "1002a7a4a954581b9cbc72fa438c5292" + }, + "Sunroof": { + "children": { + "Position": { + "datatype": "int8", + "description": "Sunroof position. 0 = Fully closed 100 = Fully opened. -100 = Fully tilted.", + "max": 100, + "min": -100, + "type": "sensor", + "unit": "percent", + "uuid": "ab598697f1c852eda4df9ed62a956d17" + }, + "Shade": { + "children": { + "IsOpen": { + "datatype": "boolean", + "description": "Is item open or closed? True = Fully or partially open. False = Fully closed.", + "type": "actuator", + "uuid": "f6c7020849fe5431b648a8a283d9751b" + }, + "Position": { + "comment": "Relationship between Open/Close and Start/End position is item dependent.", + "datatype": "uint8", + "description": "Item position. 0 = Start position 100 = End position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "5f78c2a631b75abc88744f9bad277f5a" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or blind.", + "type": "actuator", + "uuid": "3836077128c65381b01e74a1a8be1c40" + } + }, + "description": "Sun roof shade status. Open = Retracted, Closed = Deployed. Start position for Sunroof.Shade is Open/Retracted.", + "type": "branch", + "uuid": "eeaae5977adb5683b16f405993405b2e" + }, + "Switch": { + "allowed": [ + "INACTIVE", + "CLOSE", + "OPEN", + "ONE_SHOT_CLOSE", + "ONE_SHOT_OPEN", + "TILT_UP", + "TILT_DOWN" + ], + "datatype": "string", + "description": "Switch controlling sliding action such as window, sunroof, or shade.", + "type": "actuator", + "uuid": "88c39afd45a25ea2b474ff581e1fb138" + } + }, + "description": "Sun roof status.", + "type": "branch", + "uuid": "8ff70db05c065e3eb530082a0b6983cf" + } + }, + "description": "All in-cabin components, including doors.", + "type": "branch", + "uuid": "1a94457b237f5e8eb3c77c0532ac88d7" + }, + "CargoVolume": { + "datatype": "float", + "description": "The available volume for cargo or luggage. For automobiles, this is usually the trunk volume.", + "min": 0, + "type": "attribute", + "unit": "l", + "uuid": "789feabca2e8560ea3c1852371b4096e" + }, + "Chassis": { + "children": { + "Accelerator": { + "children": { + "PedalPosition": { + "datatype": "uint8", + "description": "Accelerator pedal position as percent. 0 = Not depressed. 100 = Fully depressed.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "2fabd8b61db45f62b4e97e7a612b4a73" + } + }, + "description": "Accelerator signals", + "type": "branch", + "uuid": "3b2b562086a45eb29c55186f3b710621" + }, + "Axle": { + "children": { + "Row1": { + "children": { + "AxleWidth": { + "comment": "Corresponds to SAE J1100-2009 W113.", + "datatype": "uint16", + "description": "The lateral distance between the wheel mounting faces, measured along the spindle axis.", + "type": "attribute", + "unit": "mm", + "uuid": "4458487c2a4e51efa3762349188ce2a1" + }, + "SteeringAngle": { + "comment": "Single track two-axle model steering angle refers to the angle that a centrally mounted wheel would have.", + "datatype": "float", + "description": "Single track two-axle model steering angle. Angle according to ISO 8855. Positive = degrees to the left. Negative = degrees to the right.", + "type": "sensor", + "unit": "degrees", + "uuid": "91310e9ef88450c68791fbb07d83f104" + }, + "TireAspectRatio": { + "datatype": "uint8", + "description": "Aspect ratio between tire section height and tire section width, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "percent", + "uuid": "716fec24167e5c36b2b97daaf091f911" + }, + "TireDiameter": { + "datatype": "float", + "description": "Outer diameter of tires, in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "ed9f037c1b5d53c78c90b71179db1f4f" + }, + "TireWidth": { + "datatype": "uint16", + "description": "Nominal section width of tires, in mm, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "mm", + "uuid": "3444d8773c215cd7a076d688eb7f1afc" + }, + "TrackWidth": { + "comment": "Corresponds to SAE J1100-2009 W102.", + "datatype": "uint16", + "description": "The lateral distance between the centers of the wheels, measured along the spindle, or axle axis. If there are dual rear wheels, measure from the midway points between the inner and outer tires.", + "type": "attribute", + "unit": "mm", + "uuid": "d854bb9c72615e2896c1ed084db515fa" + }, + "TreadWidth": { + "comment": "Corresponds to SAE J1100-2009 W101.", + "datatype": "uint16", + "description": "The lateral distance between the centerlines of the base tires at ground, including camber angle. If there are dual rear wheels, measure from the midway points between the inner and outer tires.", + "type": "attribute", + "unit": "mm", + "uuid": "0851716e0b635392b6bb64cb478e82b0" + }, + "Wheel": { + "children": { + "Left": { + "children": { + "Brake": { + "children": { + "FluidLevel": { + "datatype": "uint8", + "description": "Brake fluid level as percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "63aa9c4973ef50b18bd7214c9f2634c5" + }, + "IsBrakesWorn": { + "datatype": "boolean", + "description": "Brake pad wear status. True = Worn. False = Not Worn.", + "type": "sensor", + "uuid": "901771088eb35dec9e69b56a8cb3e8f5" + }, + "IsFluidLevelLow": { + "datatype": "boolean", + "description": "Brake fluid level status. True = Brake fluid level low. False = Brake fluid level OK.", + "type": "sensor", + "uuid": "713da56818e55714ac441e10870b3753" + }, + "PadWear": { + "datatype": "uint8", + "description": "Brake pad wear as percent. 0 = No Wear. 100 = Worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "b4ed36f8143d512fadaca3e641739ee2" + } + }, + "description": "Brake signals for wheel", + "type": "branch", + "uuid": "162dab13d5815ec4bc22888b0bc59cbf" + }, + "Speed": { + "datatype": "float", + "description": "Rotational speed of a vehicle's wheel.", + "type": "sensor", + "unit": "km/h", + "uuid": "47897f20b2745b6aa2d0f76f1ecf824a" + }, + "Tire": { + "children": { + "IsPressureLow": { + "datatype": "boolean", + "description": "Tire Pressure Status. True = Low tire pressure. False = Good tire pressure.", + "type": "sensor", + "uuid": "4088315cfaa05c28b51c3d3462c65339" + }, + "Pressure": { + "datatype": "uint16", + "description": "Tire pressure in kilo-Pascal.", + "type": "sensor", + "unit": "kPa", + "uuid": "9fa3f176fd975d28a68f70c7d72e370f" + }, + "Temperature": { + "datatype": "float", + "description": "Tire temperature in Celsius.", + "type": "sensor", + "unit": "celsius", + "uuid": "093d8fb119755f6bafa979e4eae201a0" + } + }, + "description": "Tire signals for wheel.", + "type": "branch", + "uuid": "17c60ec3c02054b4951c975156375d9a" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "0cd478c6e72b55c6be6d3d9df9624545" + }, + "Right": { + "children": { + "Brake": { + "children": { + "FluidLevel": { + "datatype": "uint8", + "description": "Brake fluid level as percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "386bfddee4605e419d59755a51835650" + }, + "IsBrakesWorn": { + "datatype": "boolean", + "description": "Brake pad wear status. True = Worn. False = Not Worn.", + "type": "sensor", + "uuid": "4c669b71c91e57dd8fd804ee68174b9c" + }, + "IsFluidLevelLow": { + "datatype": "boolean", + "description": "Brake fluid level status. True = Brake fluid level low. False = Brake fluid level OK.", + "type": "sensor", + "uuid": "bb2057bc31c25beda1da0610ca62bd51" + }, + "PadWear": { + "datatype": "uint8", + "description": "Brake pad wear as percent. 0 = No Wear. 100 = Worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "f3c53c8c5628527a8501e12778dae6c7" + } + }, + "description": "Brake signals for wheel", + "type": "branch", + "uuid": "f334a45b92215f86b4ecadbd82c8b249" + }, + "Speed": { + "datatype": "float", + "description": "Rotational speed of a vehicle's wheel.", + "type": "sensor", + "unit": "km/h", + "uuid": "c288d064d56e53bfb94cef8670872587" + }, + "Tire": { + "children": { + "IsPressureLow": { + "datatype": "boolean", + "description": "Tire Pressure Status. True = Low tire pressure. False = Good tire pressure.", + "type": "sensor", + "uuid": "93fa1125894e53259af5b7e1d991c8da" + }, + "Pressure": { + "datatype": "uint16", + "description": "Tire pressure in kilo-Pascal.", + "type": "sensor", + "unit": "kPa", + "uuid": "ea8038b63e6650ffb1a20539e915064a" + }, + "Temperature": { + "datatype": "float", + "description": "Tire temperature in Celsius.", + "type": "sensor", + "unit": "celsius", + "uuid": "58d4cee188d353d7996e855d48bb92df" + } + }, + "description": "Tire signals for wheel.", + "type": "branch", + "uuid": "660f90ae8f14594cb6e97d000c1985a1" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "c7ae1f1787ec502d8aea41802dc9a203" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "8ed02c02eee0502ba6d94a5d5f1fb789" + }, + "WheelCount": { + "datatype": "uint8", + "description": "Number of wheels on the axle", + "type": "attribute", + "uuid": "7232effafb7d5c908a9bafe1cef2ff3e" + }, + "WheelDiameter": { + "datatype": "float", + "description": "Diameter of wheels (rims without tires), in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "60d4b948ae8a5485bd77c45e1f648c13" + }, + "WheelWidth": { + "datatype": "float", + "description": "Width of wheels (rims without tires), in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "5b92bdab1e035ff4ba000330e20f826b" + } + }, + "description": "Axle signals", + "type": "branch", + "uuid": "d7e93a94af0752aaab36819f6be4f67a" + }, + "Row2": { + "children": { + "AxleWidth": { + "comment": "Corresponds to SAE J1100-2009 W113.", + "datatype": "uint16", + "description": "The lateral distance between the wheel mounting faces, measured along the spindle axis.", + "type": "attribute", + "unit": "mm", + "uuid": "99860d78f2b25ae0b420660b76f933f0" + }, + "SteeringAngle": { + "comment": "Single track two-axle model steering angle refers to the angle that a centrally mounted wheel would have.", + "datatype": "float", + "description": "Single track two-axle model steering angle. Angle according to ISO 8855. Positive = degrees to the left. Negative = degrees to the right.", + "type": "sensor", + "unit": "degrees", + "uuid": "bf1960525e725d2ca145ce12ba939ea3" + }, + "TireAspectRatio": { + "datatype": "uint8", + "description": "Aspect ratio between tire section height and tire section width, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "percent", + "uuid": "9b4515273bf1554dab746212db05d352" + }, + "TireDiameter": { + "datatype": "float", + "description": "Outer diameter of tires, in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "4dc46ee7fe0a5240a6eb67f9bf43a1ea" + }, + "TireWidth": { + "datatype": "uint16", + "description": "Nominal section width of tires, in mm, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "mm", + "uuid": "76a9071697b25fb8ab42393dfb77f0ef" + }, + "TrackWidth": { + "comment": "Corresponds to SAE J1100-2009 W102.", + "datatype": "uint16", + "description": "The lateral distance between the centers of the wheels, measured along the spindle, or axle axis. If there are dual rear wheels, measure from the midway points between the inner and outer tires.", + "type": "attribute", + "unit": "mm", + "uuid": "b6c5ba52f1985f179c9346edbabe2f9b" + }, + "TreadWidth": { + "comment": "Corresponds to SAE J1100-2009 W101.", + "datatype": "uint16", + "description": "The lateral distance between the centerlines of the base tires at ground, including camber angle. If there are dual rear wheels, measure from the midway points between the inner and outer tires.", + "type": "attribute", + "unit": "mm", + "uuid": "bdfd2fb7c3b25091a48f873462466f84" + }, + "Wheel": { + "children": { + "Left": { + "children": { + "Brake": { + "children": { + "FluidLevel": { + "datatype": "uint8", + "description": "Brake fluid level as percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "4b0d4f80b8855973a55ffee80fdfc4ba" + }, + "IsBrakesWorn": { + "datatype": "boolean", + "description": "Brake pad wear status. True = Worn. False = Not Worn.", + "type": "sensor", + "uuid": "3d9bae5bf0705de99789ecea26b99a5c" + }, + "IsFluidLevelLow": { + "datatype": "boolean", + "description": "Brake fluid level status. True = Brake fluid level low. False = Brake fluid level OK.", + "type": "sensor", + "uuid": "01f57161b0bf539fad1d2bfa9d9a9fc4" + }, + "PadWear": { + "datatype": "uint8", + "description": "Brake pad wear as percent. 0 = No Wear. 100 = Worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "8eff72d583015e1e94eab98bf8f0497e" + } + }, + "description": "Brake signals for wheel", + "type": "branch", + "uuid": "774d0a5771d35975872870cf71ea1487" + }, + "Speed": { + "datatype": "float", + "description": "Rotational speed of a vehicle's wheel.", + "type": "sensor", + "unit": "km/h", + "uuid": "427abdd04fc355769697d998a47d3f58" + }, + "Tire": { + "children": { + "IsPressureLow": { + "datatype": "boolean", + "description": "Tire Pressure Status. True = Low tire pressure. False = Good tire pressure.", + "type": "sensor", + "uuid": "d895b1e23a4f59ec92735fc317e44769" + }, + "Pressure": { + "datatype": "uint16", + "description": "Tire pressure in kilo-Pascal.", + "type": "sensor", + "unit": "kPa", + "uuid": "ea414012c36e54fc84ec1d421f370ddd" + }, + "Temperature": { + "datatype": "float", + "description": "Tire temperature in Celsius.", + "type": "sensor", + "unit": "celsius", + "uuid": "06ab6b3fe7bb5f7c9e2e104ee0e7cfd5" + } + }, + "description": "Tire signals for wheel.", + "type": "branch", + "uuid": "edfee87117dc5a6f9d970167f26ec090" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "4c32a1c722a45ea09a52c389e8a8a618" + }, + "Right": { + "children": { + "Brake": { + "children": { + "FluidLevel": { + "datatype": "uint8", + "description": "Brake fluid level as percent. 0 = Empty. 100 = Full.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "83e5e261302d5ab38c9ee4dddc18c8ae" + }, + "IsBrakesWorn": { + "datatype": "boolean", + "description": "Brake pad wear status. True = Worn. False = Not Worn.", + "type": "sensor", + "uuid": "9b5963e98a9c5b229a61df76ef5c86e0" + }, + "IsFluidLevelLow": { + "datatype": "boolean", + "description": "Brake fluid level status. True = Brake fluid level low. False = Brake fluid level OK.", + "type": "sensor", + "uuid": "727823c7e0d551f48f26a5dd4f0578bd" + }, + "PadWear": { + "datatype": "uint8", + "description": "Brake pad wear as percent. 0 = No Wear. 100 = Worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "63a564bca18a5b1fabd7d3cff1af0e6d" + } + }, + "description": "Brake signals for wheel", + "type": "branch", + "uuid": "5c33ec4bd8a15d3590f59e7257bf4d25" + }, + "Speed": { + "datatype": "float", + "description": "Rotational speed of a vehicle's wheel.", + "type": "sensor", + "unit": "km/h", + "uuid": "85b41a82f4775fcea57dcc6218fb6d7b" + }, + "Tire": { + "children": { + "IsPressureLow": { + "datatype": "boolean", + "description": "Tire Pressure Status. True = Low tire pressure. False = Good tire pressure.", + "type": "sensor", + "uuid": "da2f63312a455d92abd5edc405f01903" + }, + "Pressure": { + "datatype": "uint16", + "description": "Tire pressure in kilo-Pascal.", + "type": "sensor", + "unit": "kPa", + "uuid": "0cd3dd4be36c5fcda49d6360556ba7c8" + }, + "Temperature": { + "datatype": "float", + "description": "Tire temperature in Celsius.", + "type": "sensor", + "unit": "celsius", + "uuid": "7c08b5778bc05265bb8d4e08fdca29cf" + } + }, + "description": "Tire signals for wheel.", + "type": "branch", + "uuid": "d855fe9ffb4e52be83ebfc7967c1c3ee" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "f59f6ce66b1454498f5dc71be581732a" + } + }, + "description": "Wheel signals for axle", + "type": "branch", + "uuid": "87b119ed6de254159877b24047fd3026" + }, + "WheelCount": { + "datatype": "uint8", + "description": "Number of wheels on the axle", + "type": "attribute", + "uuid": "ac6fe103410153d382306426d14213ab" + }, + "WheelDiameter": { + "datatype": "float", + "description": "Diameter of wheels (rims without tires), in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "af27b1d18a5455e593692a9929909bb9" + }, + "WheelWidth": { + "datatype": "float", + "description": "Width of wheels (rims without tires), in inches, as per ETRTO / TRA standard.", + "type": "attribute", + "unit": "inch", + "uuid": "889d279053c051979ebbe301bacac206" + } + }, + "description": "Axle signals", + "type": "branch", + "uuid": "8ef77768446659b6b5020a06c7b23c8b" + } + }, + "description": "Axle signals", + "type": "branch", + "uuid": "0a3ebde7efa85c04ac6c29b5676fec5d" + }, + "AxleCount": { + "datatype": "uint8", + "default": 2, + "description": "Number of axles on the vehicle", + "type": "attribute", + "uuid": "86d084c9148d5f22b5402a030413ed79" + }, + "Brake": { + "children": { + "IsDriverEmergencyBrakingDetected": { + "comment": "Detection of emergency braking can trigger Emergency Brake Assist (EBA) to engage.", + "datatype": "boolean", + "description": "Indicates if emergency braking initiated by driver is detected. True = Emergency braking detected. False = Emergency braking not detected.", + "type": "sensor", + "uuid": "0d462892aeac5062a62ee7d07306f6a6" + }, + "PedalPosition": { + "datatype": "uint8", + "description": "Brake pedal position as percent. 0 = Not depressed. 100 = Fully depressed.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "0477d3a4a831564ea473976cf34374f2" + } + }, + "description": "Brake system signals", + "type": "branch", + "uuid": "38df972e5c6b558e93839a5e97238c5a" + }, + "ParkingBrake": { + "children": { + "IsAutoApplyEnabled": { + "datatype": "boolean", + "description": "Indicates if parking brake will be automatically engaged when the vehicle engine is turned off.", + "type": "actuator", + "uuid": "26c694c9a1c75b699cc8c1dd2986ab90" + }, + "IsEngaged": { + "datatype": "boolean", + "description": "Parking brake status. True = Parking Brake is Engaged. False = Parking Brake is not Engaged.", + "type": "actuator", + "uuid": "faa7f94e6a5555c6b2d62e3328520ce0" + } + }, + "description": "Parking brake signals", + "type": "branch", + "uuid": "3849d42292f4551590fa4bf716fc90f7" + }, + "SteeringWheel": { + "children": { + "Angle": { + "datatype": "int16", + "dbc2vss": { + "interval_ms": 100, + "signal": "SteeringAngle129", + "transform": { + "math": "floor(x+0.5)" + } + }, + "description": "Steering wheel angle. Positive = degrees to the left. Negative = degrees to the right.", + "type": "sensor", + "unit": "degrees", + "uuid": "92cd3b3d37585b2291806fe5127d9393" + }, + "Extension": { + "datatype": "uint8", + "description": "Steering wheel column extension from dashboard. 0 = Closest to dashboard. 100 = Furthest from dashboard.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "6a84cc3604fc5960a1fb384fe63fae72" + }, + "HeatingCooling": { + "datatype": "int8", + "description": "Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "74e1f4888a9a5dc6b3bbdda9ecafef39" + }, + "Tilt": { + "datatype": "uint8", + "description": "Steering wheel column tilt. 0 = Lowest position. 100 = Highest position.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "33e979769f91521d8080384447d06c00" + } + }, + "description": "Steering wheel signals", + "type": "branch", + "uuid": "8c759072791e5986ac4efe9df0c2b751" + }, + "Wheelbase": { + "datatype": "uint16", + "default": 0, + "description": "Overall wheelbase, in mm.", + "type": "attribute", + "unit": "mm", + "uuid": "11677e0433935dc7aa9c1806c96a8a6b" + } + }, + "description": "All data concerning steering, suspension, wheels, and brakes.", + "type": "branch", + "uuid": "87d260d635425da0a4ebd62bc4e5c313" + }, + "Connectivity": { + "children": { + "IsConnectivityAvailable": { + "comment": "This signal can be used by onboard vehicle services to decide what features that shall be offered to the driver, for example disable the 'check for update' button if vehicle does not have connectivity.", + "datatype": "boolean", + "description": "Indicates if connectivity between vehicle and cloud is available. True = Connectivity is available. False = Connectivity is not available.", + "type": "sensor", + "uuid": "b6d11be2a6565996b68ffb07a96595a7" + } + }, + "description": "Connectivity data.", + "type": "branch", + "uuid": "89c267fccea35f3da9871cca2b4dc4df" + }, + "CurbWeight": { + "datatype": "uint16", + "default": 0, + "description": "Vehicle curb weight, including all liquids and full tank of fuel, but no cargo or passengers.", + "type": "attribute", + "unit": "kg", + "uuid": "69ac6ca079de59d19737f75e4c5c4342" + }, + "CurrentLocation": { + "children": { + "Altitude": { + "datatype": "double", + "description": "Current altitude relative to WGS 84 reference ellipsoid, as measured at the position of GNSS receiver antenna.", + "type": "sensor", + "unit": "m", + "uuid": "d3ead98ab0b751c1a5b5dd5bc0e5e216" + }, + "GNSSReceiver": { + "children": { + "FixType": { + "allowed": [ + "NONE", + "TWO_D", + "TWO_D_SATELLITE_BASED_AUGMENTATION", + "TWO_D_GROUND_BASED_AUGMENTATION", + "TWO_D_SATELLITE_AND_GROUND_BASED_AUGMENTATION", + "THREE_D", + "THREE_D_SATELLITE_BASED_AUGMENTATION", + "THREE_D_GROUND_BASED_AUGMENTATION", + "THREE_D_SATELLITE_AND_GROUND_BASED_AUGMENTATION" + ], + "datatype": "string", + "description": "Fix status of GNSS receiver.", + "type": "sensor", + "uuid": "52853b33d4605608bd0ae50595c69309" + }, + "MountingPosition": { + "children": { + "X": { + "datatype": "int16", + "description": "Mounting position of GNSS receiver antenna relative to vehicle coordinate system. Axis definitions according to ISO 8855. Origin at center of (first) rear axle. Positive values = forward of rear axle. Negative values = backward of rear axle.", + "type": "attribute", + "unit": "mm", + "uuid": "f23d40f3556b5676a0d1e3def037197f" + }, + "Y": { + "datatype": "int16", + "description": "Mounting position of GNSS receiver antenna relative to vehicle coordinate system. Axis definitions according to ISO 8855. Origin at center of (first) rear axle. Positive values = left of origin. Negative values = right of origin. Left/Right is as seen from driver perspective, i.e. by a person looking forward.", + "type": "attribute", + "unit": "mm", + "uuid": "16745ae827c0527ea2c48c20f0c146f1" + }, + "Z": { + "datatype": "int16", + "description": "Mounting position of GNSS receiver on Z-axis. Axis definitions according to ISO 8855. Origin at center of (first) rear axle. Positive values = above center of rear axle. Negative values = below center of rear axle.", + "type": "attribute", + "unit": "mm", + "uuid": "a4d04e86518e5c5ab60e5e4face35756" + } + }, + "description": "Mounting position of GNSS receiver antenna relative to vehicle coordinate system. Axis definitions according to ISO 8855. Origin at center of (first) rear axle.", + "type": "branch", + "uuid": "5c0887bce6fb5eb79402baaccb203e61" + } + }, + "description": "Information on the GNSS receiver used for determining current location.", + "type": "branch", + "uuid": "b1bea5d88662539a8cff6f8fe4974740" + }, + "Heading": { + "datatype": "double", + "description": "Current heading relative to geographic north. 0 = North, 90 = East, 180 = South, 270 = West.", + "max": 360, + "min": 0, + "type": "sensor", + "unit": "degrees", + "uuid": "2a8f0afa2b315943aa001278875ce012" + }, + "HorizontalAccuracy": { + "datatype": "double", + "description": "Accuracy of the latitude and longitude coordinates.", + "type": "sensor", + "unit": "m", + "uuid": "bf25ef243f0c5f839f7ef874f9c57fda" + }, + "Latitude": { + "datatype": "double", + "description": "Current latitude of vehicle in WGS 84 geodetic coordinates, as measured at the position of GNSS receiver antenna.", + "max": 90, + "min": -90, + "type": "sensor", + "unit": "degrees", + "uuid": "08933c5a445055df80bea15fbfa07f1c" + }, + "Longitude": { + "datatype": "double", + "description": "Current longitude of vehicle in WGS 84 geodetic coordinates, as measured at the position of GNSS receiver antenna.", + "max": 180, + "min": -180, + "type": "sensor", + "unit": "degrees", + "uuid": "5246f2ec5fea550cb1b36f110854cfbb" + }, + "Timestamp": { + "datatype": "string", + "description": "Timestamp from GNSS system for current location, formatted according to ISO 8601 with UTC time zone.", + "type": "sensor", + "uuid": "094aeff73be05c08905690be0e82a438" + }, + "VerticalAccuracy": { + "datatype": "double", + "description": "Accuracy of altitude.", + "type": "sensor", + "unit": "m", + "uuid": "8f54055bce9e5e8e97fb6051582707ab" + } + }, + "description": "The current latitude and longitude of the vehicle.", + "type": "branch", + "uuid": "24777bd485f15fb69550ae0520c40ad5" + }, + "CurrentOverallWeight": { + "datatype": "uint16", + "description": "Current overall Vehicle weight. Including passengers, cargo and other load inside the car.", + "type": "sensor", + "unit": "kg", + "uuid": "75599d7628bb5f35839055269d3ad205" + }, + "Driver": { + "children": { + "AttentiveProbability": { + "datatype": "float", + "description": "Probability of attentiveness of the driver.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "fcd202467afb533fbbf9e7da89cc1cee" + }, + "DistractionLevel": { + "datatype": "float", + "description": "Distraction level of the driver, which can be evaluated by multiple factors e.g. driving situation, acoustical or optical signals inside the cockpit, ongoing phone calls.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "cb35ec0b924e58979e1469146d65c3fa" + }, + "FatigueLevel": { + "datatype": "float", + "description": "Fatigue level of the driver, which can be evaluated by multiple factors e.g. trip time, behaviour of steering, eye status.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "49b1626295705a79ae20d8a270c48b6b" + }, + "HeartRate": { + "datatype": "uint16", + "description": "Heart rate of the driver.", + "type": "sensor", + "unit": "bpm", + "uuid": "d71516905f785c4da867a2f86e774d93" + }, + "Identifier": { + "children": { + "Issuer": { + "datatype": "string", + "description": "Unique Issuer for the authentication of the occupant e.g. https://accounts.funcorp.com.", + "type": "sensor", + "uuid": "ee7988d26d7156d2a030ecc506ea97e7" + }, + "Subject": { + "datatype": "string", + "description": "Subject for the authentication of the occupant e.g. UserID 7331677.", + "type": "sensor", + "uuid": "b41ec688af265f10824bc9635989ac55" + } + }, + "description": "Identifier attributes based on OAuth 2.0.", + "type": "branch", + "uuid": "89705397069c5ec58d607318f2ff0ea8" + }, + "IsEyesOnRoad": { + "datatype": "boolean", + "description": "Has driver the eyes on road or not?", + "type": "sensor", + "uuid": "625e5009f1145aa0b797ee6c335ca2fe" + }, + "IsHandsOnWheel": { + "datatype": "boolean", + "description": "Are the driver's hands on the steering wheel or not?", + "type": "sensor", + "uuid": "90d7dc2c408c528d941829ff88075f24" + } + }, + "description": "Driver data.", + "type": "branch", + "uuid": "1cac57e7b7e756dc8a154eaacbce6426" + }, + "EmissionsCO2": { + "datatype": "int16", + "description": "The CO2 emissions.", + "type": "attribute", + "unit": "g/km", + "uuid": "b73e8f1ed17d584fad3f088c666dc2a5" + }, + "Exterior": { + "children": { + "AirTemperature": { + "datatype": "float", + "description": "Air temperature outside the vehicle.", + "type": "sensor", + "unit": "celsius", + "uuid": "a38d3f5dfeb35317aca8b90453dc1a75" + }, + "Humidity": { + "datatype": "float", + "description": "Relative humidity outside the vehicle. 0 = Dry, 100 = Air fully saturated.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "6c785ec5d9a5534f98be7ce198d25d6b" + }, + "LightIntensity": { + "comment": "Mapping to physical units and calculation method is sensor specific.", + "datatype": "float", + "description": "Light intensity outside the vehicle. 0 = No light detected, 100 = Fully lit.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "9b46b70490f853e891e1cc35dd08dddc" + } + }, + "description": "Information about exterior measured by vehicle.", + "type": "branch", + "uuid": "06c5def549f3580e8cdaffa3e0f5d25c" + }, + "GrossWeight": { + "datatype": "uint16", + "default": 0, + "description": "Curb weight of vehicle, including all liquids and full tank of fuel and full load of cargo and passengers.", + "type": "attribute", + "unit": "kg", + "uuid": "9671cb551dd8570fbe5d7cd797265e6a" + }, + "Height": { + "datatype": "uint16", + "default": 0, + "description": "Overall vehicle height.", + "type": "attribute", + "unit": "mm", + "uuid": "9784d39f68b8541f90c355178ded7d7c" + }, + "IsBrokenDown": { + "comment": "Actual criteria and method used to decide if a vehicle is broken down is implementation specific.", + "datatype": "boolean", + "description": "Vehicle breakdown or any similar event causing vehicle to stop on the road, that might pose a risk to other road users. True = Vehicle broken down on the road, due to e.g. engine problems, flat tire, out of gas, brake problems. False = Vehicle not broken down.", + "type": "sensor", + "uuid": "469ebd2a76b45e5b97b799262a085330" + }, + "IsMoving": { + "datatype": "boolean", + "description": "Indicates whether the vehicle is stationary or moving.", + "type": "sensor", + "uuid": "db69549cc7375e919c2a2883b41cd19c" + }, + "Length": { + "datatype": "uint16", + "default": 0, + "description": "Overall vehicle length.", + "type": "attribute", + "unit": "mm", + "uuid": "885f1be6842a513582e52a42edb3176f" + }, + "LowVoltageBattery": { + "children": { + "CurrentCurrent": { + "datatype": "float", + "description": "Current current flowing in/out of the low voltage battery. Positive = Current flowing in to battery, e.g. during charging or driving. Negative = Current flowing out of battery, e.g. when using the battery to start a combustion engine.", + "type": "sensor", + "unit": "A", + "uuid": "e1d76e489d505b03ace30771ba4291b1" + }, + "CurrentVoltage": { + "datatype": "float", + "description": "Current Voltage of the low voltage battery.", + "type": "sensor", + "unit": "V", + "uuid": "1394234e8b975a279959ae82e03df786" + }, + "NominalCapacity": { + "datatype": "uint16", + "description": "Nominal capacity of the low voltage battery.", + "type": "attribute", + "unit": "Ah", + "uuid": "d9f32612cb2f58d3b863a0dae21ff7af" + }, + "NominalVoltage": { + "comment": "Nominal voltage typically refers to voltage of fully charged battery when delivering rated capacity.", + "datatype": "uint16", + "description": "Nominal Voltage of the battery.", + "type": "attribute", + "unit": "V", + "uuid": "bd5d4b6ee33f507fb49782505c3040e0" + } + }, + "description": "Signals related to low voltage battery.", + "type": "branch", + "uuid": "ab8c5816d44f55b68f6e1d6d9e5acb0b" + }, + "LowVoltageSystemState": { + "allowed": [ + "UNDEFINED", + "LOCK", + "OFF", + "ACC", + "ON", + "START" + ], + "datatype": "string", + "description": "State of the supply voltage of the control units (usually 12V).", + "type": "sensor", + "uuid": "d7391ceb132e5519b02d4c13d5513d99" + }, + "MaxTowBallWeight": { + "datatype": "uint16", + "default": 0, + "description": "Maximum vertical weight on the tow ball of a trailer.", + "type": "attribute", + "unit": "kg", + "uuid": "fec550f2064750e8b65b54fbf1368d68" + }, + "MaxTowWeight": { + "datatype": "uint16", + "default": 0, + "description": "Maximum weight of trailer.", + "type": "attribute", + "unit": "kg", + "uuid": "a1b8fd65897654aa8a418bccf443f1f3" + }, + "OBD": { + "children": { + "AbsoluteLoad": { + "datatype": "float", + "description": "PID 43 - Absolute load value", + "type": "sensor", + "unit": "percent", + "uuid": "b3dd889a42ce5de9a7904b7196ae325c" + }, + "AcceleratorPositionD": { + "datatype": "float", + "description": "PID 49 - Accelerator pedal position D", + "type": "sensor", + "unit": "percent", + "uuid": "7e63256081ac5a7b8a28a6fa3c2c2ff9" + }, + "AcceleratorPositionE": { + "datatype": "float", + "description": "PID 4A - Accelerator pedal position E", + "type": "sensor", + "unit": "percent", + "uuid": "4104e7fc25355e25b4522d233565d84b" + }, + "AcceleratorPositionF": { + "datatype": "float", + "description": "PID 4B - Accelerator pedal position F", + "type": "sensor", + "unit": "percent", + "uuid": "95f5c2a209a857ff930e2f8e32ac2d3f" + }, + "AirStatus": { + "datatype": "string", + "description": "PID 12 - Secondary air status", + "type": "sensor", + "uuid": "548f65bf59ed505a86dfaa1c33342e4d" + }, + "AmbientAirTemperature": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 1000, + "signal": "VCFRONT_tempAmbientFiltered" + }, + "description": "PID 46 - Ambient air temperature", + "type": "sensor", + "unit": "celsius", + "uuid": "220a90f183c5583ea8b8b6454d774517" + }, + "BarometricPressure": { + "datatype": "float", + "description": "PID 33 - Barometric pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "1966bfff4d235767bfd9a21afb445ac7" + }, + "Catalyst": { + "children": { + "Bank1": { + "children": { + "Temperature1": { + "datatype": "float", + "description": "PID 3C - Catalyst temperature from bank 1, sensor 1", + "type": "sensor", + "unit": "celsius", + "uuid": "5a770f13939e5d069682d408f160a895" + }, + "Temperature2": { + "datatype": "float", + "description": "PID 3E - Catalyst temperature from bank 1, sensor 2", + "type": "sensor", + "unit": "celsius", + "uuid": "ca9419a5d23b5937af23b51d823722fa" + } + }, + "description": "Catalyst bank 1 signals", + "type": "branch", + "uuid": "0c3aaf014ba95b938b639d4202ef8b25" + }, + "Bank2": { + "children": { + "Temperature1": { + "datatype": "float", + "description": "PID 3D - Catalyst temperature from bank 2, sensor 1", + "type": "sensor", + "unit": "celsius", + "uuid": "011658e4ee89502c9a33877c92dbf888" + }, + "Temperature2": { + "datatype": "float", + "description": "PID 3F - Catalyst temperature from bank 2, sensor 2", + "type": "sensor", + "unit": "celsius", + "uuid": "f60c68f0ebca5fcf97086ce04e16d661" + } + }, + "description": "Catalyst bank 2 signals", + "type": "branch", + "uuid": "9a20459754755146a3b9608bf6384835" + } + }, + "description": "Catalyst signals", + "type": "branch", + "uuid": "4eb0b191d6445de081f3f3f759af31c2" + }, + "CommandedEGR": { + "datatype": "float", + "description": "PID 2C - Commanded exhaust gas recirculation (EGR)", + "type": "sensor", + "unit": "percent", + "uuid": "0265890a4a695ee6952c9b9f565ddaa5" + }, + "CommandedEVAP": { + "datatype": "float", + "description": "PID 2E - Commanded evaporative purge (EVAP) valve", + "type": "sensor", + "unit": "percent", + "uuid": "5e6295d04a9159b88f4698b561b86842" + }, + "CommandedEquivalenceRatio": { + "datatype": "float", + "description": "PID 44 - Commanded equivalence ratio", + "type": "sensor", + "unit": "ratio", + "uuid": "104e39e816f65fa791d0afa24603292b" + }, + "ControlModuleVoltage": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 1000, + "signal": "PCS_dcdcLvBusVolt" + }, + "description": "PID 42 - Control module voltage", + "type": "sensor", + "unit": "V", + "uuid": "59e072b932605ffc88a299c874d885c4" + }, + "CoolantTemperature": { + "datatype": "float", + "description": "PID 05 - Coolant temperature", + "type": "sensor", + "unit": "celsius", + "uuid": "824892cdc72d5f92a38ef3136576edc8" + }, + "DTCList": { + "datatype": "string[]", + "description": "List of currently active DTCs formatted according OBD II (SAE-J2012DA_201812) standard ([P|C|B|U]XXXXX )", + "type": "sensor", + "uuid": "eee1b64e69845d5ab5e793b74631f9dc" + }, + "DistanceSinceDTCClear": { + "datatype": "float", + "description": "PID 31 - Distance traveled since codes cleared", + "type": "sensor", + "unit": "km", + "uuid": "0da628e2c69d561eb86216ddcb6e7b2a" + }, + "DistanceWithMIL": { + "datatype": "float", + "description": "PID 21 - Distance traveled with MIL on", + "type": "sensor", + "unit": "km", + "uuid": "a9a522e343f25522b08f11e81bb91349" + }, + "DriveCycleStatus": { + "children": { + "DTCCount": { + "datatype": "uint8", + "description": "Number of sensor Trouble Codes (DTC)", + "type": "sensor", + "uuid": "312856f746ff560e8098c19196964d3b" + }, + "IgnitionType": { + "allowed": [ + "SPARK", + "COMPRESSION" + ], + "datatype": "string", + "description": "Type of the ignition for ICE - spark = spark plug ignition, compression = self-igniting (Diesel engines)", + "type": "sensor", + "uuid": "1aeb7b6d025f5a8693104824abaa1c49" + }, + "IsMILOn": { + "datatype": "boolean", + "description": "Malfunction Indicator Light (MIL) - False = Off, True = On", + "type": "sensor", + "uuid": "e367394c9a075eef8fd66499e3d9cf14" + } + }, + "description": "PID 41 - OBD status for the current drive cycle", + "type": "branch", + "uuid": "5215e28062f75154822789b8a5f30630" + }, + "EGRError": { + "datatype": "float", + "description": "PID 2D - Exhaust gas recirculation (EGR) error", + "type": "sensor", + "unit": "percent", + "uuid": "80a7000c5c7b5444b5571a26264061e5" + }, + "EVAPVaporPressure": { + "datatype": "float", + "description": "PID 32 - Evaporative purge (EVAP) system pressure", + "type": "sensor", + "unit": "Pa", + "uuid": "70b5dae2ffd0561eab73efed8ad2f0ad" + }, + "EVAPVaporPressureAbsolute": { + "datatype": "float", + "description": "PID 53 - Absolute evaporative purge (EVAP) system pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "ef188a1e1a1356f7bc425081e3e00805" + }, + "EVAPVaporPressureAlternate": { + "datatype": "float", + "description": "PID 54 - Alternate evaporative purge (EVAP) system pressure", + "type": "sensor", + "unit": "Pa", + "uuid": "68eaba3c79975d61bc35b92cd3e5e8d0" + }, + "EngineLoad": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 100, + "signal": "RearPower266", + "transform": { + "math": "floor(abs(x/5))" + } + }, + "description": "PID 04 - Engine load in percent - 0 = no load, 100 = full load", + "type": "sensor", + "unit": "percent", + "uuid": "a8fda8a1b4c6534aa49c447bafc1c700" + }, + "EngineSpeed": { + "datatype": "float", + "description": "PID 0C - Engine speed measured as rotations per minute", + "type": "sensor", + "unit": "rpm", + "uuid": "b682eea93b3e5874ab3b52e95a1fad37" + }, + "EthanolPercent": { + "datatype": "float", + "description": "PID 52 - Percentage of ethanol in the fuel", + "type": "sensor", + "unit": "percent", + "uuid": "a207e7de17e1520c894b412af6f2522c" + }, + "FreezeDTC": { + "datatype": "string", + "description": "PID 02 - DTC that triggered the freeze frame", + "type": "sensor", + "uuid": "5b87fae8dda4522aae209ae528960782" + }, + "FuelInjectionTiming": { + "datatype": "float", + "description": "PID 5D - Fuel injection timing", + "type": "sensor", + "unit": "degrees", + "uuid": "ab4869446f5357d6936838983e1b8949" + }, + "FuelLevel": { + "datatype": "float", + "description": "PID 2F - Fuel level in the fuel tank", + "type": "sensor", + "unit": "percent", + "uuid": "fd39813424ee5cd08c44714b35697287" + }, + "FuelPressure": { + "datatype": "float", + "description": "PID 0A - Fuel pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "34e6b0689f025d7b9bfa1fc49bb30c0f" + }, + "FuelRailPressureAbsolute": { + "datatype": "float", + "description": "PID 59 - Absolute fuel rail pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "83c88b13d30153949eeca1b1180a9061" + }, + "FuelRailPressureDirect": { + "datatype": "float", + "description": "PID 23 - Fuel rail pressure direct inject", + "type": "sensor", + "unit": "kPa", + "uuid": "039cb7bf1a8356a98d09eaf4fc029fe9" + }, + "FuelRailPressureVac": { + "datatype": "float", + "description": "PID 22 - Fuel rail pressure relative to vacuum", + "type": "sensor", + "unit": "kPa", + "uuid": "b3b0adf44aa3572fa07e7434993e6458" + }, + "FuelRate": { + "datatype": "float", + "description": "PID 5E - Engine fuel rate", + "type": "sensor", + "unit": "l/h", + "uuid": "4ab7c2b710f95ceb9c7d01d19dabac38" + }, + "FuelStatus": { + "datatype": "string", + "description": "PID 03 - Fuel status", + "type": "sensor", + "uuid": "15fa2f3f667a5f5786eda5c83435ef16" + }, + "FuelType": { + "datatype": "uint8", + "description": "PID 51 - Fuel type", + "max": 23, + "min": 0, + "type": "attribute", + "uuid": "aefb45bdd8035904b0c8f3ffcedc53a9" + }, + "HybridBatteryRemaining": { + "datatype": "float", + "description": "PID 5B - Remaining life of hybrid battery", + "type": "sensor", + "unit": "percent", + "uuid": "c9517b6243df5e8d8f3aa3e57f71ec37" + }, + "IntakeTemp": { + "datatype": "float", + "description": "PID 0F - Intake temperature", + "type": "sensor", + "unit": "celsius", + "uuid": "7c108305178b5854b430a23e125588bd" + }, + "IsPTOActive": { + "datatype": "boolean", + "description": "PID 1E - Auxiliary input status (power take off)", + "type": "sensor", + "uuid": "ce291dc40bba5a969e57b17f11ae23a9" + }, + "LongTermFuelTrim1": { + "datatype": "float", + "description": "PID 07 - Long Term (learned) Fuel Trim - Bank 1 - negative percent leaner, positive percent richer", + "type": "sensor", + "unit": "percent", + "uuid": "1c203b11667150f0b4ee1be26a60c084" + }, + "LongTermFuelTrim2": { + "datatype": "float", + "description": "PID 09 - Long Term (learned) Fuel Trim - Bank 2 - negative percent leaner, positive percent richer", + "type": "sensor", + "unit": "percent", + "uuid": "b02aff2efce05632b5694a256e5b9ec7" + }, + "LongTermO2Trim1": { + "datatype": "float", + "description": "PID 56 (byte A) - Long term secondary O2 trim - Bank 1", + "type": "sensor", + "unit": "percent", + "uuid": "9a9586e29a02567e9920cb9b0aa2e3f5" + }, + "LongTermO2Trim2": { + "datatype": "float", + "description": "PID 58 (byte A) - Long term secondary O2 trim - Bank 2", + "type": "sensor", + "unit": "percent", + "uuid": "e579f6c930605b389e8ce2d7edd92999" + }, + "LongTermO2Trim3": { + "datatype": "float", + "description": "PID 56 (byte B) - Long term secondary O2 trim - Bank 3", + "type": "sensor", + "unit": "percent", + "uuid": "50ea51ad343a5e59b1d214053e522a45" + }, + "LongTermO2Trim4": { + "datatype": "float", + "description": "PID 58 (byte B) - Long term secondary O2 trim - Bank 4", + "type": "sensor", + "unit": "percent", + "uuid": "f9c20edd12f456e5ace21581cea484bd" + }, + "MAF": { + "datatype": "float", + "description": "PID 10 - Grams of air drawn into engine per second", + "type": "sensor", + "unit": "g/s", + "uuid": "f3acdf89fb865313883d5d3126f15518" + }, + "MAP": { + "datatype": "float", + "description": "PID 0B - Intake manifold pressure", + "type": "sensor", + "unit": "kPa", + "uuid": "335991b1b53f56f097fea7b05d4db83b" + }, + "MaxMAF": { + "datatype": "float", + "description": "PID 50 - Maximum flow for mass air flow sensor", + "type": "sensor", + "unit": "g/s", + "uuid": "e21826479f715ee7afe8dc485f109b11" + }, + "O2": { + "children": { + "Sensor1": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "ee366d40132456c0bce8cac3a837f16a" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "e95f4ea667265ee3a68ab57b86ecbf66" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "3aa8859203d4545083196a9690d72627" + }, + "Sensor2": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "92e6e172777457a9866ca045d0d79853" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "5f1781bde96b53ce9b810a5a56b7c8ed" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "efcb337cf94056c8a724e76bcfee6765" + }, + "Sensor3": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "66c300d35eb85e7387dc42528cca48d9" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "a86a1986f0fe5d25b6c438a00438ff60" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "b8c145402b7a5cffaa2699ed61b056fa" + }, + "Sensor4": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "b71dcf9d850c5d5686f14ad46cd2cae3" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "772cbfab91be59f7bbf3ec4140ffbcc4" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "853945bce86c5c4f95081075ae32261c" + }, + "Sensor5": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "7604de26198b51e28a441f79b1d84242" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "155a0816093b5aee8012ed2a8d532b7f" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "f48c76c9c7ec5ddcb6838ced0bd7517b" + }, + "Sensor6": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "2fb034769cab5089986d90bf7f9000ca" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "85430592fb795e848d7bb91e6b9f1e00" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "5269c1877ded507b87d7d1d7bec10605" + }, + "Sensor7": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "81f34b16b5e05d1ab159de9474eaf5bc" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "23984a68e63f532bab18679e1174130d" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "4b565102e4a052aa8aa64f27dc678ce3" + }, + "Sensor8": { + "children": { + "ShortTermFuelTrim": { + "datatype": "float", + "description": "PID 1x (byte B) - Short term fuel trim", + "type": "sensor", + "unit": "percent", + "uuid": "1699eb2267615e258259e480be0fa606" + }, + "Voltage": { + "datatype": "float", + "description": "PID 1x (byte A) - Sensor voltage", + "type": "sensor", + "unit": "V", + "uuid": "23e057b3629a5136bb585638725fe0a2" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "d5eef24c35f1561982127404b50ece11" + } + }, + "description": "Oxygen sensors (PID 14 - PID 1B)", + "type": "branch", + "uuid": "31f007df72af50f0925d2b4647682a4d" + }, + "O2WR": { + "children": { + "Sensor1": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "bb4c70d9d2ae56c8a9a3be446db6f54c" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "b809083454a5516f995477c59bf4d3c6" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "396251cbfa5a57ffb1dd743298dfcdf9" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "496074cec04a5260b60fd39bb7ed1479" + }, + "Sensor2": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "442ab33180ca5028a37a487056ba4a51" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "ce55aed0e8705a49970566db71ebcf90" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "a784675c3b765d42ad023d8ee412be26" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "079f9960f75d5f399df7ff86fcea8f0c" + }, + "Sensor3": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "c942468e349e5aaebde4d90ee0bc3814" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "f2ae7c781b0a5dcf8db91558e3cf4c13" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "a78f7621a3f75df2adc1dc940219834a" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "a8a83d3e33f9584b824088e830bcbaec" + }, + "Sensor4": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "f16b31fde63a516db04cb44feaa7c27b" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "be09013f423c588eae9c06da9ddf290f" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "abeca90ba22d5c32a34ee907cedf3192" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "bb67047ddad158ba98876a6a87d02e97" + }, + "Sensor5": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "40494cb5826554929f5ecadd5b9173fd" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "16a957200f5c51f89824bbb76a23b9c0" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "699c4db2439f51af8465e823687018b8" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "01c4160d39af5db59c66db844646195e" + }, + "Sensor6": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "06a38b6b4784545bb637279e96d48eb5" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "fdae9bb9a3a45b4680450f0347cf6d66" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "304c181c76d55c3abe75382a935c7bde" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "cff12c30bde957798daaa3a91758b48b" + }, + "Sensor7": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "6ed46315325d540eb95c86ec61eef8e4" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "9221a5289157538b9dcaa0d961c335fa" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "0ad1d79dcce65c00ac48421b5b54ca0e" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "44459df1f25f5d43a07b00f2bad65ef5" + }, + "Sensor8": { + "children": { + "Current": { + "datatype": "float", + "description": "PID 3x (byte CD) - Current for wide range/band oxygen sensor", + "type": "sensor", + "unit": "A", + "uuid": "96de3c3b036c50c2978ab2aa490d4d9e" + }, + "Lambda": { + "datatype": "float", + "description": "PID 2x (byte AB) and PID 3x (byte AB) - Lambda for wide range/band oxygen sensor", + "type": "sensor", + "uuid": "c56db1195fa3519ab6718ab57d2cd543" + }, + "Voltage": { + "datatype": "float", + "description": "PID 2x (byte CD) - Voltage for wide range/band oxygen sensor", + "type": "sensor", + "unit": "V", + "uuid": "ab7d6c739f025782bba640e58123f0c8" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "b8865e72055d52a086f6935d5c188cc1" + } + }, + "description": "Wide range/band oxygen sensors (PID 24 - 2B and PID 34 - 3B)", + "type": "branch", + "uuid": "a439f2bc16575318afe20d0bc6a8cacf" + }, + "OBDStandards": { + "datatype": "uint8", + "description": "PID 1C - OBD standards this vehicle conforms to", + "type": "attribute", + "uuid": "1aa8d7d055cf5a29a31b04a12124f673" + }, + "OilTemperature": { + "datatype": "float", + "description": "PID 5C - Engine oil temperature", + "type": "sensor", + "unit": "celsius", + "uuid": "ef3dfc11085d5077b363b1a4e8e4a84e" + }, + "OxygenSensorsIn2Banks": { + "datatype": "uint8", + "description": "PID 13 - Presence of oxygen sensors in 2 banks. [A0..A3] == Bank 1, Sensors 1-4. [A4..A7] == Bank 2, Sensors 1-4", + "type": "sensor", + "uuid": "0a9ba3f0a9b256d78bafd62ee8ce73cd" + }, + "OxygenSensorsIn4Banks": { + "datatype": "uint8", + "description": "PID 1D - Presence of oxygen sensors in 4 banks. Similar to PID 13, but [A0..A7] == [B1S1, B1S2, B2S1, B2S2, B3S1, B3S2, B4S1, B4S2]", + "type": "sensor", + "uuid": "41d3377813d651aa9b9344ba9fd2f880" + }, + "PidsA": { + "allowed": [ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "0A", + "0B", + "0C", + "0D", + "0E", + "0F", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "1A", + "1B", + "1C", + "1D", + "1E", + "1F", + "20" + ], + "datatype": "string[]", + "description": "PID 00 - Array of the supported PIDs 01 to 20 in Hexadecimal.", + "type": "attribute", + "uuid": "ba1c1b9034955d2d97249c3b4516beef" + }, + "PidsB": { + "allowed": [ + "21", + "22", + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "2A", + "2B", + "2C", + "2D", + "2E", + "2F", + "30", + "31", + "32", + "33", + "34", + "35", + "36", + "37", + "38", + "39", + "3A", + "3B", + "3C", + "3D", + "3E", + "3F", + "40" + ], + "datatype": "string[]", + "description": "PID 20 - Array of the supported PIDs 21 to 40 in Hexadecimal.", + "type": "attribute", + "uuid": "00193c560a0a5525baa45681e07b50f6" + }, + "PidsC": { + "allowed": [ + "41", + "42", + "43", + "44", + "45", + "46", + "47", + "48", + "49", + "4A", + "4B", + "4C", + "4D", + "4E", + "4F", + "50", + "51", + "52", + "53", + "54", + "55", + "56", + "57", + "58", + "59", + "5A", + "5B", + "5C", + "5D", + "5E", + "5F", + "60" + ], + "datatype": "string[]", + "description": "PID 40 - Array of the supported PIDs 41 to 60 in Hexadecimal.", + "type": "attribute", + "uuid": "7c3a3f0ecc5d593aa996892668afe4b0" + }, + "RelativeAcceleratorPosition": { + "datatype": "float", + "description": "PID 5A - Relative accelerator pedal position", + "type": "sensor", + "unit": "percent", + "uuid": "e25de9aacad3549285b4fb234f10be8f" + }, + "RelativeThrottlePosition": { + "datatype": "float", + "description": "PID 45 - Relative throttle position", + "type": "sensor", + "unit": "percent", + "uuid": "54ecf7dd671c5053aac4bc1bb061d64b" + }, + "RunTime": { + "datatype": "float", + "description": "PID 1F - Engine run time", + "type": "sensor", + "unit": "s", + "uuid": "acf70773752256d1a227ab48257624b5" + }, + "RunTimeMIL": { + "datatype": "float", + "description": "PID 4D - Run time with MIL on", + "type": "sensor", + "unit": "min", + "uuid": "555604a484535f60adf8894a6bd895b6" + }, + "ShortTermFuelTrim1": { + "datatype": "float", + "description": "PID 06 - Short Term (immediate) Fuel Trim - Bank 1 - negative percent leaner, positive percent richer", + "type": "sensor", + "unit": "percent", + "uuid": "569c983874335fb392d4e82a002654cb" + }, + "ShortTermFuelTrim2": { + "datatype": "float", + "description": "PID 08 - Short Term (immediate) Fuel Trim - Bank 2 - negative percent leaner, positive percent richer", + "type": "sensor", + "unit": "percent", + "uuid": "53a39620773a523a8182169027169ec2" + }, + "ShortTermO2Trim1": { + "datatype": "float", + "description": "PID 55 (byte A) - Short term secondary O2 trim - Bank 1", + "type": "sensor", + "unit": "percent", + "uuid": "be7ed33a854557ba802da0c51f9f4564" + }, + "ShortTermO2Trim2": { + "datatype": "float", + "description": "PID 57 (byte A) - Short term secondary O2 trim - Bank 2", + "type": "sensor", + "unit": "percent", + "uuid": "c8b962f8990e51d294621408ceaa21d9" + }, + "ShortTermO2Trim3": { + "datatype": "float", + "description": "PID 55 (byte B) - Short term secondary O2 trim - Bank 3", + "type": "sensor", + "unit": "percent", + "uuid": "af58212df970568b9edcc5e58fa36f8d" + }, + "ShortTermO2Trim4": { + "datatype": "float", + "description": "PID 57 (byte B) - Short term secondary O2 trim - Bank 4", + "type": "sensor", + "unit": "percent", + "uuid": "8ef0516c0c965fd6aecbacd6b9120a5b" + }, + "Speed": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 100, + "signal": "DI_uiSpeed" + }, + "description": "PID 0D - Vehicle speed", + "type": "sensor", + "unit": "km/h", + "uuid": "91ed0bb43eb054759813cd784b071764" + }, + "Status": { + "children": { + "DTCCount": { + "datatype": "uint8", + "description": "Number of Diagnostic Trouble Codes (DTC)", + "type": "sensor", + "uuid": "4afdf65e788c5f69baf682597e69fb67" + }, + "IgnitionType": { + "allowed": [ + "SPARK", + "COMPRESSION" + ], + "datatype": "string", + "description": "Type of the ignition for ICE - spark = spark plug ignition, compression = self-igniting (Diesel engines)", + "type": "attribute", + "uuid": "7ffd71caac8e5bd18f93366afdfe534d" + }, + "IsMILOn": { + "datatype": "boolean", + "description": "Malfunction Indicator Light (MIL) False = Off, True = On", + "type": "sensor", + "uuid": "8744bcb275205630932320b66185502c" + } + }, + "description": "PID 01 - OBD status", + "type": "branch", + "uuid": "474f58e593ee5bfebbb9c6ce4a453f96" + }, + "ThrottleActuator": { + "datatype": "float", + "description": "PID 4C - Commanded throttle actuator", + "type": "sensor", + "unit": "percent", + "uuid": "49a19905a1005ee3abe0c0a84d7112d1" + }, + "ThrottlePosition": { + "datatype": "float", + "description": "PID 11 - Throttle position - 0 = closed throttle, 100 = open throttle", + "type": "sensor", + "unit": "percent", + "uuid": "ec1d372020205bb4a846a014b33801e1" + }, + "ThrottlePositionB": { + "datatype": "float", + "description": "PID 47 - Absolute throttle position B", + "type": "sensor", + "unit": "percent", + "uuid": "701712a565ed5bf8b6630487a7152c87" + }, + "ThrottlePositionC": { + "datatype": "float", + "description": "PID 48 - Absolute throttle position C", + "type": "sensor", + "unit": "percent", + "uuid": "06f162dc00a85f628f9d5d1bc952665c" + }, + "TimeSinceDTCCleared": { + "datatype": "float", + "description": "PID 4E - Time since trouble codes cleared", + "type": "sensor", + "unit": "min", + "uuid": "66ea3984a2585dcdaaf6452eef835c0d" + }, + "TimingAdvance": { + "datatype": "float", + "description": "PID 0E - Time advance", + "type": "sensor", + "unit": "degrees", + "uuid": "35533b7e327d5f839b17c932b630767c" + }, + "WarmupsSinceDTCClear": { + "datatype": "uint8", + "description": "PID 30 - Number of warm-ups since codes cleared", + "type": "sensor", + "uuid": "a63ba60721785fc591e3dd067c4dc2ae" + } + }, + "description": "OBD data.", + "type": "branch", + "uuid": "7ad7c512ed5d52c8b31944d2d47a4bc3" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "add77f60f7885e39a84baae200569077" + }, + "Powertrain": { + "children": { + "AccumulatedBrakingEnergy": { + "datatype": "float", + "description": "The accumulated energy from regenerative braking over lifetime.", + "type": "sensor", + "unit": "kWh", + "uuid": "0dd466d28d3d5ad094f2015adafb91a5" + }, + "CombustionEngine": { + "children": { + "AspirationType": { + "allowed": [ + "UNKNOWN", + "NATURAL", + "SUPERCHARGER", + "TURBOCHARGER" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Type of aspiration (natural, turbocharger, supercharger etc).", + "type": "attribute", + "uuid": "3ca6a8ff30275c20a9d8d6d6829574eb" + }, + "Bore": { + "datatype": "float", + "description": "Bore in millimetres.", + "type": "attribute", + "unit": "mm", + "uuid": "1618fb16035b5464961570cc1afd934e" + }, + "CompressionRatio": { + "datatype": "string", + "description": "Engine compression ratio, specified in the format 'X:1', e.g. '9.2:1'.", + "type": "attribute", + "uuid": "ead42922511051a0a0a1b634781f3c09" + }, + "Configuration": { + "allowed": [ + "UNKNOWN", + "STRAIGHT", + "V", + "BOXER", + "W", + "ROTARY", + "RADIAL", + "SQUARE", + "H", + "U", + "OPPOSED", + "X" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Engine configuration.", + "type": "attribute", + "uuid": "586be4567fe059ee9e6cf42901c2e773" + }, + "DieselExhaustFluid": { + "children": { + "Capacity": { + "datatype": "float", + "description": "Capacity in liters of the Diesel Exhaust Fluid Tank.", + "type": "attribute", + "unit": "l", + "uuid": "863c16ad452b5cf5b7a37f58bdda14c3" + }, + "IsLevelLow": { + "datatype": "boolean", + "description": "Indicates if the Diesel Exhaust Fluid level is low. True if level is low. Definition of low is vehicle dependent.", + "type": "sensor", + "uuid": "811af3fe4f7f5270b4119bb66cff8759" + }, + "Level": { + "datatype": "uint8", + "description": "Level of the Diesel Exhaust Fluid tank as percent of capacity. 0 = empty. 100 = full.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "f5b0269b58ff5a8e8399f6d96963a3b6" + }, + "Range": { + "datatype": "uint32", + "description": "Remaining range in meters of the Diesel Exhaust Fluid present in the vehicle.", + "type": "sensor", + "unit": "m", + "uuid": "124afbee975c5a67b316413f7b805eac" + } + }, + "comment": "In retail and marketing other names are typically used for the fluid.", + "description": "Signals related to Diesel Exhaust Fluid (DEF). DEF is called AUS32 in ISO 22241.", + "type": "branch", + "uuid": "81d8eec46d9357a3b1064bfb5d070fa2" + }, + "DieselParticulateFilter": { + "children": { + "DeltaPressure": { + "datatype": "float", + "description": "Delta Pressure of Diesel Particulate Filter.", + "type": "sensor", + "unit": "Pa", + "uuid": "a6f476775c60531b93acb835e0bc6ab6" + }, + "InletTemperature": { + "datatype": "float", + "description": "Inlet temperature of Diesel Particulate Filter.", + "type": "sensor", + "unit": "celsius", + "uuid": "70e90d202d3054bd967e67dce95c8ef2" + }, + "OutletTemperature": { + "datatype": "float", + "description": "Outlet temperature of Diesel Particulate Filter.", + "type": "sensor", + "unit": "celsius", + "uuid": "e2b7f9d97bec5c0d94ade71a5e2f6518" + } + }, + "description": "Diesel Particulate Filter signals.", + "type": "branch", + "uuid": "eeddd99ad6475b1a92b9ec7bd7cefdbd" + }, + "Displacement": { + "datatype": "uint16", + "description": "Displacement in cubic centimetres.", + "type": "attribute", + "unit": "cm^3", + "uuid": "94dbd928847150ab842c00fa5caaf272" + }, + "ECT": { + "datatype": "int16", + "description": "Engine coolant temperature.", + "type": "sensor", + "unit": "celsius", + "uuid": "fff3cad23cac5b189a1a075c3ab562cd" + }, + "EOP": { + "datatype": "uint16", + "description": "Engine oil pressure.", + "type": "sensor", + "unit": "kPa", + "uuid": "76c7039dc7975ec3a003f0f4a04895ec" + }, + "EOT": { + "datatype": "int16", + "description": "Engine oil temperature.", + "type": "sensor", + "unit": "celsius", + "uuid": "eae6f5eae04f530e80f6b024f95b767d" + }, + "EngineCode": { + "comment": "For hybrid vehicles the engine code may refer to the combination of combustion and electric engine.", + "datatype": "string", + "description": "Engine code designation, as specified by vehicle manufacturer.", + "type": "attribute", + "uuid": "4ec845911b8e5b64b2cb1d34063184de" + }, + "EngineCoolantCapacity": { + "datatype": "float", + "description": "Engine coolant capacity in liters.", + "type": "attribute", + "unit": "l", + "uuid": "90b5b64808ea5f4fa2798d96143b0d60" + }, + "EngineHours": { + "datatype": "float", + "description": "Accumulated time during engine lifetime with 'engine speed (rpm) > 0'.", + "type": "sensor", + "unit": "h", + "uuid": "a23a62e24f58514d961890f53262e4e0" + }, + "EngineOilCapacity": { + "datatype": "float", + "description": "Engine oil capacity in liters.", + "type": "attribute", + "unit": "l", + "uuid": "2ca7af6facb55a13885989faa9bc6ca7" + }, + "EngineOilLevel": { + "allowed": [ + "CRITICALLY_LOW", + "LOW", + "NORMAL", + "HIGH", + "CRITICALLY_HIGH" + ], + "datatype": "string", + "description": "Engine oil level.", + "type": "sensor", + "uuid": "e3813f59e94b509eb865fd97255a8a4f" + }, + "IdleHours": { + "comment": "Vehicles may calculate accumulated idle time for an engine. It might be based on engine speed (rpm) below a certain limit or any other mechanism.", + "datatype": "float", + "description": "Accumulated idling time during engine lifetime. Definition of idling is not standardized.", + "type": "sensor", + "unit": "h", + "uuid": "6caa3d7e669c5cc6aecd4a6be9a302d4" + }, + "IsRunning": { + "datatype": "boolean", + "description": "Engine Running. True if engine is rotating (Speed > 0).", + "type": "sensor", + "uuid": "57652c27679757398c44d56af7a044d3" + }, + "MAF": { + "datatype": "uint16", + "description": "Grams of air drawn into engine per second.", + "type": "sensor", + "unit": "g/s", + "uuid": "1e222ed8c48b5dcea60e43ac8af7d6df" + }, + "MAP": { + "datatype": "uint16", + "description": "Manifold absolute pressure possibly boosted using forced induction.", + "type": "sensor", + "unit": "kPa", + "uuid": "28d4354fa34056369acb857aa7cc76ac" + }, + "MaxPower": { + "datatype": "uint16", + "default": 0, + "description": "Peak power, in kilowatts, that engine can generate.", + "type": "attribute", + "unit": "kW", + "uuid": "81fbdd5e90f557a38b96578a38dc137d" + }, + "MaxTorque": { + "datatype": "uint16", + "default": 0, + "description": "Peak torque, in newton meter, that the engine can generate.", + "type": "attribute", + "unit": "Nm", + "uuid": "471cd478c1e8597f8e97c85b4e4ebe26" + }, + "NumberOfCylinders": { + "datatype": "uint16", + "description": "Number of cylinders.", + "type": "attribute", + "uuid": "b2cd342c218257e88d214cdb511df82b" + }, + "NumberOfValvesPerCylinder": { + "datatype": "uint16", + "description": "Number of valves per cylinder.", + "type": "attribute", + "uuid": "44633204726e561ca21beff31f3fef80" + }, + "OilLifeRemaining": { + "comment": "In addition to this a signal a vehicle can report remaining time to service (including e.g. oil change) by Vehicle.Service.TimeToService.", + "datatype": "int32", + "description": "Remaining engine oil life in seconds. Negative values can be used to indicate that lifetime has been exceeded.", + "type": "sensor", + "unit": "s", + "uuid": "94303734c68c5353a02625f652103918" + }, + "Power": { + "datatype": "uint16", + "description": "Current engine power output. Shall be reported as 0 during engine breaking.", + "type": "sensor", + "unit": "kW", + "uuid": "20e8b5d2187758c2848ed421248c180d" + }, + "Speed": { + "datatype": "uint16", + "description": "Engine speed measured as rotations per minute.", + "type": "sensor", + "unit": "rpm", + "uuid": "557ce24c5a4d51cc825059c948ac9e29" + }, + "StrokeLength": { + "datatype": "float", + "description": "Stroke length in millimetres.", + "type": "attribute", + "unit": "mm", + "uuid": "1bdfdab7904d51ed93e101b84ea54ddf" + }, + "TPS": { + "datatype": "uint8", + "description": "Current throttle position.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "1ddb77860de558b4876ffb399a442bda" + }, + "Torque": { + "comment": "During engine breaking the engine delivers a negative torque to the transmission.", + "datatype": "int16", + "description": "Current engine torque. Shall be reported as a negative number during engine breaking.", + "type": "sensor", + "unit": "Nm", + "uuid": "b81f504bdb57513299ae6e9402ec7bcd" + } + }, + "description": "Engine-specific data, stopping at the bell housing.", + "type": "branch", + "uuid": "159e2e3e75f0590f95b4d2f6cfae54b5" + }, + "ElectricMotor": { + "children": { + "CoolantTemperature": { + "datatype": "int16", + "description": "Motor coolant temperature (if applicable).", + "type": "sensor", + "unit": "celsius", + "uuid": "3c5ea8c7700956518f2ae7a2a0f34f1c" + }, + "EngineCode": { + "datatype": "string", + "description": "Engine code designation, as specified by vehicle manufacturer.", + "type": "attribute", + "uuid": "e4102a5142ed501495e5edafd3d36dfb" + }, + "MaxPower": { + "datatype": "uint16", + "default": 0, + "description": "Peak power, in kilowatts, that motor(s) can generate.", + "type": "attribute", + "unit": "kW", + "uuid": "825ec7911ee958abb199b9f7903df3a6" + }, + "MaxRegenPower": { + "datatype": "uint16", + "default": 0, + "description": "Peak regen/brake power, in kilowatts, that motor(s) can generate.", + "type": "attribute", + "unit": "kW", + "uuid": "7f2cb2650ba95485b7156ffe76e27366" + }, + "MaxRegenTorque": { + "datatype": "uint16", + "default": 0, + "description": "Peak regen/brake torque, in newton meter, that the motor(s) can generate.", + "type": "attribute", + "unit": "Nm", + "uuid": "0e5190c2517b55aa80fcb9bf698e02d6" + }, + "MaxTorque": { + "datatype": "uint16", + "default": 0, + "description": "Peak power, in newton meter, that the motor(s) can generate.", + "type": "attribute", + "unit": "Nm", + "uuid": "cf31eabcde5151f589e9b0f7a6090512" + }, + "Power": { + "datatype": "int16", + "description": "Current motor power output. Negative values indicate regen mode.", + "type": "sensor", + "unit": "kW", + "uuid": "46b86286fba059349a733fed9a0e3232" + }, + "Speed": { + "datatype": "int32", + "description": "Motor rotational speed measured as rotations per minute. Negative values indicate reverse driving mode.", + "type": "sensor", + "unit": "rpm", + "uuid": "ca961aa6ca435095a89f9d404a5d849d" + }, + "Temperature": { + "datatype": "int16", + "dbc2vss": { + "interval_ms": 1000, + "signal": "PTC_rightTempIGBT" + }, + "description": "Motor temperature.", + "type": "sensor", + "unit": "celsius", + "uuid": "1b7c15e5341052139995bfacea2c05b2" + }, + "Torque": { + "datatype": "int16", + "dbc2vss": { + "interval_ms": 100, + "signal": "DIR_torqueActual" + }, + "description": "Current motor torque. Negative values indicate regen mode.", + "type": "sensor", + "unit": "Nm", + "uuid": "aceffe768ddf5b828fff0975349d2433" + } + }, + "description": "Electric Motor specific data.", + "type": "branch", + "uuid": "1ade64f6b0d05f6c9340e7a667555ae2" + }, + "FuelSystem": { + "children": { + "AbsoluteLevel": { + "datatype": "float", + "description": "Current available fuel in the fuel tank expressed in liters.", + "type": "sensor", + "unit": "l", + "uuid": "00a1399655ee5d9188022f3d55d8f05e" + }, + "AverageConsumption": { + "datatype": "float", + "description": "Average consumption in liters per 100 km.", + "min": 0, + "type": "sensor", + "unit": "l/100km", + "uuid": "e2252108125a54dcab34e1bad0fe8bdc" + }, + "ConsumptionSinceStart": { + "comment": "A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled. The signal may however keep the value of the last trip until a new trip is started.", + "datatype": "float", + "description": "Fuel amount in liters consumed since start of current trip.", + "type": "sensor", + "unit": "l", + "uuid": "adf0a40964ff556f92b10275ad918883" + }, + "HybridType": { + "allowed": [ + "UNKNOWN", + "NOT_APPLICABLE", + "STOP_START", + "BELT_ISG", + "CIMG", + "PHEV" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Defines the hybrid type of the vehicle.", + "type": "attribute", + "uuid": "f0f72012f5e453c1935ff8c3a5aff696" + }, + "InstantConsumption": { + "datatype": "float", + "description": "Current consumption in liters per 100 km.", + "min": 0, + "type": "sensor", + "unit": "l/100km", + "uuid": "cf65767ec8ad56ffadfdccd831e4b562" + }, + "IsEngineStopStartEnabled": { + "datatype": "boolean", + "description": "Indicates whether eco start stop is currently enabled.", + "type": "sensor", + "uuid": "176eed5bb0da582a9ee56f1c70e12075" + }, + "IsFuelLevelLow": { + "datatype": "boolean", + "description": "Indicates that the fuel level is low (e.g. <50km range).", + "type": "sensor", + "uuid": "65f18ee3b04f5d4c8bb76083227dd9fe" + }, + "IsFuelPortFlapOpen": { + "datatype": "boolean", + "description": "Status of the fuel port flap(s). True if at least one is open.", + "type": "actuator", + "uuid": "fded7edb113c5894a21722085834f3ae" + }, + "Range": { + "datatype": "uint32", + "description": "Remaining range in meters using only liquid fuel.", + "type": "sensor", + "unit": "m", + "uuid": "c5a0dbe5e754553897f0aed0069af57a" + }, + "RefuelPortPosition": { + "allowed": [ + "FRONT_LEFT", + "FRONT_MIDDLE", + "FRONT_RIGHT", + "REAR_LEFT", + "REAR_MIDDLE", + "REAR_RIGHT", + "LEFT_FRONT", + "LEFT_MIDDLE", + "LEFT_REAR", + "RIGHT_FRONT", + "RIGHT_MIDDLE", + "RIGHT_REAR" + ], + "datatype": "string[]", + "description": "Position of refuel port(s). First part indicates side of vehicle, second part relative position on that side.", + "type": "attribute", + "uuid": "a7b5eb269b345ef7b18602b66517f952" + }, + "RelativeLevel": { + "datatype": "uint8", + "description": "Level in fuel tank as percent of capacity. 0 = empty. 100 = full.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "e90e3daa1dcd5165a9d78b09e890fb22" + }, + "SupportedFuel": { + "allowed": [ + "E5_95", + "E5_98", + "E10_95", + "E10_98", + "E85", + "B7", + "B10", + "B20", + "B30", + "B100", + "XTL", + "LPG", + "CNG", + "LNG", + "H2", + "OTHER" + ], + "comment": "RON 95 is sometimes referred to as Super, RON 98 as Super Plus.", + "datatype": "string[]", + "description": "Detailed information on fuels supported by the vehicle. Identifiers originating from DIN EN 16942:2021-08, appendix B, with additional suffix for octane (RON) where relevant.", + "type": "attribute", + "uuid": "7fd3bf2ef0c650e69ff2037875ec59ee" + }, + "SupportedFuelTypes": { + "allowed": [ + "GASOLINE", + "DIESEL", + "E85", + "LPG", + "CNG", + "LNG", + "H2", + "OTHER" + ], + "comment": "If a vehicle also has an electric drivetrain (e.g. hybrid) that will be obvious from the PowerTrain.Type signal.", + "datatype": "string[]", + "description": "High level information of fuel types supported", + "type": "attribute", + "uuid": "80edc3002aa25097aba6455fe459fa6c" + }, + "TankCapacity": { + "datatype": "float", + "description": "Capacity of the fuel tank in liters.", + "type": "attribute", + "unit": "l", + "uuid": "362643b866c55d5386fdbdf383464e90" + }, + "TimeRemaining": { + "datatype": "uint32", + "description": "Time remaining in seconds before the fuel tank is empty.", + "type": "sensor", + "unit": "s", + "uuid": "a531b80a16bc59949abb2ab5228a1034" + } + }, + "description": "Fuel system data.", + "type": "branch", + "uuid": "dbc194a7f97d5a56bc8942c17c2db22e" + }, + "PowerOptimizeLevel": { + "datatype": "uint8", + "description": "Power optimization level for this branch/subsystem. A higher number indicates more aggressive power optimization. Level 0 indicates that all functionality is enabled, no power optimization enabled. Level 10 indicates most aggressive power optimization mode, only essential functionality enabled.", + "max": 10, + "min": 0, + "type": "actuator", + "uuid": "d740b02e2fb35c07bf88a6e5ebe2f6e4" + }, + "Range": { + "datatype": "uint32", + "description": "Remaining range in meters using all energy sources available in the vehicle.", + "type": "sensor", + "unit": "m", + "uuid": "ea4b6de772d65d20b1fa611f997aa7b8" + }, + "TimeRemaining": { + "datatype": "uint32", + "description": "Time remaining in seconds before all energy sources available in the vehicle are empty.", + "type": "sensor", + "unit": "s", + "uuid": "f0154f73e2575ab5a39fd10a44ec7149" + }, + "TractionBattery": { + "children": { + "AccumulatedChargedEnergy": { + "datatype": "float", + "description": "The accumulated energy delivered to the battery during charging over lifetime of the battery.", + "type": "sensor", + "unit": "kWh", + "uuid": "739d06021d795da0877bc0ef3c107de1" + }, + "AccumulatedChargedThroughput": { + "datatype": "float", + "description": "The accumulated charge throughput delivered to the battery during charging over lifetime of the battery.", + "type": "sensor", + "unit": "Ah", + "uuid": "6d038ccc313351fba3a9104c1158a207" + }, + "AccumulatedConsumedEnergy": { + "datatype": "float", + "description": "The accumulated energy leaving HV battery for propulsion and auxiliary loads over lifetime of the battery.", + "type": "sensor", + "unit": "kWh", + "uuid": "b844cb96765f574d8d31edb09ccaef81" + }, + "AccumulatedConsumedThroughput": { + "datatype": "float", + "description": "The accumulated charge throughput leaving HV battery for propulsion and auxiliary loads over lifetime of the battery.", + "type": "sensor", + "unit": "Ah", + "uuid": "f3e2ca21f3b550288d494827c9a172dd" + }, + "CellVoltage": { + "children": { + "CellVoltages": { + "comment": "Cells are identified by relative position in array.", + "datatype": "float[]", + "description": "Array of cell voltages. Length or array shall correspond to number of cells in vehicle.", + "type": "sensor", + "uuid": "1970692bc3a457f1b6f58aa53c905264" + }, + "IdMax": { + "comment": "Identifier is supposed to be relative index of the cell, starting with 0 the first cell.", + "datatype": "uint16", + "description": "Identifier of the battery cell with highest voltage.", + "type": "sensor", + "uuid": "c84a89bd5faa5e9cb0a9bf191bfeec9c" + }, + "IdMin": { + "comment": "Identifier is supposed to be relative index of the cell, starting with 0 the first cell.", + "datatype": "uint16", + "description": "Identifier of the battery cell with lowest voltage.", + "type": "sensor", + "uuid": "cbaef92ad3f55b20bc71188fba79d00d" + }, + "Max": { + "datatype": "float", + "description": "Current voltage of the battery cell with highest voltage.", + "type": "sensor", + "unit": "V", + "uuid": "bde40aa6b442580db3c0d4c1efed8a09" + }, + "Min": { + "datatype": "float", + "description": "Current voltage of the battery cell with lowest voltage.", + "type": "sensor", + "unit": "V", + "uuid": "b868f28cc42a5ba28a127647cd16cb93" + } + }, + "description": "Voltage information for cells in the battery pack.", + "type": "branch", + "uuid": "0070210b80125f1a8e9473f8875fe3d1" + }, + "Charging": { + "children": { + "AveragePower": { + "datatype": "float", + "description": "Average charging power of last or current charging event.", + "type": "sensor", + "unit": "kW", + "uuid": "acc1728f1839516287d86975f679ec33" + }, + "ChargeCurrent": { + "children": { + "DC": { + "datatype": "float", + "description": "Current DC charging current at inlet. Negative if returning energy to grid.", + "type": "sensor", + "unit": "A", + "uuid": "44204d7ae6fd5f8e954d0670a739bdf2" + }, + "Phase1": { + "datatype": "float", + "description": "Current AC charging current (rms) at inlet for Phase 1. Negative if returning energy to grid.", + "type": "sensor", + "unit": "A", + "uuid": "400dca50fcde52a6bb605d7e86f49776" + }, + "Phase2": { + "datatype": "float", + "description": "Current AC charging current (rms) at inlet for Phase 2. Negative if returning energy to grid.", + "type": "sensor", + "unit": "A", + "uuid": "32cb24d1c495503a9087d6f55997cf57" + }, + "Phase3": { + "datatype": "float", + "description": "Current AC charging current (rms) at inlet for Phase 3. Negative if returning energy to grid.", + "type": "sensor", + "unit": "A", + "uuid": "55fb7fb7ff4a5df9b6a3af435eac868e" + } + }, + "description": "Current charging current.", + "type": "branch", + "uuid": "94739cf563735b438878ac0f85601f27" + }, + "ChargeLimit": { + "datatype": "uint8", + "default": 100, + "description": "Target charge limit (state of charge) for battery.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "62360a4ed1095275a7052d65112aaef1" + }, + "ChargePlugType": { + "allowed": [ + "IEC_TYPE_1_AC", + "IEC_TYPE_2_AC", + "IEC_TYPE_3_AC", + "IEC_TYPE_4_DC", + "IEC_TYPE_1_CCS_DC", + "IEC_TYPE_2_CCS_DC", + "TESLA_ROADSTER", + "TESLA_HPWC", + "TESLA_SUPERCHARGER", + "GBT_AC", + "GBT_DC", + "OTHER" + ], + "comment": "A vehicle may have multiple charging inlets. The signal Charging.ChargePlugPosition can be used to indicate position of the charge plug. IEC_TYPE_1_AC refers to Type 1 as defined in IEC 62196-2. Also known as Yazaki or J1772 connector. IEC_TYPE_2_AC refers to Type 2 as defined in IEC 62196-2. Also known as Mennekes connector. IEC_TYPE_3_AC refers to Type 3 as defined in IEC 62196-2. Also known as Scame connector. IEC_TYPE_4_DC refers to AA configuration as defined in IEC 62196-3. Also known as Type 4 or CHAdeMO connector. IEC_TYPE_1_CCS_DC refers to EE Configuration as defined in IEC 62196-3. Also known as CCS1 or Combo1 connector. IEC_TYPE_2_CCS_DC refers to FF Configuration as defined in IEC 62196-3. Also known as CCS2 or Combo2 connector. TESLA_ROADSTER, TESLA_HPWC (High Power Wall Connector) and TESLA_SUPERCHARGER refer to non-standardized charging inlets/methods used by Tesla. GBT_AC refers to connector specified in GB/T 20234.2. GBT_DC refers to connector specified in GB/T 20234.3. Also specified as BB Configuration in IEC 62196-3. OTHER shall be used if the vehicle has a charging connector, but not one of the connectors listed above. For additional information see https://en.wikipedia.org/wiki/IEC_62196.", + "datatype": "string[]", + "deprecation": "V4.1 renamed to Charging.ChargePortType", + "description": "Type of charge plugs (charging inlet) available on the vehicle. A charge plug type may occur multiple times in the list if there are multiple instances of that charge plug type. IEC types refer to IEC 62196, GBT refers to GB/T 20234.", + "type": "attribute", + "uuid": "4c56357a6f1d586395215a9beeb26d91" + }, + "ChargePortFlap": { + "allowed": [ + "OPEN", + "CLOSED" + ], + "datatype": "string", + "deprecation": "V4.1 - Replaced with Charging.IsChargePortFlapOpen", + "description": "Status of the charge port cover(s), can potentially be controlled manually. OPEN if at least one is open.", + "type": "actuator", + "uuid": "71bdd2145bb55c3393df194bfc2e03e5" + }, + "ChargePortPosition": { + "allowed": [ + "FRONT_LEFT", + "FRONT_MIDDLE", + "FRONT_RIGHT", + "REAR_LEFT", + "REAR_MIDDLE", + "REAR_RIGHT", + "LEFT_FRONT", + "LEFT_MIDDLE", + "LEFT_REAR", + "RIGHT_FRONT", + "RIGHT_MIDDLE", + "RIGHT_REAR" + ], + "comment": "Example - If this signal is [LEFT_FRONT, RIGHT_FRONT] and Charging.ChargePortType is [IEC_TYPE_2_AC, GBT_AC] that means that there is Mennekes port on the left side of the vehicle near the front, and a GB/T AC port on the right side, near the front.", + "datatype": "string[]", + "description": "Location of the charge port(s). First part indicates side of vehicle, second part relative position on that side. If supported, the list in this attribute shall have the same length as Charging.ChargePortType, and use same the relative order.", + "type": "attribute", + "uuid": "71ff249b26215714b9b28b1b8e066dba" + }, + "ChargePortType": { + "allowed": [ + "IEC_TYPE_1_AC", + "IEC_TYPE_2_AC", + "IEC_TYPE_3_AC", + "IEC_TYPE_4_DC", + "IEC_TYPE_1_CCS_DC", + "IEC_TYPE_2_CCS_DC", + "TESLA_ROADSTER", + "TESLA_HPWC", + "TESLA_SUPERCHARGER", + "GBT_AC", + "GBT_DC", + "OTHER" + ], + "comment": "A vehicle may have multiple charging ports. The signal Charging.ChargePortPosition can be used to indicate position of the charge port. IEC_TYPE_1_AC refers to Type 1 as defined in IEC 62196-2. Also known as Yazaki or J1772 connector. IEC_TYPE_2_AC refers to Type 2 as defined in IEC 62196-2. Also known as Mennekes connector. IEC_TYPE_3_AC refers to Type 3 as defined in IEC 62196-2. Also known as Scame connector. IEC_TYPE_4_DC refers to AA configuration as defined in IEC 62196-3. Also known as Type 4 or CHAdeMO connector. IEC_TYPE_1_CCS_DC refers to EE Configuration as defined in IEC 62196-3. Also known as CCS1 or Combo1 connector. IEC_TYPE_2_CCS_DC refers to FF Configuration as defined in IEC 62196-3. Also known as CCS2 or Combo2 connector. TESLA_ROADSTER, TESLA_HPWC (High Power Wall Connector) and TESLA_SUPERCHARGER refer to non-standardized charging ports/methods used by Tesla. GBT_AC refers to connector specified in GB/T 20234.2. GBT_DC refers to connector specified in GB/T 20234.3. Also specified as BB Configuration in IEC 62196-3. OTHER shall be used for charging ports not included in the list above. For additional information see https://en.wikipedia.org/wiki/IEC_62196.", + "datatype": "string[]", + "description": "Type of charge ports (charging inlet) available on the vehicle. A charge port type may occur multiple times in the list if there are multiple instances of that charge port type. IEC types refer to IEC 62196, GBT refers to GB/T 20234.", + "type": "attribute", + "uuid": "c6f471ec8f51546ab45b8e1fd6119d30" + }, + "ChargeRate": { + "datatype": "float", + "description": "Current charging rate, as in kilometers of range added per hour.", + "type": "sensor", + "unit": "km/h", + "uuid": "a287cea3fdaa533180c8e349343a7851" + }, + "ChargeVoltage": { + "children": { + "DC": { + "datatype": "float", + "description": "Current DC charging voltage at charging inlet.", + "type": "sensor", + "unit": "V", + "uuid": "701c21d1a4815b35ba061415789ec911" + }, + "Phase1": { + "datatype": "float", + "description": "Current AC charging voltage (rms) at inlet for Phase 1.", + "type": "sensor", + "unit": "V", + "uuid": "15991c8316585816815d6f4fb6b06776" + }, + "Phase2": { + "datatype": "float", + "description": "Current AC charging voltage (rms) at inlet for Phase 2.", + "type": "sensor", + "unit": "V", + "uuid": "6c0dcf98169d5a5190736a6dd81291a4" + }, + "Phase3": { + "datatype": "float", + "description": "Current AC charging voltage (rms) at inlet for Phase 3.", + "type": "sensor", + "unit": "V", + "uuid": "1ab06b48231e54e2ac27e543508c84f0" + } + }, + "description": "Current charging voltage, as measured at the charging inlet.", + "type": "branch", + "uuid": "7170151d653b52c6bb5e75cb0a14d1c5" + }, + "EvseId": { + "comment": "Length of id between 7 and 37 characters. ZZ00000 to be used if SECC cannot provide id", + "datatype": "string", + "description": "EVSE charging point ID (without separators) of last or current charging event according to ISO 15118-2 Annex H.", + "type": "sensor", + "uuid": "5cd32296574a5f0db05434ecb24ea778" + }, + "IsChargePortFlapOpen": { + "datatype": "boolean", + "description": "Status of the charge port flap(s), can potentially be controlled manually. True if at least one is open.", + "type": "actuator", + "uuid": "4999617956745477b905f7922b27d4ec" + }, + "IsCharging": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 1000, + "signal": "CP_hvChargeStatus", + "transform": { + "mapping": [ + { + "from": "CP_CHARGE_CONNECTED", + "to": false + }, + { + "from": "CP_CHARGE_ENABLED", + "to": true + }, + { + "from": "CP_CHARGE_FAULTED", + "to": false + }, + { + "from": "CP_CHARGE_INACTIVE", + "to": false + }, + { + "from": "CP_CHARGE_STANDBY", + "to": false + }, + { + "from": "CP_EVSE_TEST_PASSED", + "to": true + }, + { + "from": "CP_EXT_EVSE_TEST_ACTIVE", + "to": true + } + ] + } + }, + "description": "True if charging is ongoing. Charging is considered to be ongoing if energy is flowing from charger to vehicle.", + "type": "sensor", + "uuid": "d28244c9e3365899954bd3e38ef46bb9" + }, + "IsChargingCableConnected": { + "datatype": "boolean", + "description": "Indicates if a charging cable is physically connected to the vehicle or not.", + "type": "sensor", + "uuid": "a1c8e2f662b95a54a9933a1b163fff84" + }, + "IsChargingCableLocked": { + "comment": "Locking of charging cable can be used to prevent unintentional removing during charging.", + "datatype": "boolean", + "description": "Is charging cable locked to prevent removal.", + "type": "actuator", + "uuid": "7fa81693f3b8587f8d71e7b1619c8e21" + }, + "IsDischarging": { + "datatype": "boolean", + "description": "True if discharging (vehicle to grid) is ongoing. Discharging is considered to be ongoing if energy is flowing from vehicle to charger/grid.", + "type": "sensor", + "uuid": "534d884fb36652688535543b52419529" + }, + "Location": { + "children": { + "Altitude": { + "datatype": "double", + "description": "Altitude relative to WGS 84 reference ellipsoid of last or current charging event.", + "type": "sensor", + "unit": "m", + "uuid": "eed551cc893a5e12ba6a3b977d93cc03" + }, + "Latitude": { + "datatype": "double", + "description": "Latitude of last or current charging event in WGS 84 geodetic coordinates.", + "max": 90, + "min": -90, + "type": "sensor", + "unit": "degrees", + "uuid": "33fc44c112735cc2bc0ee02f1786d948" + }, + "Longitude": { + "datatype": "double", + "description": "Longitude of last or current charging event in WGS 84 geodetic coordinates.", + "max": 180, + "min": -180, + "type": "sensor", + "unit": "degrees", + "uuid": "42db7473630c506eb5528c9bcaf8e8c6" + } + }, + "comment": "This may depending on implementation represent the location of (the charge port of) the vehicle during charging, or the actual location of the charger/load connected to the vehicle.", + "description": "Location of last or current charging event.", + "type": "branch", + "uuid": "5fef3925dfd55bbeb5d6590181fbbad8" + }, + "MaxPower": { + "datatype": "float", + "description": "Maximum charging power of last or current charging event.", + "type": "sensor", + "unit": "kW", + "uuid": "a8abad6796d55f8abe925c1efd76280a" + }, + "MaximumChargingCurrent": { + "children": { + "DC": { + "datatype": "float", + "description": "Maximum DC charging current at inlet that can be accepted by the system.", + "type": "sensor", + "unit": "A", + "uuid": "5a70acfd3c8959898b43738151ab36e1" + }, + "Phase1": { + "datatype": "float", + "description": "Maximum AC charging current (rms) at inlet for Phase 1 that can be accepted by the system.", + "type": "sensor", + "unit": "A", + "uuid": "e3c1034e89cc55968ff51b990906db43" + }, + "Phase2": { + "datatype": "float", + "description": "Maximum AC charging current (rms) at inlet for Phase 2 that can be accepted by the system.", + "type": "sensor", + "unit": "A", + "uuid": "ab3514bc982e54f2b98698fb6c752368" + }, + "Phase3": { + "datatype": "float", + "description": "Maximum AC charging current (rms) at inlet for Phase 3 that can be accepted by the system.", + "type": "sensor", + "unit": "A", + "uuid": "47dd5e99c30d562e9e2e1c58007846b6" + } + }, + "description": "Maximum charging current that can be accepted by the system, as measured at the charging inlet.", + "type": "branch", + "uuid": "e3f2e57e7a395d9ca9931d429e540a34" + }, + "Mode": { + "allowed": [ + "DEACTIVATED", + "AUTOMATIC", + "TRIGGERED", + "TIMER", + "PROFILE", + "EXTERNAL_ENTITY", + "MANUAL", + "GRID" + ], + "comment": "EXTERNAL_ENTITY is the only mode where discharge may occur. The mechanism to provide a profile to the vehicle is currently not covered by VSS.", + "datatype": "string", + "deprecation": "V4.1 - MANUAL and GRID are deprecated, please use AUTOMATIC/TRIGGERED or EXTERNAL_ENITY instead.", + "description": "Describes how the charging process is controlled. DEACTIVATED means that charging and discharging is deactivated, nothing will happen if charger is connected. AUTOMATIC means charging will be initiated as soon as charger is connected. TRIGGERED means charging will be initiated when triggered by user. TIMER means charging is timer-based. PROFILE means charging is controlled by profile downloaded to vehicle. EXTERNAL_ENTITY means charging/discharging is controlled by the external entity connected to the vehicle. This includes GRID-controlled charging (e.g. ISO 15118), but also other cases where vehicle is connected to an arbitrary load that is powered by the vehicle. MANUAL means manually initiated (plug-in event, companion app, etc). GRID means grid-controlled (e.g. ISO 15118).", + "type": "actuator", + "uuid": "1e4be3280b265873945531f6f6d0ec6b" + }, + "PowerLoss": { + "datatype": "float", + "description": "Electrical energy lost by power dissipation to heat inside the AC/DC converter.", + "type": "sensor", + "unit": "W", + "uuid": "88f40bbeb80b5dfb97ceba13269665c5" + }, + "StartStopCharging": { + "allowed": [ + "START", + "STOP" + ], + "datatype": "string", + "description": "Start or stop the charging process.", + "type": "actuator", + "uuid": "80506d3e9a2557c2b52f74a50d89593f" + }, + "Temperature": { + "datatype": "float", + "description": "Current temperature of AC/DC converter converting grid voltage to battery voltage.", + "type": "sensor", + "unit": "celsius", + "uuid": "c3c0ef3a41db5df1bab659803adbc7ba" + }, + "TimeToComplete": { + "comment": "Shall consider time set by Charging.Timer.Time. E.g. if charging shall start in 3 hours and 2 hours of charging is needed, then Charging.TimeToComplete shall report 5 hours.", + "datatype": "uint32", + "description": "The time needed for the current charging process to reach Charging.ChargeLimit. 0 if charging is complete or no charging process is active or planned.", + "type": "sensor", + "unit": "s", + "uuid": "c6439c2e068652b08383b9654e2e784a" + }, + "Timer": { + "children": { + "Mode": { + "allowed": [ + "INACTIVE", + "START_TIME", + "END_TIME" + ], + "datatype": "string", + "description": "Defines timer mode for charging: INACTIVE - no timer set, charging may start as soon as battery is connected to a charger. START_TIME - charging shall start at Charging.Timer.Time. END_TIME - charging shall be finished (reach Charging.ChargeLimit) at Charging.Timer.Time. When charging is completed the vehicle shall change mode to 'inactive' or set a new Charging.Timer.Time. Charging shall start immediately if mode is 'starttime' or 'endtime' and Charging.Timer.Time is a time in the past.", + "type": "actuator", + "uuid": "b09fb52261735977af275dda1904a7a1" + }, + "Time": { + "datatype": "string", + "description": "Time for next charging-related action, formatted according to ISO 8601 with UTC time zone. Value has no significance if Charging.Timer.Mode is 'inactive'.", + "type": "actuator", + "uuid": "c08dcaeda02b5e26aacd7e2542f0fc90" + } + }, + "description": "Properties related to timing of battery charging sessions.", + "type": "branch", + "uuid": "cd5b57ada627510e83f90832efed9d5a" + } + }, + "description": "Properties related to battery charging.", + "type": "branch", + "uuid": "49b9ef0c8b145a36afdf17d0cb44131b" + }, + "CurrentCurrent": { + "datatype": "float", + "description": "Current current flowing in/out of battery. Positive = Current flowing in to battery, e.g. during charging. Negative = Current flowing out of battery, e.g. during driving.", + "type": "sensor", + "unit": "A", + "uuid": "7a1488e0c83f50a6b69d8ea85c5bb592" + }, + "CurrentPower": { + "datatype": "float", + "description": "Current electrical energy flowing in/out of battery. Positive = Energy flowing in to battery, e.g. during charging. Negative = Energy flowing out of battery, e.g. during driving.", + "type": "sensor", + "unit": "W", + "uuid": "8859e1b0386a5eda880a9c30cd0dfa8e" + }, + "CurrentVoltage": { + "datatype": "float", + "description": "Current Voltage of the battery.", + "type": "sensor", + "unit": "V", + "uuid": "7b54ea22ee7d5f559da552aefcc07222" + }, + "DCDC": { + "children": { + "PowerLoss": { + "datatype": "float", + "description": "Electrical energy lost by power dissipation to heat inside DC/DC converter.", + "type": "sensor", + "unit": "W", + "uuid": "f29e37087cdf57ca998188c7b945a77b" + }, + "Temperature": { + "datatype": "float", + "description": "Current temperature of DC/DC converter converting battery high voltage to vehicle low voltage (typically 12 Volts).", + "type": "sensor", + "unit": "celsius", + "uuid": "4e587c3af2aa5fbb9205e42a64fc8d77" + } + }, + "description": "Properties related to DC/DC converter converting high voltage (from high voltage battery) to vehicle low voltage (supply voltage, typically 12 Volts).", + "type": "branch", + "uuid": "01f4943795b55cbd8f94e1bca137fc0a" + }, + "ErrorCodes": { + "comment": "Error code format is not defined, it may be DTCs according to OBD II (SAE-J2012DA_201812) standard ([P|C|B|U]XXXXX ) or any other format.", + "datatype": "string[]", + "description": "Current error codes related to the battery, if any.", + "type": "sensor", + "uuid": "bbc1f199a5965e5eb4f99709052a7cc4" + }, + "GrossCapacity": { + "datatype": "uint16", + "description": "Gross capacity of the battery.", + "type": "attribute", + "unit": "kWh", + "uuid": "5460530488435dc8bfa1298bf47a993d" + }, + "Id": { + "comment": "This could be serial number, part number plus serial number, UUID, or any other identifier that the OEM want to use to uniquely identify the battery individual.", + "datatype": "string", + "description": "Battery Identification Number as assigned by OEM.", + "type": "attribute", + "uuid": "c8279874660c55b38c7ac64a8503a519" + }, + "IsGroundConnected": { + "comment": "It might be possible to disconnect the traction battery used by an electric powertrain. This is achieved by connectors, typically one for plus and one for minus.", + "datatype": "boolean", + "description": "Indicating if the ground (negative terminator) of the traction battery is connected to the powertrain.", + "type": "sensor", + "uuid": "dd38d1c7ee12530aac03f49ad01d5c04" + }, + "IsPowerConnected": { + "comment": "It might be possible to disconnect the traction battery used by an electric powertrain. This is achieved by connectors, typically one for plus and one for minus.", + "datatype": "boolean", + "description": "Indicating if the power (positive terminator) of the traction battery is connected to the powertrain.", + "type": "sensor", + "uuid": "e30ef59fc2a25f6b8990248e19a5cdf9" + }, + "MaxVoltage": { + "datatype": "uint16", + "description": "Max allowed voltage of the battery, e.g. during charging.", + "type": "attribute", + "unit": "V", + "uuid": "a81264a0ef0c55d288671cfc62c4add5" + }, + "NetCapacity": { + "datatype": "uint16", + "description": "Total net capacity of the battery considering aging.", + "type": "sensor", + "unit": "kWh", + "uuid": "9c68fe42cb81501eb6349f8c9b0b6899" + }, + "NominalVoltage": { + "comment": "Nominal voltage typically refers to voltage of fully charged battery when delivering rated capacity.", + "datatype": "uint16", + "description": "Nominal Voltage of the battery.", + "type": "attribute", + "unit": "V", + "uuid": "3eccae5633185b998d5bdb6ea33cd926" + }, + "PowerLoss": { + "datatype": "float", + "description": "Electrical energy lost by power dissipation to heat inside the battery.", + "type": "sensor", + "unit": "W", + "uuid": "880082aafe025cb3a5776b623f9a48b5" + }, + "ProductionDate": { + "datatype": "string", + "description": "Production date of battery in ISO8601 format, e.g. YYYY-MM-DD.", + "type": "attribute", + "uuid": "c9509ba4d76c56d9a8c1d6e2280ae02f" + }, + "Range": { + "datatype": "uint32", + "description": "Remaining range in meters using only battery.", + "type": "sensor", + "unit": "m", + "uuid": "c0376a425e5d578d9d86ae0dc2ad9778" + }, + "StateOfCharge": { + "children": { + "Current": { + "datatype": "float", + "description": "Physical state of charge of the high voltage battery, relative to net capacity. This is not necessarily the state of charge being displayed to the customer.", + "max": 100.0, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "2e647ca3a1ff5e52af137aab240642da" + }, + "CurrentEnergy": { + "comment": "Current energy could be calculated as .StateOfCharge.Current * .NetCapacity.", + "datatype": "float", + "description": "Physical state of charge of high voltage battery expressed in kWh.", + "type": "sensor", + "unit": "kWh", + "uuid": "435ef8dbe4425450ae1ff6215fc9e40b" + }, + "Displayed": { + "datatype": "float", + "description": "State of charge displayed to the customer.", + "max": 100.0, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "1bfcc228293b5512aafe2508ab0500d2" + } + }, + "description": "Information on the state of charge of the vehicle's high voltage battery.", + "type": "branch", + "uuid": "26bae2ce7c4d5e2a951915ef2f5d8b7d" + }, + "StateOfHealth": { + "comment": "Exact formula is implementation dependent. Could be e.g. current capacity at 20 degrees Celsius divided with original capacity at the same temperature.", + "datatype": "float", + "description": "Calculated battery state of health at standard conditions.", + "max": 100, + "min": 0, + "type": "sensor", + "unit": "percent", + "uuid": "4d982c47f3245048bcfec1190973a3ed" + }, + "Temperature": { + "children": { + "Average": { + "datatype": "float", + "description": "Current average temperature of the battery cells.", + "type": "sensor", + "unit": "celsius", + "uuid": "ae28e502137f56b9a037ed9b32bc04e1" + }, + "CellTemperature": { + "comment": "Cells are identified by relative position in array.", + "datatype": "float[]", + "description": "Array of cell temperatures. Length or array shall correspond to number of cells in vehicle.", + "type": "sensor", + "uuid": "e92fede319da5e428f4bd024d7dd6970" + }, + "Max": { + "datatype": "float", + "description": "Current maximum temperature of the battery cells, i.e. temperature of the hottest cell.", + "type": "sensor", + "unit": "celsius", + "uuid": "07aa7c8ba1d355398d7469c2b337152a" + }, + "Min": { + "datatype": "float", + "description": "Current minimum temperature of the battery cells, i.e. temperature of the coldest cell.", + "type": "sensor", + "unit": "celsius", + "uuid": "4e3f630fefa7558fa302b175bc7eb5c7" + } + }, + "description": "Temperature Information for the battery pack.", + "type": "branch", + "uuid": "1cfbcf8c152959dcb3eb2c54fc42e623" + }, + "TimeRemaining": { + "datatype": "uint32", + "description": "Time remaining in seconds before the battery is empty.", + "type": "sensor", + "unit": "s", + "uuid": "7a51820010f35dcabe968e669173b27e" + } + }, + "description": "Battery Management data.", + "type": "branch", + "uuid": "1a2515d1a8875d86873431194ade2b50" + }, + "Transmission": { + "children": { + "ClutchEngagement": { + "datatype": "float", + "description": "Clutch engagement. 0% = Clutch fully disengaged. 100% = Clutch fully engaged.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "2890bd4a2b6a56c19b62d7bd95151fc6" + }, + "ClutchWear": { + "datatype": "uint8", + "description": "Clutch wear as a percent. 0 = no wear. 100 = worn.", + "max": 100, + "type": "sensor", + "unit": "percent", + "uuid": "c113405ad165571a9d53ae4cf55dc929" + }, + "CurrentGear": { + "datatype": "int8", + "dbc2vss": { + "interval_ms": 100, + "signal": "DI_gear", + "transform": { + "mapping": [ + { + "from": "DI_GEAR_D", + "to": 1 + }, + { + "from": "DI_GEAR_P", + "to": 0 + }, + { + "from": "DI_GEAR_INVALID", + "to": 0 + }, + { + "from": "DI_GEAR_R", + "to": -1 + } + ] + } + }, + "description": "The current gear. 0=Neutral, 1/2/..=Forward, -1/-2/..=Reverse.", + "type": "sensor", + "uuid": "cd0ba1d772565e16bff46cbd5c9361da" + }, + "DiffLockFrontEngagement": { + "datatype": "float", + "description": "Front Diff Lock engagement. 0% = Diff lock fully disengaged. 100% = Diff lock fully engaged.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "5149afe37fbd5c24847b5820821abc02" + }, + "DiffLockRearEngagement": { + "datatype": "float", + "description": "Rear Diff Lock engagement. 0% = Diff lock fully disengaged. 100% = Diff lock fully engaged.", + "max": 100, + "min": 0, + "type": "actuator", + "unit": "percent", + "uuid": "197c939bd1405613b80179becec6db83" + }, + "DriveType": { + "allowed": [ + "UNKNOWN", + "FORWARD_WHEEL_DRIVE", + "REAR_WHEEL_DRIVE", + "ALL_WHEEL_DRIVE" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Drive type.", + "type": "attribute", + "uuid": "0e480b76fb2d5f8bb08fb586f90ee6ae" + }, + "GearChangeMode": { + "allowed": [ + "MANUAL", + "AUTOMATIC" + ], + "datatype": "string", + "description": "Is the gearbox in automatic or manual (paddle) mode.", + "type": "actuator", + "uuid": "ff3c69378c2f598286e51f7dac13adaa" + }, + "GearCount": { + "datatype": "int8", + "default": 0, + "description": "Number of forward gears in the transmission. -1 = CVT.", + "type": "attribute", + "uuid": "84293f40d3ed57f1a08992d97b1a9ccd" + }, + "IsElectricalPowertrainEngaged": { + "comment": "In some hybrid solutions it is possible to disconnect/disengage the electrical powertrain mechanically to avoid induced voltage reaching a too high level when driving at high speed.", + "datatype": "boolean", + "description": "Is electrical powertrain mechanically connected/engaged to the drivetrain or not. False = Disconnected/Disengaged. True = Connected/Engaged.", + "type": "actuator", + "uuid": "6660cf1d88d15430b1e7c8908a7b769b" + }, + "IsLowRangeEngaged": { + "comment": "The possibility to switch between low and high gear range is typically only available in heavy vehicles and off-road vehicles.", + "datatype": "boolean", + "description": "Is gearbox in low range mode or not. False = Normal/High range engaged. True = Low range engaged.", + "type": "actuator", + "uuid": "63ba7593926b574ebbe4f90b28557e78" + }, + "IsParkLockEngaged": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 100, + "signal": "DI_gear", + "transform": { + "mapping": [ + { + "from": "DI_GEAR_D", + "to": false + }, + { + "from": "DI_GEAR_P", + "to": true + }, + { + "from": "DI_GEAR_INVALID", + "to": false + }, + { + "from": "DI_GEAR_R", + "to": false + } + ] + } + }, + "description": "Is the transmission park lock engaged or not. False = Disengaged. True = Engaged.", + "type": "sensor", + "uuid": "1578da3f925e54ac9df978abd0195408" + }, + "PerformanceMode": { + "allowed": [ + "NORMAL", + "SPORT", + "ECONOMY", + "SNOW", + "RAIN" + ], + "datatype": "string", + "description": "Current gearbox performance mode.", + "type": "actuator", + "uuid": "6b5cfd85cb595e559503ccf993be04dd" + }, + "SelectedGear": { + "datatype": "int8", + "description": "The selected gear. 0=Neutral, 1/2/..=Forward, -1/-2/..=Reverse, 126=Park, 127=Drive.", + "type": "actuator", + "uuid": "490fd99b9d5f562eb180c19e8cef5e12" + }, + "Temperature": { + "datatype": "int16", + "description": "The current gearbox temperature.", + "type": "sensor", + "unit": "celsius", + "uuid": "4f5e48c3511b5e1abff11aa7ec62dd18" + }, + "TorqueDistribution": { + "datatype": "float", + "description": "Torque distribution between front and rear axle in percent. -100% = Full torque to front axle, 0% = 50:50 Front/Rear, 100% = Full torque to rear axle.", + "max": 100, + "min": -100, + "type": "actuator", + "unit": "percent", + "uuid": "d3bcaaf973d3512287817049db9bd677" + }, + "TravelledDistance": { + "datatype": "float", + "description": "Odometer reading, total distance travelled during the lifetime of the transmission.", + "type": "sensor", + "unit": "km", + "uuid": "b9dd66f20c7f5b12a046766b94dc20c1" + }, + "Type": { + "allowed": [ + "UNKNOWN", + "SEQUENTIAL", + "H", + "AUTOMATIC", + "DSG", + "CVT" + ], + "datatype": "string", + "default": "UNKNOWN", + "description": "Transmission type.", + "type": "attribute", + "uuid": "f83b9e5464d85a0288fcb32c164d3c63" + } + }, + "description": "Transmission-specific data, stopping at the drive shafts.", + "type": "branch", + "uuid": "6b71e284b63a527caa6296a66e9fdd0c" + }, + "Type": { + "allowed": [ + "COMBUSTION", + "HYBRID", + "ELECTRIC" + ], + "comment": "For vehicles with a combustion engine (including hybrids) more detailed information on fuels supported can be found in FuelSystem.SupportedFuelTypes and FuelSystem.SupportedFuels.", + "datatype": "string", + "description": "Defines the powertrain type of the vehicle.", + "type": "attribute", + "uuid": "2a000da4204658a4a6e3ecd5176bdfba" + } + }, + "description": "Powertrain data for battery management, etc.", + "type": "branch", + "uuid": "12f35ec7bd1c58d1a329565ce3d053d5" + }, + "RoofLoad": { + "datatype": "int16", + "description": "The permitted total weight of cargo and installations (e.g. a roof rack) on top of the vehicle.", + "type": "attribute", + "unit": "kg", + "uuid": "97dc98269a19591d9efa455a8d943c16" + }, + "Service": { + "children": { + "DistanceToService": { + "datatype": "float", + "description": "Remaining distance to service (of any kind). Negative values indicate service overdue.", + "type": "sensor", + "unit": "km", + "uuid": "6f4347ce149759819572c8c3a17e8d93" + }, + "IsServiceDue": { + "datatype": "boolean", + "description": "Indicates if vehicle needs service (of any kind). True = Service needed now or in the near future. False = No known need for service.", + "type": "sensor", + "uuid": "3e28f85ccccd5702b9adbe9a761ea1b4" + }, + "TimeToService": { + "datatype": "int32", + "description": "Remaining time to service (of any kind). Negative values indicate service overdue.", + "type": "sensor", + "unit": "s", + "uuid": "c968be91a5685fa9ae30b84a0f91934e" + } + }, + "description": "Service data.", + "type": "branch", + "uuid": "b6463772705b56a7a993e23601bd3d47" + }, + "Speed": { + "datatype": "float", + "dbc2vss": { + "interval_ms": 100, + "signal": "DI_uiSpeed" + }, + "description": "Vehicle speed.", + "type": "sensor", + "unit": "km/h", + "uuid": "efe50798638d55fab18ab7d43cc490e9" + }, + "StartTime": { + "comment": "This signal is supposed to be set whenever a new trip starts. A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled. The default value indicates that the vehicle never has been started, or that latest start time is unknown.", + "datatype": "string", + "default": "0000-01-01T00:00Z", + "description": "Start time of current or latest trip, formatted according to ISO 8601 with UTC time zone.", + "type": "attribute", + "uuid": "3790b5f4513c5a3d90a0503a965bbbe0" + }, + "Trailer": { + "children": { + "IsConnected": { + "datatype": "boolean", + "dbc2vss": { + "interval_ms": 3000, + "signal": "VCLEFT_trailerDetected", + "transform": { + "mapping": [ + { + "from": "TRAILER_LIGHT_DETECTION_SNA", + "to": false + }, + { + "from": "TRAILER_LIGHT_DETECTION_DETECTED", + "to": true + }, + { + "from": "TRAILER_LIGHT_DETECTION_FAULT", + "to": false + }, + { + "from": "TRAILER_LIGHT_DETECTION_NOT_DETECTED", + "to": false + } + ] + } + }, + "description": "Signal indicating if trailer is connected or not.", + "type": "sensor", + "uuid": "77f28ed03c125ac9a19d22e9436b0ec4" + } + }, + "description": "Trailer signals.", + "type": "branch", + "uuid": "66206ee5c25a5817bef214c0c8ae8013" + }, + "TraveledDistance": { + "datatype": "float", + "description": "Odometer reading, total distance traveled during the lifetime of the vehicle.", + "type": "sensor", + "unit": "km", + "uuid": "32c3c3585f105d8aa5566ef5a038a741" + }, + "TraveledDistanceSinceStart": { + "comment": "A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled. The signal may however keep the value of the last trip until a new trip is started.", + "datatype": "float", + "description": "Distance traveled since start of current trip.", + "type": "sensor", + "unit": "km", + "uuid": "cfc6efd2793152e487f9fe3f4e03fd5d" + }, + "TripDuration": { + "comment": "This signal is not assumed to be continuously updated, but instead set to 0 when a trip starts and set to the actual duration of the trip when a trip ends. A new trip is considered to start when engine gets enabled (e.g. LowVoltageSystemState in ON or START mode). A trip is considered to end when engine is no longer enabled.", + "datatype": "float", + "description": "Duration of latest trip.", + "type": "sensor", + "unit": "s", + "uuid": "84b9558ad33555389791b57d505f27a8" + }, + "TripMeterReading": { + "comment": "The trip meter is an odometer that can be manually reset by the driver", + "datatype": "float", + "description": "Trip meter reading.", + "type": "actuator", + "unit": "km", + "uuid": "81f51ebfe29c591190171d7b96e1c948" + }, + "TurningDiameter": { + "datatype": "uint16", + "description": "Minimum turning diameter, Wall-to-Wall, as defined by SAE J1100-2009 D102.", + "type": "attribute", + "unit": "mm", + "uuid": "acc4b8faccf45139a948e97570767736" + }, + "VehicleIdentification": { + "children": { + "AcrissCode": { + "datatype": "string", + "description": "The ACRISS Car Classification Code is a code used by many car rental companies.", + "type": "attribute", + "uuid": "115a821e8e0b57f08e4b9e61e85d7156" + }, + "BodyType": { + "datatype": "string", + "description": "Indicates the design and body style of the vehicle (e.g. station wagon, hatchback, etc.).", + "type": "attribute", + "uuid": "e6d5c71ecec95d68b0b59bb7e93af759" + }, + "Brand": { + "datatype": "string", + "description": "Vehicle brand or manufacturer.", + "type": "attribute", + "uuid": "19fd645ff5385767bcdbf5dd4313483f" + }, + "DateVehicleFirstRegistered": { + "datatype": "string", + "description": "The date in ISO 8601 format of the first registration of the vehicle with the respective public authorities.", + "type": "attribute", + "uuid": "046f47acf62e50bd863d6568d73743d7" + }, + "KnownVehicleDamages": { + "datatype": "string", + "description": "A textual description of known damages, both repaired and unrepaired.", + "type": "attribute", + "uuid": "e87f352cddb15e94b340506b17207586" + }, + "LicensePlate": { + "comment": "Depending on the context, this attribute might not be up to date or might be misconfigured, and therefore should be considered untrustworthy in the absence of another method of verification.", + "datatype": "string", + "description": "The license plate of the vehicle.", + "type": "attribute", + "uuid": "81ddd35883995a61a5fb71e26d31adaa" + }, + "MeetsEmissionStandard": { + "datatype": "string", + "description": "Indicates that the vehicle meets the respective emission standard.", + "type": "attribute", + "uuid": "d75dedbfadca54d8b6c7261c37ad5d83" + }, + "Model": { + "datatype": "string", + "description": "Vehicle model.", + "type": "attribute", + "uuid": "dd3d3b72e6a85b3695ba25f829255403" + }, + "OptionalExtras": { + "comment": "Allowed values are not standardized, each OEM can specify detail descriptions of array elements.", + "datatype": "string[]", + "description": "Optional extras refers to all car equipment options that are not installed as standard by the manufacturer.", + "type": "attribute", + "uuid": "d9ecc64b0c995595967e05009d6fc1b9" + }, + "ProductionDate": { + "datatype": "string", + "description": "The date in ISO 8601 format of production of the item, e.g. vehicle.", + "type": "attribute", + "uuid": "5683877c4bac504d915b268c9476c190" + }, + "PurchaseDate": { + "datatype": "string", + "description": "The date in ISO 8601 format of the item e.g. vehicle was purchased by the current owner.", + "type": "attribute", + "uuid": "31302f8b57e85c4197afda3e3201fce8" + }, + "VIN": { + "datatype": "string", + "description": "17-character Vehicle Identification Number (VIN) as defined by ISO 3779.", + "type": "attribute", + "uuid": "6f0b6fa8c34f589baa92e565bc9df5bd" + }, + "VehicleConfiguration": { + "datatype": "string", + "description": "A short text indicating the configuration of the vehicle, e.g. '5dr hatchback ST 2.5 MT 225 hp' or 'limited edition'.", + "type": "attribute", + "uuid": "2526c7ba4c8458c78000a9e5f2fe89d5" + }, + "VehicleExteriorColor": { + "datatype": "string", + "description": "The main color of the exterior within the basic color palette (eg. red, blue, black, white, ...).", + "type": "attribute", + "uuid": "07c48d164c615369b87ccc2920edf802" + }, + "VehicleInteriorColor": { + "datatype": "string", + "description": "The color or color combination of the interior of the vehicle.", + "type": "attribute", + "uuid": "67a8b069b8bf573993d51959c24f04e2" + }, + "VehicleInteriorType": { + "datatype": "string", + "description": "The type or material of the interior of the vehicle (e.g. synthetic fabric, leather, wood, etc.).", + "type": "attribute", + "uuid": "4c4eed302b2e51daa9b6f5f398987a77" + }, + "VehicleModelDate": { + "datatype": "string", + "description": "The release date in ISO 8601 format of a vehicle model (often used to differentiate versions of the same make and model).", + "type": "attribute", + "uuid": "c71b63f83dea536bac58e62bbe537f11" + }, + "VehicleSeatingCapacity": { + "datatype": "uint16", + "description": "The number of passengers that can be seated in the vehicle, both in terms of the physical space available, and in terms of limitations set by law.", + "type": "attribute", + "uuid": "7ae5db0e0482555686b9be71dd8a0c38" + }, + "VehicleSpecialUsage": { + "datatype": "string", + "description": "Indicates whether the vehicle has been used for special purposes, like commercial rental, driving school.", + "type": "attribute", + "uuid": "7e6e8a48f54a5549a8f6af8f1dc5eb8d" + }, + "WMI": { + "datatype": "string", + "description": "3-character World Manufacturer Identification (WMI) as defined by ISO 3780.", + "type": "attribute", + "uuid": "e7c86defbcd554a79f90ba85de58e133" + }, + "Year": { + "datatype": "uint16", + "description": "Model year of the vehicle.", + "type": "attribute", + "uuid": "9a76b0aca8e45f6fb33dbaf5b976b8b5" + } + }, + "description": "Attributes that identify a vehicle.", + "type": "branch", + "uuid": "c33861c3e9125208b05f23fe922bf08e" + }, + "VersionVSS": { + "children": { + "Label": { + "comment": "COVESA VSS project typically use dev for latest master, and empty string for released versions.", + "datatype": "string", + "default": "dev", + "description": "Label to further describe the version.", + "type": "attribute", + "uuid": "7c92cd50d24b5662922b27cb9a327e53" + }, + "Major": { + "datatype": "uint32", + "default": 5, + "description": "Supported Version of VSS - Major version.", + "type": "attribute", + "uuid": "5edf1a338c975cbb84d4ce3cfe1aa4b4" + }, + "Minor": { + "datatype": "uint32", + "default": 0, + "description": "Supported Version of VSS - Minor version.", + "type": "attribute", + "uuid": "6e70a598dbc7534c96c58c18e9888cfd" + }, + "Patch": { + "datatype": "uint32", + "default": 0, + "description": "Supported Version of VSS - Patch version.", + "type": "attribute", + "uuid": "69858f224af459338b9bfbff436dda45" + } + }, + "description": "Supported Version of VSS.", + "type": "branch", + "uuid": "9a687e56f1305eedb20f6a021ea58f48" + }, + "Width": { + "datatype": "uint16", + "default": 0, + "deprecation": "v4.1 replaced with WidthExcludingMirrors and WidthIncludingMirrors", + "description": "Overall vehicle width.", + "type": "attribute", + "unit": "mm", + "uuid": "b4aabe144e3259adb1459a2e25fec9bd" + }, + "WidthExcludingMirrors": { + "datatype": "uint16", + "default": 0, + "description": "Overall vehicle width excluding mirrors, as defined by SAE J1100-2009 W103.", + "type": "attribute", + "unit": "mm", + "uuid": "3b942451854151a182d8310e795dfb35" + }, + "WidthFoldedMirrors": { + "datatype": "uint16", + "description": "Overall vehicle width with mirrors folded, as defined by SAE J1100-2009 W145.", + "type": "attribute", + "unit": "mm", + "uuid": "ee3490808cc35184af9639fb2f345f38" + }, + "WidthIncludingMirrors": { + "datatype": "uint16", + "description": "Overall vehicle width including mirrors, as defined by SAE J1100-2009 W144.", + "type": "attribute", + "unit": "mm", + "uuid": "25bd8bd35fbd59f8b7b6423a90219ca1" + } + }, + "description": "High-level vehicle data.", + "type": "branch", + "uuid": "ccc825f94139544dbb5f4bfd033bece6" + } +} \ No newline at end of file diff --git a/integration_test/volumes/dbc2val/mapping/.gitignore b/integration_test/volumes/dbc2val/mapping/.gitignore new file mode 100644 index 0000000..96980a5 --- /dev/null +++ b/integration_test/volumes/dbc2val/mapping/.gitignore @@ -0,0 +1,2 @@ +vss_rel_4.0.yaml +vehicle_signal_specification diff --git a/integration_test/volumes/dbc2val/mapping/README.md b/integration_test/volumes/dbc2val/mapping/README.md new file mode 100644 index 0000000..2f5c71e --- /dev/null +++ b/integration_test/volumes/dbc2val/mapping/README.md @@ -0,0 +1,39 @@ +# Integration test custom mapping + +## Overview + +For more details on mapping format, check [dbc2val/mapping.md](https://github.com/eclipse/kuksa.val.feeders/blob/main/dbc2val/mapping/mapping.md) + +## Generating json config for Integration Tests + +1. Edit [it-mapping.vspec](./it-mapping.vspec) if needed (e.g. ucomment DogMode datapoints) + +1. Clone COVESA VSS and vss-tools + + ```console + git clone --recurse-submodules https://github.com/COVESA/vehicle_signal_specification + + ``` + +1. Get VSS4.0 released yaml + + ```console + cd vehicle_signal_specification/ + wget https://github.com/COVESA/vehicle_signal_specification/releases/download/v4.0/vss_rel_4.0.yaml + ``` + +1. Convert it-mapping.vspec to json + + ```console + vss-tools/vspec2json.py -I ./spec --uuid -u ./spec/units.yaml --json-pretty -e dbc2vss -o ../it-mapping.vspec ./spec/VehicleSignalSpecification.vspec ../../it-vss_4.0.json + ``` + + **NOTE:** Running vss-tools (and dbc2val) on python 3.8 was problematic, you may need to use python 3.9 in pyenv, e.g.: + + ```console + curl https://pyenv.run | bash + pyenv install 3.9.18 + pyenv versions + pyenv global 3.9.18 + python3.9 --version + ``` diff --git a/integration_test/volumes/dbc2val/mapping/it-mapping.vspec b/integration_test/volumes/dbc2val/mapping/it-mapping.vspec new file mode 100644 index 0000000..cd395f2 --- /dev/null +++ b/integration_test/volumes/dbc2val/mapping/it-mapping.vspec @@ -0,0 +1,480 @@ +# This is a VSS example overlay that is to be used when generating vss_dbc.json in this repository +# The content shall just be seen as examples that can be used for prototyping. +# It does not in any way represent an official mapping. +# +# How to regenerate vss_dbc.json: +# +# 1. Decide which VSS version to use +# +# Two good places to check: +# * See what versions KUKSA.val supports: https://github.com/eclipse/kuksa.val/tree/master/data/vss-core +# * See what VSS releases that exists: https://github.com/COVESA/vehicle_signal_specification/releases +# +# (You can also also clone the VSS-repo and use whatever version you like) +# +# 2. Download Yaml file for selected verison. +# +# As of today part of a *.tar.gz file in https://github.com/COVESA/vehicle_signal_specification/releases +# +# 3. Regenerate the json file +# +# # pip3 install -U vss-tools +# # vspec2json.py -e dbc -o it_mapping.vspec --json-pretty --no-uuid ./vss_rel_4.0.yaml it_vss.json +# + +# +# Type and datatype required, others will be inherited + +Vehicle.Chassis.SteeringWheel.Angle: + datatype: int16 + type: sensor + dbc2vss: + signal: SteeringAngle129 + interval_ms: 100 + transform: + math: "floor(x+0.5)" + +Vehicle.Speed: + type: sensor + datatype: float + dbc2vss: + signal: DI_uiSpeed + interval_ms: 100 + +Vehicle.OBD.Speed: + type: sensor + datatype: float + dbc2vss: + signal: DI_uiSpeed + interval_ms: 100 + +Vehicle.Powertrain.Transmission.CurrentGear: + type: sensor + datatype: int8 + dbc2vss: + interval_ms: 100 + signal: DI_gear + transform: + mapping: + - from: DI_GEAR_D + to: 1 + - from: DI_GEAR_P + to: 0 + - from: DI_GEAR_INVALID + to: 0 + - from: DI_GEAR_R + to: -1 + +Vehicle.Powertrain.Transmission.IsParkLockEngaged: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 100 + signal: DI_gear + transform: + mapping: + - from: DI_GEAR_D + to: false + - from: DI_GEAR_P + to: true + - from: DI_GEAR_INVALID + to: false + - from: DI_GEAR_R + to: false + +Vehicle.Powertrain.ElectricMotor.Torque: + type: sensor + datatype: int16 + dbc2vss: + interval_ms: 100 + signal: DIR_torqueActual + +Vehicle.OBD.ControlModuleVoltage: + type: sensor + datatype: float + dbc2vss: + interval_ms: 1000 + signal: PCS_dcdcLvBusVolt + +Vehicle.Powertrain.TractionBattery.Charging.IsCharging: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: CP_hvChargeStatus + transform: + mapping: + - from: CP_CHARGE_CONNECTED + to: false + - from: CP_CHARGE_ENABLED + to: true + - from: CP_CHARGE_FAULTED + to: false + - from: CP_CHARGE_INACTIVE + to: false + - from: CP_CHARGE_STANDBY + to: false + - from: CP_EVSE_TEST_PASSED + to: true + - from: CP_EXT_EVSE_TEST_ACTIVE + to: true + +Vehicle.Chassis.Axle.Row1.Wheel.Left.Brake.IsFluidLevelLow: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCFRONT_brakeFluidLevel + transform: + mapping: + - from: LOW + to: true + - from: NORMAL + to: false + +Vehicle.Chassis.Axle.Row1.Wheel.Right.Brake.IsFluidLevelLow: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCFRONT_brakeFluidLevel + transform: + mapping: + - from: LOW + to: true + - from: NORMAL + to: false + +Vehicle.Chassis.Axle.Row2.Wheel.Left.Brake.IsFluidLevelLow: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCFRONT_brakeFluidLevel + transform: + mapping: + - from: LOW + to: true + - from: NORMAL + to: false + +Vehicle.Chassis.Axle.Row2.Wheel.Right.Brake.IsFluidLevelLow: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCFRONT_brakeFluidLevel + transform: + mapping: + - from: LOW + to: true + - from: NORMAL + to: false + +Vehicle.OBD.AmbientAirTemperature: + type: sensor + datatype: float + dbc2vss: + interval_ms: 1000 + signal: VCFRONT_tempAmbientFiltered + +Vehicle.Body.Windshield.Front.WasherFluid.IsLevelLow: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCFRONT_washerFluidLevel + transform: + mapping: + - from: LOW + to: true + - from: NORMAL + to: false + +# VSS 4.0 changes to DriverSide/PassengerSide +# We here assume that we have a LHD vehicle as +# DBCFeeder cannot handle conditions +# to use either driver or passenger side based on configuration +Vehicle.Body.Mirrors.DriverSide.IsHeatingOn: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCLEFT_mirrorHeatState + transform: + mapping: + - from: HEATER_STATE_ON + to: true + - from: HEATER_STATE_OFF + to: false + +Vehicle.Body.Mirrors.PassengerSide.IsHeatingOn: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCLEFT_mirrorHeatState + transform: + mapping: + - from: HEATER_STATE_ON + to: true + - from: HEATER_STATE_OFF + to: false + +Vehicle.Body.Mirrors.DriverSide.Tilt: + datatype: int8 + type: actuator + dbc2vss: + signal: VCLEFT_mirrorTiltYPosition + interval_ms: 100 + transform: + math: "floor((x*40)-100)" + vss2dbc: + signal: VCLEFT_mirrorTiltYPosition + transform: + math: "(x+100)/40" + +Vehicle.Body.Mirrors.DriverSide.Pan: + datatype: int8 + type: actuator + dbc2vss: + signal: VCLEFT_mirrorTiltXPosition + interval_ms: 100 + transform: + math: "floor((x*40)-100)" + vss2dbc: + signal: VCLEFT_mirrorTiltXPosition + transform: + math: "(x+100)/40" + +Vehicle.Body.Mirrors.PassengerSide.Tilt: + datatype: int8 + type: actuator + dbc2vss: + signal: VCRIGHT_mirrorTiltYPosition + interval_ms: 100 + transform: + math: "floor((x*40)-100)" + +Vehicle.Body.Mirrors.PassengerSide.Pan: + datatype: int8 + type: actuator + dbc2vss: + signal: VCRIGHT_mirrorTiltXPosition + interval_ms: 100 + transform: + math: "floor((x*40)-100)" + +Vehicle.Body.Trunk.Rear.IsOpen: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCRIGHT_trunkLatchStatus + transform: + mapping: + - from: LATCH_AJAR + to: true + - from: LATCH_CLOSED + to: false + - from: LATCH_CLOSING + to: true + - from: LATCH_FAULT + to: true + - from: LATCH_OPENED + to: true + - from: LATCH_OPENING + to: true + vss2dbc: + signal: VCRIGHT_trunkLatchStatus + transform: + mapping: + - from: true + to: LATCH_OPENED + - from: false + to: LATCH_CLOSED + +Vehicle.Powertrain.ElectricMotor.Temperature: + datatype: int16 + type: sensor + dbc2vss: + signal: PTC_rightTempIGBT + interval_ms: 1000 + vss2dbc: + signal: PTC_rightTempIGBT + +Vehicle.Cabin.Door.Row1.DriverSide.IsOpen: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 500 + signal: VCLEFT_frontDoorState + transform: + mapping: + - from: DOOR_STATE_CLOSED + to: false + - from: DOOR_STATE_OPEN_OR_AJAR + to: true + - from: DOOR_STATE_RELEASING_LATCH + to: true + +Vehicle.Cabin.Door.Row2.DriverSide.IsOpen: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 500 + signal: VCLEFT_rearDoorState + transform: + mapping: + - from: DOOR_STATE_CLOSED + to: false + - from: DOOR_STATE_OPEN_OR_AJAR + to: true + - from: DOOR_STATE_RELEASING_LATCH + to: true + +Vehicle.Cabin.Seat.Row1.DriverSide.IsBelted: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 1000 + signal: VCFRONT_driverBuckleStatus + transform: + mapping: + - from: BUCKLED + to: true + - from: UNBUCKLED + to: false + +Vehicle.Body.Lights.Brake.IsActive: + type: actuator + datatype: string + dbc2vss: + interval_ms: 100 + signal: VCRIGHT_brakeLightStatus + transform: + mapping: + - from: LIGHT_OFF + to: 'INACTIVE' + - from: LIGHT_ON + to: 'ACTIVE' + - from: LIGHT_FAULT + to: 'INACTIVE' + - from: LIGHT_SNA + to: 'INACTIVE' + +Vehicle.Body.Lights.Fog.Rear.IsOn: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 100 + signal: VCRIGHT_brakeLightStatus + transform: + mapping: + - from: LIGHT_OFF + to: false + - from: LIGHT_ON + to: true + - from: LIGHT_FAULT + to: false + - from: LIGHT_SNA + to: false + +Vehicle.Body.Lights.Backup.IsOn: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 100 + signal: VCRIGHT_reverseLightStatus + transform: + mapping: + - from: LIGHT_OFF + to: false + - from: LIGHT_ON + to: true + - from: LIGHT_FAULT + to: false + - from: LIGHT_SNA + to: false + +Vehicle.Body.Lights.DirectionIndicator.Right.IsSignaling: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 100 + signal: VCRIGHT_turnSignalStatus + transform: + mapping: + - from: LIGHT_OFF + to: false + - from: LIGHT_ON + to: true + - from: LIGHT_FAULT + to: false + - from: LIGHT_SNA + to: false + +Vehicle.Body.Lights.DirectionIndicator.Left.IsSignaling: + type: actuator + datatype: boolean + dbc2vss: + interval_ms: 100 + signal: VCLEFT_turnSignalStatus + transform: + mapping: + - from: LIGHT_OFF + to: false + - from: LIGHT_ON + to: true + - from: LIGHT_FAULT + to: false + - from: LIGHT_SNA + to: false + +Vehicle.Trailer.IsConnected: + type: sensor + datatype: boolean + dbc2vss: + interval_ms: 3000 + signal: VCLEFT_trailerDetected + transform: + mapping: + - from: TRAILER_LIGHT_DETECTION_SNA + to: false + - from: TRAILER_LIGHT_DETECTION_DETECTED + to: true + - from: TRAILER_LIGHT_DETECTION_FAULT + to: false + - from: TRAILER_LIGHT_DETECTION_NOT_DETECTED + to: false + +Vehicle.OBD.EngineLoad: + type: sensor + datatype: float + dbc2vss: + signal: RearPower266 + interval_ms: 100 + transform: + math: "floor(abs(x/5))" + +#### DogMmode hackathon example (disabled by default as we also need custom vss.json for databroker) + +# Vehicle.Cabin.DogMode: +# datatype: boolean +# type: attribute +# description: Enable Dog Mode. +# dbc2vss: +# signal: DogModeOn +# interval_ms: 500 +# on_change: true +# +# Vehicle.Cabin.DogModeTemperature: +# datatype: float +# type: attribute +# unit: celsius +# description: Set desired temperature for Dog Mode. +# dbc2vss: +# signal: DogModeTempSet +# interval_ms: 500 +# on_change: true + diff --git a/prerequisite_settings.json b/prerequisite_settings.json index 7c798b2..7049cfc 100644 --- a/prerequisite_settings.json +++ b/prerequisite_settings.json @@ -4,7 +4,7 @@ "imageVersion": "master" }, "feedercan": { - "version": "v0.1.0" + "version": "0.4.1" }, "kuksa_client": { "version": "0.4.1" diff --git a/seat_service/README.md b/seat_service/README.md index a02cd09..a92dd66 100644 --- a/seat_service/README.md +++ b/seat_service/README.md @@ -33,7 +33,9 @@ This represents the example seat control service. More elaborate or completely d ``` bash cd .. - docker build -t oci_kuksa-val-services-ci:latest -f tools/Dockerfile . + docker build -t oci_kuksa-val-services-ci:latest -f tools/Dockerfile . + # NOTE: If you need to cross compile for different arch: + DOCKER_BUILDKIT=1 docker buildx build --platform linux/arm64 -t oci_kuksa-val-services-ci:arm64 -f tools/Dockerfile --load . ``` ### Usage on CLI diff --git a/setup.cfg b/setup.cfg index 12d5d1a..caf8416 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,4 +36,7 @@ profile = black skips = ["B101"] [tool:pytest] -asyncio_mode = auto \ No newline at end of file +asyncio_mode = auto +pythonpath = + integration_test +# hvac_service diff --git a/tools/Dockerfile b/tools/Dockerfile index 707018c..d05e0f8 100644 --- a/tools/Dockerfile +++ b/tools/Dockerfile @@ -31,27 +31,31 @@ ENV DEBIAN_FRONTEND=noninteractive # Install apt & root utils needed inside devcontainer RUN \ sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \ - apt-get update && \ - apt-get -qqy install --no-install-recommends \ - apt-utils software-properties-common sudo curl + apt-get update && apt-get upgrade -y -# Upgrade as needed -RUN apt-get upgrade -y + +RUN apt-get -qqy install --no-install-recommends \ + apt-utils software-properties-common binutils-common sudo curl # Install dev utilities RUN apt-get -qqy install --no-install-recommends \ git \ - doxygen \ can-utils +# NOTE: spit to reduce layer size (ttl.sh upload) +RUN apt-get -qqy install --no-install-recommends \ + doxygen + # Install build tools RUN apt-get -qqy install --no-install-recommends \ cmake make ccache -# compilers +## compilers # compiler version must be sync with conan build profile RUN apt-get -qqy install --no-install-recommends \ - g++ \ + g++ +# NOTE: g++aarch64 is spit to reduce layer size (ttl.sh upload) +RUN apt-get -qqy install --no-install-recommends \ g++-aarch64-linux-gnu RUN apt-get -qqy install --no-install-recommends \ @@ -74,8 +78,7 @@ RUN pip3 install --upgrade pip setuptools # cantools: code generation from .dbc file RUN pip3 install \ 'conan==1.56.0' \ - 'cantools==37.0.1' \ - 'setuptools==68.2.2' + 'cantools==37.0.1' # Install Rust tools and prerequists needed for the databroker # RUN apt-get -y install --no-install-recommends curl jq @@ -87,4 +90,8 @@ COPY integration_test/requirements-dev.txt integration_test/requirements-dev.txt RUN pip3 install -U -r hvac_service/requirements-dev.txt RUN pip3 install -U -r integration_test/requirements-dev.txt +# cleanup cahces to minimize image size +RUN pip3 cache purge +RUN apt-get clean + WORKDIR /workspace diff --git a/tools/update-kuksa-proto.sh b/tools/update-kuksa-proto.sh new file mode 100755 index 0000000..c7fa1d5 --- /dev/null +++ b/tools/update-kuksa-proto.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# /******************************************************************************** +# * Copyright (c) 2023 Contributors to the Eclipse Foundation +# * +# * See the NOTICE file(s) distributed with this work for additional +# * information regarding copyright ownership. +# * +# * This program and the accompanying materials are made available under the +# * terms of the Apache License 2.0 which is available at +# * http://www.apache.org/licenses/LICENSE-2.0 +# * +# * SPDX-License-Identifier: Apache-2.0 +# ********************************************************************************/ +# shellcheck disable=SC2086 + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$SCRIPT_DIR" || exit 1 + +DATABROKER_PROTO="$SCRIPT_DIR/../proto" + +echo "# Get proto files from master:" +set -x + +curl -o $DATABROKER_PROTO/sdv/databroker/v1/broker.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/kuksa_databroker/proto/sdv/databroker/v1/broker.proto +curl -o $DATABROKER_PROTO/sdv/databroker/v1/collector.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/kuksa_databroker/proto/sdv/databroker/v1/collector.proto +curl -o $DATABROKER_PROTO/sdv/databroker/v1/types.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/kuksa_databroker/proto/sdv/databroker/v1/types.proto +curl -o $DATABROKER_PROTO/sdv/databroker/v1/README.md --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/kuksa_databroker/proto/sdv/databroker/v1/README.md + +# NOTE: not using kuksa_databroker/proto/kuksa for kuksa proto, as it only has symlinks +curl -o $DATABROKER_PROTO/kuksa/val/v1/types.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/proto/kuksa/val/v1/types.proto +curl -o $DATABROKER_PROTO/kuksa/val/v1/val.proto --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/proto/kuksa/val/v1/val.proto +curl -o $DATABROKER_PROTO/kuksa/val/v1/README.md --create-dirs https://raw.githubusercontent.com/eclipse/kuksa.val/master/proto/kuksa/val/v1/README.md \ No newline at end of file