summaryrefslogtreecommitdiffstats
path: root/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0002-dbc2val-usability-improvements.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0002-dbc2val-usability-improvements.patch')
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0002-dbc2val-usability-improvements.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0002-dbc2val-usability-improvements.patch b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0002-dbc2val-usability-improvements.patch
new file mode 100644
index 00000000..31051b18
--- /dev/null
+++ b/recipes-connectivity/kuksa-val/kuksa-dbc-feeder/0002-dbc2val-usability-improvements.patch
@@ -0,0 +1,76 @@
+From b217a746ef7b92291320e4c1a66b52df0318495f Mon Sep 17 00:00:00 2001
+From: Scott Murray <scott.murray@konsulko.com>
+Date: Sat, 5 Aug 2023 13:58:16 -0400
+Subject: [PATCH 2/3] dbc2val: usability improvements
+
+Changes:
+- Tweaked default configuration file search path to better match
+ Linux FHS and kuksa-val-server. First look for a config.ini in
+ /etc/kuksa-dbc-feeder, then /etc/dbc_feeder.ini.
+- Add catching of exceptions around CAN device opening so that the
+ script can exit cleanly with an error message if the device is
+ not available.
+- Fixed shutdown behavior with some tweaks to actually stop the
+ reader and KUKSA.val client library threads. This makes the
+ script actually exit on SIGTERM as opposed to hanging.
+
+Upstream-Status: pending
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ dbc2val/dbcfeeder.py | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/dbc2val/dbcfeeder.py b/dbc2val/dbcfeeder.py
+index 966dba7..e7fd319 100755
+--- a/dbc2val/dbcfeeder.py
++++ b/dbc2val/dbcfeeder.py
+@@ -188,7 +188,11 @@ class Feeder:
+
+ # use socketCAN
+ log.info("Using socket CAN device '%s'", canport)
++ try:
+ self._reader.start_listening(bustype="socketcan", channel=canport)
++ except:
++ log.error("Could not open {}, exiting".format(canport))
++ sys.exit(-1)
+
+ receiver = threading.Thread(target=self._run_receiver)
+ receiver.start()
+@@ -212,6 +216,11 @@ class Feeder:
+ threads.append(transmitter)
+ else:
+ log.info("No val2dbc mappings found or val2dbc disabled!!")
++
++ # Spin so signal handlers will work
++ while not self._shutdown:
++ time.sleep(0.1)
++
+ # Wait for all of them to finish
+ for thread in threads:
+ thread.join()
+@@ -363,8 +372,10 @@ def parse_config(filename):
+ configfile = filename
+ else:
+ config_candidates = [
+- "/config/dbc_feeder.ini",
++ "/etc/kuksa-dbc-feeder/config.ini",
++ "/etc/kuksa-dbc-feeder/dbc_feeder.ini",
+ "/etc/dbc_feeder.ini",
++ "/config/dbc_feeder.ini",
+ "config/dbc_feeder.ini",
+ ]
+ for candidate in config_candidates:
+@@ -577,7 +588,7 @@ def main(argv):
+ elif "can" in config and "dbc_default_file" in config["can"]:
+ dbc_default = config["can"]["dbc_default_file"]
+ else:
+- dbc_default = "dbc_default_values.json"
++ dbc_default = ""
+
+ if args.dbc2val:
+ use_dbc2val = True
+--
+2.41.0
+