1 From 2e4e1f9147f1ebe5b545ae0cab41341e3abb00ae Mon Sep 17 00:00:00 2001
2 From: Scott Murray <scott.murray@konsulko.com>
3 Date: Sat, 15 Jun 2024 13:13:17 -0400
4 Subject: [PATCH 2/4] dbc2val: usability improvements
7 - Tweaked default configuration file search path to better match
8 Linux FHS. First look for a config.ini or dbc_feeder.ini in
9 /etc/kuksa-can-provider, then fall back to /etc/dbc_feeder.ini
10 before using trying other possible paths.
11 - Add catching of exceptions around CAN device opening so that the
12 script can exit cleanly with an error message if the device is
14 - Tweaked DBC default value file command line argument parsing so
15 that it does not attempt to fallback to "dbc_default_values.json"
16 in the current working directory. That likely works for upstream
17 test scenarios, but prevents running on a target.
19 Upstream-Status: pending
21 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
23 dbcfeeder.py | 19 +++++++++++++++----
24 1 file changed, 15 insertions(+), 4 deletions(-)
26 diff --git a/dbcfeeder.py b/dbcfeeder.py
27 index a1ef174..c252503 100755
30 @@ -144,7 +144,11 @@ class Feeder:
31 whitelisted_frame_ids.append(filter.can_id) # type: ignore
32 elm2canbridge.elm2canbridge(canport, self._elmcan_config, whitelisted_frame_ids)
34 - self._reader.start()
36 + self._reader.start()
38 + log.error("Could not open %s, exiting", canport)
41 receiver = threading.Thread(target=self._run_receiver)
43 @@ -165,7 +169,12 @@ class Feeder:
44 # For now creating another bus
45 # Maybe support different buses for downstream/upstream in the future
47 - self._canclient = CANClient(interface="socketcan", channel=canport, can_fd=can_fd)
48 + self._canclient = None
50 + self._canclient = CANClient(interface="socketcan", channel=canport, can_fd=can_fd)
52 + log.error("Could not open %s, exiting", canport)
55 transmitter = threading.Thread(target=self._run_transmitter)
57 @@ -335,8 +344,10 @@ def _parse_config(filename: str) -> configparser.ConfigParser:
61 - "/config/dbc_feeder.ini",
62 + "/etc/kuksa-can-provider/config.ini",
63 + "/etc/kuksa-can-provider/dbc_feeder.ini",
64 "/etc/dbc_feeder.ini",
65 + "/config/dbc_feeder.ini",
66 "config/dbc_feeder.ini",
68 for candidate in config_candidates:
69 @@ -534,7 +545,7 @@ def main(argv):
70 elif os.environ.get("DBC_DEFAULT_FILE"):
71 dbc_default = os.environ.get("DBC_DEFAULT_FILE")
73 - dbc_default = config.get(CONFIG_SECTION_CAN, CONFIG_OPTION_DBC_DEFAULT_FILE, fallback="dbc_default_values.json")
74 + dbc_default = config.get(CONFIG_SECTION_CAN, CONFIG_OPTION_DBC_DEFAULT_FILE, fallback=None)
77 mappingfile = args.mapping