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