DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpInstr::PositionerStageData Class Referenceabstract

Data class for PositionerStage. More...

+ Inheritance diagram for DynExpInstr::PositionerStageData:

Public Types

using PositionType = signed long long
 Numeric type to store the stage positions. 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. More...
 
using TaskQueueIteratorType = TaskQueueType::const_iterator
 Const iterator type to elements of TaskQueueType. More...
 

Public Member Functions

 PositionerStageData ()=default
 
virtual ~PositionerStageData ()=default
 
auto GetCurrentPosition () const noexcept
 Returns Position. More...
 
auto GetVelocity () const noexcept
 Returns Velocity. More...
 
void SetCurrentPosition (PositionType Position) noexcept
 Sets Position to Position. More...
 
void SetVelocity (PositionType Velocity) noexcept
 Sets Velocity to Velocity. More...
 
bool IsMoving () const noexcept
 Returns whether the stage is currently moving (result of IsMovingChild()) More...
 
bool HasArrived () const noexcept
 Returns whether the stage has arrived at its destiny position (result of HasArrivedChild()) More...
 
bool HasFailed () const noexcept
 Returns whether the stage is in an error state, i.e. moving has failed (result of HasFailedChild()) More...
 
bool IsReferenced () const noexcept
 Returns whether a closed-loop positioner knows its position in respect to its zero point (result of IsReferencedChild()) More...
 
- Public Member Functions inherited from DynExp::InstrumentDataBase
 InstrumentDataBase ()
 
virtual ~InstrumentDataBase ()
 
auto GetLastUpdateTime () const
 Getter for LastUpdate. More...
 
auto GetException () const noexcept
 Getter for InstrumentDataBase::InstrumentException. More...
 
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. More...
 
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. More...
 
std::unique_ptr< TaskBasePopTaskFront ()
 Removes a task from the front of an instrument's task queue. More...
 
std::unique_ptr< TaskBasePopTaskBack ()
 Removes a task from the back of an instrument's task queue. More...
 
auto GetTaskFront () noexcept
 Getter for first enqueued task. More...
 
auto GetTaskBack () noexcept
 Getter for last enqueued task. More...
 
size_t GetNumEnqueuedTasks () const noexcept
 Getter for the instrument task queue's length. More...
 
std::unique_ptr< TaskBasePopFinishedTask ()
 Removes a task from the front of an instrument's list of finished tasks. More...
 
size_t GetNumFinishedTasks () const noexcept
 Getter for the length of the instrument's list of finished tasks. More...
 
bool IsQueueClosed () const noexcept
 Determines whether the instrument task queue is closed. More...
 
- Public Member Functions inherited from Util::INonCopyable
 INonCopyable (const INonCopyable &)=delete
 
INonCopyableoperator= (const INonCopyable &)=delete
 

Private Member Functions

void ResetImpl (dispatch_tag< InstrumentDataBase >) override final
 
virtual void ResetImpl (dispatch_tag< PositionerStageData >)
 Refer to DynExp::InstrumentDataBase::Reset(). Using tag dispatch mechanism to ensure that ResetImpl() of every derived class gets called - starting from InstrumentDataBase, descending the inheritance hierarchy. Override in order to reset derived classes. More...
 
Override

Override by derived classes.

virtual bool IsMovingChild () const noexcept=0
 Returns whether the stage is currently moving (result of IsMovingChild()) More...
 
virtual bool HasArrivedChild () const noexcept=0
 Returns whether the stage has arrived at its destiny position (result of HasArrivedChild()) More...
 
virtual bool HasFailedChild () const noexcept=0
 Returns whether the stage is in an error state, i.e. moving has failed (result of HasFailedChild()) More...
 
virtual bool IsReferencedChild () const noexcept
 Returns whether a closed-loop positioner knows its position in respect to its zero point (result of IsReferencedChild()) More...
 

Private Attributes

PositionType Position = 0
 Position in nm if the respective stage supports SI units. Otherwise, in units of steps performed. More...
 
PositionType Velocity = 0
 Velocity in nm/s if the respective stage supports SI units. Otherwise, in units of steps/s. More...
 

Additional Inherited Members

- Public Attributes inherited from DynExp::InstrumentDataBase
InstrumentBaseOnlyType InstrumentBaseOnly
 Allow exclusive access to some of InstrumentDataBase's private methods to InstrumentBase. More...
 
InstrumenThreadOnlyType InstrumentThreadOnly
 Allow exclusive access to some of InstrumentDataBase's private methods to the instrument thread InstrumentThreadMain(). 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

Data class for PositionerStage.

Definition at line 65 of file Stage.h.

Member Typedef Documentation

◆ PositionType

Numeric type to store the stage positions.

Definition at line 71 of file Stage.h.

Constructor & Destructor Documentation

◆ PositionerStageData()

DynExpInstr::PositionerStageData::PositionerStageData ( )
default

◆ ~PositionerStageData()

virtual DynExpInstr::PositionerStageData::~PositionerStageData ( )
virtualdefault

Member Function Documentation

◆ GetCurrentPosition()

auto DynExpInstr::PositionerStageData::GetCurrentPosition ( ) const
inlinenoexcept

Returns Position.

Definition at line 76 of file Stage.h.

◆ GetVelocity()

auto DynExpInstr::PositionerStageData::GetVelocity ( ) const
inlinenoexcept

Returns Velocity.

Definition at line 77 of file Stage.h.

◆ HasArrived()

bool DynExpInstr::PositionerStageData::HasArrived ( ) const
inlinenoexcept

Returns whether the stage has arrived at its destiny position (result of HasArrivedChild())

Definition at line 82 of file Stage.h.

◆ HasArrivedChild()

virtual bool DynExpInstr::PositionerStageData::HasArrivedChild ( ) const
privatepure virtualnoexcept

Returns whether the stage has arrived at its destiny position (result of HasArrivedChild())

Implemented in DynExpInstr::SmarActData, DynExpInstr::PI_C_862StageData, and DynExpInstr::NenionLeakvalveF3Data.

◆ HasFailed()

bool DynExpInstr::PositionerStageData::HasFailed ( ) const
inlinenoexcept

Returns whether the stage is in an error state, i.e. moving has failed (result of HasFailedChild())

Definition at line 83 of file Stage.h.

◆ HasFailedChild()

virtual bool DynExpInstr::PositionerStageData::HasFailedChild ( ) const
privatepure virtualnoexcept

Returns whether the stage is in an error state, i.e. moving has failed (result of HasFailedChild())

Implemented in DynExpInstr::SmarActData, DynExpInstr::PI_C_862StageData, and DynExpInstr::NenionLeakvalveF3Data.

◆ IsMoving()

bool DynExpInstr::PositionerStageData::IsMoving ( ) const
inlinenoexcept

Returns whether the stage is currently moving (result of IsMovingChild())

Definition at line 81 of file Stage.h.

◆ IsMovingChild()

virtual bool DynExpInstr::PositionerStageData::IsMovingChild ( ) const
privatepure virtualnoexcept

Returns whether the stage is currently moving (result of IsMovingChild())

Implemented in DynExpInstr::SmarActData, DynExpInstr::PI_C_862StageData, and DynExpInstr::NenionLeakvalveF3Data.

◆ IsReferenced()

bool DynExpInstr::PositionerStageData::IsReferenced ( ) const
inlinenoexcept

Returns whether a closed-loop positioner knows its position in respect to its zero point (result of IsReferencedChild())

Definition at line 84 of file Stage.h.

◆ IsReferencedChild()

virtual bool DynExpInstr::PositionerStageData::IsReferencedChild ( ) const
inlineprivatevirtualnoexcept

Returns whether a closed-loop positioner knows its position in respect to its zero point (result of IsReferencedChild())

Reimplemented in DynExpInstr::SmarActData, and DynExpInstr::NenionLeakvalveF3Data.

Definition at line 101 of file Stage.h.

◆ ResetImpl() [1/2]

void DynExpInstr::PositionerStageData::ResetImpl ( dispatch_tag< InstrumentDataBase )
finaloverrideprivate

Definition at line 8 of file Stage.cpp.

◆ ResetImpl() [2/2]

virtual void DynExpInstr::PositionerStageData::ResetImpl ( dispatch_tag< PositionerStageData )
inlineprivatevirtual

Refer to DynExp::InstrumentDataBase::Reset(). Using tag dispatch mechanism to ensure that ResetImpl() of every derived class gets called - starting from InstrumentDataBase, descending the inheritance hierarchy. Override in order to reset derived classes.

Reimplemented in DynExpInstr::SmarActData, DynExpInstr::PI_C_862StageData, and DynExpInstr::NenionLeakvalveF3Data.

Definition at line 92 of file Stage.h.

◆ SetCurrentPosition()

void DynExpInstr::PositionerStageData::SetCurrentPosition ( PositionType  Position)
inlinenoexcept

Sets Position to Position.

Definition at line 78 of file Stage.h.

◆ SetVelocity()

void DynExpInstr::PositionerStageData::SetVelocity ( PositionType  Velocity)
inlinenoexcept

Sets Velocity to Velocity.

Definition at line 79 of file Stage.h.

Member Data Documentation

◆ Position

PositionType DynExpInstr::PositionerStageData::Position = 0
private

Position in nm if the respective stage supports SI units. Otherwise, in units of steps performed.

Definition at line 107 of file Stage.h.

◆ Velocity

PositionType DynExpInstr::PositionerStageData::Velocity = 0
private

Velocity in nm/s if the respective stage supports SI units. Otherwise, in units of steps/s.

Definition at line 112 of file Stage.h.


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