From c2ff35e0b02f2b0d4663750e95935a3a14a6d1a1 Mon Sep 17 00:00:00 2001 From: esarrey <eliott.sarrey@gmail.com> Date: Tue, 6 Jun 2023 16:15:57 +0200 Subject: [PATCH] Fix voltage aquisition bug --- src/classes/dac.py | 12 +++++++++--- src/procedures/b_sweep.py | 4 +++- src/procedures/x_sweep.py | 2 +- src/procedures/y_sweep.py | 2 +- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/classes/dac.py b/src/classes/dac.py index 63bfa2a..5f1eb2a 100644 --- a/src/classes/dac.py +++ b/src/classes/dac.py @@ -8,6 +8,7 @@ class DAC(): def __init__(self, addr): self.type = addr[:2] self.setup = False + self.addr = addr if self.type=="ao": try: @@ -23,16 +24,21 @@ class DAC(): log.info("Seems like the DAC is inaccessible") def read(self): + output = -1 if self.setup: if self.type=="ai": - return nidaqmx.Task().read() + with nidaqmx.Task() as task: + task.ai_channels.add_ai_voltage_chan("Dev1/"+self.addr) + output = task.read() else: print("Cannot read from a analog output") - return -1 + return output def write(self, value): if self.setup: if self.type=="ao": - nidaqmx.Task().write(value) + with nidaqmx.Task() as task: + task.ao_channels.add_ao_voltage_chan("Dev1/"+self.addr) + task.write(value) else: print("Cannot write to a analog input") \ No newline at end of file diff --git a/src/procedures/b_sweep.py b/src/procedures/b_sweep.py index 56bd29e..e0b08b2 100644 --- a/src/procedures/b_sweep.py +++ b/src/procedures/b_sweep.py @@ -53,12 +53,14 @@ class B_Sweep(Procedure): field.write(b_values[i]) - average_voltage = np.arange(0, int(round(self.acq_time * self.freq))) + average_voltage = np.arange(0, int(round(self.acq_time * self.freq)), dtype='float64') for step in range(len(average_voltage)): average_voltage[step] = voltage.read() sleep(1/self.freq) + print(average_voltage) + data = { 'Magnetic Field [V]': b_values[i], 'Voltage': np.mean(average_voltage) diff --git a/src/procedures/x_sweep.py b/src/procedures/x_sweep.py index 29a3046..74b059b 100644 --- a/src/procedures/x_sweep.py +++ b/src/procedures/x_sweep.py @@ -52,7 +52,7 @@ class X_Sweep(Procedure): for i in range(len(x_positions)): stage.move_x_to(x_positions[i]) - average_voltage = np.arange(0, int(round(self.acq_time * self.freq))) + average_voltage = np.arange(0, int(round(self.acq_time * self.freq)), dtype='float64') for step in range(len(average_voltage)): average_voltage[step] = voltage.read() diff --git a/src/procedures/y_sweep.py b/src/procedures/y_sweep.py index 4e7b1ce..60628b4 100644 --- a/src/procedures/y_sweep.py +++ b/src/procedures/y_sweep.py @@ -52,7 +52,7 @@ class Y_Sweep(Procedure): for i in range(len(y_positions)): stage.move_y_to(y_positions[i]) - average_voltage = np.arange(0, int(round(self.acq_time * self.freq))) + average_voltage = np.arange(0, int(round(self.acq_time * self.freq)), dtype='float64') for step in range(len(average_voltage)): average_voltage[step] = voltage.read() -- GitLab