diff --git a/ohmpi/hardware_components/abstract_hardware_components.py b/ohmpi/hardware_components/abstract_hardware_components.py index ff156cd4b448786583b4306e93a82d5020b11037..67815c997d9e2febce3a087f87d5812f8ed30b4f 100644 --- a/ohmpi/hardware_components/abstract_hardware_components.py +++ b/ohmpi/hardware_components/abstract_hardware_components.py @@ -298,6 +298,7 @@ class TxAbstract(ABC): self.tx_sync = kwargs.pop('tx_sync', Event()) self.exec_logger.debug(f'{self.model} TX initialization') self._pwr_state = 'off' + self._measuring = 'off' @property def gain(self): @@ -383,6 +384,14 @@ class TxAbstract(ABC): assert value >= 0. self._latency = value + @property + def measuring(self): + return self._measuring + + @measuring.setter + def measuring(self, mode="off"): + self.measuring = mode + @property def polarity(self): return self._polarity diff --git a/ohmpi/hardware_components/mb_2024_0_2.py b/ohmpi/hardware_components/mb_2024_0_2.py index 28beda4becba9ce4e0d1579a4d32fb5f7273513e..126b1db3df39b56e92da04bd9e6f9309e32257d6 100644 --- a/ohmpi/hardware_components/mb_2024_0_2.py +++ b/ohmpi/hardware_components/mb_2024_0_2.py @@ -83,12 +83,17 @@ class Tx(Tx_mb_2023): self._pwr_latency = kwargs['pwr_latency'] # Initialize LEDs - self.pin4 = self.mcp_board.get_pin(4) # Ohmpi_run + self.pin4 = self.mcp_board.get_pin(4) # OhmPi_run self.pin4.direction = Direction.OUTPUT self.pin4.value = True - self.pin6 = self.mcp_board.get_pin(6) + self.pin5 = self.mcp_board.get_pin(5) # OhmPi_measure + self.pin5.direction = Direction.OUTPUT + self.pin5.value = False + self.pin6 = self.mcp_board.get_pin(6) # OhmPi_stack self.pin6.direction = Direction.OUTPUT self.pin6.value = False + + # Initialize DPS relays self.pin2 = self.mcp_board.get_pin(2) # dps - self.pin2.direction = Direction.OUTPUT self.pin2.value = False @@ -99,6 +104,17 @@ class Tx(Tx_mb_2023): if not subclass_init: self.exec_logger.event(f'{self.model}\ttx_init\tend\t{datetime.datetime.utcnow()}') + @property + def measuring(self): + return self._measuring + @measuring.setter + def measuring(self, mode="off"): + self.measuring = mode + if mode == "on": + self.pin5.value = True + elif mode == "off": + self.pin5.value = False + def inject(self, polarity=1, injection_duration=None): # add leds? self.pin6.value = True diff --git a/ohmpi/hardware_system.py b/ohmpi/hardware_system.py index 2f4d596c3027c0e2822d0aae5eb652454d108797..2d732bdcd3236a5c57f61517ace55350498ddd20 100644 --- a/ohmpi/hardware_system.py +++ b/ohmpi/hardware_system.py @@ -612,7 +612,7 @@ class OhmPiHardware: if self.tx.pwr.pwr_state == 'off': self.tx.pwr.pwr_state = 'on' # switch_pwr_off = True - + self.tx.measuring = 'on' self._gain_auto(vab=vab) assert 0. <= duty_cycle <= 1. if duty_cycle < 1.: @@ -629,6 +629,7 @@ class OhmPiHardware: self.tx.pwr.pwr_state = 'off' if switch_tx_pwr_off: self.pwr_state = 'off' + self.tx.measuring = 'off' def _vab_pulse(self, vab=None, duration=1., sampling_rate=None, polarity=1, append=False): """ Gets VMN and IAB from a single voltage pulse @@ -657,6 +658,7 @@ class OhmPiHardware: self.tx.polarity = 0 #TODO: is this necessary? if switch_pwr_off: self.tx.pwr.pwr_state = 'off' + def _vab_pulses(self, vab, durations, sampling_rate, polarities=None, append=False): switch_pwr_off, switch_tx_pwr_off = False, False