Files
motorDSM/dsmApp/src/MD90Driver.h
Daniel Sissom 417802a9b4 Substituted string "mcb4b" with "md90".
The following case replacements were applied (in order):
	mcb4b -> md90
	MCB4B -> MD90
	mcb-4b -> md-90
	MCB-4B -> MD-90
	MCB -> MD-90
2024-05-22 11:38:43 -05:00

50 lines
1.6 KiB
C++

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