DynExp
Highly flexible laboratory automation for dynamically changing experiments.
DynExpInstr::PI_C_862StageData Class Reference
+ Inheritance diagram for DynExpInstr::PI_C_862StageData:

Classes

struct  LM629StatusType
 

Public Types

enum  ErrorCodeType : uint8_t {
  NoError , CommandNotFound , FirstCommandCharacterWasNotALetter , CharacterFollowingCommandWasNotADigit = 5 ,
  ValueTooLarge , ValueTooSmall , ContinuationCharacterWasNotAComma , CommandBufferOverflow ,
  MacroStorageOverflow
}
 
- Public Types inherited from DynExpInstr::PositionerStageData
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

 PI_C_862StageData ()=default
 
virtual ~PI_C_862StageData ()=default
 
auto GetLM629Status () const noexcept
 
auto GetErrorCode () const noexcept
 
- Public Member Functions inherited from DynExpInstr::PositionerStageData
 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
 

Public Attributes

DynExp::LinkedObjectWrapperContainer< DynExp::SerialCommunicationHardwareAdapterHardwareAdapter
 
- 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...
 

Private Member Functions

void ResetImpl (dispatch_tag< PositionerStageData >) override final
 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...
 
virtual void ResetImpl (dispatch_tag< PI_C_862StageData >)
 
virtual bool IsMovingChild () const noexcept override
 Returns whether the stage is currently moving (result of IsMovingChild()) More...
 
virtual bool HasArrivedChild () const noexcept override
 Returns whether the stage has arrived at its destiny position (result of HasArrivedChild()) More...
 
virtual bool HasFailedChild () const noexcept override
 Returns whether the stage is in an error state, i.e. moving has failed (result of HasFailedChild()) More...
 

Private Attributes

LM629StatusType LM629Status
 
ErrorCodeType ErrorCode = NoError
 
size_t NumFailedStatusUpdateAttempts = 0
 

Friends

class PI_C_862_Tasks::UpdateTask
 

Additional Inherited Members

- 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 109 of file PI-C-862.h.

Member Enumeration Documentation

◆ ErrorCodeType

Enumerator
NoError 
CommandNotFound 
FirstCommandCharacterWasNotALetter 
CharacterFollowingCommandWasNotADigit 
ValueTooLarge 
ValueTooSmall 
ContinuationCharacterWasNotAComma 
CommandBufferOverflow 
MacroStorageOverflow 

Definition at line 131 of file PI-C-862.h.

Constructor & Destructor Documentation

◆ PI_C_862StageData()

DynExpInstr::PI_C_862StageData::PI_C_862StageData ( )
default

◆ ~PI_C_862StageData()

virtual DynExpInstr::PI_C_862StageData::~PI_C_862StageData ( )
virtualdefault

Member Function Documentation

◆ GetErrorCode()

auto DynExpInstr::PI_C_862StageData::GetErrorCode ( ) const
inlinenoexcept

Definition at line 147 of file PI-C-862.h.

◆ GetLM629Status()

auto DynExpInstr::PI_C_862StageData::GetLM629Status ( ) const
inlinenoexcept

Definition at line 146 of file PI-C-862.h.

◆ HasArrivedChild()

bool DynExpInstr::PI_C_862StageData::HasArrivedChild ( ) const
overrideprivatevirtualnoexcept

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

Implements DynExpInstr::PositionerStageData.

Definition at line 209 of file PI-C-862.cpp.

◆ HasFailedChild()

bool DynExpInstr::PI_C_862StageData::HasFailedChild ( ) const
overrideprivatevirtualnoexcept

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

Implements DynExpInstr::PositionerStageData.

Definition at line 214 of file PI-C-862.cpp.

◆ IsMovingChild()

bool DynExpInstr::PI_C_862StageData::IsMovingChild ( ) const
overrideprivatevirtualnoexcept

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

Implements DynExpInstr::PositionerStageData.

Definition at line 204 of file PI-C-862.cpp.

◆ ResetImpl() [1/2]

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

Definition at line 153 of file PI-C-862.h.

◆ ResetImpl() [2/2]

void DynExpInstr::PI_C_862StageData::ResetImpl ( dispatch_tag< PositionerStageData )
finaloverrideprivatevirtual

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 from DynExpInstr::PositionerStageData.

Definition at line 195 of file PI-C-862.cpp.

Friends And Related Function Documentation

◆ PI_C_862_Tasks::UpdateTask

friend class PI_C_862_Tasks::UpdateTask
friend

Definition at line 111 of file PI-C-862.h.

Member Data Documentation

◆ ErrorCode

ErrorCodeType DynExpInstr::PI_C_862StageData::ErrorCode = NoError
private

Definition at line 160 of file PI-C-862.h.

◆ HardwareAdapter

DynExp::LinkedObjectWrapperContainer<DynExp::SerialCommunicationHardwareAdapter> DynExpInstr::PI_C_862StageData::HardwareAdapter

Definition at line 149 of file PI-C-862.h.

◆ LM629Status

LM629StatusType DynExpInstr::PI_C_862StageData::LM629Status
private

Definition at line 159 of file PI-C-862.h.

◆ NumFailedStatusUpdateAttempts

size_t DynExpInstr::PI_C_862StageData::NumFailedStatusUpdateAttempts = 0
private

Definition at line 161 of file PI-C-862.h.


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