From 8ff664b6dfb6217dd05a8e2f8765531ba6dfe439 Mon Sep 17 00:00:00 2001 From: su530201 <olivier.kaufmann@umons.ac.be> Date: Wed, 3 May 2023 23:00:11 +0200 Subject: [PATCH] Fixes bug with hardware_system _inject --- hardware_system.py | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/hardware_system.py b/hardware_system.py index c850ed80..48991f5e 100644 --- a/hardware_system.py +++ b/hardware_system.py @@ -87,9 +87,9 @@ class OhmPiHardware: self._start_time = None self._pulse = 0 - def _inject(self, duration): + def _inject(self, polarity=1, inj_time=None): self.tx_sync.set() - self.tx.voltage_pulse(length=duration) + self.tx.voltage_pulse(length=inj_time, polarity=polarity) self.tx_sync.clear() def _set_mux_barrier(self): @@ -234,7 +234,7 @@ class OhmPiHardware: lengths = [cycle_length/2]*2*cycles self._vab_pulses(vab, lengths, sampling_rate, append=append) - def _vab_pulse(self, vab, length, sampling_rate=None, polarity=None, append=False): + def _vab_pulse(self, vab, length, sampling_rate=None, polarity=1, append=False): """ Gets VMN and IAB from a single voltage pulse """ @@ -242,8 +242,8 @@ class OhmPiHardware: sampling_rate = RX_CONFIG['sampling_rate'] if polarity is not None and polarity != self.tx.polarity: self.tx.polarity = polarity - if self.tx.voltage_adjustable: - self.tx.voltage = vab + if self.tx.pwr.voltage_adjustable: + self.tx.pwr.voltage = vab else: vab = self.tx.voltage injection = Thread(target=self._inject, kwargs={'duration':length}) @@ -263,28 +263,12 @@ class OhmPiHardware: if polarities is not None: assert len(polarities)==n_pulses else: - polarities = [-self.tx.polarity * np.heaviside(i % 2, -1.) for i in range(n_pulses)] + polarities = [-1 * np.heaviside(i % 2, -1.) for i in range(n_pulses)] if not append: self._clear_values() for i in range(n_pulses): self._vab_pulse(self, length=lengths[i], sampling_rate=sampling_rate, polarity=polarities[i], append=True) - # _______________________________________________ - def switch_dps(self, state='off'): - """Switches DPS on or off. - - Parameters - ---------- - state : str - 'on', 'off' - """ - if state == 'on': - self.tx.turn_on() - else: - self.tx.turn_off() - if state != 'off': - self.exec_logger.warning(f'Unknown state {state} for DPS switching. switching off...') - def switch_mux(self, electrodes, roles=None, state='off'): """Switches on multiplexer relays for given quadrupole. -- GitLab