Files
motorDSM/dsmApp/src/MD90Driver.h

50 lines
1.6 KiB
C
Raw Normal View History

2012-03-02 00:12:33 +00:00
/*
FILENAME... MD90Driver.h
USAGE... Motor driver support for the DSM MD-90 controller.
2012-03-02 00:12:33 +00:00
Mark Rivers
March 1, 2012
*/
#include "asynMotorController.h"
#include "asynMotorAxis.h"
#define MAX_MD90_AXES 4
2012-03-02 00:12:33 +00:00
// No controller-specific parameters yet
#define NUM_MD90_PARAMS 0
2012-03-02 00:12:33 +00:00
class epicsShareClass MD90Axis : public asynMotorAxis
2012-03-02 00:12:33 +00:00
{
public:
/* These are the methods we override from the base class */
MD90Axis(class MD90Controller *pC, int axis);
2012-03-02 00:12:33 +00:00
void report(FILE *fp, int level);
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 home(double min_velocity, double max_velocity, double acceleration, int forwards);
asynStatus stop(double acceleration);
asynStatus poll(bool *moving);
asynStatus setClosedLoop(bool closedLoop);
2024-06-05 16:04:30 -05:00
asynStatus setIGain(double iGain);
2012-03-02 00:12:33 +00:00
private:
MD90Controller *pC_; /**< Pointer to the asynMotorController to which this axis belongs.
2012-03-02 00:12:33 +00:00
* Abbreviated because it is used very frequently */
asynStatus sendAccelAndVelocity(double accel, double velocity);
friend class MD90Controller;
2012-03-02 00:12:33 +00:00
};
class epicsShareClass MD90Controller : public asynMotorController {
2012-03-02 00:12:33 +00:00
public:
MD90Controller(const char *portName, const char *MD90PortName, int numAxes, double movingPollPeriod, double idlePollPeriod);
2012-03-02 00:12:33 +00:00
void report(FILE *fp, int level);
MD90Axis* getAxis(asynUser *pasynUser);
MD90Axis* getAxis(int axisNo);
2012-03-02 00:12:33 +00:00
friend class MD90Axis;
2012-03-02 00:12:33 +00:00
};