DynExp
Highly flexible laboratory automation for dynamically changing experiments.
Loading...
Searching...
No Matches
DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData Class Reference

#include <LaserScanningSpectroscopy.h>

+ Inheritance diagram for DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData:

Public Member Functions

 LaserScanningSpectroscopyData ()
 
virtual ~LaserScanningSpectroscopyData ()=default
 
auto & GetPLECommunicator ()
 
auto & GetWFCommunicator ()
 
auto & GetLaser ()
 
- Public Member Functions inherited from DynExp::QModuleDataBase
 QModuleDataBase ()=default
 
virtual ~QModuleDataBase ()=default
 
- Public Member Functions inherited from DynExp::ModuleDataBase
 ModuleDataBase ()
 
virtual ~ModuleDataBase ()
 
bool IsExceptionIndicated () const noexcept
 Getter for HasException. Only performs atomic operations. Hence, this module data instance does not need to be locked for this function call.
 
std::exception_ptr GetException () const noexcept
 Getter for ModuleDataBase::ModuleException. If ModuleDataBase::ModuleException is nullptr and ModuleDataBase::HasException is still true, returns a pointer to a Util::Exception instance.
 
void EnqueueEvent (EventPtrType &&Event)
 Enqueues Event at the module event queue's back. Takes ownership of the event. Notifies the module owning the respective ModuleDataBase's instance that a new event has been enqueued.
 
EventPtrType PopEvent ()
 Removes one event from the event queue's front and returns the event. Ownership of the event is transferred to the caller of this method.
 
const auto & GetEventFront () const noexcept
 Returns a pointer to the event in the front of the module's event queue without transferring ownership and without removing the event from the queue.
 
auto & GetEventFront () noexcept
 Returns a pointer to the event in the front of the module's event queue without transferring ownership and without removing the event from the queue.
 
size_t GetNumEnqueuedEvents () const noexcept
 Getter for the module event queue's length.
 
void RunQueue ()
 Wakes up a module waiting for events and forces it to run its main loop once.
 
- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Public Attributes

bool IsStepwiseScan
 
double LowerFrequencyLimit
 
double UpperFrequencyLimit
 
double FrequencyRange
 
double ModeHopFreeTuningRange
 
double CenterFrequency
 
double StepSize
 
int NumberOfSteps
 
int NumberOfRepetitions
 
double ScanStartFrequency
 
double ScanEndFrequency
 
bool ScanBackAndForth
 
int CurrentStepCount
 
int CurrentRepCount
 
std::filesystem::path FileSavePath
 
bool FileSavePathChanged
 
DynExpInstr::LaserData::LaserStateType LaserState
 
StateType LaserScanningSpectroscopyState
 
int LaserScanningSpectroscopyProgress
 
- Public Attributes inherited from DynExp::ModuleDataBase
ModuleBaseOnlyType ModuleBaseOnly
 Allow exclusive access to some of ModuleDataBase's private methods to ModuleBase.
 
ModuleThreadOnlyType ModuleThreadOnly
 Allow exclusive access to some of ModuleDataBase's private methods to the module thread ModuleThreadMain().
 

Private Member Functions

void ResetImpl (dispatch_tag< QModuleDataBase >) override final
 
virtual void ResetImpl (dispatch_tag< LaserScanningSpectroscopyData >)
 
void Init ()
 

Private Attributes

DynExp::LinkedObjectWrapperContainer< DynExpInstr::LaserLaser
 
DynExp::LinkedObjectWrapperContainer< DynExpInstr::InterModuleCommunicatorPLECommunicator
 
DynExp::LinkedObjectWrapperContainer< DynExpInstr::InterModuleCommunicatorWFCommunicator
 

Additional Inherited Members

- Public Types inherited from DynExp::ModuleDataBase
using EventPtrType = std::unique_ptr< EventBase >
 Pointer owning an event.
 
using EventQueueType = std::queue< EventPtrType >
 A module's event queue is a FIFO queue owning the enqueued events.
 
- 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
 

Detailed Description

Definition at line 60 of file LaserScanningSpectroscopy.h.

Constructor & Destructor Documentation

◆ LaserScanningSpectroscopyData()

DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::LaserScanningSpectroscopyData ( )
inline

Definition at line 63 of file LaserScanningSpectroscopy.h.

◆ ~LaserScanningSpectroscopyData()

virtual DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::~LaserScanningSpectroscopyData ( )
virtualdefault

Member Function Documentation

◆ GetLaser()

auto & DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::GetLaser ( )
inline

Definition at line 68 of file LaserScanningSpectroscopy.h.

◆ GetPLECommunicator()

auto & DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::GetPLECommunicator ( )
inline

Definition at line 66 of file LaserScanningSpectroscopy.h.

◆ GetWFCommunicator()

auto & DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::GetWFCommunicator ( )
inline

Definition at line 67 of file LaserScanningSpectroscopy.h.

◆ Init()

void DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::Init ( )
private

Definition at line 83 of file LaserScanningSpectroscopy.cpp.

◆ ResetImpl() [1/2]

virtual void DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::ResetImpl ( dispatch_tag< LaserScanningSpectroscopyData )
inlineprivatevirtual

Definition at line 93 of file LaserScanningSpectroscopy.h.

◆ ResetImpl() [2/2]

void DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::ResetImpl ( dispatch_tag< QModuleDataBase )
finaloverrideprivate

Definition at line 78 of file LaserScanningSpectroscopy.cpp.

Member Data Documentation

◆ CenterFrequency

double DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::CenterFrequency

Definition at line 75 of file LaserScanningSpectroscopy.h.

◆ CurrentRepCount

int DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::CurrentRepCount

Definition at line 83 of file LaserScanningSpectroscopy.h.

◆ CurrentStepCount

int DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::CurrentStepCount

Definition at line 82 of file LaserScanningSpectroscopy.h.

◆ FileSavePath

std::filesystem::path DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::FileSavePath

Definition at line 84 of file LaserScanningSpectroscopy.h.

◆ FileSavePathChanged

bool DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::FileSavePathChanged

Definition at line 85 of file LaserScanningSpectroscopy.h.

◆ FrequencyRange

double DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::FrequencyRange

Definition at line 73 of file LaserScanningSpectroscopy.h.

◆ IsStepwiseScan

bool DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::IsStepwiseScan

Definition at line 70 of file LaserScanningSpectroscopy.h.

◆ Laser

DynExp::LinkedObjectWrapperContainer<DynExpInstr::Laser> DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::Laser
private

Definition at line 97 of file LaserScanningSpectroscopy.h.

◆ LaserScanningSpectroscopyProgress

int DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::LaserScanningSpectroscopyProgress

Definition at line 89 of file LaserScanningSpectroscopy.h.

◆ LaserScanningSpectroscopyState

StateType DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::LaserScanningSpectroscopyState

Definition at line 88 of file LaserScanningSpectroscopy.h.

◆ LaserState

DynExpInstr::LaserData::LaserStateType DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::LaserState

Definition at line 86 of file LaserScanningSpectroscopy.h.

◆ LowerFrequencyLimit

double DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::LowerFrequencyLimit

Definition at line 71 of file LaserScanningSpectroscopy.h.

◆ ModeHopFreeTuningRange

double DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::ModeHopFreeTuningRange

Definition at line 74 of file LaserScanningSpectroscopy.h.

◆ NumberOfRepetitions

int DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::NumberOfRepetitions

Definition at line 78 of file LaserScanningSpectroscopy.h.

◆ NumberOfSteps

int DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::NumberOfSteps

Definition at line 77 of file LaserScanningSpectroscopy.h.

◆ PLECommunicator

DynExp::LinkedObjectWrapperContainer<DynExpInstr::InterModuleCommunicator> DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::PLECommunicator
private

Definition at line 98 of file LaserScanningSpectroscopy.h.

◆ ScanBackAndForth

bool DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::ScanBackAndForth

Definition at line 81 of file LaserScanningSpectroscopy.h.

◆ ScanEndFrequency

double DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::ScanEndFrequency

Definition at line 80 of file LaserScanningSpectroscopy.h.

◆ ScanStartFrequency

double DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::ScanStartFrequency

Definition at line 79 of file LaserScanningSpectroscopy.h.

◆ StepSize

double DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::StepSize

Definition at line 76 of file LaserScanningSpectroscopy.h.

◆ UpperFrequencyLimit

double DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::UpperFrequencyLimit

Definition at line 72 of file LaserScanningSpectroscopy.h.

◆ WFCommunicator

DynExp::LinkedObjectWrapperContainer<DynExpInstr::InterModuleCommunicator> DynExpModule::LaserScanningSpectroscopy::LaserScanningSpectroscopyData::WFCommunicator
private

Definition at line 99 of file LaserScanningSpectroscopy.h.


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