From e65d7190648e6438b7929985667d3b776cc3c009 Mon Sep 17 00:00:00 2001
From: "remi.clement@inrae.fr" <arnaud.watlet@umons.ac.be>
Date: Tue, 14 Feb 2023 15:41:33 +0100
Subject: [PATCH] Adds MUX board 2024 capability

---
 .../2024.0.0/relay_board_32/test_MUX_32.py      | 17 +++++++++--------
 ohmpi.py                                        | 10 +++++-----
 2 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/MUX_board/2024.0.0/relay_board_32/test_MUX_32.py b/MUX_board/2024.0.0/relay_board_32/test_MUX_32.py
index 72c9b8ff..a39928b4 100644
--- a/MUX_board/2024.0.0/relay_board_32/test_MUX_32.py
+++ b/MUX_board/2024.0.0/relay_board_32/test_MUX_32.py
@@ -9,9 +9,9 @@ import os
 
 mux_board_version = '2024.0.0'
 mux_addressing_table_file = "compiled_mux_addressing_table.csv"
-mux_addressing_table_file = os.path.join(mux_board_version,"relay_board_32",mux_addressing_table_file)
+#mux_addressing_table_file = os.path.join("MUX_board",mux_board_version,"relay_board_32",mux_addressing_table_file)
 
-electrode_nr = 1
+electrode_nr = "1"
 role = "A"
 # state = on
 
@@ -20,9 +20,10 @@ with open(mux_addressing_table_file, 'r') as myfile:
 mux_addressing_table = np.genfromtxt(mux_addressing_table_file, dtype=str,
                                      delimiter=',', skip_header=1, )
 mux_addressing_table = {header[k]: mux_addressing_table.T[k] for k in range(len(header))}
-
+print(mux_addressing_table)
 
 def set_relay_state(mcp, mcp_pin, state=True):
+    print(mcp,mcp_gpio)
     pin_enable = mcp.get_pin(mcp_pin)
     pin_enable.direction = Direction.OUTPUT
     pin_enable.value = state
@@ -31,16 +32,16 @@ i2c = busio.I2C(board.SCL, board.SDA)
 idx = np.where((mux_addressing_table['Electrode_id'] == electrode_nr) & (mux_addressing_table['Role'] == role))[0]
 tca_addr = mux_addressing_table['TCA_address'][idx][0]
 tca_channel = mux_addressing_table['TCA_channel'][idx][0]
-mcp_gpio = mux_addressing_table['MCP_GPIO'][idx][0]
+mcp_gpio = int(mux_addressing_table['MCP_GPIO'][idx][0])
 if tca_addr is None:
     tca = i2c
 else:
     tca = adafruit_tca9548a.TCA9548A(i2c, role)
 #tca = adafruit_tca9548a.TCA9548A(i2c, hex(int(tca_addr, 16)))[tca_channel]
 tca = i2c
-mcp_addr = hex(int(mux_addressing_table['MCP_address'][idx][0], 16))
-MCP23017(tca, address=mcp_addr)
+mcp_addr = int(mux_addressing_table['MCP_address'][idx][0], 16)
+mcp = MCP23017(tca, address=mcp_addr)
 
-set_relay_state(mcp_addr,mcp_gpio, True)
+set_relay_state(mcp,mcp_gpio, True)
 time.sleep(2)
-set_relay_state(mcp_addr,mcp_gpio, True)
\ No newline at end of file
+set_relay_state(mcp,mcp_gpio, False)
diff --git a/ohmpi.py b/ohmpi.py
index 1dfbe8e1..0d507d5d 100644
--- a/ohmpi.py
+++ b/ohmpi.py
@@ -1337,13 +1337,13 @@ class OhmPi(object):
                 tca = self.i2c
             else:
                 tca = adafruit_tca9548a.TCA9548A(self.i2c, self.board_addresses[role])
-            tca = adafruit_tca9548a.TCA9548A(self.i2c, hex(int(tca_addr,16)))[tca_channel]
-            mcp_addr = hex(int(mux_addressing_table['MCP_address'][idx][0], 16))
-            MCP23017(tca, address=mcp_addr)
+            tca = adafruit_tca9548a.TCA9548A(self.i2c, int(tca_addr,16))[tca_channel]
+            mcp_addr = int(mux_addressing_table['MCP_address'][idx][0], 16)
+            mcp = MCP23017(tca, address=mcp_addr)
             if state == 'on':
-                set_relay_state(mcp_addr, mcp_gpio, True)
+                set_relay_state(mcp, mcp_gpio, True)
             if state == 'off':
-                set_relay_state(mcp_addr, mcp_gpio, False)
+                set_relay_state(mcp, mcp_gpio, False)
 
         else:
             self.exec_logger.warning('MUX board version not recognized')
-- 
GitLab