From ec429d818db566a8444e7aa095fa940a6045f0d7 Mon Sep 17 00:00:00 2001
From: Arnaud Watlet <arnaud.watlet@umons.ac.be>
Date: Fri, 1 Dec 2023 10:25:34 +0100
Subject: [PATCH] Updates components for tests

---
 ohmpi/hardware_components/mb_2023_0_X.py  | 13 ++++++++++---
 ohmpi/hardware_components/mb_2024_0_2.py  |  3 ++-
 ohmpi/hardware_components/mux_2023_0_X.py |  3 +++
 ohmpi/hardware_components/mux_2024_0_X.py |  3 +++
 4 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/ohmpi/hardware_components/mb_2023_0_X.py b/ohmpi/hardware_components/mb_2023_0_X.py
index 4fe1c0b6..5aba8e17 100644
--- a/ohmpi/hardware_components/mb_2023_0_X.py
+++ b/ohmpi/hardware_components/mb_2023_0_X.py
@@ -88,13 +88,14 @@ class Tx(TxAbstract):
         self.current_adjustable = False
 
         # I2C connexion to MCP23008, for current injection
-        self.mcp_board = MCP23008(self.connection, address=kwargs['mcp_address'])
+        self._mcp_address = kwargs['mcp_address']
+        self.reset_mcp()
         # ADS1115 for current measurement (AB)
         self._ads_current_address = kwargs['ads_address']
         self._ads_current_data_rate = kwargs['data_rate']
         self._adc_gain = 2 / 3
-        self._ads_current = ads.ADS1115(self.connection, gain=self._adc_gain, data_rate=self._ads_current_data_rate,
-                                        address=self._ads_current_address)
+        self.reset_ads()
+
         self._ads_current.mode = Mode.CONTINUOUS
         self._r_shunt = kwargs['r_shunt']
         self.adc_voltage_min = kwargs['adc_voltage_min']
@@ -182,6 +183,12 @@ class Tx(TxAbstract):
     # def turn_on(self):
     #     self.pwr.turn_on(self)
 
+    def reset_ads(self):
+        self._ads_current = ads.ADS1115(self.connection, gain=self._adc_gain, data_rate=self._ads_current_data_rate,
+                                    address=self._ads_current_address)
+    def reset_mcp(self):
+        self.mcp_board = MCP23008(self.connection, address=self._mcp_address)
+
     @property
     def tx_bat(self):
         if np.isnan(self.pwr.battery_voltage):
diff --git a/ohmpi/hardware_components/mb_2024_0_2.py b/ohmpi/hardware_components/mb_2024_0_2.py
index 99f38833..ae7f8198 100644
--- a/ohmpi/hardware_components/mb_2024_0_2.py
+++ b/ohmpi/hardware_components/mb_2024_0_2.py
@@ -142,7 +142,8 @@ class Rx(Rx_mb_2023):
         if not subclass_init:
             self.exec_logger.event(f'{self.model}\trx_init\tbegin\t{datetime.datetime.utcnow()}')
         # I2C connection to MCP23008, for voltage
-        self.mcp_board = MCP23008(self.connection, address=kwargs['mcp_address'])
+        # self.mcp_board = MCP23008(self.connection, address=kwargs['mcp_address'])
+        # self.reset_mcp()
         # ADS1115 for voltage measurement (MN)
         self._coef_p2 = 1.
         # Define default DG411 gain
diff --git a/ohmpi/hardware_components/mux_2023_0_X.py b/ohmpi/hardware_components/mux_2023_0_X.py
index 960caa5e..fa3ec370 100644
--- a/ohmpi/hardware_components/mux_2023_0_X.py
+++ b/ohmpi/hardware_components/mux_2023_0_X.py
@@ -126,6 +126,9 @@ class Mux(MuxAbstract):
         self._mcp[2] = MCP23017(self._tca[2])
         self._mcp[3] = MCP23017(self._tca[3])
 
+    def reset_one(self, which=0):
+        self._mcp[which] = MCP23017(self._tca[which])
+
     def switch_one(self, elec=None, role=None, state=None):
         MuxAbstract.switch_one(self, elec=elec, role=role, state=state)
 
diff --git a/ohmpi/hardware_components/mux_2024_0_X.py b/ohmpi/hardware_components/mux_2024_0_X.py
index b6e11bd8..b11c324e 100644
--- a/ohmpi/hardware_components/mux_2024_0_X.py
+++ b/ohmpi/hardware_components/mux_2024_0_X.py
@@ -152,6 +152,9 @@ class Mux(MuxAbstract):
         self._mcp[0] = MCP23017(self._tca, address=int(self._mcp_addresses[0], 16))
         self._mcp[1] = MCP23017(self._tca, address=int(self._mcp_addresses[1], 16))
 
+    def reset_one(self, which=0):
+        self._mcp[which] = MCP23017(self._tca, address=int(self._mcp_addresses[which], 16))
+
     def switch_one(self, elec=None, role=None, state=None):
         MuxAbstract.switch_one(self, elec=elec, role=role, state=state)
         def activate_relay(mcp, mcp_pin, value=True):
-- 
GitLab