pcdsdevices.lasers.tuttifrutti.TuttiFrutti
- pcdsdevices.lasers.tuttifrutti.TuttiFrutti(prefix, name, nf=False, ff=False, spec=False, pm=False, diode=False, em=False, qc=False, pd=False, wfs=False, ell=False, ellch=1, misc=[])
Factory function for Tuttifrutti diagnostic stack device. Returns a device based on the specified components.
Sufficient for basic control and generation of Typhos screens.
- Parameters:
prefix (str) – The PV base of the tuttifrutti diagnostic stack. All consituent diagnostics have regimented PV suffixes based on this prefix.
name (str) – The name of the TuttiFrutti device.
nf (bool <False>) – Flag indicating if a near-field camera is installed.
ff (bool <False>) – Flag indicating if a far-field camera is installed.
spec (bool <False>) – Flag indicating if a spectrometer is installed.
pm (bool <False>) – Flag indicating if a power meter is installed.
diode (bool <False> (Not Implemented)) – Flag indicating if a diode is installed.
em (bool <False> (Not Implemented)) – Flag indicating if an energy meter is installed.
qc (bool <False> (Not Implemented)) – Flag indicating if a quad cell detector is installed.
pd (bool <False> (Not Implemented)) – Flag indicating if a pulse duration diagnostic is installed.
wfs (bool <False>) – Flag indicating if a wavefront sensor is installed.
ell (bool <False>) – Flag indicating if a 2-position filter slider is installed is installed.
ellch (int <0x1>) – The integer channel that the slider is assigned to on the controller. Typically between 0x1 and 0x3, up to 0xF.
misc (dict of ophyd.Component or ophyd.FormattedComponent <empty>) –
Dictionary of Cpt and/or FCpt for providing miscellaneous Ophyd Component objects to the TuttiFrutti. Used for non-standard devices or when you need to hack in a component that hasn’t made it into a released version of TuttiFrutti object yet (can you say “Commissioning”?). The dictionary key is the desired name of the attribute name for the component.
Note: you must use the full base PV in the FCpt when instantiating it (see example), even if the base PV is the same as the TuttiFrutti. We can use FCpt here to temporarily get around possible PV naming incompatibilities with the L2SI laser PV naming convention (I’m looking at you, EK9000…).
Examples
# Create an object for a basic tuttifrutti containing NF/FF cameras, # a spectrometer, and a filter slider.
ttf = TuttiFrutti(‘LAS:TTF:01’, nf=True, ff=True, spec=True, ell=True)
# Create a TuttiFrutti as above, while including a non-standard component.
from ophyd import Component as Cpt from ophyd import FormattedComponent as FCpt
from fruit import Apple, Orange apple = Cpt(Apple, ‘:APPLE’, kind=’normal’) # Use TuttiFrutti base PV orange = FCpt(Orange, ‘IOC:LAS:ORANGE’, kind=’normal’) # Use full base PV
dmisc = {‘apple’: apple, ‘orange’ : orange}
- ttf = TuttiFrutti(‘LAS:TTF:01’, nf=True, ff=True, spec=True, ell=True,
misc=dmisc)