hardware_interfaces.fabry_perot module¶
This class is used to communicate with a Fabry Perot device which is tuned via Analog Voltage Output. The Analog Digital Converter is therefore needed.
-
class
FabryPerot(device_name: str, channel: str, init_voltage: float, voltage_range: Tuple[float, float], adc: analog_digital_converter.AnalogDigitalConverter, shutter: shutter.Shutter, spectrometer: triax.Triax, hw_properties: hardware_properties.HardwareProperties, pixel_linearisation: data_processing.PixelResponseLinearization, name: str = 'Fabry-Perot etalon')[source]¶ Bases:
objectClass that connects to analog output to Fabry Perot and provides functionality and algorithms to tune the wavelength.
It is assumed that a National Instruments nidaqmx capable device is used to provide the analog output voltage. This could be easily changed by writing a new FabryPerotVoltage class and instanciating it here.
- Parameters
device_name (str) –
Name of device on which the appropriate analog-out port is located. The name can be found and configured in the National Instruments Software: ‘Measurement and Automation Explorer’ (MAX). The device name should also be displayed in a pop-up when plugging in the device.
E.g.: “Dev0”, “Dev1” etc.
channel (str) –
Name of analog output channel, that is used.
E.g.: “ao0”, “ao1” etc.
voltage_range (Tuple[float, float]) – [minimum, maximum] voltage (in volts) that the etalon supports. Make sure to use correct/safe values as this also prevents setting the voltage to “unhealthy” levels!
init_voltage (float) – Voltage in Volts to which analog output is set upon init.
adc (AnalogDigitalConverter) – Object that represents the ADC hardware connected to MCT detector that is used to tune Fabry Perot.
shutter (Shutter) – Object that controls IR-pump shutter.
spectrometer (Triax) – Spectrometer which is used to tune the Fabry Perot.
hw_properties (HardwareProperties) – Object that holds all the hardware properties of the setup
pixel_linearisation (PixelResponseLinearization) – Object that can linearise the pixel response of the MCT detector that is used to tune the Fabry Perot.
name (str, optional) – Name / Identifier to give to this etalon. This is relevant for log statements, especially when there is more than one etalon in the setup. Defaults to “Fabry-Perot etalon”.
-
analog_voltage_controller¶ Used to control voltage applied to Fabry Perot
- Type
-
slope¶ Mysterious slope that is used tune Fabry Perot. Nobody knows where it was born.
- Type
float
-
current_pixel¶ Pixel to which Fabry Perot is currently tuned (assuming that the spectrometer settings were not changed.) This attribute is initialized after the first time the Fabry Perot was tuned to a wavenumber.
- Type
int
-
current_wavenumber¶ Wavenumber in cm-1 to which Fabry Perot is currently tuned. This attribute is initialized after the first time the Fabry Perot was tuned to a wavenumber/ wavelength.
- Type
float
-
current_wavelength¶ Wavelength in nanometers to which Fabry Perot is currently tuned. This attribute is initialized after the first time the Fabry Perot was tuned to a wavenumber/ wavelength.
- Type
float
-
set_pixel(target_pixel: int)[source]¶ Tune Fabry Perot to have maximum intensity on provided target pixel.
- Parameters
target_pixel (int) – Pixel onto which Fabry Perot is supposed to be tuned.
-
set_wavelength(wavelength: float)[source]¶ Tune Fabry Perot to closest possible wavelength that is available with the current spectrometer settings.
This algorithm can only tune Fabry Perot to have maximum intensity on a certain pixel. So we find the pixel whose wavelength is closest to the one specified.
- Parameters
wavelength (float) – wavelength in nanometers
See also
set_wavenumber
-
set_wavenumber(wavenumber: float)[source]¶ Tune Fabry Perot to closest possible wavenumber that is available with the current spectrometer settings.
This algorithm can only tune Fabry Perot to have maximum intensity on a certain pixel. So we find the pixel whose wavenumber is closest to the one specified.
- Parameters
wavenumber (float) – wavenumber in cm-1
-
class
FabryPerotVoltage(device_name: str, channel: str, voltage_range: Tuple[float, float], name: str = 'Fabry-Perot voltage controller')[source]¶ Bases:
objectThis class can be used to set the analog voltage of the Fabry-Perot etalon.
It is assumed that a National Instruments nidaqmx capable device is used to provide the analog output voltage.
- Parameters
device_name (str) –
Name of device on which the appropriate analog-out port is located. The name can be found and configured in the National Instruments Software: ‘Measurement and Automation Explorer’ (MAX). The device name should also be displayed in a pop-up when plugging in the device.
E.g.: “Dev0”, “Dev1” etc.
channel (str) –
Name of analog output channel, that is used.
E.g.: “ao0”, “ao1” etc.
voltage_range (Tuple[float, float]) – [minimum, maximum] voltage (in volts) that the etalon supports. Make sure to use correct/safe values as this also prevents setting the voltage to “unhealthy” levels!
name (str, optional) – Name / Identifier to give to this etalon. This is relevant for log statements, especially when there is more than one etalon in the setup. Defaults to “Fabry-Perot voltage controller”.
-
voltage¶ Voltage that is currently held at specified output
- Type
float
-
task¶ Represents a DAQmx Task object, through which all communication with device is managed.
- Type
object
-
channel¶ DAQmx channel object representing the output channel.
- Type
object
References