Upgrade KUKSA.val components to 0.4.0 releases
[AGL/meta-agl-demo.git] / recipes-connectivity / kuksa-val / kuksa-dbc-feeder / 0002-dbc2val-usability-improvements.patch
index be88fa0..31051b1 100644 (file)
@@ -1,7 +1,7 @@
-From d0730c0d643738ac683d1b5c19b117893e3b2049 Mon Sep 17 00:00:00 2001
+From b217a746ef7b92291320e4c1a66b52df0318495f Mon Sep 17 00:00:00 2001
 From: Scott Murray <scott.murray@konsulko.com>
-Date: Tue, 11 Oct 2022 15:28:07 -0400
-Subject: [PATCH 2/2] dbc2val: usability improvements
+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
@@ -17,113 +17,60 @@ Changes:
 Upstream-Status: pending
 
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
 ---
- dbc2val/dbcfeeder.py | 21 +++++++++++++++------
- dbc2val/dbcreader.py | 12 ++++++++----
- 2 files changed, 23 insertions(+), 10 deletions(-)
+ dbc2val/dbcfeeder.py | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
 
 diff --git a/dbc2val/dbcfeeder.py b/dbc2val/dbcfeeder.py
-index 7daaa2b..33c2212 100755
+index 966dba7..e7fd319 100755
 --- a/dbc2val/dbcfeeder.py
 +++ b/dbc2val/dbcfeeder.py
-@@ -93,6 +93,7 @@ class Feeder:
-         self._connected = False
-         self._registered = False
-         self._can_queue = queue.Queue()
-+        self.kuksa = None
+@@ -188,7 +188,11 @@ class Feeder:
  
-     def start(
-         self,
-@@ -134,7 +135,11 @@ class Feeder:
-         else:
-             # use socketCAN
-             log.info("Using socket CAN device '%s'", canport)
--            self._reader.start_listening(bustype="socketcan", channel=canport)
+                 # use socketCAN
+                 log.info("Using socket CAN device '%s'", canport)
 +            try:
-+                self._reader.start_listening(bustype="socketcan", channel=canport)
+                 self._reader.start_listening(bustype="socketcan", channel=canport)
 +            except:
 +                log.error("Could not open {}, exiting".format(canport))
 +                sys.exit(-1)
-        
-         # databroker related
-         if USE_CASE=="databroker":
-@@ -151,6 +156,8 @@ class Feeder:
-         log.info("Shutting down...")
-         self._shutdown = True
-         # Tell others to stop
-+        if USE_CASE=="kuksa" and self.kuksa is not None:
-+            self.kuksa.stop()
-         if self._reader is not None:
-             self._reader.stop()
-         if self._player is not None:
-@@ -204,9 +211,10 @@ class Feeder:
-         # kuksa related
-         if USE_CASE=="kuksa":
-             global kuksaconfig
--            kuksa = KuksaClientThread(kuksaconfig)
--            kuksa.start()
--            kuksa.authorize()
-+            self.kuksa = KuksaClientThread(kuksaconfig)
-+            self.kuksa.start()
-+            if "token" in kuksaconfig:
-+                self.kuksa.authorize(kuksaconfig["token"])
-         
-         while self._shutdown is False:
-             # databroker related
-@@ -255,7 +263,7 @@ class Feeder:
-                             self._provider.update_datapoint(target, value)
-                         # kuksa related
-                         elif USE_CASE=="kuksa":
--                            resp=json.loads(kuksa.setValue(target, str(value)))
-+                            resp=json.loads(self.kuksa.setValue(target, str(value)))
-                             if "error" in resp:
-                                 if "message" in resp["error"]: 
-                                    log.error("Error setting {}: {}".format(target, resp["error"]["message"]))
-@@ -282,8 +290,9 @@ def parse_config(filename):
+             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",
          ]
-         configfile = None
-diff --git a/dbc2val/dbcreader.py b/dbc2val/dbcreader.py
-index 2500832..b537a4d 100644
---- a/dbc2val/dbcreader.py
-+++ b/dbc2val/dbcreader.py
-@@ -54,8 +54,8 @@ class DBCReader:
-             Bitrate in bit/s.
-         """
-         self.bus = can.interface.Bus(*args, **kwargs)
--        rxThread = threading.Thread(target=self.rxWorker)
--        rxThread.start()
-+        self.rxThread = threading.Thread(target=self.rxWorker)
-+        self.rxThread.start()
-     def get_whitelist(self):
-         log.info("Collecting signals, generating CAN ID whitelist")
-@@ -83,7 +83,10 @@ class DBCReader:
-     def rxWorker(self):
-         log.info("Starting Rx thread")
-         while self.run:
--            msg = self.bus.recv(timeout=1)
-+            try:
-+                msg = self.bus.recv(timeout=1)
-+            except Exception:
-+                break
-             if msg and msg.arbitration_id in self.canidwl:
-                 try:
-                     decode = self.db.decode_message(msg.arbitration_id, msg.data)
-@@ -105,4 +108,5 @@ class DBCReader:
+         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 = ""
  
-     def stop(self):
-         self.run = False
--
-+        self.bus.shutdown()
-+        self.rxThread.join()
+     if args.dbc2val:
+         use_dbc2val = True
 -- 
-2.37.3
+2.41.0