The labscript Python library provides a translation from simple Python code to complex hardware instructions. The library is used to construct a "connection table" containing information about what hardware is being used and how it is interconnected. Devices described in this connection table can then have their outputs set by using a range of functions, including arbitrary ramps.
It should be perfectly possible to have an experiment with no pseudoclocks,
if it is using only toplevel devices, and none of them require clocking by a pseudoclock,
or even triggering for that matter (anything that requires triggering should be a subclass of
PseudoclockDevice).
So if there are no pseudoclocks labscript should still compile. it should store None as the master pseudoclock in the hdf5 file, and BLACS will need to check this.
BLACS normally uses this attribute to check which device tab to call start() on, but if it is None it can simply skip this line and consider the experiment already started.
We should store the experiment's stop time somewhere, and if there is no pseudoclok, BLACS should just time.sleep() for that long.
This would be the case for example for an experiment that contained static devices only like Zaber stages and these NewPort automatic mirror mounts we're implementing a labscript device for.
It is practical to run shots with static values, if only to automate a scan over parameter space and manually look at scopes and stuff.
Original report (archived issue) by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).
It should be perfectly possible to have an experiment with no pseudoclocks, if it is using only toplevel devices, and none of them require clocking by a pseudoclock, or even triggering for that matter (anything that requires triggering should be a subclass of PseudoclockDevice).
So if there are no pseudoclocks labscript should still compile. it should store None as the master pseudoclock in the hdf5 file, and BLACS will need to check this.
BLACS normally uses this attribute to check which device tab to call start() on, but if it is None it can simply skip this line and consider the experiment already started.
We should store the experiment's stop time somewhere, and if there is no pseudoclok, BLACS should just
time.sleep()
for that long.This would be the case for example for an experiment that contained static devices only like Zaber stages and these NewPort automatic mirror mounts we're implementing a labscript device for.
It is practical to run shots with static values, if only to automate a scan over parameter space and manually look at scopes and stuff.