lightlab.laboratory.instruments.interfaces module

This module defines the essential interfaces for each kind of instrument.

Todo

Document every interface.

Reference

class PowerMeter(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: PowerMeter

essentialMethods = ['startup', 'powerDbm', 'powerLin']
class SourceMeter(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: Keithley and SourceMeter

essentialMethods = ['startup', 'setCurrent', 'getCurrent', 'measVoltage', 'setProtectionVoltage', 'protectionVoltage', 'setProtectionCurrent', 'protectionCurrent', 'enable']
hardware_warmup()[source]

Called before the beginning of an experiment.

Typical warmup procedures include RESET gpib commands.

hardware_cooldown()[source]

Called after the end of an experiment.

Typical cooldown procedures include laser turn-off, or orderly wind-down of current etc.

class Keithley(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.interfaces.SourceMeter

Usage: Instrument: Keithley and SourceMeter

essentialMethods = ['startup', 'setCurrent', 'getCurrent', 'measVoltage', 'setProtectionVoltage', 'protectionVoltage', 'setProtectionCurrent', 'protectionCurrent', 'enable', 'setCurrentMode', 'setVoltageMode', 'setVoltage', 'getVoltage', 'measCurrent']
class VectorGenerator(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Todo: Usage example

essentialMethods = ['startup', 'amplitude', 'frequency', 'enable', 'modulationEnable', 'addNoise', 'setPattern', 'digiMod', 'carrierMod', 'listEnable']
class Clock(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: Clock

essentialMethods = ['startup', 'enable', 'frequency']
optionalAttributes = ['amplitude', 'sweepSetup', 'sweepEnable']
class NICurrentSource(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: CurrentSource

essentialMethods = ['startup', 'setChannelTuning', 'getChannelTuning', 'off']
class CurrentSource(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Deprecated/Future

essentialMethods = ['startup', 'setChannelTuning', 'getChannelTuning', 'off']
class FunctionGenerator(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: FunctionGenerator

essentialMethods = ['startup', 'frequency', 'waveform', 'amplAndOffs', 'amplitudeRange', 'duty', 'enable']
optionalAttributes = ['setArbitraryWaveform']
class LaserSource(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: LaserSource

essentialMethods = ['startup', 'setChannelEnable', 'getChannelEnable', 'setChannelWls', 'getChannelWls', 'setChannelPowers', 'getChannelPowers', 'getAsSpectrum', 'off', 'allOn']
essentialProperties = ['enableState', 'wls', 'powers']
optionalAttributes = ['wlRanges', 'allOff']
class OpticalSpectrumAnalyzer(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: OpticalSpectrumAnalyzer

essentialMethods = ['startup', 'spectrum']
essentialProperties = ['wlRange']
hardware_warmup()[source]

Called before the beginning of an experiment.

Typical warmup procedures include RESET gpib commands.

class Oscilloscope(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: Oscilloscope

essentialMethods = ['startup', 'acquire', 'wfmDb', 'run']
optionalAttributes = ['histogramStats']
hardware_cooldown()[source]

Keep it running continuously in case you are in lab and want to watch

class DSAOscilloscope(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.interfaces.Oscilloscope

Usage: Instrument: Oscilloscope

essentialMethods = ['startup', 'acquire', 'wfmDb', 'run', 'histogramStats']
class PulsePatternGenerator(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: PulsePatternGenerator

essentialMethods = ['startup', 'setPrbs', 'setPattern', 'getPattern', 'on', 'syncSource', 'amplAndOffs']
class RFSpectrumAnalyzer(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: TODO

essentialMethods = ['startup', 'getMeasurements', 'setMeasurement', 'run', 'sgramInit', 'sgramTransfer', 'spectrum']
class VariableAttenuator(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: VariableOpticalAttenuator

essentialMethods = ['startup', 'on', 'off']
essentialProperties = ['attenDB', 'attenLin', 'wavelength', 'calibration']
class NetworkAnalyzer(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: Instrument: NetworkAnalyzer

essentialMethods = ['startup', 'amplitude', 'frequency', 'enable', 'run', 'sweepSetup', 'sweepEnable', 'triggerSetup', 'getSwpDuration', 'measurementSetup', 'spectrum', 'multiSpectra']
class ArduinoInstrument(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

Usage: TODO

essentialMethods = ['startup', 'write', 'query']
class PatternGenerator(name='Unnamed Instrument', id_string=None, address=None, **kwargs)[source]

Bases: lightlab.laboratory.instruments.bases.Instrument

essentialMethods = ['startup', 'setDataRate', 'setMainParam', 'setDataMemory', 'setHexDataMemory', 'setClockDivider', 'channelOn', 'channelOff', 'getAmplitude', 'getOffset', 'getDataRate', 'getPatternType', 'getClockDivider']