|
DynExp
Highly flexible laboratory automation for dynamically changing experiments.
|
#include <Laser.h>
Inheritance diagram for DynExpInstr::LaserData:Public Types | |
| enum class | FrequencyUnitType { Hz , nm } |
| Supported laser frequency units. More... | |
| enum class | IntensityUnitType { Power_W } |
| Supported laser intensity units. More... | |
| enum class | LaserStateType { Startup , Ready , EmissionEnabledConstant , EmissionEnabledScanning , Error } |
| Possible laser states. More... | |
Public Types inherited from DynExp::InstrumentDataBase | |
| using | TaskQueueType = std::list< std::unique_ptr< TaskBase > > |
| Type of an instrument task queue owning the tasks within. | |
| using | TaskQueueIteratorType = TaskQueueType::const_iterator |
Const iterator type to elements of TaskQueueType. | |
Public Member Functions | |
| LaserData ()=default | |
| virtual | ~LaserData ()=default |
| void | SetFrequencyValue (double Frequency) noexcept |
| Setter for Frequency. | |
| auto | GetFrequencyValue () const noexcept |
| Getter for Frequency. | |
| void | SetIntensityValue (double Intensity) noexcept |
| Setter for Intensity. | |
| auto | GetIntensityValue () const noexcept |
| Getter for Intensity. | |
| void | SetScanRangeValue (double ScanRange) noexcept |
| Setter for ScanRange. | |
| auto | GetScanRangeValue () const noexcept |
| Getter for ScanRange. | |
| void | SetScanRateValue (double ScanRate) noexcept |
| Setter for ScanRate. | |
| auto | GetScanRateValue () const noexcept |
| Getter for ScanRate. | |
| auto | GetLaserState () const noexcept |
| Returns the laser's current state. | |
Public Member Functions inherited from DynExp::InstrumentDataBase | |
| InstrumentDataBase () | |
| virtual | ~InstrumentDataBase () |
| auto | GetLastUpdateTime () const |
| Getter for LastUpdate. | |
| bool | IsExceptionIndicated () const noexcept |
| Getter for HasException. Only performs atomic operations. Hence, this instrument data instance does not need to be locked for this function call. | |
| std::exception_ptr | GetException () const noexcept |
| Getter for InstrumentDataBase::InstrumentException. If InstrumentDataBase::InstrumentException is nullptr and InstrumentDataBase::HasException is still true, returns a pointer to a Util::Exception instance. | |
| void | EnqueueTask (std::unique_ptr< TaskBase > &&Task) |
| Enqueues a task at the back of an instrument's task queue and notifies the instrument about the new task. | |
| void | EnqueuePriorityTask (std::unique_ptr< TaskBase > &&Task) |
| Enqueues a task at the front of an instrument's task queue and notifies the instrument about the new task. | |
| std::unique_ptr< TaskBase > | PopTaskFront () |
| Removes a task from the front of an instrument's task queue. | |
| std::unique_ptr< TaskBase > | PopTaskBack () |
| Removes a task from the back of an instrument's task queue. | |
| auto | GetTaskFront () noexcept |
| Getter for first enqueued task. | |
| auto | GetTaskBack () noexcept |
| Getter for last enqueued task. | |
| size_t | GetNumEnqueuedTasks () const noexcept |
| Getter for the instrument task queue's length. | |
| std::unique_ptr< TaskBase > | PopFinishedTask () |
| Removes a task from the front of an instrument's list of finished tasks. | |
| size_t | GetNumFinishedTasks () const noexcept |
| Getter for the length of the instrument's list of finished tasks. | |
| bool | IsQueueClosed () const noexcept |
| Determines whether the instrument task queue is closed. | |
Public Member Functions inherited from Util::INonCopyable | |
| INonCopyable (const INonCopyable &)=delete | |
| INonCopyable & | operator= (const INonCopyable &)=delete |
Static Public Member Functions | |
| static const char * | FrequencyUnitTypeToStr (const FrequencyUnitType &Unit) |
| Returns a descriptive string of a respective frequency unit to be e.g. used in the UI. | |
| static const char * | IntensityUnitTypeToStr (const IntensityUnitType &Unit) |
| Returns a descriptive string of a respective intensity unit to be e.g. used in the UI. | |
Private Member Functions | |
| void | ResetImpl (dispatch_tag< InstrumentDataBase >) override final |
| virtual void | ResetImpl (dispatch_tag< LaserData >) |
Override | |
Refer to DynExp::InstrumentDataBase::Reset(). Using tag dispatch mechanism to ensure that Override by derived classes. | |
| virtual LaserStateType | GetLaserStateChild () const noexcept=0 |
| Returns the laser's current state. | |
Private Attributes | |
| double | Frequency = 0.0 |
| Current frequency. | |
| double | Intensity = 0.0 |
| Current intensity. | |
| double | ScanRange = 0.0 |
| Current scan range. | |
| double | ScanRate = 0.0 |
| Current scan rate. | |
Additional Inherited Members | |
Public Attributes inherited from DynExp::InstrumentDataBase | |
| InstrumentBaseOnlyType | InstrumentBaseOnly |
Allow exclusive access to some of InstrumentDataBase's private methods to InstrumentBase. | |
| InstrumenThreadOnlyType | InstrumentThreadOnly |
Allow exclusive access to some of InstrumentDataBase's private methods to the instrument thread InstrumentThreadMain(). | |
Protected Member Functions inherited from Util::ISynchronizedPointerLockable | |
| ISynchronizedPointerLockable () | |
| ~ISynchronizedPointerLockable () | |
| Object should never be destroyed before completely unlocked. | |
Protected Member Functions inherited from Util::INonCopyable | |
| constexpr | INonCopyable ()=default |
| ~INonCopyable ()=default | |
|
strong |
Supported laser frequency units.
ToPrototUnitType(LaserData::FrequencyUnitType) and ToLaserUnitType(DynExpProto::Common::FrequencyUnitType) functions in NetworkLaser.h and FrequencyUnitType enumeration in Common.proto. | Enumerator | |
|---|---|
| Hz | Frequency in Hz. |
| nm | Wavelength in nm. |
|
strong |
Supported laser intensity units.
ToPrototUnitType(LaserData::IntensityUnitType) and ToLaserUnitType(DynExpProto::Common::IntensityUnitType) functions in NetworkLaser.h and IntensityUnitType enumeration in Common.proto. | Enumerator | |
|---|---|
| Power_W | Power in Watt (W) |
|
strong |
|
default |
|
virtualdefault |
|
static |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
privatepure virtualnoexcept |
Returns the laser's current state.
|
inlinenoexcept |
|
inlinenoexcept |
|
static |
|
finaloverrideprivate |
|
inlineprivatevirtual |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
private |
|
private |
|
private |
|
private |