2012-03-02 00:12:33 +00:00
|
|
|
/*
|
2024-05-22 11:38:43 -05: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"
|
|
|
|
|
2024-06-06 14:27:15 -05:00
|
|
|
#define MAX_MD90_AXES 1
|
2012-03-02 00:12:33 +00:00
|
|
|
|
|
|
|
// No controller-specific parameters yet
|
2024-05-22 11:38:43 -05:00
|
|
|
#define NUM_MD90_PARAMS 0
|
2012-03-02 00:12:33 +00:00
|
|
|
|
2024-05-22 11:38:43 -05: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 */
|
2024-05-22 11:38:43 -05:00
|
|
|
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);
|
2024-06-05 16:14:40 -05:00
|
|
|
asynStatus doMoveToHome();
|
2012-03-02 00:12:33 +00:00
|
|
|
|
|
|
|
private:
|
2024-05-22 11:38:43 -05:00
|
|
|
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);
|
|
|
|
|
2024-05-22 11:38:43 -05:00
|
|
|
friend class MD90Controller;
|
2012-03-02 00:12:33 +00:00
|
|
|
};
|
|
|
|
|
2024-05-22 11:38:43 -05:00
|
|
|
class epicsShareClass MD90Controller : public asynMotorController {
|
2012-03-02 00:12:33 +00:00
|
|
|
public:
|
2024-05-22 11:38:43 -05:00
|
|
|
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);
|
2024-05-22 11:38:43 -05:00
|
|
|
MD90Axis* getAxis(asynUser *pasynUser);
|
|
|
|
MD90Axis* getAxis(int axisNo);
|
2012-03-02 00:12:33 +00:00
|
|
|
|
2024-05-22 11:38:43 -05:00
|
|
|
friend class MD90Axis;
|
2012-03-02 00:12:33 +00:00
|
|
|
};
|