Initial driver version for the C804 controller

This commit is contained in:
2024-09-17 11:53:31 +02:00
parent f61daf0b49
commit 001b712900
6 changed files with 1027 additions and 1 deletions

View File

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