From ca9491bcb46a2120e6632ba3a06df1a5c34a1774 Mon Sep 17 00:00:00 2001
From: su530201 <olivier.kaufmann@umons.ac.be>
Date: Sun, 23 Apr 2023 20:21:00 +0200
Subject: [PATCH] Fixes issue with RX, TX and MUX controller in OhmPiHardware
 __init__

---
 hardware/abstract_hardware.py        | 6 +++++-
 hardware/ohmpi_card_3_15.py          | 6 ++++--
 measure.py                           | 4 ++--
 test_measure_with_ohmpi_card_3_15.py | 2 +-
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/hardware/abstract_hardware.py b/hardware/abstract_hardware.py
index 4082dc67..57ff1c7e 100644
--- a/hardware/abstract_hardware.py
+++ b/hardware/abstract_hardware.py
@@ -127,6 +127,7 @@ class TxAbstract(ABC):
         self.soh_logger = kwargs.pop('soh_logger', None)
         if self.soh_logger is None:
             self.soh_logger = create_stdout_logger('soh_tx')
+        self.controller = kwargs.pop('controller', None)
         #self._polarity = polarity
         self._inj_time = None
         self._dps_state = 'off'
@@ -241,8 +242,11 @@ class RxAbstract(ABC):
     def __init__(self, **kwargs):
         self.exec_logger = kwargs.pop('exec_logger', None)
         if self.exec_logger is None:
-            self.exec_logger = create_stdout_logger('exec_tx')
+            self.exec_logger = create_stdout_logger('exec_rx')
         self.soh_logger = kwargs.pop('soh_logger', None)
+        if self.soh_logger is None:
+            self.soh_logger = create_stdout_logger('soh_rx')
+        self.controller = kwargs.pop('controller', None)
         self.board_name = kwargs.pop('board_name', 'unknown RX hardware')
         self._sampling_rate = kwargs.pop('sampling_rate', 1)
         self.exec_logger.debug(f'{self.board_name} RX initialization')
diff --git a/hardware/ohmpi_card_3_15.py b/hardware/ohmpi_card_3_15.py
index 3de6a26b..1d7cafdf 100644
--- a/hardware/ohmpi_card_3_15.py
+++ b/hardware/ohmpi_card_3_15.py
@@ -73,7 +73,8 @@ class Tx(TxAbstract):
         kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')})
         super().__init__(**kwargs)
         self._voltage = kwargs.pop('voltage', TX_CONFIG['default_voltage'])
-        self.controller = kwargs.pop('controller', controller_module.Controller())
+        if self.controller is None:
+            self.controller = controller_module.Controller()
 
         # I2C connexion to MCP23008, for current injection
         self.mcp_board = MCP23008(self.controller.bus, address=TX_CONFIG['mcp_board_address'])
@@ -208,7 +209,8 @@ class Rx(RxAbstract):
     def __init__(self, **kwargs):
         kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')})
         super().__init__(**kwargs)
-        self.controller = kwargs.pop('controller', controller_module.Controller())
+        if self.controller is None:
+            self.controller = controller_module.Controller()
 
         # ADS1115 for voltage measurement (MN)
         self._ads_voltage_address = 0x49
diff --git a/measure.py b/measure.py
index 7662f085..2eff82fe 100644
--- a/measure.py
+++ b/measure.py
@@ -38,11 +38,11 @@ class OhmPiHardware:
         self.controller = kwargs.pop('controller',
                                      controller_module.Controller(exec_logger=self.exec_logger,
                                                                    data_logger=self.data_logger,
-                                                                   soh_logger= self.soh_logger))
+                                                                   soh_logger=self.soh_logger))
         self.rx = kwargs.pop('rx', rx_module.Rx(exec_logger=self.exec_logger,
                                                  data_logger=self.data_logger,
                                                  soh_logger=self.soh_logger,
-                                                 controller = self.controller))
+                                                 controller=self.controller))
         self.tx = kwargs.pop('tx', tx_module.Tx(exec_logger=self.exec_logger,
                                                  data_logger=self.data_logger,
                                                  soh_logger=self.soh_logger,
diff --git a/test_measure_with_ohmpi_card_3_15.py b/test_measure_with_ohmpi_card_3_15.py
index 378e328c..511c54c3 100644
--- a/test_measure_with_ohmpi_card_3_15.py
+++ b/test_measure_with_ohmpi_card_3_15.py
@@ -13,7 +13,7 @@ k._vab_pulse(vab=12, length=1., sampling_rate=k.rx.sampling_rate, polarity=1)
 r = k.readings[:,4]/k.readings[:,3]
 print(f'Mean resistance: {np.mean(r):.3f} Ohms, Dev. {100*np.std(r)/np.mean(r):.1f} %')
 print(f'sampling rate: {k.rx.sampling_rate:.1f} ms, mean sample spacing: {np.mean(np.diff(k.readings[:,0]))*1000.:.1f} ms')
-print('Testing negative _vab_pulse')
+print('\nTesting negative _vab_pulse')
 k._vab_pulse(vab=12, length=1., sampling_rate=k.rx.sampling_rate, polarity=-1)
 r = k.readings[:,4]/k.readings[:,3]
 print(f'Mean resistance: {np.mean(r):.3f} Ohms, Dev. {100*np.std(r)/np.mean(r):.1f} %')
-- 
GitLab