From b8b82f223b28cabe4674ce863582347d6f31442a Mon Sep 17 00:00:00 2001
From: esarrey <eliott.sarrey@gmail.com>
Date: Tue, 6 Jun 2023 17:43:39 +0200
Subject: [PATCH] Correct ranges for sweeps

---
 main.py                   |  2 +-
 src/procedures/b_sweep.py | 13 +++++++------
 src/procedures/x_sweep.py |  5 +++--
 src/procedures/y_sweep.py |  7 ++++---
 4 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/main.py b/main.py
index a23f46c..7d21457 100644
--- a/main.py
+++ b/main.py
@@ -24,7 +24,7 @@ class MainWindow(UIWindown):
                 ['acq_time', 'freq', 'y_min', 'y_max', 'y_step', 'x', 'field']
                 ],
             displays=['acq_time', 'freq'],
-            x_axis='X Position',
+            x_axis='Iteration',
             y_axis='Voltage',
             widget_list=tuple([ControlTab("Manual control")]),
             directory_input=True
diff --git a/src/procedures/b_sweep.py b/src/procedures/b_sweep.py
index 29158cd..d2958d3 100644
--- a/src/procedures/b_sweep.py
+++ b/src/procedures/b_sweep.py
@@ -15,13 +15,13 @@ class B_Sweep(Procedure):
     name = "B-Sweep"
     acq_time = FloatParameter('Aquisition time', units='s', default=1)
     freq = FloatParameter('Aquisition Frequency', units='Hz', default=50)
-    b_min = FloatParameter('From B', units='V', default=0)
-    b_max = FloatParameter('To B', units='V', default=5)
-    b_step = FloatParameter('Step', units='V', default=0.1)
+    b_min = FloatParameter('From B (max 6A)', units='A', minimum=0., maximum=6., default=0)
+    b_max = FloatParameter('To B (max 6A)', units='A', minimum=0., maximum=6., default=5)
+    b_step = FloatParameter('Step', units='A', default=0.1)
     x = FloatParameter('Position x', units='mm', default=0)
     y = FloatParameter('Position y', units='mm', default=0)
 
-    DATA_COLUMNS = ['X Position', 'Y Position', 'Voltage', 'Magnetic Field [V]', 'Magnetic Field [mT]']
+    DATA_COLUMNS = ['Iteration', 'X Position', 'Y Position', 'Voltage', 'Magnetic Field [A]', 'Magnetic Field [mT]']
 
     def startup(self):
         log.info("Setting up the data aquisition")
@@ -32,7 +32,7 @@ class B_Sweep(Procedure):
         voltage = DAC("ai0")
         field   = DAC("ao1")     
 
-        b_values = np.arange(self.b_min, self.b_max, self.b_step)
+        b_values = np.linspace(self.b_min, self.b_max, int((self.b_max-self.b_min)//self.b_step + 1), endpoint=True)
    
         field.write(self.b_min)
 
@@ -60,7 +60,8 @@ class B_Sweep(Procedure):
                 sleep(1/self.freq)
 
             data = {
-                'Magnetic Field [V]': b_values[i],
+                'Iteration': i,
+                'Magnetic Field [A]': b_values[i],
                 'Voltage': np.mean(average_voltage)
             }
 
diff --git a/src/procedures/x_sweep.py b/src/procedures/x_sweep.py
index 74b059b..ed8ba06 100644
--- a/src/procedures/x_sweep.py
+++ b/src/procedures/x_sweep.py
@@ -21,7 +21,7 @@ class X_Sweep(Procedure):
     y = FloatParameter('Position y', units='mm', default=0)
     field = FloatParameter('Magnetic field', units='V', default=0)
 
-    DATA_COLUMNS = ['X Position', 'Y Position', 'Voltage', 'Magnetic Field [V]', 'Magnetic Field [mT]']
+    DATA_COLUMNS = ['Iteration', 'X Position', 'Y Position', 'Voltage', 'Magnetic Field [A]', 'Magnetic Field [mT]']
 
     def startup(self):
         log.info("Setting up the data aquisition")
@@ -32,7 +32,7 @@ class X_Sweep(Procedure):
         voltage = DAC("ai0")
         field   = DAC("ao1")        
 
-        x_positions = np.arange(self.x_min, self.x_max, self.x_step)
+        x_positions = np.linspace(self.x_min, self.x_max, int((self.x_max-self.x_min)//self.x_step+1), endpoint=True)
 
         field.write(self.field)
 
@@ -58,6 +58,7 @@ class X_Sweep(Procedure):
                 average_voltage[step] = voltage.read()
                 sleep(1/self.freq)
             data = {
+                'Iteration': i,
                 'X Position': x_positions[i],
                 'Voltage': np.mean(average_voltage)
             }
diff --git a/src/procedures/y_sweep.py b/src/procedures/y_sweep.py
index 60628b4..2acdef5 100644
--- a/src/procedures/y_sweep.py
+++ b/src/procedures/y_sweep.py
@@ -19,9 +19,9 @@ class Y_Sweep(Procedure):
     y_max = FloatParameter('To y', units='mm', default=5)
     y_step = FloatParameter('Step', units='mm', default=0.1)
     x = FloatParameter('Position x', units='mm', default=0)
-    field = FloatParameter('Magnetic field', units='V', default=0)
+    field = FloatParameter('Magnetic field (max 6A)', units='V', default=0)
 
-    DATA_COLUMNS = ['X Position', 'Y Position', 'Voltage', 'Magnetic Field [V]', 'Magnetic Field [mT]']
+    DATA_COLUMNS = ['Iteration', 'X Position', 'Y Position', 'Voltage', 'Magnetic Field [A]', 'Magnetic Field [mT]']
 
     def startup(self):
         log.info("Setting up the data aquisition")
@@ -32,7 +32,7 @@ class Y_Sweep(Procedure):
         voltage = DAC("ai0")
         field   = DAC("ao1")        
 
-        y_positions = np.arange(self.y_min, self.y_max, self.y_step)
+        y_positions = np.linspace(self.y_min, self.y_max, int((self.y_max-self.y_min)//self.y_step+1), endpoint=True)
 
         field.write(self.field)
 
@@ -58,6 +58,7 @@ class Y_Sweep(Procedure):
                 average_voltage[step] = voltage.read()
                 sleep(1/self.freq)
             data = {
+                'Iteration': i,
                 'Y Position': y_positions[i],
                 'Voltage': np.mean(average_voltage)
             }
-- 
GitLab