DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpModule::Widefield::WidefieldMicroscopeParams Class Reference
+ Inheritance diagram for DynExpModule::Widefield::WidefieldMicroscopeParams:

Public Member Functions

 WidefieldMicroscopeParams (DynExp::ItemIDType ID, const DynExp::DynExpCore &Core)
 
virtual ~WidefieldMicroscopeParams ()=default
 
virtual const char * GetParamClassTag () const noexcept override
 This function is intended to be overridden once in each derived class returning the name of the respective class. Parameters defined in any class within the ParamsBase hierarchy will receive a 'this' pointer pointing to ParamsBase when their ParamBase constructors are called. The ParamBase constructors will register the respective parameter in ParamsBase::OwnedParams calling GetParamClassTag() on the given 'this' pointer. This allows the ParamBase constructor to obtain the name of the class where the respective parameter was declared in. The name is used as an XML tag containing related parameters in the project files. Here, it is fully intended that the virtual call to GetParamClassTag() leads only to a call of GetParamClassTag() of the current dynamic type of ParamsBase! More...
 
- Public Member Functions inherited from DynExp::QModuleParamsBase
 QModuleParamsBase (ItemIDType ID, const DynExpCore &Core)
 Constructs the parameters for a QModuleBase instance. More...
 
virtual ~QModuleParamsBase ()=0
 
- Public Member Functions inherited from DynExp::ModuleParamsBase
 ModuleParamsBase (ItemIDType ID, const DynExpCore &Core)
 Constructs the parameters for a ModuleBase instance. More...
 
virtual ~ModuleParamsBase ()=0
 
- Public Member Functions inherited from DynExp::RunnableObjectParams
 RunnableObjectParams (ItemIDType ID, const DynExpCore &Core)
 Constructs the base class of an object parameter class. More...
 
virtual ~RunnableObjectParams ()=0
 
bool ConfigureStartupType () const noexcept
 Determines whether the Startup parameter should be user-configurable in settings dialogs. Override ConfigureStartupTypeChild() in order to adjust. More...
 
- Public Member Functions inherited from DynExp::ParamsBase
 ParamsBase (ItemIDType ID, const DynExpCore &Core)
 Constructs the base class of an object parameter class. More...
 
virtual ~ParamsBase ()=0
 
QDomElement ConfigToXML (QDomDocument &Document) const
 Creates an XML node with a tag name as determined by GetParamClassTag() containing all parameters belonging to this ParamsBase instance. More...
 
void ConfigFromXML (const QDomElement &XMLElement) const
 Retrieves all parameters belonging to this ParamsBase instance from an XML node with a tag name as determined by GetParamClassTag() More...
 
void ConfigFromDialog (ParamsConfigDialog &Dialog)
 Adds all parameters belonging to this ParamsBase instance to a settings dialog to let the user configure the parameter values. More...
 
bool Validate () const
 Refer to ParamBase::Validate(). More...
 
ItemIDType GetID () const noexcept
 Returns the ID of the Object this parameter class instance belongs to. More...
 
const auto & GetCore () const noexcept
 Returns a reference to DynExp's core. More...
 
const auto & GetObjectLinkParams () const noexcept
 Returns a list of all object link parameters owned by this parameter class instance. More...
 
bool ConfigureUsageType () const noexcept
 Determines whether the Usage parameter should be configurable in the settings dialog. Override ConfigureUsageTypeChild() in order to adjust. More...
 
const NetworkParamsExtensionGetNetworkAddressParams () const noexcept
 Returns the network address parameters of a derived gRPC instrument. Override GetNetworkAddressParamsChild() in order to adjust. More...
 
- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Public Attributes

Param< DynExp::ObjectLink< DynExpInstr::PositionerStage > > SampleStageX
 
Param< DynExp::ObjectLink< DynExpInstr::PositionerStage > > SampleStageY
 
Param< DynExp::ObjectLink< DynExpInstr::PositionerStage > > SampleStageZ
 
Param< DynExp::ObjectLink< DynExpInstr::AnalogOut > > FocusPiezoZ
 
Param< DynExp::ObjectLink< DynExpInstr::DigitalOut > > LEDSwitch
 
Param< DynExp::ObjectLink< DynExpInstr::DigitalOut > > PumpSwitch
 
Param< DynExp::ObjectLink< DynExpInstr::DigitalOut > > WidefieldConfocalSwitch
 
Param< DynExp::ObjectLink< DynExpInstr::DigitalIn > > WidefieldConfocalIndicator
 
Param< ParamsConfigDialog::NumberTypeWidefieldConfocalTransitionTime
 
Param< DynExp::ObjectLink< DynExpInstr::FunctionGenerator > > WidefieldHBTSwitch
 
Param< ParamsConfigDialog::NumberTypeWidefieldHBTSwitchLowDutyCycle
 
Param< ParamsConfigDialog::NumberTypeWidefieldHBTSwitchHighDutyCycle
 
Param< ParamsConfigDialog::NumberTypeWidefieldHBTTransitionTime
 
Param< DynExp::ObjectLink< DynExpInstr::AnalogOut > > PumpPower
 
Param< DynExp::ObjectLink< DynExpInstr::AnalogIn > > PumpPowerIndicator
 
Param< ParamsConfigDialog::NumberTypeDefaultPowerWidefieldMode
 
Param< ParamsConfigDialog::NumberTypeDefaultPowerConfocalMode
 
Param< DynExp::ObjectLink< DynExpInstr::Camera > > WidefieldCamera
 
Param< DynExp::ObjectLink< DynExpInstr::WidefieldLocalization > > WidefieldLocalizer
 
Param< ParamsConfigDialog::NumberTypeWidefieldCameraMagnification
 
Param< DynExp::ObjectLink< DynExpInstr::TimeTagger > > SPD1
 
Param< DynExp::ObjectLink< DynExpInstr::TimeTagger > > SPD2
 
Param< DynExp::ObjectLink< DynExpInstr::InterModuleCommunicator > > AcqCommunicator
 
- Public Attributes inherited from DynExp::QModuleParamsBase
WindowStyleParamsExtension WindowStyleParams
 Bundles several parameters to describe a UI window's style. Use in parameter classes. More...
 
- Public Attributes inherited from DynExp::RunnableObjectParams
Param< StartupTypeStartup
 Determines when the runnable object is started. Refer to RunnableObjectParams::StartupType. More...
 
- Public Attributes inherited from DynExp::ParamsBase
Param< ParamsConfigDialog::TextTypeObjectName = { *this, "ObjectName", "Name", "Name to identify this item", false }
 String set by the user to identify the object this parameter class instance belongs to. More...
 
Param< UsageTypeUsage
 Determines whether an object can be used by only one other ("unique") or by multiple other ("shared") objects. More...
 

Private Member Functions

void ConfigureParamsImpl (dispatch_tag< QModuleParamsBase >) override final
 

Additional Inherited Members

- Public Types inherited from DynExp::RunnableObjectParams
enum  StartupType { OnCreation , Automatic , Manual }
 Determines when a RunnableObject instance is started. More...
 
- Public Types inherited from DynExp::ParamsBase
enum  UsageType { Unique , Shared }
 Determines whether an Object can be linked to only one (unique) or multiple (shared) other objects. More...
 
using ObjectLinkParamsType = std::vector< std::reference_wrapper< LinkBase > >
 Type of a list of all owned object link parameters. More...
 
using EnumParamSignedIntegerType = intmax_t
 Parameter type to convert signed eumeration parameters to. More...
 
using EnumParamUnsignedIntegerType = uintmax_t
 Parameter type to convert unsigned eumeration parameters to. More...
 
template<typename EnumType >
using LargestEnumUnderlyingType = std::conditional_t< std::is_signed_v< std::underlying_type_t< EnumType > >, EnumParamSignedIntegerType, EnumParamUnsignedIntegerType >
 Type trait providing an integer type for enumeration types which allows to store the value of enumeration variables of that type in a file. More...
 
using Text = Util::TextType
 String type of text-type parameters (DynExp::ParamsBase::Param) More...
 
template<typename ArithmeticType >
using UnderlyingArithmeticParamType = TypedParamBase< ArithmeticType >
 
using UnderlyingTextParamType = TypedParamBase< Util::TextType >
 
using UnderlyingTextListParamType = TypedParamBase< Util::TextType >
 
using UnderlyingIndexedTextListParamType = TypedParamBase< Util::TextListIndexType >
 
template<typename EnumType >
using UnderlyingEnumParamType = TypedParamBase< LargestEnumUnderlyingType< EnumType > >
 If ParamType is an enum, then use largest signed/unsigned integral type as the underlying type since the enum's underlying type has to be integral. More...
 
using UnderlyingLinkParamType = TypedParamBase< ItemIDType >
 
template<typename ArithmeticType >
using UnderlyingArithmeticListParamType = TypedListParamBase< ArithmeticType >
 
using UnderlyingLinkListParamType = TypedListParamBase< ItemIDType >
 
- Static Public Member Functions inherited from DynExp::RunnableObjectParams
static Util::TextValueListType< StartupTypeAvlblStartupTypeStrList ()
 Maps description strings to the RunnableObjectParams::StartupType enum's items. More...
 
- Static Public Member Functions inherited from DynExp::ParamsBase
static Util::TextValueListType< UsageTypeAvlblUsageTypeStrList ()
 Maps description strings to the ParamsBase::UsageType enum's items. More...
 
static void DisableUserEditable (ParamBase &Param) noexcept
 Sets the UserEditable property of the parameter Param to false. Refer to ParamBase::UserEditable. More...
 
- Protected Member Functions inherited from Util::ISynchronizedPointerLockable
 ISynchronizedPointerLockable ()
 
 ~ISynchronizedPointerLockable ()
 Object should never be destroyed before completely unlocked. More...
 
- Protected Member Functions inherited from Util::INonCopyable
constexpr INonCopyable ()=default
 
 ~INonCopyable ()=default
 

Detailed Description

Definition at line 459 of file WidefieldMicroscope.h.

Constructor & Destructor Documentation

◆ WidefieldMicroscopeParams()

DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldMicroscopeParams ( DynExp::ItemIDType  ID,
const DynExp::DynExpCore Core 
)
inline

Definition at line 462 of file WidefieldMicroscope.h.

◆ ~WidefieldMicroscopeParams()

virtual DynExpModule::Widefield::WidefieldMicroscopeParams::~WidefieldMicroscopeParams ( )
virtualdefault

Member Function Documentation

◆ ConfigureParamsImpl()

void DynExpModule::Widefield::WidefieldMicroscopeParams::ConfigureParamsImpl ( dispatch_tag< QModuleParamsBase )
inlinefinaloverrideprivate

Definition at line 530 of file WidefieldMicroscope.h.

◆ GetParamClassTag()

virtual const char* DynExpModule::Widefield::WidefieldMicroscopeParams::GetParamClassTag ( ) const
inlineoverridevirtualnoexcept

This function is intended to be overridden once in each derived class returning the name of the respective class. Parameters defined in any class within the ParamsBase hierarchy will receive a 'this' pointer pointing to ParamsBase when their ParamBase constructors are called. The ParamBase constructors will register the respective parameter in ParamsBase::OwnedParams calling GetParamClassTag() on the given 'this' pointer. This allows the ParamBase constructor to obtain the name of the class where the respective parameter was declared in. The name is used as an XML tag containing related parameters in the project files. Here, it is fully intended that the virtual call to GetParamClassTag() leads only to a call of GetParamClassTag() of the current dynamic type of ParamsBase!

Returns
Name of the class this function is defined in

Reimplemented from DynExp::QModuleParamsBase.

Definition at line 465 of file WidefieldMicroscope.h.

Member Data Documentation

◆ AcqCommunicator

Param<DynExp::ObjectLink<DynExpInstr::InterModuleCommunicator> > DynExpModule::Widefield::WidefieldMicroscopeParams::AcqCommunicator
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"AcqInterModuleCommunicator", "Acq. inter-module communicator", "Inter-module communicator to control image and spectrum capturing modules with", DynExpUI::Icons::Instrument, true }
const auto & GetCore() const noexcept
Returns a reference to DynExp's core.
Definition: Object.h:1677
constexpr auto Instrument

Definition at line 526 of file WidefieldMicroscope.h.

◆ DefaultPowerConfocalMode

Param<ParamsConfigDialog::NumberType> DynExpModule::Widefield::WidefieldMicroscopeParams::DefaultPowerConfocalMode
Initial value:
= { *this, "DefaultPowerConfocalMode", "Default pump power (confocal mode)",
"Defines the pump power in units of the pump power (AO) parameter which is initially used in the confocal mode",
true, .1, 0, std::numeric_limits<ParamsConfigDialog::NumberType>::max(), .1, 3 }

Definition at line 511 of file WidefieldMicroscope.h.

◆ DefaultPowerWidefieldMode

Param<ParamsConfigDialog::NumberType> DynExpModule::Widefield::WidefieldMicroscopeParams::DefaultPowerWidefieldMode
Initial value:
= { *this, "DefaultPowerWidefieldMode", "Default pump power (widefield mode)",
"Defines the pump power in units of the pump power (AO) parameter which is initially used in the widefield mode",
true, 1, 0, std::numeric_limits<ParamsConfigDialog::NumberType>::max(), .1, 3 }

Definition at line 508 of file WidefieldMicroscope.h.

◆ FocusPiezoZ

Param<DynExp::ObjectLink<DynExpInstr::AnalogOut> > DynExpModule::Widefield::WidefieldMicroscopeParams::FocusPiezoZ
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"FocusPiezoZ", "Focusing piezo (AO)", "Piezo to adjust the focus of the microscope", DynExpUI::Icons::Instrument, true }

Definition at line 473 of file WidefieldMicroscope.h.

◆ LEDSwitch

Param<DynExp::ObjectLink<DynExpInstr::DigitalOut> > DynExpModule::Widefield::WidefieldMicroscopeParams::LEDSwitch
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"LEDSwitch", "LED switch (DO)", "Digital switch to turn the LED light source on and off", DynExpUI::Icons::Instrument, true }

Definition at line 475 of file WidefieldMicroscope.h.

◆ PumpPower

Param<DynExp::ObjectLink<DynExpInstr::AnalogOut> > DynExpModule::Widefield::WidefieldMicroscopeParams::PumpPower
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"PumpPower", "Pump power (AO)", "Analog output to adjust the power of the pump light source", DynExpUI::Icons::Instrument, true }

Definition at line 503 of file WidefieldMicroscope.h.

◆ PumpPowerIndicator

Param<DynExp::ObjectLink<DynExpInstr::AnalogIn> > DynExpModule::Widefield::WidefieldMicroscopeParams::PumpPowerIndicator
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"PumpPowerIndicator", "Pump power indicator (AI)", "Analog input to measure the current power of the pump light source",

Definition at line 505 of file WidefieldMicroscope.h.

◆ PumpSwitch

Param<DynExp::ObjectLink<DynExpInstr::DigitalOut> > DynExpModule::Widefield::WidefieldMicroscopeParams::PumpSwitch
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"PumpSwitch", "Pump switch (DO)", "Digital switch to turn the pump light source on and off", DynExpUI::Icons::Instrument, true }

Definition at line 477 of file WidefieldMicroscope.h.

◆ SampleStageX

Param<DynExp::ObjectLink<DynExpInstr::PositionerStage> > DynExpModule::Widefield::WidefieldMicroscopeParams::SampleStageX
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"SampleStageX", "Sample stage X", "Positioner to move sample along x coordinate", DynExpUI::Icons::Instrument, true }

Definition at line 467 of file WidefieldMicroscope.h.

◆ SampleStageY

Param<DynExp::ObjectLink<DynExpInstr::PositionerStage> > DynExpModule::Widefield::WidefieldMicroscopeParams::SampleStageY
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"SampleStageY", "Sample stage Y", "Positioner to move sample along y coordinate", DynExpUI::Icons::Instrument, true }

Definition at line 469 of file WidefieldMicroscope.h.

◆ SampleStageZ

Param<DynExp::ObjectLink<DynExpInstr::PositionerStage> > DynExpModule::Widefield::WidefieldMicroscopeParams::SampleStageZ
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"SampleStageZ", "Sample stage Z", "Positioner to move sample along z coordinate", DynExpUI::Icons::Instrument, true }

Definition at line 471 of file WidefieldMicroscope.h.

◆ SPD1

Param<DynExp::ObjectLink<DynExpInstr::TimeTagger> > DynExpModule::Widefield::WidefieldMicroscopeParams::SPD1
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"SPD1", "SPD 1", "First single photon detector for confocal light collection", DynExpUI::Icons::Instrument, true }

Definition at line 522 of file WidefieldMicroscope.h.

◆ SPD2

Param<DynExp::ObjectLink<DynExpInstr::TimeTagger> > DynExpModule::Widefield::WidefieldMicroscopeParams::SPD2
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"SPD2", "SPD 2", "Second single photon detector for confocal light collection", DynExpUI::Icons::Instrument, true }

Definition at line 524 of file WidefieldMicroscope.h.

◆ WidefieldCamera

Param<DynExp::ObjectLink<DynExpInstr::Camera> > DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldCamera
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"WidefieldCamera", "Widefield camera", "Camera to record widefield images of the sample", DynExpUI::Icons::Instrument, true }

Definition at line 514 of file WidefieldMicroscope.h.

◆ WidefieldCameraMagnification

Param<ParamsConfigDialog::NumberType> DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldCameraMagnification
Initial value:
= { *this, "WidefieldCameraMagnification", "Widefield camera magnification factor",
"Magnification factor of the optical system between the sample and the widefield camera",
false, 100, .01, 10000, 1, 2 }

Definition at line 519 of file WidefieldMicroscope.h.

◆ WidefieldConfocalIndicator

Param<DynExp::ObjectLink<DynExpInstr::DigitalIn> > DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldConfocalIndicator
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"WidefieldConfocalIndicator", "Widefield/confocal mode indicator (DI)",
"Digital indicator which is LOW if in widefield mode and HIGH if in confocal mode", DynExpUI::Icons::Instrument, true }

Definition at line 482 of file WidefieldMicroscope.h.

◆ WidefieldConfocalSwitch

Param<DynExp::ObjectLink<DynExpInstr::DigitalOut> > DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldConfocalSwitch
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"WidefieldConfocalSwitch", "Widefield/confocal mode switch (DO)",
"Digital switch to change from widefield mode (LOW) to confocal mode (HIGH)", DynExpUI::Icons::Instrument, true }

Definition at line 479 of file WidefieldMicroscope.h.

◆ WidefieldConfocalTransitionTime

Param<ParamsConfigDialog::NumberType> DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldConfocalTransitionTime
Initial value:
= { *this, "WidefieldConfocalTransitionTime",
"Widefield/confocal transition time (ms)",
"Time it takes to transition from widefield into confocal mode or vice versa once the widefield/confocal mode switch has been triggered",
false, 500, 0, 10000, 10, 0 }

Definition at line 485 of file WidefieldMicroscope.h.

◆ WidefieldHBTSwitch

Param<DynExp::ObjectLink<DynExpInstr::FunctionGenerator> > DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldHBTSwitch
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"WidefieldHBTSwitch", "HBT flip mirror servo actuator (DO)", "Servo actuator to switch to HBT measurement mode", DynExpUI::Icons::Instrument, true }

Definition at line 489 of file WidefieldMicroscope.h.

◆ WidefieldHBTSwitchHighDutyCycle

Param<ParamsConfigDialog::NumberType> DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldHBTSwitchHighDutyCycle
Initial value:
= { *this, "WidefieldHBTSwitchHighDutyCycle",
"HBT flip mirror high duty cycle",
"Duty cycle of rectangular pulses applied to the HBT flip mirror servo actuator in order to make it flip the mirror into the high position",
false, .8, 0, 1, .1, 2 }

Definition at line 495 of file WidefieldMicroscope.h.

◆ WidefieldHBTSwitchLowDutyCycle

Param<ParamsConfigDialog::NumberType> DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldHBTSwitchLowDutyCycle
Initial value:
= { *this, "WidefieldHBTSwitchLowDutyCycle",
"HBT flip mirror low duty cycle",
"Duty cycle of rectangular pulses applied to the HBT flip mirror servo actuator in order to make it flip the mirror into the low position",
false, .2, 0, 1, .1, 2 }

Definition at line 491 of file WidefieldMicroscope.h.

◆ WidefieldHBTTransitionTime

Param<ParamsConfigDialog::NumberType> DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldHBTTransitionTime
Initial value:
= { *this, "WidefieldHBTTransitionTime",
"HBT flip mirror transition time (ms)",
"Time it takes to flip the HBT mirror once the duty cycle of the rectangular pulses applied to the flip mirror servo actuator has changed",
false, 500, 0, 10000, 10, 0 }

Definition at line 499 of file WidefieldMicroscope.h.

◆ WidefieldLocalizer

Param<DynExp::ObjectLink<DynExpInstr::WidefieldLocalization> > DynExpModule::Widefield::WidefieldMicroscopeParams::WidefieldLocalizer
Initial value:
= { *this, GetCore().GetInstrumentManager(),
"WidefieldLocalizer", "Widefield localizer", "gRPC service to perform widefield localization of emitters within a recorded camera image",

Definition at line 516 of file WidefieldMicroscope.h.


The documentation for this class was generated from the following file: