Compare commits
5 Commits
3c345e37da
...
0.15.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 275672aaef | |||
| 61c5ec749e | |||
| 1cf4b9ab25 | |||
| a0b674b26e | |||
| e088bfbbcb |
@@ -205,6 +205,21 @@ sinqAxis::sinqAxis(class sinqController *pC, int axisNo)
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
/*
|
||||
Initialize the parameter library entry for the motor message text, because
|
||||
it is read during the first poll before it has been written to.
|
||||
*/
|
||||
status = setStringParam(pC_->motorMessageText(), "");
|
||||
if (status != asynSuccess) {
|
||||
asynPrint(pC_->pasynUser(), ASYN_TRACE_ERROR,
|
||||
"Controller \"%s\", axis %d => %s, line %d:\nFATAL ERROR "
|
||||
"(setting a parameter value failed "
|
||||
"with %s)\n. Terminating IOC",
|
||||
pC->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
||||
pC_->stringifyAsynStatus(status));
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
// Motor is assumed to be enabled
|
||||
status = setIntegerParam(pC_->motorEnableRBV(), 1);
|
||||
if (status != asynSuccess) {
|
||||
@@ -528,15 +543,7 @@ asynStatus sinqAxis::reset() {
|
||||
|
||||
if (status == asynSuccess) {
|
||||
// Perform some fast polls
|
||||
pC_->lock();
|
||||
bool moving = false;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
epicsThreadSleep(pC_->movingPollPeriod());
|
||||
if (poll(&moving) == asynSuccess) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
pC_->unlock();
|
||||
pC_->wakeupPoller();
|
||||
}
|
||||
|
||||
status = assertConnected();
|
||||
|
||||
@@ -49,7 +49,7 @@ class epicsShareClass sinqAxis : public asynMotorAxis {
|
||||
the parameter library operation fails (in that case, returns the status of
|
||||
the failed operation.
|
||||
*/
|
||||
asynStatus poll(bool *moving);
|
||||
virtual asynStatus poll(bool *moving);
|
||||
|
||||
/**
|
||||
* @brief Implementation of the "proper", device-specific poll method. This
|
||||
@@ -79,8 +79,8 @@ class epicsShareClass sinqAxis : public asynMotorAxis {
|
||||
the parameter library operation fails (in that case, returns the failed
|
||||
operation status).
|
||||
*/
|
||||
asynStatus move(double position, int relative, double minVelocity,
|
||||
double maxVelocity, double acceleration);
|
||||
virtual asynStatus move(double position, int relative, double minVelocity,
|
||||
double maxVelocity, double acceleration);
|
||||
|
||||
/**
|
||||
* @brief Implementation of the "proper", device-specific move method. This
|
||||
@@ -143,8 +143,8 @@ class epicsShareClass sinqAxis : public asynMotorAxis {
|
||||
the parameter library operation fails (in that case, returns the failed
|
||||
operation status).
|
||||
*/
|
||||
asynStatus home(double minVelocity, double maxVelocity, double acceleration,
|
||||
int forwards);
|
||||
virtual asynStatus home(double minVelocity, double maxVelocity,
|
||||
double acceleration, int forwards);
|
||||
|
||||
/**
|
||||
* @brief Implementation of the "proper", device-specific home method. This
|
||||
@@ -170,7 +170,7 @@ class epicsShareClass sinqAxis : public asynMotorAxis {
|
||||
*
|
||||
* @return asynStatus
|
||||
*/
|
||||
asynStatus reset();
|
||||
virtual asynStatus reset();
|
||||
|
||||
/**
|
||||
* @brief Implementation of the "proper", device-specific `reset` method.
|
||||
@@ -240,7 +240,7 @@ class epicsShareClass sinqAxis : public asynMotorAxis {
|
||||
used to get the values for the timeout calculation failed, return that
|
||||
status, otherwise return asynSuccess.
|
||||
*/
|
||||
asynStatus startMovTimeoutWatchdog();
|
||||
virtual asynStatus startMovTimeoutWatchdog();
|
||||
|
||||
/**
|
||||
* @brief Check if the watchdog timed out
|
||||
@@ -274,7 +274,7 @@ class epicsShareClass sinqAxis : public asynMotorAxis {
|
||||
* @return asynStatus Return asynError, if the watchdog timed out,
|
||||
and asynSuccess otherwise.
|
||||
*/
|
||||
asynStatus checkMovTimeoutWatchdog(bool moving);
|
||||
virtual asynStatus checkMovTimeoutWatchdog(bool moving);
|
||||
|
||||
/**
|
||||
* @brief Enable / disable the watchdog. Also available in the IOC shell
|
||||
|
||||
Reference in New Issue
Block a user