sequencer package
sequencer.sequencer module
Generates and runs sequences of outputs for TTLs, DACs, and electrode DACs.
- class sequencer.sequencer.SequencerServer(config_path='./config.json')
Bases:
DeviceServerGenerates and runs sequences of outputs for TTLs, DACs, and electrode DACs.
Connects to sequencer devices (TODO: Fancy link), as listed in config.json.
TODO: Finish documenting all the methods.
- channel_manual_output(c, channel_id, output=None)
- channel_mode(c, channel_id, mode=None)
- fix_sequence_keys(c, sequence)
- get_channels(self, cntx)
Returns a JSON-dumped dictionary of all channels on all sequencer devices.
- Parameters:
cntx – The LabRAD context
- Returns:
A JSON-dumped string of a dictionary, where the keys are channel names and the values are the channels.
- Return type:
- id2channel(self, channel_id)
Returns channel corresponding to
channel_id. Expects 3 possibilities forchannel_id:name-> return channel with that name@loc-> return channel at that locationname@loc-> first try name, then location
- Parameters:
channel_id (str) – The identifier of the channel, as described above.
- Returns:
The channel corresponding to
channel_id- Raises:
KeyError` if channel cannot be foun –
- name = 'sequencer'
- run_sequence(self, c, sequence)
Runs the provided sequence, first ensuring that each channel has a valid sequence, then programming each device, then starting them.
First starts the AD5791 (TODO: fancy link) boards (stable DACs for electric field), then the analog (TODO: fancy link) boards, then finally the digital (TODO: fancy link) boards, starting
KRbDigi01, which triggers the others, last. If a new board is added with a differencesequencer_type, it will be started along with the digital boards.- Parameters:
c – The LabRAD context
sequence (str) – A JSON-dumped string containing the sequence (TODO: Add an example of a sequence.)
- send_update(c)
- sequencer_mode(c, sequencer)
- update = <labrad.server.Signal object>
sequencer.devices module
TODO: generally describe sequencer devices, finish documenting all of these specific devices
Generates and runs sequences of outputs for TTLs, DACs, and electrode DACs.
sequencer.devices.ad5791_board module
TODO: description, link hardware info
sequencer.devices.analog_board module
TODO: description, link hardware info
sequencer.devices.digital_board module
TODO: description, link hardware info
- class sequencer.devices.digital_board.DigitalBoard(config)
Bases:
DeviceWrapper- __init__(config)
defaults
- initialize()
- make_sequence_bytes(sequence)
- program_sequence(sequence)
- sequencer_type = 'digital'
- set_mode(mode)
- start_sequence()
- write_channel_manual_outputs()
- write_channel_modes()
- class sequencer.devices.digital_board.DigitalChannel(config)
Bases:
object- __init__(config)
defaults
- name
non-defaults
- set_manual_output(state)
- set_mode(mode)
- sequencer.devices.digital_board.get_out(channel_sequence, t)
- sequencer.devices.digital_board.time_to_ticks(clk, time)
- class sequencer.sequencer.SequencerServer(config_path='./config.json')
Bases:
DeviceServerGenerates and runs sequences of outputs for TTLs, DACs, and electrode DACs.
Connects to sequencer devices (TODO: Fancy link), as listed in config.json.
TODO: Finish documenting all the methods.
- channel_manual_output(c, channel_id, output=None)
- channel_mode(c, channel_id, mode=None)
- fix_sequence_keys(c, sequence)
- get_channels(self, cntx)
Returns a JSON-dumped dictionary of all channels on all sequencer devices.
- Parameters:
cntx – The LabRAD context
- Returns:
A JSON-dumped string of a dictionary, where the keys are channel names and the values are the channels.
- Return type:
- id2channel(self, channel_id)
Returns channel corresponding to
channel_id. Expects 3 possibilities forchannel_id:name-> return channel with that name@loc-> return channel at that locationname@loc-> first try name, then location
- Parameters:
channel_id (str) – The identifier of the channel, as described above.
- Returns:
The channel corresponding to
channel_id- Raises:
KeyError` if channel cannot be foun –
- name = 'sequencer'
- run_sequence(self, c, sequence)
Runs the provided sequence, first ensuring that each channel has a valid sequence, then programming each device, then starting them.
First starts the AD5791 (TODO: fancy link) boards (stable DACs for electric field), then the analog (TODO: fancy link) boards, then finally the digital (TODO: fancy link) boards, starting
KRbDigi01, which triggers the others, last. If a new board is added with a differencesequencer_type, it will be started along with the digital boards.- Parameters:
c – The LabRAD context
sequence (str) – A JSON-dumped string containing the sequence (TODO: Add an example of a sequence.)
- send_update(c)
- sequencer_mode(c, sequencer)
- update = <labrad.server.Signal object>