diff --git a/hardware_components/mux_2024_rev_0_0.py b/hardware_components/mux_2024_rev_0_0.py index 866db231cea3af5a5d6eb495a27d4eced648c440..c7d927445a2dc73810bae5e29c5a8a5e34823618 100644 --- a/hardware_components/mux_2024_rev_0_0.py +++ b/hardware_components/mux_2024_rev_0_0.py @@ -95,14 +95,13 @@ class Mux(MuxAbstract): self._tca = self.controller.bus else: self._tca = adafruit_tca9548a.TCA9548A(self.controller.bus, tca_address)[tca_channel] - self._mcp = [0, 0] - self._mcp[0] = MCP23017(self._tca, address=int(kwargs.pop('mcp_0', '0x22'), 16)) # TODO add assert on valid addresses.. - self._mcp[1] = MCP23017(self._tca, address=int(kwargs.pop('mcp_1', '0x23'), 16)) + self._mcp_addresses = (kwargs.pop('mcp_0', '0x22'), kwargs.pop('mcp_1', '0x23')) # TODO add assert on valid addresses.. + self._mcp = (None, None) + self.reset() if self.addresses is None: self._get_addresses() self.exec_logger.debug(f'addresses: {self.addresses}') - def _get_addresses(self): d = inner_cabling[self._mode] self.addresses = {} @@ -110,22 +109,9 @@ class Mux(MuxAbstract): self.addresses.update({(k[0], self._roles[k[1]]): v}) print(f'addresses: {self.addresses}') - # def _get_addresses(self, addresses_file): TODO : delete me - # self.exec_logger.debug('Getting addresses...') - # with open(addresses_file, 'r') as f: - # x = json.load(f) - # - # self.addresses = {} - # for k, v in x.items(): - # y = k.strip('(').strip(')').split(', ') - # if v['TCA_address'] is not None: - # v['TCA_address'] = int(v['TCA_address'], 16) - # if v['MCP_address'] is not None: - # v['MCP_address'] = int(x[k]['MCP_address'], 16) - # self.addresses.update({(int(y[0]), y[1]): v}) - def reset(self): - pass + self._mcp[0] = MCP23017(self._tca, address=int(self._mcp_addresses[0], 16)) + self._mcp[1] = MCP23017(self._tca, address=int(self._mcp_addresses[0], 16)) def switch_one(self, elec=None, role=None, state=None): MuxAbstract.switch_one(self, elec=elec, role=role, state=state) diff --git a/test_mux_2024.py b/test_mux_2024.py index 7de578c9295606d5a8a9c9237ab7403c2ee95bcf..e9b2e1828180ff573237be783a2c502ab78a8378 100644 --- a/test_mux_2024.py +++ b/test_mux_2024.py @@ -11,6 +11,7 @@ time.sleep(2) mux.switch_one(elec=1, role='M', state='off') mux.switch({'A': [1], 'B': [4], 'M': [2], 'N': [3]}, state='on') time.sleep(8) -mux.switch({'A': [1], 'B': [4], 'M': [2], 'N': [3]}, state='off') +#mux.switch({'A': [1], 'B': [4], 'M': [2], 'N': [3]}, state='off') +mux.reset() # mux.test({'A': [1, 2, 3, 4], 'B': [4, 5, 6, 7], 'M': [2, 3, 4, 5], 'N': [3, 4, 5, 6]}) change_config('config_default.py', verbose=False)