From 9b64a0dac9b27af224c74a0bf87d9bf0c797fedb Mon Sep 17 00:00:00 2001 From: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Wed, 10 Jun 2020 23:09:03 +1000 Subject: [PATCH 1/3] Minimal example connection table and labscript using dummy devices --- .../default_profile/labconfig/example.ini | 4 +- .../example_apparatus/connection_table.py | 20 ++++++++++ .../example_apparatus/example_experiment.py | 40 +++++++++++++++++++ 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py create mode 100644 labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/example_experiment.py diff --git a/labscript_profile/default_profile/labconfig/example.ini b/labscript_profile/default_profile/labconfig/example.ini index f72dca5..63851aa 100644 --- a/labscript_profile/default_profile/labconfig/example.ini +++ b/labscript_profile/default_profile/labconfig/example.ini @@ -10,8 +10,8 @@ app_saved_configs = %(labscript_suite)s\app_saved_configs\%(apparatus_name)s user_devices = user_devices [paths] -connection_table_h5 = %(experiment_shot_storage)s\connectiontable.h5 -connection_table_py = %(labscriptlib)s\connectiontable.py +connection_table_h5 = %(experiment_shot_storage)s\connection_table.h5 +connection_table_py = %(labscriptlib)s\connection_table.py [servers] zlock = localhost diff --git a/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py new file mode 100644 index 0000000..9b1dad7 --- /dev/null +++ b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py @@ -0,0 +1,20 @@ +from labscript import start, stop, add_time_marker, DigitalOut +from labscript_devices.DummyPseudoclock.labscript_devices import DummyPseudoclock +from labscript_devices.DummyIntermediateDevice import DummyIntermediateDevice + +# Use a virtual, or 'dummy', device for the psuedoclock +DummyPseudoclock(name='pseudoclock') + +# An output of this DummyPseudoclock is its 'clockline' attribute, which we use +# to trigger children devices +DummyIntermediateDevice(name='intermediate_device', parent_device=pseudoclock.clockline) + +# Create a DigitalOut child of the DummyIntermediateDevice +DigitalOut(name='digital_out', parent_device=intermediate_device, connection='do0') + +# Begin issuing labscript primitives +# start() elicits the commencement of the shot +start() + +# Stop the experiment shot with stop() +stop(1.0) diff --git a/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/example_experiment.py b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/example_experiment.py new file mode 100644 index 0000000..a5a445c --- /dev/null +++ b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/example_experiment.py @@ -0,0 +1,40 @@ +from labscript import start, stop, add_time_marker, DigitalOut +from labscript_devices.DummyPseudoclock.labscript_devices import DummyPseudoclock +from labscript_devices.DummyIntermediateDevice import DummyIntermediateDevice + +# Use a virtual, or 'dummy', device for the psuedoclock +DummyPseudoclock(name='pseudoclock') + +# An output of this DummyPseudoclock is its 'clockline' attribute, which we use +# to trigger children devices +DummyIntermediateDevice(name='intermediate_device', parent_device=pseudoclock.clockline) + +# Create a DigitalOut child of the DummyIntermediateDevice +DigitalOut(name='digital_out', parent_device=intermediate_device, connection='do0') + +# Begin issuing labscript primitives +# A timing variable t is used for convenience +# start() elicits the commencement of the shot +t = 0 +add_time_marker(t, "Start", verbose=True) +start() + +# Wait for 1 second with all devices in their default state +t += 1 + +# Change the state of digital_out, and denote this using a time marker +add_time_marker(t, "Toggle digital_out (high)", verbose=True) +digital_out.go_high(t) + +# Wait for 0.5 seconds +t += 0.5 + +# Change the state of digital_out, and denote this using a time marker +add_time_marker(t, "Toggle digital_out (low)", verbose=True) +digital_out.go_low(t) + +# Wait for 0.5 seconds +t += 0.5 + +# Stop the experiment shot with stop() +stop(t) From 4c19de9110fd139b318d95a51fa871baedd0de9c Mon Sep 17 00:00:00 2001 From: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Mon, 15 Jun 2020 13:12:52 +1000 Subject: [PATCH 2/3] Add AnalogOut with ramp example, rename DigitalOut connection --- .../example_apparatus/connection_table.py | 9 +++++++-- .../example_apparatus/example_experiment.py | 12 ++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py index 9b1dad7..3f2edb8 100644 --- a/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py +++ b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py @@ -1,4 +1,4 @@ -from labscript import start, stop, add_time_marker, DigitalOut +from labscript import start, stop, add_time_marker, AnalogOut, DigitalOut from labscript_devices.DummyPseudoclock.labscript_devices import DummyPseudoclock from labscript_devices.DummyIntermediateDevice import DummyIntermediateDevice @@ -9,8 +9,13 @@ # to trigger children devices DummyIntermediateDevice(name='intermediate_device', parent_device=pseudoclock.clockline) +# Create an AnalogOut child of the DummyIntermediateDevice +AnalogOut(name='analog_out', parent_device=intermediate_device, connection='ao0') + # Create a DigitalOut child of the DummyIntermediateDevice -DigitalOut(name='digital_out', parent_device=intermediate_device, connection='do0') +DigitalOut( + name='digital_out', parent_device=intermediate_device, connection='port0/line0' +) # Begin issuing labscript primitives # start() elicits the commencement of the shot diff --git a/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/example_experiment.py b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/example_experiment.py index a5a445c..1f3c33e 100644 --- a/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/example_experiment.py +++ b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/example_experiment.py @@ -1,4 +1,4 @@ -from labscript import start, stop, add_time_marker, DigitalOut +from labscript import start, stop, add_time_marker, AnalogOut, DigitalOut from labscript_devices.DummyPseudoclock.labscript_devices import DummyPseudoclock from labscript_devices.DummyIntermediateDevice import DummyIntermediateDevice @@ -9,8 +9,13 @@ # to trigger children devices DummyIntermediateDevice(name='intermediate_device', parent_device=pseudoclock.clockline) +# Create an AnalogOut child of the DummyIntermediateDevice +AnalogOut(name='analog_out', parent_device=intermediate_device, connection='ao0') + # Create a DigitalOut child of the DummyIntermediateDevice -DigitalOut(name='digital_out', parent_device=intermediate_device, connection='do0') +DigitalOut( + name='digital_out', parent_device=intermediate_device, connection='port0/line0' +) # Begin issuing labscript primitives # A timing variable t is used for convenience @@ -29,6 +34,9 @@ # Wait for 0.5 seconds t += 0.5 +# Ramp analog_out from 0.0 V to 1.0 V over 0.25 s with a 1 kS/s sample rate +t += analog_out.ramp(t=t, initial=0.0, final=1.0, duration=0.25, samplerate=1e3) + # Change the state of digital_out, and denote this using a time marker add_time_marker(t, "Toggle digital_out (low)", verbose=True) digital_out.go_low(t) From 0b0d07abced5caa5ba2f5bea0083b0f8ec03ef6b Mon Sep 17 00:00:00 2001 From: Russell Anderson <5637107+rpanderson@users.noreply.github.com> Date: Mon, 22 Jun 2020 17:48:00 +1000 Subject: [PATCH 3/3] start()/stop() in __main__ block so connection table can be imported --- .../example_apparatus/connection_table.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py index 3f2edb8..9a5f5e6 100644 --- a/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py +++ b/labscript_profile/default_profile/userlib/labscriptlib/example_apparatus/connection_table.py @@ -17,9 +17,11 @@ name='digital_out', parent_device=intermediate_device, connection='port0/line0' ) -# Begin issuing labscript primitives -# start() elicits the commencement of the shot -start() -# Stop the experiment shot with stop() -stop(1.0) +if __name__ == '__main__': + # Begin issuing labscript primitives + # start() elicits the commencement of the shot + start() + + # Stop the experiment shot with stop() + stop(1.0)