From a40edafad137e1ad5e5610a6bca983c212ed7d48 Mon Sep 17 00:00:00 2001
From: Arnaud Watlet <arnaud.watlet@umons.ac.be>
Date: Wed, 29 Nov 2023 15:02:38 +0100
Subject: [PATCH] Enables previous roles formatting in config

---
 ohmpi/hardware_components/mux_2023_0_X.py | 7 +++++--
 ohmpi/hardware_components/mux_2024_0_X.py | 3 +++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/ohmpi/hardware_components/mux_2023_0_X.py b/ohmpi/hardware_components/mux_2023_0_X.py
index df4bd14d..9bfdeb5d 100644
--- a/ohmpi/hardware_components/mux_2023_0_X.py
+++ b/ohmpi/hardware_components/mux_2023_0_X.py
@@ -74,10 +74,13 @@ class Mux(MuxAbstract):
         assert isinstance(self.connection, I2C)
         self.exec_logger.debug(f'configuration: {kwargs}')
         roles = kwargs.pop('roles', None)
-        if isinstance(roles, str):
-            roles = [roles]
+
         if roles is None:
             roles = ['A'] # NOTE: defaults to 1-role
+        elif isinstance(roles, str):
+            roles = [roles]
+        if isinstance(roles,dict): # roles if config are already formatted as {'A':'X'}
+            self._roles = roles
         else:
             self._roles = {roles[0]:'X'}
         if np.alltrue([j in self._roles.values() for j in set([i[1] for i in list(inner_cabling['1_role'].keys())])]):
diff --git a/ohmpi/hardware_components/mux_2024_0_X.py b/ohmpi/hardware_components/mux_2024_0_X.py
index 1da3a6cf..fe14eaec 100644
--- a/ohmpi/hardware_components/mux_2024_0_X.py
+++ b/ohmpi/hardware_components/mux_2024_0_X.py
@@ -74,6 +74,9 @@ class Mux(MuxAbstract):
             roles = ['A', 'B', 'M', 'N'] # NOTE: defaults to 4-roles
         else:
             roles_board = ['X', 'Y', 'XX', 'YY']
+        if isinstance(roles,dict): # roles if config are already formatted as {'A':'X', 'B':'Y',...}
+            self._roles = roles
+        else:
             self._roles = {roles[i]: roles_board[i] for i in range(len(roles))}
         if np.all([j in self._roles.values() for j in set([i[1] for i in list(inner_cabling['4_roles'].keys())])]):
             self._mode = '4_roles'
-- 
GitLab