From e24ce94e248d312050e9e606bf907a7b9ca719b2 Mon Sep 17 00:00:00 2001
From: su530201 <olivier.kaufmann@umons.ac.be>
Date: Tue, 26 Sep 2023 16:02:13 +0200
Subject: [PATCH] Updates hardware_sytem to handle MUX_CONFIG

---
 ohmpi/hardware_system.py | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py
index 505d59d5..edd3b8a9 100644
--- a/ohmpi/hardware_system.py
+++ b/ohmpi/hardware_system.py
@@ -20,14 +20,13 @@ ctl_module = importlib.import_module(f'ohmpi.hardware_components.{HARDWARE_CONFI
 pwr_module = importlib.import_module(f'ohmpi.hardware_components.{HARDWARE_CONFIG["pwr"]["model"]}')
 tx_module = importlib.import_module(f'ohmpi.hardware_components.{HARDWARE_CONFIG["tx"]["model"]}')
 rx_module = importlib.import_module(f'ohmpi.hardware_components.{HARDWARE_CONFIG["rx"]["model"]}')
-MUX_CONFIG = HARDWARE_CONFIG['mux']
 
-# for mux_id, mux_config in HARDWARE_CONFIG['mux']['boards'].items():
-#     mux_module = importlib.import_module(f'ohmpi.hardware_components.{mux_config["model"]}')
-#     MUX_CONFIG[mux_id] = mux_module.MUX_CONFIG
-#     MUX_CONFIG[mux_id].update(mux_config)
-#     MUX_CONFIG[mux_id].update({'id': mux_id})
+MUX_DEFAULT = HARDWARE_CONFIG['mux']['default']
 MUX_CONFIG = HARDWARE_CONFIG['mux']['boards']
+for k, v in HARDWARE_CONFIG.items():
+    MUX_CONFIG[k].update({'id': k})
+    for k2, v2 in MUX_DEFAULT.items():
+        MUX_CONFIG[k].update({k2: MUX_CONFIG[k].pop(k2, v2)})
 
 TX_CONFIG = tx_module.TX_CONFIG
 RX_CONFIG = rx_module.RX_CONFIG
@@ -100,10 +99,10 @@ class OhmPiHardware:
         self.tx.pwr = self.pwr
         self._cabling = kwargs.pop('cabling', {})
         self.mux_boards = {}
-        for mux_id, mux_config in HARDWARE_CONFIG['mux']['boards'].items():
+        for mux_id, mux_config in MUX_CONFIG.items():
             mux_config.update({'exec_logger': self.exec_logger, 'data_logger': self.data_logger,
                                'soh_logger': self.soh_logger})
-            mux_config.update(**HARDWARE_CONFIG['mux']['boards'][mux_id])
+            mux_config.update(**MUX_CONFIG[mux_id])
             ctl = mux_config.pop({'ctl': self.ctl})
             mux_module = importlib.import_module(f'ohmpi.hardware_components.{mux_config["model"]}')
             if isinstance(ctl, dict): ### TODO: is this needed?
-- 
GitLab