summaryrefslogtreecommitdiffstats
path: root/recipes-connectivity
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-04-06 23:55:42 +0200
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-04-06 23:58:07 +0200
commit5f1c3868c5353d89eb8b3396d88d0e70f2e99ab4 (patch)
tree16a1a1db347b37b232f9b6b8e0fa6cd798a809d4 /recipes-connectivity
parent68c88e1854abfa49ed98743398d64bdff7ebb3fa (diff)
Change-Id: Ia4c741323a705692219057174e00a083a97da16d Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'recipes-connectivity')
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0004-Enable-val2dbc-for-sensor-values.patch142
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc38
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc.bak.2024040564
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-dbc-feeder/dbc_default_values.json40
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.env3
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.service3
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-dbc-feeder_git.bb6
-rw-r--r--recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec209
-rw-r--r--recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.control-panel446
-rw-r--r--recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.gw-control-panel447
-rw-r--r--recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.gw-hardware341
-rw-r--r--recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec460
-rw-r--r--recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.control-panel412
-rw-r--r--recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.gw-control-panel410
-rw-r--r--recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.gw-hardware349
-rw-r--r--recipes-connectivity/vss/vss-agl_4.0.bb42
16 files changed, 3381 insertions, 31 deletions
diff --git a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0004-Enable-val2dbc-for-sensor-values.patch b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0004-Enable-val2dbc-for-sensor-values.patch
new file mode 100644
index 000000000..7f22a90ad
--- /dev/null
+++ b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0004-Enable-val2dbc-for-sensor-values.patch
@@ -0,0 +1,142 @@
+From d6f1aaa7f26aa52f4b219f60e704d5ab2954f082 Mon Sep 17 00:00:00 2001
+From: Scott Murray <scott.murray@konsulko.com>
+Date: Wed, 3 Apr 2024 02:09:11 +0900
+Subject: [PATCH] Enable val2dbc for sensor values
+
+Rework to allow val2dbc mode to write out sensor values in
+addition to actuator target values.
+
+Upstream-Status: pending
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ dbc2val/dbcfeeder.py | 8 ++++++--
+ .../dbcfeederlib/databrokerclientwrapper.py | 18 ++++++++++++------
+ dbc2val/dbcfeederlib/dbc2vssmapper.py | 14 +++++++++-----
+ dbc2val/dbcfeederlib/serverclientwrapper.py | 2 +-
+ 4 files changed, 28 insertions(+), 14 deletions(-)
+
+diff --git a/dbc2val/dbcfeeder.py b/dbc2val/dbcfeeder.py
+index e7fd319..5e0df2f 100755
+--- a/dbc2val/dbcfeeder.py
++++ b/dbc2val/dbcfeeder.py
+@@ -322,15 +322,19 @@ class Feeder:
+ log.debug("vss-Update callback!")
+ dbc_ids = set()
+ for update in updates:
++ value = None
+ if update.entry.value is not None:
+- # This shall currently never happen as we do not subscribe to this
+ log.warning(f"Current value for {update.entry.path} is now: "
+ f"{update.entry.value.value} of type {type(update.entry.value.value)}")
++ value = update.entry.value.value
+
+ if update.entry.actuator_target is not None:
+ log.debug(f"Target value for {update.entry.path} is now: {update.entry.actuator_target} "
+ f"of type {type(update.entry.actuator_target.value)}")
+- new_dbc_ids = self._mapper.handle_update(update.entry.path, update.entry.actuator_target.value)
++ value = update.entry.actuator_target.value
++
++ if value != None:
++ new_dbc_ids = self._mapper.handle_update(update.entry.path, value)
+ dbc_ids.update(new_dbc_ids)
+
+ can_ids = set()
+diff --git a/dbc2val/dbcfeederlib/databrokerclientwrapper.py b/dbc2val/dbcfeederlib/databrokerclientwrapper.py
+index 35836e9..46ae330 100644
+--- a/dbc2val/dbcfeederlib/databrokerclientwrapper.py
++++ b/dbc2val/dbcfeederlib/databrokerclientwrapper.py
+@@ -200,14 +200,20 @@ class DatabrokerClientWrapper(clientwrapper.ClientWrapper):
+ def supports_subscription(self) -> bool:
+ return True
+
+- async def subscribe(self, vss_names: List[str], callback):
++ async def subscribe(self, vss_entries: dict[str, str], callback):
+ """Creates a subscription and calls the callback when data received"""
+ entries = []
+- for name in vss_names:
+- # Always subscribe to target
+- subscribe_entry = SubscribeEntry(name, View.FIELDS, [Field.ACTUATOR_TARGET])
+- log.info(f"Subscribe entry: {subscribe_entry}")
+- entries.append(subscribe_entry)
++ for name, signal_type in vss_entries.items():
++ if signal_type == "actuator":
++ subscribe_entry = SubscribeEntry(name, View.FIELDS, [Field.ACTUATOR_TARGET])
++ log.info(f"Subscribe entry: {subscribe_entry}")
++ entries.append(subscribe_entry)
++ if signal_type == "sensor":
++ subscribe_entry = SubscribeEntry(name, View.FIELDS, [Field.VALUE])
++ log.info(f"Subscribe entry: {subscribe_entry}")
++ entries.append(subscribe_entry)
++ if not entries:
++ return
+
+ # If there is a path VSSClient will request a secure connection
+ if self._tls and self._root_ca_path:
+diff --git a/dbc2val/dbcfeederlib/dbc2vssmapper.py b/dbc2val/dbcfeederlib/dbc2vssmapper.py
+index 5142a5e..8f04cdd 100644
+--- a/dbc2val/dbcfeederlib/dbc2vssmapper.py
++++ b/dbc2val/dbcfeederlib/dbc2vssmapper.py
+@@ -61,12 +61,13 @@ class VSSMapping:
+ parser: Parser = Parser()
+
+ def __init__(self, vss_name: str, dbc_name: str, transform: dict, interval_ms: int,
+- on_change: bool, datatype: str, description: str):
++ on_change: bool, signal_type: str, datatype: str, description: str):
+ self.vss_name = vss_name
+ self.dbc_name = dbc_name
+ self.transform = transform
+ self.interval_ms = interval_ms
+ self.on_change = on_change
++ self.signal_type = signal_type
+ self.datatype = datatype
+ self.description = description
+ # For time comparison (interval_ms) we store last value used for comparison. Unit seconds.
+@@ -282,7 +283,7 @@ class Mapper:
+ log.info(f"Using default interval 1000 ms for {expanded_name}")
+ interval = 1000
+ mapping_entry = VSSMapping(expanded_name, dbc_name, transform, interval, on_change,
+- node["datatype"], node["description"])
++ node["type"], node["datatype"], node["description"])
+ if dbc_name not in self.dbc2val_mapping:
+ self.dbc2val_mapping[dbc_name] = []
+ self.dbc2val_mapping[dbc_name].append(mapping_entry)
+@@ -306,7 +307,7 @@ class Mapper:
+ log.warning(f"interval_ms attribute ignored for {expanded_name}")
+
+ mapping_entry = VSSMapping(expanded_name, dbc_name, transform, interval, on_change,
+- node["datatype"], node["description"])
++ node["type"], node["datatype"], node["description"])
+ if dbc_name not in self.val2dbc_mapping:
+ self.val2dbc_mapping[expanded_name] = []
+ self.val2dbc_mapping[expanded_name].append(mapping_entry)
+@@ -380,9 +381,12 @@ class Mapper:
+ """Return a set of all dbc names used for reception"""
+ return self.dbc2val_mapping.keys()
+
+- def get_val2dbc_entries(self) -> KeysView:
++ def get_val2dbc_entries(self) -> Dict[str, str]:
+ """Return a set of all vss names used for reception"""
+- return self.val2dbc_mapping.keys()
++ entries: Dict[str, str] = {}
++ for name, mappings in self.val2dbc_mapping.items():
++ entries[name] = mappings[0].signal_type
++ return entries
+
+ def get_vss_names(self) -> Set[str]:
+ """Get all VSS names used in mappings, both vss2dbc and dbc2vss"""
+diff --git a/dbc2val/dbcfeederlib/serverclientwrapper.py b/dbc2val/dbcfeederlib/serverclientwrapper.py
+index 63bc12e..ca11daf 100644
+--- a/dbc2val/dbcfeederlib/serverclientwrapper.py
++++ b/dbc2val/dbcfeederlib/serverclientwrapper.py
+@@ -125,6 +125,6 @@ class ServerClientWrapper(clientwrapper.ClientWrapper):
+ log.info("Feature not implemented")
+ return False
+
+- async def subscribe(self, vss_names: List[str], callback):
++ async def subscribe(self, vss_entries: dict[str, str], callback):
+ log.error("Feature not implemented")
+ return
+--
+2.34.1
+
diff --git a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc
index 0d0121398..e638d1287 100644
--- a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc
+++ b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc
@@ -10,6 +10,44 @@ BO_ 985 Vehicle_Status_2: 8 Vector_XXX
SG_ PT_EngineSpeed : 23|16@0+ (0.25,0) [0|0] "" Vector_XXX
SG_ PT_FuelLevelLow : 55|1@1+ (1,0) [0|1] "" Vector_XXX
+BO_ 986 Vehicle_Status_3: 8 Vector_XXX
+ SG_ PT_HazardOn : 0|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ PT_LeftTurnOn : 1|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ PT_RightTurnOn : 2|1@1+ (1,0) [0|1] "" Vector_XXX
+
+BO_ 48 HVAC_Control_1: 8 Vector_XXX
+ SG_ PT_TempLeft : 7|8@0+ (0.4166666667,0) [0|100] "C" Vector_XXX
+ SG_ PT_TempRight : 15|8@0+ (0.4166666667,0) [0|100] "C" Vector_XXX
+ SG_ PT_FanSpeed : 39|8@0+ (0.392157,0) [0|100] "%" Vector_XXX
+
+BO_ 401 Engine: 8 Vector__XXX
+ SG_ ThrottlePosition : 63|8@0+ (0.392157,0) [0|100.000035] "%" Vector__XXX
+
+BO_ 381 ABS: 8 Vector__XXX
+ SG_ VehicleSpeed : 7|12@0+ (0.0625,0) [0|255.9375] "km / h" ECM_HS,BCM_HS
+ SG_ SteeringPosition : 23|12@0+ (0.0439453125,-90) [-90|89.9560546875] "deg" ECM_HS,BCM_HS
+ SG_ BrakePressure : 39|8@0+ (75,0) [0|19125] "kPa" ECM_HS,BCM_HS
+
+BO_ 532 Transmission: 8 Vector__XXX
+ SG_ Gear : 7|8@0+ (1,-1) [-1|127] "" ECM_HS,BCM_HS
+
+BO_ 533 Airbag: 8 Vector__XXX
+ SG_ CollisionIntensity : 7|12@0+ (24.4140625,0) [0|100000] "N" ECM_HS,BCM_HS
+
+BO_ 534 IMU1: 8 Vector__XXX
+ SG_ AccelerationX : 7|12@0+ (0.48828125,-1000) [-1000|1000] "m/s^2" ECM_HS,BCM_HS
+ SG_ AccelerationY : 23|12@0+ (0.48828125,-1000) [-1000|1000] "m/s^2" ECM_HS,BCM_HS
+ SG_ AccelerationZ : 39|12@0+ (0.48828125,-1000) [-1000|1000] "m/s^2" ECM_HS,BCM_HS
+
+BO_ 535 IMU2: 8 Vector__XXX
+ SG_ GyroscopeX : 7|12@0+ (0.48828125,-1000) [-1000|1000] "rad/s" ECM_HS,BCM_HS
+ SG_ GyroscopeY : 23|12@0+ (0.48828125,-1000) [-1000|1000] "rad/s" ECM_HS,BCM_HS
+ SG_ GyroscopeZ : 39|12@0+ (0.48828125,-1000) [-1000|1000] "rad/s" ECM_HS,BCM_HS
+
+BO_ 536 GNSS: 8 Vector__XXX
+ SG_ Latitude : 7|32@0+ (0.0000000419095158577,-90) [-90|90] "deg" ECM_HS,BCM_HS
+ SG_ Longitude : 39|32@0+ (0.00000008381903171539,-180) [-180|180] "deg" ECM_HS,BCM_HS
+
BO_ 33 Steering_Wheel: 8 Vector_XXX
SG_ SW_Previous : 39|1@1+ (1,0) [0|1] "" Vector_XXX
SG_ SW_VolumeUp : 38|1@1+ (1,0) [0|1] "" Vector_XXX
diff --git a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc.bak.20240405 b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc.bak.20240405
new file mode 100644
index 000000000..1924fade1
--- /dev/null
+++ b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/agl-vcar.dbc.bak.20240405
@@ -0,0 +1,64 @@
+VERSION "AGL Virtual Car 1.0"
+
+BS_:
+
+BO_ 1001 Vehicle_Status_1: 8 Vector_XXX
+ SG_ PT_VehicleAvgSpeed : 7|15@0+ (0.015625,0) [0|0] "" Vector_XXX
+
+BO_ 985 Vehicle_Status_2: 8 Vector_XXX
+ SG_ PT_FuelLevelPct : 8|8@1+ (0.392157,0) [0|0] "" Vector_XXX
+ SG_ PT_EngineSpeed : 23|16@0+ (0.25,0) [0|0] "" Vector_XXX
+ SG_ PT_FuelLevelLow : 55|1@1+ (1,0) [0|1] "" Vector_XXX
+
+BO_ 48 HVAC_Control_1: 8 Vector_XXX
+ SG_ PT_TempLeft : 7|8@0+ (0.4166666667,0) [0|100] "C" Vector_XXX
+ SG_ PT_TempRight : 15|8@0+ (0.4166666667,0) [0|100] "C" Vector_XXX
+ SG_ PT_FanSpeed : 31|8@0+ (0.392157,0) [0|100] "%" Vector_XXX
+
+BO_ 401 Engine: 8 Vector__XXX
+ SG_ ThrottlePosition : 63|8@0+ (0.392157,0) [0|100.000035] "%" Vector__XXX
+
+BO_ 381 ABS: 8 Vector__XXX
+ SG_ VehicleSpeed : 7|12@0+ (0.0625,0) [0|255.9375] "km / h" ECM_HS,BCM_HS
+ SG_ SteeringPosition : 23|12@0+ (0.0439453125,-90) [-90|89.9560546875] "deg" ECM_HS,BCM_HS
+ SG_ BrakePressure : 39|8@0+ (75,0) [0|19125] "kPa" ECM_HS,BCM_HS
+
+BO_ 532 Transmission: 8 Vector__XXX
+ SG_ Gear : 7|8@0+ (1,-1) [-1|127] "" ECM_HS,BCM_HS
+
+BO_ 533 Airbag: 8 Vector__XXX
+ SG_ CollisionIntensity : 7|12@0+ (24.4140625,0) [0|100000] "N" ECM_HS,BCM_HS
+
+BO_ 534 IMU1: 8 Vector__XXX
+ SG_ AccelerationX : 7|12@0+ (0.48828125,-1000) [-1000|1000] "m/s^2" ECM_HS,BCM_HS
+ SG_ AccelerationY : 23|12@0+ (0.48828125,-1000) [-1000|1000] "m/s^2" ECM_HS,BCM_HS
+ SG_ AccelerationZ : 39|12@0+ (0.48828125,-1000) [-1000|1000] "m/s^2" ECM_HS,BCM_HS
+
+BO_ 535 IMU2: 8 Vector__XXX
+ SG_ GyroscopeX : 7|12@0+ (0.48828125,-1000) [-1000|1000] "rad/s" ECM_HS,BCM_HS
+ SG_ GyroscopeY : 23|12@0+ (0.48828125,-1000) [-1000|1000] "rad/s" ECM_HS,BCM_HS
+ SG_ GyroscopeZ : 39|12@0+ (0.48828125,-1000) [-1000|1000] "rad/s" ECM_HS,BCM_HS
+
+BO_ 536 GNSS: 8 Vector__XXX
+ SG_ Latitude : 7|32@0+ (0.0000000419095158577,-90) [-90|90] "deg" ECM_HS,BCM_HS
+ SG_ Longitude : 39|32@0+ (0.00000008381903171539,-180) [-180|180] "deg" ECM_HS,BCM_HS
+
+BO_ 33 Steering_Wheel: 8 Vector_XXX
+ SG_ SW_Previous : 39|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_VolumeUp : 38|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_Mode : 37|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_VolumeDown : 36|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_Next : 35|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_Info : 33|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_VolumeMute : 32|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_Voice : 42|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_PhoneHangup : 41|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_PhoneCall : 40|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_CruiseEnable : 55|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_CruiseResume : 54|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_CruiseSet : 52|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_CruiseCancel : 51|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_CruiseLimit : 49|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_CruiseDistance : 48|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_Horn : 63|1@1+ (1,0) [0|1] "" Vector_XXX
+ SG_ SW_LaneDepartureWarning : 56|1@1+ (1,0) [0|1] "" Vector_XXX
diff --git a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/dbc_default_values.json b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/dbc_default_values.json
new file mode 100644
index 000000000..0562569db
--- /dev/null
+++ b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/dbc_default_values.json
@@ -0,0 +1,40 @@
+{
+ "PT_VehicleAvgSpeed" : 0,
+ "PT_FuelLevelPct" : 0,
+ "PT_EngineSpeed" : 0,
+ "PT_FuelLevelLow" : 0,
+ "PT_TempLeft" : 0,
+ "PT_TempRight" : 0,
+ "PT_FanSpeed" : 0,
+ "ThrottlePosition" : 0,
+ "VehicleSpeed" : 0,
+ "SteeringPosition" : 0,
+ "BrakePressure" : 0,
+ "Gear" : 0,
+ "AccelerationX" : 0,
+ "AccelerationY" : 0,
+ "AccelerationZ" : 0,
+ "GyroscopeX" : 0,
+ "GyroscopeY" : 0,
+ "GyroscopeZ" : 0,
+ "Latitude" : 0,
+ "Longitude" : 0,
+ "SW_Previous" : 0,
+ "SW_VolumeUp" : 0,
+ "SW_Mode" : 0,
+ "SW_VolumeDown" : 0,
+ "SW_Next" : 0,
+ "SW_Info" : 0,
+ "SW_VolumeMute" : 0,
+ "SW_Voice" : 0,
+ "SW_PhoneHangup" : 0,
+ "SW_PhoneCall" : 0,
+ "SW_CruiseEnable" : 0,
+ "SW_CruiseResume" : 0,
+ "SW_CruiseSet" : 0,
+ "SW_CruiseCancel" : 0,
+ "SW_CruiseLimit" : 0,
+ "SW_CruiseDistance" : 0,
+ "SW_Horn" : 0,
+ "SW_LaneDepartureWarning" : 0
+}
diff --git a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.env b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.env
new file mode 100644
index 000000000..5d787158d
--- /dev/null
+++ b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.env
@@ -0,0 +1,3 @@
+# For output only mode:
+#EXTRA_ARGS="--val2dbc --no-dbc2val --dbc-default /etc/kuksa-dbc-feeder/dbc_default_values.json"
+#LOG_LEVEL=debug
diff --git a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.service b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.service
index a30018c6f..857f5c7d2 100644
--- a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.service
+++ b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/kuksa-dbc-feeder.service
@@ -4,7 +4,8 @@ Requires=kuksa-databroker.service can-dev-helper.service
After=kuksa-databroker.service can-dev-helper.service
[Service]
-ExecStart=/usr/bin/dbcfeeder.py
+EnvironmentFile=-/etc/default/kuksa-dbc-feeder
+ExecStart=/usr/bin/dbcfeeder.py $EXTRA_ARGS
Restart=on-failure
[Install]
diff --git a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder_git.bb b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder_git.bb
index 809152bb0..e598a23e3 100644
--- a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder_git.bb
+++ b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder_git.bb
@@ -13,10 +13,13 @@ SRC_URI = "git://github.com/eclipse/kuksa.val.feeders.git;protocol=https;branch=
file://0001-dbc2val-add-installation-mechanism.patch \
file://0002-dbc2val-usability-improvements.patch \
file://0003-dbc2val-fix-token-file-configuration-option.patch \
+ file://0004-Enable-val2dbc-for-sensor-values.patch \
file://config.ini \
file://dbc_feeder.token \
file://agl-vcar.dbc \
+ file://dbc_default_values.json \
file://kuksa-dbc-feeder.service \
+ file://kuksa-dbc-feeder.env \
"
SRCREV = "5bb52eca8d79f7c05a024f69b1faab81dabacdcd"
@@ -36,6 +39,9 @@ do_install:append() {
# investigation.
install -m 0600 ${WORKDIR}/dbc_feeder.token ${D}${sysconfdir}/kuksa-dbc-feeder/
install -m 0644 ${WORKDIR}/agl-vcar.dbc ${D}${sysconfdir}/kuksa-dbc-feeder/
+ install -m 0644 ${WORKDIR}/dbc_default_values.json ${D}${sysconfdir}/kuksa-dbc-feeder/
+ install -d ${D}${sysconfdir}/default
+ install -m 0644 ${WORKDIR}/kuksa-dbc-feeder.env ${D}${sysconfdir}/default/kuksa-dbc-feeder
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/kuksa-dbc-feeder.service ${D}${systemd_system_unitdir}
diff --git a/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec b/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec
index 6c0a08ae2..b8a01e362 100644
--- a/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec
+++ b/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec
@@ -1,23 +1,184 @@
-# Define DBC mappings for vehicle and engine speeds
+# DBC mappings for vehicle and engine speeds
Vehicle.Speed:
datatype: float
type: sensor
- dbc:
+ dbc2vss:
signal: PT_VehicleAvgSpeed
interval_ms: 100
+ vss2dbc:
+ signal: PT_VehicleAvgSpeed
Vehicle.Powertrain.CombustionEngine.Speed:
datatype: float
type: sensor
- dbc:
+ dbc2vss:
signal: PT_EngineSpeed
interval_ms: 100
transform:
math: "floor(x+0.5)"
+ vss2dbc:
+ signal: PT_EngineSpeed
+
+# DBC mappings for other signals for V2C demo
+
+Vehicle.Body.Lights.Hazard.IsSignaling:
+ datatype: boolean
+ type: actuator
+ dbc2vss:
+ signal: PT_HazardOn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Body.Lights.DirectionIndicator.Left.IsSignaling:
+ datatype: boolean
+ type: actuator
+ dbc2vss:
+ signal: PT_LeftTurnOn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Body.Lights.DirectionIndicator.Right.IsSignaling:
+ datatype: boolean
+ type: actuator
+ dbc2vss:
+ signal: PT_RightTurnOn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.OBD.ThrottlePosition:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: ThrottlePosition
+ interval_ms: 100
+ vss2dbc:
+ signal: ThrottlePosition
+
+Vehicle.Chassis.SteeringWheel.Angle:
+ datatype: int16
+ type: sensor
+ dbc2vss:
+ signal: SteeringPosition
+ interval_ms: 100
+ vss2dbc:
+ signal: SteeringPosition
+
+Vehicle.Chassis.Brake.PedalPosition:
+ datatype: uint8
+ type: sensor
+ dbc2vss:
+ signal: BrakePressure
+ interval_ms: 100
+ transform:
+ math: "floor(x / 19125 * 100 + 0.5)"
+ vss2dbc:
+ signal: BrakePressure
+ transform:
+ math: "x * 191.25"
+
+Vehicle.Powertrain.Transmission.SelectedGear:
+ datatype: int8
+ type: sensor
+ dbc2vss:
+ signal: Gear
+ interval_ms: 100
+ vss2dbc:
+ signal: Gear
+
+Vehicle.Acceleration.Lateral:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationX
+ interval_ms: 100
+ vss2dbc:
+ signal: AccelerationX
+
+Vehicle.Acceleration.Longitudinal:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationY
+ interval_ms: 100
+ vss2dbc:
+ signal: AccelerationY
+
+Vehicle.Acceleration.Vertical:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationZ
+ interval_ms: 100
+ vss2dbc:
+ signal: AccelerationZ
+
+Vehicle.AngularVelocity.Pitch:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeX
+ interval_ms: 100
+ vss2dbc:
+ signal: GyroscopeX
+
+Vehicle.AngularVelocity.Roll:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeY
+ interval_ms: 100
+ vss2dbc:
+ signal: GyroscopeY
+
+Vehicle.AngularVelocity.Yaw:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeZ
+ interval_ms: 100
+ vss2dbc:
+ signal: GyroscopeZ
+
+Vehicle.CurrentLocation.Latitude:
+ datatype: double
+ type: sensor
+ dbc2vss:
+ signal: Latitude
+ interval_ms: 100
+ vss2dbc:
+ signal: Latitude
+
+Vehicle.CurrentLocation.Longitude:
+ datatype: double
+ type: sensor
+ dbc2vss:
+ signal: Longitude
+ interval_ms: 100
+ vss2dbc:
+ signal: Longitude
+
+#
+# AGL VSS additions
+#
-# Define extra navigation state signals
+# Extra navigation state signals
Vehicle.Cabin.Infotainment.Navigation.State:
datatype: string
@@ -32,7 +193,7 @@ Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
description: Navigation elapsed distance.
-# Define audio control signals
+# Extra audio control signals
Vehicle.Cabin.Infotainment.Media.Audio:
type: branch
@@ -71,7 +232,7 @@ Vehicle.Cabin.Infotainment.Media.Audio.Treble:
description: Audio high-frequency filter control.
-# Define extra steering wheel switch signals, including DBC mappings
+# Extra steering wheel switch signals, including DBC mappings
Vehicle.Cabin.SteeringWheel:
type: branch
@@ -85,7 +246,7 @@ Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
datatype: boolean
type: sensor
description: Steering wheel volume up switch engaged.
- dbc:
+ dbc2vss:
signal: SW_VolumeUp
on_change: true
transform:
@@ -99,7 +260,7 @@ Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
datatype: boolean
type: sensor
description: Steering wheel volume down switch engaged.
- dbc:
+ dbc2vss:
signal: SW_VolumeDown
on_change: true
transform:
@@ -113,7 +274,7 @@ Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
datatype: boolean
type: sensor
description: Steering wheel volume mute switch engaged.
- dbc:
+ dbc2vss:
signal: SW_VolumeMute
on_change: true
transform:
@@ -127,7 +288,7 @@ Vehicle.Cabin.SteeringWheel.Switches.Next:
datatype: boolean
type: sensor
description: Steering wheel next switch engaged.
- dbc:
+ dbc2vss:
signal: SW_Next
on_change: true
transform:
@@ -141,7 +302,7 @@ Vehicle.Cabin.SteeringWheel.Switches.Previous:
datatype: boolean
type: sensor
description: Steering wheel previous switch engaged.
- dbc:
+ dbc2vss:
signal: SW_Previous
on_change: true
transform:
@@ -155,7 +316,7 @@ Vehicle.Cabin.SteeringWheel.Switches.Mode:
datatype: boolean
type: sensor
description: Steering wheel mode switch engaged.
- dbc:
+ dbc2vss:
signal: SW_Mode
on_change: true
transform:
@@ -169,7 +330,7 @@ Vehicle.Cabin.SteeringWheel.Switches.Info:
datatype: boolean
type: sensor
description: Steering wheel info switch engaged.
- dbc:
+ dbc2vss:
signal: SW_Info
on_change: true
transform:
@@ -183,7 +344,7 @@ Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
datatype: boolean
type: sensor
description: Steering wheel cruise enable switch engaged.
- dbc:
+ dbc2vss:
signal: SW_CruiseEnable
on_change: true
transform:
@@ -197,7 +358,7 @@ Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
datatype: boolean
type: sensor
description: Steering wheel cruise set switch engaged.
- dbc:
+ dbc2vss:
signal: SW_CruiseSet
on_change: true
transform:
@@ -211,7 +372,7 @@ Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
datatype: boolean
type: sensor
description: Steering wheel cruise resume switch engaged.
- dbc:
+ dbc2vss:
signal: SW_CruiseResume
on_change: true
transform:
@@ -225,7 +386,7 @@ Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
datatype: boolean
type: sensor
description: Steering wheel cruise cancel switch engaged.
- dbc:
+ dbc2vss:
signal: SW_CruiseCancel
on_change: true
transform:
@@ -239,7 +400,7 @@ Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
datatype: boolean
type: sensor
description: Steering wheel cruise limit switch engaged.
- dbc:
+ dbc2vss:
signal: SW_CruiseLimit
on_change: true
transform:
@@ -253,7 +414,7 @@ Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
datatype: boolean
type: sensor
description: Steering wheel cruise distance switch engaged.
- dbc:
+ dbc2vss:
signal: SW_CruiseDistance
on_change: true
transform:
@@ -267,7 +428,7 @@ Vehicle.Cabin.SteeringWheel.Switches.Voice:
datatype: boolean
type: sensor
description: Steering wheel voice switch engaged.
- dbc:
+ dbc2vss:
signal: SW_Voice
on_change: true
transform:
@@ -281,7 +442,7 @@ Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
datatype: boolean
type: sensor
description: Steering wheel phone call switch engaged.
- dbc:
+ dbc2vss:
signal: SW_PhoneCall
on_change: true
transform:
@@ -295,7 +456,7 @@ Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
datatype: boolean
type: sensor
description: Steering wheel phone hangup switch engaged.
- dbc:
+ dbc2vss:
signal: SW_PhoneHangup
on_change: true
transform:
@@ -309,7 +470,7 @@ Vehicle.Cabin.SteeringWheel.Switches.Horn:
datatype: boolean
type: sensor
description: Steering wheel horn switch engaged.
- dbc:
+ dbc2vss:
signal: SW_Horn
on_change: true
transform:
@@ -323,7 +484,7 @@ Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
datatype: boolean
type: sensor
description: Steering wheel lane departure warning switch engaged.
- dbc:
+ dbc2vss:
signal: SW_LaneDepartureWarning
on_change: true
transform:
diff --git a/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.control-panel b/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.control-panel
new file mode 100644
index 000000000..b5e2b8a3d
--- /dev/null
+++ b/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.control-panel
@@ -0,0 +1,446 @@
+# DBC mappings for vehicle and engine speeds
+
+Vehicle.Speed:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: PT_VehicleAvgSpeed
+
+Vehicle.Powertrain.CombustionEngine.Speed:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: PT_EngineSpeed
+
+# DBC mappings for other signals for V2C demo
+
+Vehicle.Body.Lights.Hazard.IsSignaling:
+ datatype: boolean
+ type: actuator
+ vss2dbc:
+ signal: PT_HazardOn
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Body.Lights.DirectionIndicator.Left.IsSignaling:
+ datatype: boolean
+ type: actuator
+ vss2dbc:
+ signal: PT_LeftTurnOn
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Body.Lights.DirectionIndicator.Right.IsSignaling:
+ datatype: boolean
+ type: actuator
+ vss2dbc:
+ signal: PT_RightTurnOn
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.OBD.ThrottlePosition:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: ThrottlePosition
+
+Vehicle.Chassis.SteeringWheel.Angle:
+ datatype: int16
+ type: sensor
+ vss2dbc:
+ signal: SteeringPosition
+
+Vehicle.Chassis.Brake.PedalPosition:
+ datatype: uint8
+ type: sensor
+ vss2dbc:
+ signal: BrakePressure
+ transform:
+ math: "x * 191.25"
+
+Vehicle.Powertrain.Transmission.SelectedGear:
+ datatype: int8
+ type: sensor
+ vss2dbc:
+ signal: Gear
+
+Vehicle.Acceleration.Lateral:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: AccelerationX
+
+Vehicle.Acceleration.Longitudinal:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: AccelerationY
+
+Vehicle.Acceleration.Vertical:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: AccelerationZ
+
+Vehicle.AngularVelocity.Pitch:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: GyroscopeX
+
+Vehicle.AngularVelocity.Roll:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: GyroscopeY
+
+Vehicle.AngularVelocity.Yaw:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: GyroscopeZ
+
+Vehicle.CurrentLocation.Latitude:
+ datatype: double
+ type: sensor
+ vss2dbc:
+ signal: Latitude
+
+Vehicle.CurrentLocation.Longitude:
+ datatype: double
+ type: sensor
+ vss2dbc:
+ signal: Longitude
+
+
+#
+# AGL VSS additions
+#
+
+# Extra navigation state signals
+
+Vehicle.Cabin.Infotainment.Navigation.State:
+ datatype: string
+ type: sensor
+ allowed: [ 'UNKNOWN', 'ACTIVE', 'ARRIVED', 'STOPPED' ]
+ description: Navigation state.
+
+Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
+ datatype: float
+ type: sensor
+ unit: km
+ description: Navigation elapsed distance.
+
+
+# Extra audio control signals
+
+Vehicle.Cabin.Infotainment.Media.Audio:
+ type: branch
+ description: Media audio controls.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Balance:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio left/right balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Fade:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio front/rear balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Bass:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio low-frequency filter control.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Treble:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio high-frequency filter control.
+
+
+# Extra steering wheel switch signals, including DBC mappings
+
+Vehicle.Cabin.SteeringWheel:
+ type: branch
+ description: AGL steering wheel demo data.
+
+Vehicle.Cabin.SteeringWheel.Switches:
+ type: branch
+ description: AGL steering wheel demo switch data.
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume up switch engaged.
+ dbc2vss:
+ signal: SW_VolumeUp
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume down switch engaged.
+ dbc2vss:
+ signal: SW_VolumeDown
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume mute switch engaged.
+ dbc2vss:
+ signal: SW_VolumeMute
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Next:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel next switch engaged.
+ dbc2vss:
+ signal: SW_Next
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Previous:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel previous switch engaged.
+ dbc2vss:
+ signal: SW_Previous
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Mode:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel mode switch engaged.
+ dbc2vss:
+ signal: SW_Mode
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Info:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel info switch engaged.
+ dbc2vss:
+ signal: SW_Info
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise enable switch engaged.
+ dbc2vss:
+ signal: SW_CruiseEnable
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise set switch engaged.
+ dbc2vss:
+ signal: SW_CruiseSet
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise resume switch engaged.
+ dbc2vss:
+ signal: SW_CruiseResume
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise cancel switch engaged.
+ dbc2vss:
+ signal: SW_CruiseCancel
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise limit switch engaged.
+ dbc2vss:
+ signal: SW_CruiseLimit
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise distance switch engaged.
+ dbc2vss:
+ signal: SW_CruiseDistance
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Voice:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel voice switch engaged.
+ dbc2vss:
+ signal: SW_Voice
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone call switch engaged.
+ dbc2vss:
+ signal: SW_PhoneCall
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone hangup switch engaged.
+ dbc2vss:
+ signal: SW_PhoneHangup
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Horn:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel horn switch engaged.
+ dbc2vss:
+ signal: SW_Horn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel lane departure warning switch engaged.
+ dbc2vss:
+ signal: SW_LaneDepartureWarning
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
diff --git a/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.gw-control-panel b/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.gw-control-panel
new file mode 100644
index 000000000..6b0a9a38a
--- /dev/null
+++ b/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.gw-control-panel
@@ -0,0 +1,447 @@
+# DBC mappings for vehicle and engine speeds
+
+Vehicle.Speed:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: PT_VehicleAvgSpeed
+ interval_ms: 100
+
+Vehicle.Powertrain.CombustionEngine.Speed:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: PT_EngineSpeed
+ interval_ms: 100
+ transform:
+ math: "floor(x+0.5)"
+
+# DBC mappings for other signals for V2C demo
+
+Vehicle.Body.Lights.Hazard.IsSignaling:
+ datatype: boolean
+ type: actuator
+ dbc2vss:
+ signal: PT_HazardOn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Body.Lights.DirectionIndicator.Left.IsSignaling:
+ datatype: boolean
+ type: actuator
+ dbc2vss:
+ signal: PT_LeftTurnOn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Body.Lights.DirectionIndicator.Right.IsSignaling:
+ datatype: boolean
+ type: actuator
+ dbc2vss:
+ signal: PT_RightTurnOn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.OBD.ThrottlePosition:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: ThrottlePosition
+ interval_ms: 100
+
+Vehicle.Chassis.SteeringWheel.Angle:
+ datatype: int16
+ type: sensor
+ dbc2vss:
+ signal: SteeringPosition
+ interval_ms: 100
+
+Vehicle.Chassis.Brake.PedalPosition:
+ datatype: uint8
+ type: sensor
+ dbc2vss:
+ signal: BrakePressure
+ interval_ms: 100
+ transform:
+ math: "floor(x / 19125 * 100 + 0.5)"
+
+Vehicle.Powertrain.Transmission.SelectedGear:
+ datatype: int8
+ type: sensor
+ dbc2vss:
+ signal: Gear
+ interval_ms: 100
+
+Vehicle.Acceleration.Lateral:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationX
+ interval_ms: 100
+
+Vehicle.Acceleration.Longitudinal:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationY
+ interval_ms: 100
+
+Vehicle.Acceleration.Vertical:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationZ
+ interval_ms: 100
+
+Vehicle.AngularVelocity.Pitch:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeX
+ interval_ms: 100
+
+Vehicle.AngularVelocity.Roll:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeY
+ interval_ms: 100
+
+Vehicle.AngularVelocity.Yaw:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeZ
+ interval_ms: 100
+
+Vehicle.CurrentLocation.Latitude:
+ datatype: double
+ type: sensor
+ dbc2vss:
+ signal: Latitude
+ interval_ms: 100
+
+Vehicle.CurrentLocation.Longitude:
+ datatype: double
+ type: sensor
+ dbc2vss:
+ signal: Longitude
+ interval_ms: 100
+
+
+#
+# AGL VSS additions
+#
+
+# Extra navigation state signals
+
+Vehicle.Cabin.Infotainment.Navigation.State:
+ datatype: string
+ type: sensor
+ allowed: [ 'UNKNOWN', 'ACTIVE', 'ARRIVED', 'STOPPED' ]
+ description: Navigation state.
+
+Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
+ datatype: float
+ type: sensor
+ unit: km
+ description: Navigation elapsed distance.
+
+
+# Extra audio control signals
+
+Vehicle.Cabin.Infotainment.Media.Audio:
+ type: branch
+ description: Media audio controls.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Balance:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio left/right balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Fade:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio front/rear balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Bass:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio low-frequency filter control.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Treble:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio high-frequency filter control.
+
+
+# Extra steering wheel switch signals, including DBC mappings
+
+Vehicle.Cabin.SteeringWheel:
+ type: branch
+ description: AGL steering wheel demo data.
+
+Vehicle.Cabin.SteeringWheel.Switches:
+ type: branch
+ description: AGL steering wheel demo switch data.
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume up switch engaged.
+ vss2dbc:
+ signal: SW_VolumeUp
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume down switch engaged.
+ vss2dbc:
+ signal: SW_VolumeDown
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume mute switch engaged.
+ vss2dbc:
+ signal: SW_VolumeMute
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Next:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel next switch engaged.
+ vss2dbc:
+ signal: SW_Next
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Previous:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel previous switch engaged.
+ vss2dbc:
+ signal: SW_Previous
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Mode:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel mode switch engaged.
+ vss2dbc:
+ signal: SW_Mode
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Info:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel info switch engaged.
+ vss2dbc:
+ signal: SW_Info
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise enable switch engaged.
+ vss2dbc:
+ signal: SW_CruiseEnable
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise set switch engaged.
+ vss2dbc:
+ signal: SW_CruiseSet
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise resume switch engaged.
+ vss2dbc:
+ signal: SW_CruiseResume
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise cancel switch engaged.
+ vss2dbc:
+ signal: SW_CruiseCancel
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise limit switch engaged.
+ vss2dbc:
+ signal: SW_CruiseLimit
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise distance switch engaged.
+ vss2dbc:
+ signal: SW_CruiseDistance
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Voice:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel voice switch engaged.
+ vss2dbc:
+ signal: SW_Voice
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone call switch engaged.
+ vss2dbc:
+ signal: SW_PhoneCall
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone hangup switch engaged.
+ vss2dbc:
+ signal: SW_PhoneHangup
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Horn:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel horn switch engaged.
+ vss2dbc:
+ signal: SW_Horn
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel lane departure warning switch engaged.
+ vss2dbc:
+ signal: SW_LaneDepartureWarning
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
diff --git a/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.gw-hardware b/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.gw-hardware
new file mode 100644
index 000000000..869b33d3d
--- /dev/null
+++ b/recipes-connectivity/vss/vss-agl/agl_vss_overlay.vspec.gw-hardware
@@ -0,0 +1,341 @@
+# DBC mappings for other signals for V2C demo
+
+# DBC mappings for demo HVAC
+
+Vehicle.Cabin.HVAC.Station.Row1.Driver.Temperature:
+ datatype: int8
+ type: actuator
+ vss2dbc:
+ signal: PT_TempLeft
+
+Vehicle.Cabin.HVAC.Station.Row1.Passenger.Temperature:
+ datatype: int8
+ type: actuator
+ vss2dbc:
+ signal: PT_TempRight
+
+Vehicle.Cabin.HVAC.Station.Row1.Driver.FanSpeed:
+ datatype: uint8
+ type: actuator
+ vss2dbc:
+ signal: PT_FanSpeed
+
+#
+# AGL VSS additions
+#
+
+# Extra navigation state signals
+
+Vehicle.Cabin.Infotainment.Navigation.State:
+ datatype: string
+ type: sensor
+ allowed: [ 'UNKNOWN', 'ACTIVE', 'ARRIVED', 'STOPPED' ]
+ description: Navigation state.
+
+Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
+ datatype: float
+ type: sensor
+ unit: km
+ description: Navigation elapsed distance.
+
+
+# Extra audio control signals
+
+Vehicle.Cabin.Infotainment.Media.Audio:
+ type: branch
+ description: Media audio controls.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Balance:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio left/right balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Fade:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio front/rear balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Bass:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio low-frequency filter control.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Treble:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio high-frequency filter control.
+
+
+# Extra steering wheel switch signals, including DBC mappings
+
+Vehicle.Cabin.SteeringWheel:
+ type: branch
+ description: AGL steering wheel demo data.
+
+Vehicle.Cabin.SteeringWheel.Switches:
+ type: branch
+ description: AGL steering wheel demo switch data.
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume up switch engaged.
+ dbc2vss:
+ signal: SW_VolumeUp
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume down switch engaged.
+ dbc2vss:
+ signal: SW_VolumeDown
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume mute switch engaged.
+ dbc2vss:
+ signal: SW_VolumeMute
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Next:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel next switch engaged.
+ dbc2vss:
+ signal: SW_Next
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Previous:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel previous switch engaged.
+ dbc2vss:
+ signal: SW_Previous
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Mode:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel mode switch engaged.
+ dbc2vss:
+ signal: SW_Mode
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Info:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel info switch engaged.
+ dbc2vss:
+ signal: SW_Info
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise enable switch engaged.
+ dbc2vss:
+ signal: SW_CruiseEnable
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise set switch engaged.
+ dbc2vss:
+ signal: SW_CruiseSet
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise resume switch engaged.
+ dbc2vss:
+ signal: SW_CruiseResume
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise cancel switch engaged.
+ dbc2vss:
+ signal: SW_CruiseCancel
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise limit switch engaged.
+ dbc2vss:
+ signal: SW_CruiseLimit
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise distance switch engaged.
+ dbc2vss:
+ signal: SW_CruiseDistance
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Voice:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel voice switch engaged.
+ dbc2vss:
+ signal: SW_Voice
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone call switch engaged.
+ dbc2vss:
+ signal: SW_PhoneCall
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone hangup switch engaged.
+ dbc2vss:
+ signal: SW_PhoneHangup
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Horn:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel horn switch engaged.
+ dbc2vss:
+ signal: SW_Horn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel lane departure warning switch engaged.
+ dbc2vss:
+ signal: SW_LaneDepartureWarning
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
diff --git a/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec b/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec
new file mode 100644
index 000000000..baae9473d
--- /dev/null
+++ b/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec
@@ -0,0 +1,460 @@
+# DBC mappings for vehicle and engine speeds
+
+Vehicle.Speed:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: PT_VehicleAvgSpeed
+ interval_ms: 100
+ vss2dbc:
+ signal: PT_VehicleAvgSpeed
+
+Vehicle.Powertrain.CombustionEngine.Speed:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: PT_EngineSpeed
+ interval_ms: 100
+ transform:
+ math: "floor(x+0.5)"
+ vss2dbc:
+ signal: PT_EngineSpeed
+
+# DBC mappings for other signals for V2C demo
+
+Vehicle.OBD.ThrottlePosition:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: ThrottlePosition
+ interval_ms: 100
+ vss2dbc:
+ signal: ThrottlePosition
+
+Vehicle.Chassis.SteeringWheel.Angle:
+ datatype: int16
+ type: sensor
+ dbc2vss:
+ signal: SteeringPosition
+ interval_ms: 100
+ transform:
+ math: "x * 0.0439453125 - 90"
+ vss2dbc:
+ signal: SteeringPosition
+ transform:
+ math: "(x + 90) / 0.0439453125"
+
+Vehicle.Chassis.Brake.PedalPosition:
+ datatype: uint8
+ type: sensor
+ dbc2vss:
+ signal: BrakePressure
+ interval_ms: 100
+ transform:
+ math: "floor(x / 19125 * 100 + 0.5)"
+ vss2dbc:
+ signal: BrakePressure
+ transform:
+ math: "x * 191.25"
+
+Vehicle.Powertrain.Transmission.SelectedGear:
+ datatype: int8
+ type: sensor
+ dbc2vss:
+ signal: Gear
+ interval_ms: 100
+ vss2dbc:
+ signal: Gear
+
+Vehicle.Acceleration.Lateral:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationX
+ interval_ms: 100
+ vss2dbc:
+ signal: AccelerationX
+
+Vehicle.Acceleration.Longitudinal:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationY
+ interval_ms: 100
+ vss2dbc:
+ signal: AccelerationY
+
+Vehicle.Acceleration.Vertical:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationZ
+ interval_ms: 100
+ vss2dbc:
+ signal: AccelerationZ
+
+Vehicle.AngularVelocity.Pitch:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeX
+ interval_ms: 100
+ vss2dbc:
+ signal: GyroscopeX
+
+Vehicle.AngularVelocity.Roll:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeY
+ interval_ms: 100
+ vss2dbc:
+ signal: GyroscopeY
+
+Vehicle.AngularVelocity.Yaw:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeZ
+ interval_ms: 100
+ vss2dbc:
+ signal: GyroscopeZ
+
+Vehicle.CurrentLocation.Latitude:
+ datatype: double
+ type: sensor
+ dbc2vss:
+ signal: Latitude
+ interval_ms: 100
+ vss2dbc:
+ signal: Latitude
+
+Vehicle.CurrentLocation.Longitude:
+ datatype: double
+ type: sensor
+ dbc2vss:
+ signal: Longitude
+ interval_ms: 100
+ vss2dbc:
+ signal: Longitude
+
+
+#
+# AGL VSS additions
+#
+
+# Extra navigation state signals
+
+Vehicle.Cabin.Infotainment.Navigation.State:
+ datatype: string
+ type: sensor
+ allowed: [ 'UNKNOWN', 'ACTIVE', 'ARRIVED', 'STOPPED' ]
+ description: Navigation state.
+
+Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
+ datatype: float
+ type: sensor
+ unit: km
+ description: Navigation elapsed distance.
+
+
+# Extra audio control signals
+
+Vehicle.Cabin.Infotainment.Media.Audio:
+ type: branch
+ description: Media audio controls.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Balance:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio left/right balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Fade:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio front/rear balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Bass:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio low-frequency filter control.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Treble:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio high-frequency filter control.
+
+
+# Extra steering wheel switch signals, including DBC mappings
+
+Vehicle.Cabin.SteeringWheel:
+ type: branch
+ description: AGL steering wheel demo data.
+
+Vehicle.Cabin.SteeringWheel.Switches:
+ type: branch
+ description: AGL steering wheel demo switch data.
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume up switch engaged.
+ dbc2vss:
+ signal: SW_VolumeUp
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume down switch engaged.
+ dbc2vss:
+ signal: SW_VolumeDown
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume mute switch engaged.
+ dbc2vss:
+ signal: SW_VolumeMute
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Next:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel next switch engaged.
+ dbc2vss:
+ signal: SW_Next
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Previous:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel previous switch engaged.
+ dbc2vss:
+ signal: SW_Previous
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Mode:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel mode switch engaged.
+ dbc2vss:
+ signal: SW_Mode
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Info:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel info switch engaged.
+ dbc2vss:
+ signal: SW_Info
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise enable switch engaged.
+ dbc2vss:
+ signal: SW_CruiseEnable
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise set switch engaged.
+ dbc2vss:
+ signal: SW_CruiseSet
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise resume switch engaged.
+ dbc2vss:
+ signal: SW_CruiseResume
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise cancel switch engaged.
+ dbc2vss:
+ signal: SW_CruiseCancel
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise limit switch engaged.
+ dbc2vss:
+ signal: SW_CruiseLimit
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise distance switch engaged.
+ dbc2vss:
+ signal: SW_CruiseDistance
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Voice:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel voice switch engaged.
+ dbc2vss:
+ signal: SW_Voice
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone call switch engaged.
+ dbc2vss:
+ signal: SW_PhoneCall
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone hangup switch engaged.
+ dbc2vss:
+ signal: SW_PhoneHangup
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Horn:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel horn switch engaged.
+ dbc2vss:
+ signal: SW_Horn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel lane departure warning switch engaged.
+ dbc2vss:
+ signal: SW_LaneDepartureWarning
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
diff --git a/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.control-panel b/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.control-panel
new file mode 100644
index 000000000..9a92c6670
--- /dev/null
+++ b/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.control-panel
@@ -0,0 +1,412 @@
+# DBC mappings for vehicle and engine speeds
+
+Vehicle.Speed:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: PT_VehicleAvgSpeed
+
+Vehicle.Powertrain.CombustionEngine.Speed:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: PT_EngineSpeed
+
+# DBC mappings for other signals for V2C demo
+
+Vehicle.OBD.ThrottlePosition:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: ThrottlePosition
+
+Vehicle.Chassis.SteeringWheel.Angle:
+ datatype: int16
+ type: sensor
+ vss2dbc:
+ signal: SteeringPosition
+ transform:
+ math: "(x + 90) / 0.0439453125"
+
+Vehicle.Chassis.Brake.PedalPosition:
+ datatype: uint8
+ type: sensor
+ vss2dbc:
+ signal: BrakePressure
+ transform:
+ math: "x * 191.25"
+
+Vehicle.Powertrain.Transmission.SelectedGear:
+ datatype: int8
+ type: sensor
+ vss2dbc:
+ signal: Gear
+
+Vehicle.Acceleration.Lateral:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: AccelerationX
+
+Vehicle.Acceleration.Longitudinal:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: AccelerationY
+
+Vehicle.Acceleration.Vertical:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: AccelerationZ
+
+Vehicle.AngularVelocity.Pitch:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: GyroscopeX
+
+Vehicle.AngularVelocity.Roll:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: GyroscopeY
+
+Vehicle.AngularVelocity.Yaw:
+ datatype: float
+ type: sensor
+ vss2dbc:
+ signal: GyroscopeZ
+
+Vehicle.CurrentLocation.Latitude:
+ datatype: double
+ type: sensor
+ vss2dbc:
+ signal: Latitude
+
+Vehicle.CurrentLocation.Longitude:
+ datatype: double
+ type: sensor
+ vss2dbc:
+ signal: Longitude
+
+
+#
+# AGL VSS additions
+#
+
+# Extra navigation state signals
+
+Vehicle.Cabin.Infotainment.Navigation.State:
+ datatype: string
+ type: sensor
+ allowed: [ 'UNKNOWN', 'ACTIVE', 'ARRIVED', 'STOPPED' ]
+ description: Navigation state.
+
+Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
+ datatype: float
+ type: sensor
+ unit: km
+ description: Navigation elapsed distance.
+
+
+# Extra audio control signals
+
+Vehicle.Cabin.Infotainment.Media.Audio:
+ type: branch
+ description: Media audio controls.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Balance:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio left/right balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Fade:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio front/rear balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Bass:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio low-frequency filter control.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Treble:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio high-frequency filter control.
+
+
+# Extra steering wheel switch signals, including DBC mappings
+
+Vehicle.Cabin.SteeringWheel:
+ type: branch
+ description: AGL steering wheel demo data.
+
+Vehicle.Cabin.SteeringWheel.Switches:
+ type: branch
+ description: AGL steering wheel demo switch data.
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume up switch engaged.
+ dbc2vss:
+ signal: SW_VolumeUp
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume down switch engaged.
+ dbc2vss:
+ signal: SW_VolumeDown
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume mute switch engaged.
+ dbc2vss:
+ signal: SW_VolumeMute
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Next:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel next switch engaged.
+ dbc2vss:
+ signal: SW_Next
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Previous:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel previous switch engaged.
+ dbc2vss:
+ signal: SW_Previous
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Mode:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel mode switch engaged.
+ dbc2vss:
+ signal: SW_Mode
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Info:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel info switch engaged.
+ dbc2vss:
+ signal: SW_Info
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise enable switch engaged.
+ dbc2vss:
+ signal: SW_CruiseEnable
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise set switch engaged.
+ dbc2vss:
+ signal: SW_CruiseSet
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise resume switch engaged.
+ dbc2vss:
+ signal: SW_CruiseResume
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise cancel switch engaged.
+ dbc2vss:
+ signal: SW_CruiseCancel
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise limit switch engaged.
+ dbc2vss:
+ signal: SW_CruiseLimit
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise distance switch engaged.
+ dbc2vss:
+ signal: SW_CruiseDistance
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Voice:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel voice switch engaged.
+ dbc2vss:
+ signal: SW_Voice
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone call switch engaged.
+ dbc2vss:
+ signal: SW_PhoneCall
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone hangup switch engaged.
+ dbc2vss:
+ signal: SW_PhoneHangup
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Horn:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel horn switch engaged.
+ dbc2vss:
+ signal: SW_Horn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel lane departure warning switch engaged.
+ dbc2vss:
+ signal: SW_LaneDepartureWarning
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
diff --git a/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.gw-control-panel b/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.gw-control-panel
new file mode 100644
index 000000000..c6a6bc846
--- /dev/null
+++ b/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.gw-control-panel
@@ -0,0 +1,410 @@
+# DBC mappings for vehicle and engine speeds
+
+Vehicle.Speed:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: PT_VehicleAvgSpeed
+ interval_ms: 100
+
+Vehicle.Powertrain.CombustionEngine.Speed:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: PT_EngineSpeed
+ interval_ms: 100
+ transform:
+ math: "floor(x+0.5)"
+
+# DBC mappings for other signals for V2C demo
+
+Vehicle.OBD.ThrottlePosition:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: ThrottlePosition
+ interval_ms: 100
+
+Vehicle.Chassis.SteeringWheel.Angle:
+ datatype: int16
+ type: sensor
+ dbc2vss:
+ signal: SteeringPosition
+ interval_ms: 100
+ transform:
+ math: "x * 0.0439453125 - 90"
+
+Vehicle.Chassis.Brake.PedalPosition:
+ datatype: uint8
+ type: sensor
+ dbc2vss:
+ signal: BrakePressure
+ interval_ms: 100
+ transform:
+ math: "floor(x / 19125 * 100 + 0.5)"
+
+Vehicle.Powertrain.Transmission.SelectedGear:
+ datatype: int8
+ type: sensor
+ dbc2vss:
+ signal: Gear
+ interval_ms: 100
+
+Vehicle.Acceleration.Lateral:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationX
+ interval_ms: 100
+
+Vehicle.Acceleration.Longitudinal:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationY
+ interval_ms: 100
+
+Vehicle.Acceleration.Vertical:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: AccelerationZ
+ interval_ms: 100
+
+Vehicle.AngularVelocity.Pitch:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeX
+ interval_ms: 100
+
+Vehicle.AngularVelocity.Roll:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeY
+ interval_ms: 100
+
+Vehicle.AngularVelocity.Yaw:
+ datatype: float
+ type: sensor
+ dbc2vss:
+ signal: GyroscopeZ
+ interval_ms: 100
+
+Vehicle.CurrentLocation.Latitude:
+ datatype: double
+ type: sensor
+ dbc2vss:
+ signal: Latitude
+ interval_ms: 100
+
+Vehicle.CurrentLocation.Longitude:
+ datatype: double
+ type: sensor
+ dbc2vss:
+ signal: Longitude
+ interval_ms: 100
+
+
+#
+# AGL VSS additions
+#
+
+# Extra navigation state signals
+
+Vehicle.Cabin.Infotainment.Navigation.State:
+ datatype: string
+ type: sensor
+ allowed: [ 'UNKNOWN', 'ACTIVE', 'ARRIVED', 'STOPPED' ]
+ description: Navigation state.
+
+Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
+ datatype: float
+ type: sensor
+ unit: km
+ description: Navigation elapsed distance.
+
+
+# Extra audio control signals
+
+Vehicle.Cabin.Infotainment.Media.Audio:
+ type: branch
+ description: Media audio controls.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Balance:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio left/right balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Fade:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio front/rear balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Bass:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio low-frequency filter control.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Treble:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio high-frequency filter control.
+
+
+# Extra steering wheel switch signals, including DBC mappings
+
+Vehicle.Cabin.SteeringWheel:
+ type: branch
+ description: AGL steering wheel demo data.
+
+Vehicle.Cabin.SteeringWheel.Switches:
+ type: branch
+ description: AGL steering wheel demo switch data.
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume up switch engaged.
+ vss2dbc:
+ signal: SW_VolumeUp
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume down switch engaged.
+ vss2dbc:
+ signal: SW_VolumeDown
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume mute switch engaged.
+ vss2dbc:
+ signal: SW_VolumeMute
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Next:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel next switch engaged.
+ vss2dbc:
+ signal: SW_Next
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Previous:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel previous switch engaged.
+ vss2dbc:
+ signal: SW_Previous
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Mode:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel mode switch engaged.
+ vss2dbc:
+ signal: SW_Mode
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Info:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel info switch engaged.
+ vss2dbc:
+ signal: SW_Info
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise enable switch engaged.
+ vss2dbc:
+ signal: SW_CruiseEnable
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise set switch engaged.
+ vss2dbc:
+ signal: SW_CruiseSet
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise resume switch engaged.
+ vss2dbc:
+ signal: SW_CruiseResume
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise cancel switch engaged.
+ vss2dbc:
+ signal: SW_CruiseCancel
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise limit switch engaged.
+ vss2dbc:
+ signal: SW_CruiseLimit
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise distance switch engaged.
+ vss2dbc:
+ signal: SW_CruiseDistance
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Voice:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel voice switch engaged.
+ vss2dbc:
+ signal: SW_Voice
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone call switch engaged.
+ vss2dbc:
+ signal: SW_PhoneCall
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone hangup switch engaged.
+ vss2dbc:
+ signal: SW_PhoneHangup
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.Horn:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel horn switch engaged.
+ vss2dbc:
+ signal: SW_Horn
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
+
+Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel lane departure warning switch engaged.
+ vss2dbc:
+ signal: SW_LaneDepartureWarning
+ transform:
+ mapping:
+ - from: false
+ to: 0
+ - from: true
+ to: 1
diff --git a/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.gw-hardware b/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.gw-hardware
new file mode 100644
index 000000000..ceedceac6
--- /dev/null
+++ b/recipes-connectivity/vss/vss-agl/bak/agl_vss_overlay.vspec.gw-hardware
@@ -0,0 +1,349 @@
+# DBC mappings for other signals for V2C demo
+
+# Need HVAC signal mapping here!
+
+# DBC mappings for demo HVAC
+
+Vehicle.Cabin.HVAC.Station.Row1.Driver.Temperature:
+ datatype: int8
+ type: actuator
+ vss2dbc:
+ signal: PT_TempLeft
+ transform:
+ math: floor("x * 2.4 + 0.5")
+
+Vehicle.Cabin.HVAC.Station.Row1.Passenger.Temperature:
+ datatype: int8
+ type: actuator
+ vss2dbc:
+ signal: PT_TempRight
+ transform:
+ math: floor("x * 2.4 + 0.5")
+
+Vehicle.Cabin.HVAC.Station.Row1.Driver.FanSpeed:
+ datatype: uint8
+ type: actuator
+ vss2dbc:
+ signal: PT_FanSpeed
+ transform:
+ math: floor("x * 255 / 100 + 0.5")
+
+#
+# AGL VSS additions
+#
+
+# Extra navigation state signals
+
+Vehicle.Cabin.Infotainment.Navigation.State:
+ datatype: string
+ type: sensor
+ allowed: [ 'UNKNOWN', 'ACTIVE', 'ARRIVED', 'STOPPED' ]
+ description: Navigation state.
+
+Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
+ datatype: float
+ type: sensor
+ unit: km
+ description: Navigation elapsed distance.
+
+
+# Extra audio control signals
+
+Vehicle.Cabin.Infotainment.Media.Audio:
+ type: branch
+ description: Media audio controls.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Balance:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio left/right balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Fade:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio front/rear balance.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Bass:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio low-frequency filter control.
+
+Vehicle.Cabin.Infotainment.Media.Audio.Treble:
+ datatype: int8
+ type: actuator
+ min: -100
+ max: 100
+ unit: percent
+ description: Audio high-frequency filter control.
+
+
+# Extra steering wheel switch signals, including DBC mappings
+
+Vehicle.Cabin.SteeringWheel:
+ type: branch
+ description: AGL steering wheel demo data.
+
+Vehicle.Cabin.SteeringWheel.Switches:
+ type: branch
+ description: AGL steering wheel demo switch data.
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume up switch engaged.
+ dbc2vss:
+ signal: SW_VolumeUp
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume down switch engaged.
+ dbc2vss:
+ signal: SW_VolumeDown
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel volume mute switch engaged.
+ dbc2vss:
+ signal: SW_VolumeMute
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Next:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel next switch engaged.
+ dbc2vss:
+ signal: SW_Next
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Previous:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel previous switch engaged.
+ dbc2vss:
+ signal: SW_Previous
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Mode:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel mode switch engaged.
+ dbc2vss:
+ signal: SW_Mode
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Info:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel info switch engaged.
+ dbc2vss:
+ signal: SW_Info
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise enable switch engaged.
+ dbc2vss:
+ signal: SW_CruiseEnable
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise set switch engaged.
+ dbc2vss:
+ signal: SW_CruiseSet
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise resume switch engaged.
+ dbc2vss:
+ signal: SW_CruiseResume
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise cancel switch engaged.
+ dbc2vss:
+ signal: SW_CruiseCancel
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise limit switch engaged.
+ dbc2vss:
+ signal: SW_CruiseLimit
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel cruise distance switch engaged.
+ dbc2vss:
+ signal: SW_CruiseDistance
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Voice:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel voice switch engaged.
+ dbc2vss:
+ signal: SW_Voice
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone call switch engaged.
+ dbc2vss:
+ signal: SW_PhoneCall
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel phone hangup switch engaged.
+ dbc2vss:
+ signal: SW_PhoneHangup
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.Horn:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel horn switch engaged.
+ dbc2vss:
+ signal: SW_Horn
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
+
+Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
+ datatype: boolean
+ type: sensor
+ description: Steering wheel lane departure warning switch engaged.
+ dbc2vss:
+ signal: SW_LaneDepartureWarning
+ on_change: true
+ transform:
+ mapping:
+ - from: 0
+ to: false
+ - from: 1
+ to: true
diff --git a/recipes-connectivity/vss/vss-agl_4.0.bb b/recipes-connectivity/vss/vss-agl_4.0.bb
index 83fb4b1a1..c5a054dfd 100644
--- a/recipes-connectivity/vss/vss-agl_4.0.bb
+++ b/recipes-connectivity/vss/vss-agl_4.0.bb
@@ -8,29 +8,59 @@ inherit allarch update-alternatives
require vss.inc
-SRC_URI += "file://agl_vss_overlay.vspec"
-
+SRC_URI += "file://agl_vss_overlay.vspec \
+ file://agl_vss_overlay.vspec.control-panel \
+ file://agl_vss_overlay.vspec.gw-control-panel \
+ file://agl_vss_overlay.vspec.gw-hardware \
+"
# Since we're not relying on the simple upstream repo Makefile, use
# best practices and output into a separate directory.
B = "${WORKDIR}/build"
do_configure[noexec] = "1"
-VSPEC2JSON_OPTS = "-e dbc -o ${WORKDIR}/agl_vss_overlay.vspec --no-uuid --json-pretty"
+#VSPEC2JSON_OPTS = "-e dbc2vss,vss2dbc -o ${WORKDIR}/agl_vss_overlay.vspec --no-uuid --json-pretty"
+VSPEC2JSON_OPTS = "-e dbc2vss,vss2dbc --no-uuid --json-pretty"
do_compile() {
- vspec2json.py -I ${S}/spec ${VSPEC2JSON_OPTS} -u ${S}/spec/units.yaml ${S}/spec/VehicleSignalSpecification.vspec vss_rel_${PV}-agl.json
+ vspec2json.py -I ${S}/spec ${VSPEC2JSON_OPTS} -o ${WORKDIR}/agl_vss_overlay.vspec -u ${S}/spec/units.yaml ${S}/spec/VehicleSignalSpecification.vspec vss_rel_${PV}-agl.json
+ vspec2json.py -I ${S}/spec ${VSPEC2JSON_OPTS} -o ${WORKDIR}/agl_vss_overlay.vspec.control-panel -u ${S}/spec/units.yaml ${S}/spec/VehicleSignalSpecification.vspec vss_rel_${PV}-agl-control-panel.json
+ vspec2json.py -I ${S}/spec ${VSPEC2JSON_OPTS} -o ${WORKDIR}/agl_vss_overlay.vspec.gw-control-panel -u ${S}/spec/units.yaml ${S}/spec/VehicleSignalSpecification.vspec vss_rel_${PV}-agl-gw-control-panel.json
+ vspec2json.py -I ${S}/spec ${VSPEC2JSON_OPTS} -o ${WORKDIR}/agl_vss_overlay.vspec.gw-hardware -u ${S}/spec/units.yaml ${S}/spec/VehicleSignalSpecification.vspec vss_rel_${PV}-agl-gw-hardware.json
}
do_install() {
install -d ${D}${datadir}/vss
install -m 0644 vss_rel_${PV}-agl.json ${D}${datadir}/vss/
+ install -m 0644 vss_rel_${PV}-agl-control-panel.json ${D}${datadir}/vss/
+ install -m 0644 vss_rel_${PV}-agl-gw-control-panel.json ${D}${datadir}/vss/
+ install -m 0644 vss_rel_${PV}-agl-gw-hardware.json ${D}${datadir}/vss/
}
+PACKAGE_BEFORE_PN += "${PN}-control-panel ${PN}-gw-control-panel ${PN}-gw-hardware"
+
ALTERNATIVE_LINK_NAME[vss.json] = "${datadir}/vss/vss.json"
-ALTERNATIVE_PRIORITY = "20"
ALTERNATIVE:${PN} = "vss.json"
ALTERNATIVE_TARGET_${PN} = "${datadir}/vss/vss_rel_${PV}-agl.json"
+ALTERNATIVE_PRIORITY_${PN} = "20"
+
+FILES:${PN} += "${datadir}/vss/vss_rel_${PV}-agl.json"
+
+ALTERNATIVE:${PN}-control-panel = "vss.json"
+ALTERNATIVE_TARGET_${PN}-control-panel = "${datadir}/vss/vss_rel_${PV}-agl-control-panel.json"
+ALTERNATIVE_PRIORITY_${PN}-control-panel = "30"
+
+FILES:${PN}-control-panel += "${datadir}/vss/vss_rel_${PV}-agl-control-panel.json"
+
+ALTERNATIVE:${PN}-gw-control-panel = "vss.json"
+ALTERNATIVE_TARGET_${PN}-gw-control-panel = "${datadir}/vss/vss_rel_${PV}-agl-gw-control-panel.json"
+ALTERNATIVE_PRIORITY_${PN}-gw-control-panel = "31"
+
+FILES:${PN}-gw-control-panel += "${datadir}/vss/vss_rel_${PV}-agl-gw-control-panel.json"
+
+ALTERNATIVE:${PN}-gw-hardware = "vss.json"
+ALTERNATIVE_TARGET_${PN}-gw-hardware = "${datadir}/vss/vss_rel_${PV}-agl-gw-hardware.json"
+ALTERNATIVE_PRIORITY_${PN}-gw-hardware = "32"
-FILES:${PN} += "${datadir}/vss/"
+FILES:${PN}-gw-hardware += "${datadir}/vss/vss_rel_${PV}-agl-gw-hardware.json"