Commit bac1f20b authored by Olivier Kaufmann's avatar Olivier Kaufmann
Browse files

Test duty_cycle in vab_square_wave

Showing with 13 additions and 3 deletions
+13 -3
...@@ -329,7 +329,8 @@ class OhmPiHardware: ...@@ -329,7 +329,8 @@ class OhmPiHardware:
self.rx._bias += (np.mean(self.readings[self.readings[:, 2] == 1, 4]) self.rx._bias += (np.mean(self.readings[self.readings[:, 2] == 1, 4])
+ np.mean(self.readings[self.readings[:, 2] == -1, 4])) / 2. + np.mean(self.readings[self.readings[:, 2] == -1, 4])) / 2.
def vab_square_wave(self, vab, cycle_duration, sampling_rate=None, cycles=3, polarity=1, append=False): def vab_square_wave(self, vab, cycle_duration, sampling_rate=None, cycles=3, polarity=1, duty_cycle=1.,
append=False):
self.exec_logger.event(f'OhmPiHardware\tvab_square_wave\tbegin\t{datetime.datetime.utcnow()}') self.exec_logger.event(f'OhmPiHardware\tvab_square_wave\tbegin\t{datetime.datetime.utcnow()}')
self.tx.polarity = polarity self.tx.polarity = polarity
durations = [cycle_duration/2]*2*cycles durations = [cycle_duration/2]*2*cycles
...@@ -340,7 +341,16 @@ class OhmPiHardware: ...@@ -340,7 +341,16 @@ class OhmPiHardware:
injection.start() injection.start()
gain_auto.join() gain_auto.join()
injection.join() injection.join()
self._vab_pulses(vab, durations, sampling_rate, append=append) assert 0. <= duty_cycle <= 1.
if duty_cycle < 1.:
durations = [cycle_duration/2 * duty_cycle, cycle_duration/2*(1.-duty_cycle)] * cycles
pol = [-self.tx.polarity * np.heaviside(i % 2, -1.) for i in range(cycles)]
polarities = [0] * (len(cycles) * 2)
polarities[0::2] = pol
else:
durations = [cycle_duration / 2] * 2 * cycles
polarities = None
self._vab_pulses(vab, durations, sampling_rate, polarities=polarities, duty_cycle=duty_cycle, append=append)
self.exec_logger.event(f'OhmPiHardware\tvab_square_wave\tend\t{datetime.datetime.utcnow()}') self.exec_logger.event(f'OhmPiHardware\tvab_square_wave\tend\t{datetime.datetime.utcnow()}')
def _vab_pulse(self, vab, duration, sampling_rate=None, polarity=1, append=False): def _vab_pulse(self, vab, duration, sampling_rate=None, polarity=1, append=False):
......
...@@ -453,7 +453,7 @@ class OhmPi(object): ...@@ -453,7 +453,7 @@ class OhmPi(object):
tx_volt = float(tx_volt) tx_volt = float(tx_volt)
bypass_check = kwargs['bypass_check'] if 'bypass_check' in kwargs.keys() else False bypass_check = kwargs['bypass_check'] if 'bypass_check' in kwargs.keys() else False
if self.switch_mux_on(quad, bypass_check=bypass_check, cmd_id=cmd_id): if self.switch_mux_on(quad, bypass_check=bypass_check, cmd_id=cmd_id):
self._hw.vab_square_wave(tx_volt, cycle_length=injection_duration*2, cycles=nb_stack) self._hw.vab_square_wave(tx_volt, cycle_duration=injection_duration*2, cycles=nb_stack)
d = { d = {
"time": datetime.now().isoformat(), "time": datetime.now().isoformat(),
"A": quad[0], "A": quad[0],
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment