Skip to content
Snippets Groups Projects
Commit a7ee9950 authored by Daniele Nicolodi's avatar Daniele Nicolodi
Browse files

si5servo: Use nan for unset modulation parameters

parent 94baaaff
No related branches found
No related tags found
No related merge requests found
...@@ -11,7 +11,7 @@ import zmq ...@@ -11,7 +11,7 @@ import zmq
from contextlib import suppress from contextlib import suppress
from itertools import islice from itertools import islice
from math import isfinite from math import isfinite, nan
from ptblab import control, datalogger, rpc, utils, terminal from ptblab import control, datalogger, rpc, utils, terminal
import cryo124k import cryo124k
...@@ -53,8 +53,8 @@ def readzmq(address): ...@@ -53,8 +53,8 @@ def readzmq(address):
@click.argument('setpoint', type=float) @click.argument('setpoint', type=float)
@click.argument('params', nargs=-1) @click.argument('params', nargs=-1)
@click.option('--source', help='Temperature data source.') @click.option('--source', help='Temperature data source.')
@click.option('--frequency', '-f', metavar='HZ', type=float, help='Modulation frequency.') @click.option('--frequency', '-f', metavar='HZ', type=float, default=nan, help='Modulation frequency.')
@click.option('--amplitude', '-a', metavar='K', type=float, help='Modulation amplitude.') @click.option('--amplitude', '-a', metavar='K', type=float, default=nan, help='Modulation amplitude.')
@click.option('--datadir', type=click.Path(), help='Data folder for datalogger mode.') @click.option('--datadir', type=click.Path(), help='Data folder for datalogger mode.')
@click.option('--dataname', default='servo', metavar='STRING', help='Data name in datalogger mode.') @click.option('--dataname', default='servo', metavar='STRING', help='Data name in datalogger mode.')
def main(setpoint, params, frequency, amplitude, source, datadir, dataname): def main(setpoint, params, frequency, amplitude, source, datadir, dataname):
...@@ -85,7 +85,7 @@ def main(setpoint, params, frequency, amplitude, source, datadir, dataname): ...@@ -85,7 +85,7 @@ def main(setpoint, params, frequency, amplitude, source, datadir, dataname):
data = datalogger.open_data_file(datadir, dataname, None) data = datalogger.open_data_file(datadir, dataname, None)
data.write(time.time(), setpoint, *servo.params, frequency, amplitude) data.write(time.time(), setpoint, *servo.params, frequency, amplitude)
if frequency and amplitude: if isfinite(frequency) and isfinite(amplitude):
# Assume that the sampling frequency is 0.5 Hz. # Assume that the sampling frequency is 0.5 Hz.
n = round(0.5 / frequency) n = round(0.5 / frequency)
setpoint = itertools.cycle(np.sin(np.linspace(0.0, 2.0 * np.pi, n, endpoint=False)) * amplitude + setpoint) setpoint = itertools.cycle(np.sin(np.linspace(0.0, 2.0 * np.pi, n, endpoint=False)) * amplitude + setpoint)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment