#ifndef pmacV3AXIS_H #define pmacV3AXIS_H #include "asynMotorAxis.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 newPmacV3Controller; class newPmacV3Axis : public asynMotorAxis { public: /* These are the methods we override from the base class */ newPmacV3Axis(newPmacV3Controller *pController, int axisNo); virtual ~newPmacV3Axis(); 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: newPmacV3Controller *pC_; void checkBounds(newPmacV3Controller *pController, int axisNo); asynStatus readConfig(); bool initial_poll_; time_t time_at_init_poll_; time_t timeout_param_lib_init_; private: friend class newPmacV3Controller; }; #endif