Initial version of sinqMotor

This commit is contained in:
2024-11-12 15:13:12 +01:00
parent 611cde365f
commit af182bb73b
6 changed files with 603 additions and 0 deletions

39
src/sinqAxis.h Normal file
View File

@@ -0,0 +1,39 @@
/*
This class extends asynMotorAxis by some features used in SINQ.
Stefan Mathis, November 2024
*/
#ifndef __SINQDRIVER
#define __SINQDRIVER
#include "asynMotorAxis.h"
class epicsShareClass sinqAxis : public asynMotorAxis {
public:
sinqAxis(class sinqController *pC_, int axis);
/**
This function is executed at the very first poll after the IOC startup. If
it returns anything else than 'asynSuccess', the function is evaluated again
after 100 ms until it succeeds. Every 10 trials a warning is emitted.
*/
asynStatus atFirstPoll();
asynStatus poll(bool *moving);
/**
Implementation of the "proper", device-specific poll method. This method
should be implemented by a child class of sinqAxis.
*/
asynStatus doPoll(bool *moving);
friend class sinqController;
protected:
bool initial_poll_;
int init_poll_counter_;
private:
sinqController *pC_;
};
#endif