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