#ifndef C804Axis_H #define C804Axis_H #include "SINQController.h" #include "SINQAxis.h" // Forward declaration of the controller class to resolve the cyclic dependency // between C804Controller.h and C804Axis.h. See https://en.cppreference.com/w/cpp/language/class. class C804Controller; class C804Axis : public SINQAxis { public: /* These are the methods we override from the base class */ C804Axis(C804Controller *pController, int axisNo); virtual ~C804Axis(); asynStatus move(double position, int relative, double min_velocity, double max_velocity, double acceleration); asynStatus moveVelocity(double min_velocity, double max_velocity, double acceleration); asynStatus stop(double acceleration); asynStatus home(double minVelocity, double maxVelocity, double acceleration, int forwards); asynStatus poll(bool *moving); asynStatus poll_no_param_lib_update(bool *moving); asynStatus enable(int on); protected: C804Controller *pC_; void checkBounds(C804Controller *pController, int axisNo); int last_position_steps_; double motorRecResolution_; time_t estimatedArrivalTime_; time_t last_poll_; int errorReported_; bool enabled_; private: friend class C804Controller; }; #endif