First draft for the new pmacV3 controller and axis. This draft is still

buggy, please don't use it in production. The commit is only done to
save the progress made so far.
The changes to the C804 controller and axis are caused by applying clang-format.
This commit is contained in:
2024-10-04 13:29:05 +02:00
parent d44fdbf736
commit fd763a26ae
9 changed files with 2035 additions and 165 deletions

View File

@@ -0,0 +1,40 @@
#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