Control bump_speed instead of bump sample frequency.
[calibcant.git] / calibcant / calibrate.py
index 10622f49b8a3df44035e1ff489cb65bdbf3c40a0..f78520ffe5ed6f4f41a7c54b4a9c61330b8f9b17 100755 (executable)
@@ -119,17 +119,19 @@ import analyze
 # bump family
 
 @splittableKwargsFunction()
-def bump_aquire(zpiezo, push_depth=200, npoints=1024, freq=100e3) :
+def bump_aquire(zpiezo, push_depth=200, npoints=1024, push_speed=1000) :
     """
     Ramps closer push_depth and returns to the original position.
     Inputs:
      zpiezo     an opened zpiezo.zpiezo instance
      push_depth distance to approach, in nm
      npoints    number points during the approach and during the retreat
-     freq       rate at which data is aquired
+     push_speed piezo speed during approach and retreat, in nm/s
     Returns the aquired ramp data dictionary, with data in DAC/ADC bits.
     """
     # generate the bump output
+    nm_per_step = float(push_depth) / npoints
+    freq = push_speed / nm_per_step # freq is sample frequency in Hz
     start_pos = zpiezo.curPos()
     pos_dist = zpiezo.pos_nm2out(push_depth) - zpiezo.pos_nm2out(0)
     close_pos = start_pos + pos_dist
@@ -138,7 +140,7 @@ def bump_aquire(zpiezo, push_depth=200, npoints=1024, freq=100e3) :
     out = numpy.concatenate((appr, retr))
     # run the bump, and measure deflection
     if config.TEXT_VERBOSE :
-        print "Bump %g nm" % push_depth
+        print "Bump %g nm at %g nm/s" % (push_depth, push_speed)
     data = zpiezo.ramp(out, freq)
     return data