/* * GluexXPSAxis.hh * * Created on: Apr 5, 2016 * Author: Hovanes Egiyan * * Modified on: Apr 12, 2016 * Vanik Kakoyan */ #ifndef GLUEXXPSAXIS_HH_ #define GLUEXXPSAXIS_HH_ /************/ /* Includes */ /************/ #include #include #include #include #include #include #include #include /* EPICS includes */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // for 'map_list_of()' #include #include "asynPortDriver.h" #include "XPSAxis.h" class GluexXPSController; class GluexXPSAxis: public XPSAxis { public: double pcoMinPosSet_; double pcoMaxPosSet_; double pcoStepSet_; double pcoPulseWidthSet_; double encoderSettlingTimeSet_; public: GluexXPSAxis( GluexXPSController *pController, int axisNo, const char *positionerName, double stepSize ); virtual ~GluexXPSAxis(); // Override the version from asynMotorAxis virtual asynStatus setStringParam( int index, const char *value ); virtual asynStatus setIntegerParam( int index, int value ); virtual asynStatus setDoubleParam( int index, double value ); virtual asynStatus referencingActionExecute(); asynStatus home( double min_velocity, double max_velocity, double acceleration, int forwards ); inline asynStatus poll( bool *moving ); virtual GluexXPSController* getController() ; virtual bool isInGroup( const std::string groupName ); virtual inline std::string getGroupName() {return this->getPositionerName();} virtual inline std::string getPositionerName() {return std::string(positionerName_);} virtual inline int getAxisNumber() const {return axisNo_;} static std::string getGroupName( const std::string positionerName ); friend class GluexXPSController; }; #endif /* GLUEXXPSAXIS_HH_ */