3 #include "controllers/ScopeController.h"
7 template <
class T>
class ScopeNumber;
24 std::future<bool>
fut;
27 std::array<ScopeNumber<double>*, 3>
xyzpos;
83 virtual void MoveRelative(
const double& _xrel,
const double& _yrel,
const double& _zrel) {}
86 virtual void MoveAbsolute(
const double& _xabs,
const double& _yabs,
const double& _zabs) {}
XYZControl operator=(XYZControl)
disable assignment
uint32_t pollinterval
interval (in milliseconds) to poll device
Thread-safe lock-free bool to signal a requested stop to the worker function currently executed in th...
~XYZControl()
If pollthread was started, request stop and wait for finish.
virtual double CurrentXPosition()
virtual double CurrentYPosition()
virtual void SetZero()
Sets current xyz position as zero.
std::future< bool > fut
future for the async polling thread
virtual void MoveAbsolute(const double &_xabs, const double &_yabs, const double &_zabs)
Absolute movement in um.
bool initialized
true if initialized called successfully
virtual void SetZeroYAxis()
Sets current Y position as zero.
virtual void MoveRelative(const double &_xrel, const double &_yrel, const double &_zrel)
Relative movement in um.
StopCondition stop
to signal the async polling thread to stop
virtual void SetZeroZAxis()
Sets current Z position as zero.
virtual void SetZeroXAxis()
Sets current X position as zero.
Parameters for a general XYZ stage.
virtual void UpdatePositionValues()
Updates xpos, ypos, and zpos with the current device position.
virtual void Initialize(parameters::XYZControl &_params)
Initialize hardware.
virtual void StopPolling()
Stop the worker function.
std::array< ScopeNumber< double > *, 3 > xyzpos
pointers to a ScopeNumber that is updated with the polled x, y, and z positions
virtual double CurrentZPosition()
virtual void StartPolling()
Start the worker function in the pollthread.
Base class to control an xyz-stage.