Pseudoclock

class labscript.Pseudoclock(name, pseudoclock_device, connection, **kwargs)[source]

Bases: labscript.labscript.Device

__init__(name, pseudoclock_device, connection, **kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.

collect_change_times(all_outputs, outputs_by_clockline)[source]

Asks all connected outputs for a list of times that they change state. Takes the union of all of these times. Note that at this point, a change from holding-a-constant-value to ramping-through-values is considered a single state change. The clocking times will be filled in later in the expand_change_times function, and the ramp values filled in with expand_timeseries.

expand_change_times(all_change_times, change_times, outputs_by_clockline)[source]

For each time interval delimited by change_times, constructs an array of times at which the clock for this device needs to tick. If the interval has all outputs having constant values, then only the start time is stored. If one or more outputs are ramping, then the clock ticks at the maximum clock rate requested by any of the outputs. Also produces a higher level description of the clocking; self.clock. This list contains the information that facilitates programming a pseudo clock using loops.

get_properties(location=None)

Get all properties in location

If location is None we return all keys

set_properties(properties_dict, property_names, overwrite=False)

Add one or a bunch of properties packed into properties_dict

property_names is a dictionary {key:val, …} where each val

is a list [var1, var2, …] of variables to be pulled from properties_dict and added to the property with name key (it’s location)

property t0

The earliest time output can be commanded from this device at the start of the experiment. This is nonzeo on secondary pseudoclock devices due to triggering delays.