Fixed a bug in readInt32 and prepared the turboPmac library to serve the
detectorTower library
This commit is contained in:
@@ -29,23 +29,11 @@ void adjustResponseForPrint(char *dst, const char *src, size_t buf_length) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Construct a new turboPmacController::turboPmacController object
|
||||
*
|
||||
* @param portName See documentation of sinqController
|
||||
* @param ipPortConfigName See documentation of sinqController
|
||||
* @param numAxes See documentation of sinqController
|
||||
* @param movingPollPeriod See documentation of sinqController
|
||||
* @param idlePollPeriod See documentation of sinqController
|
||||
* @param comTimeout Time after which a communication timeout error
|
||||
* is declared in writeRead (in seconds)
|
||||
* @param extraParams See documentation of sinqController
|
||||
*/
|
||||
turboPmacController::turboPmacController(const char *portName,
|
||||
const char *ipPortConfigName,
|
||||
int numAxes, double movingPollPeriod,
|
||||
double idlePollPeriod,
|
||||
double comTimeout)
|
||||
double comTimeout, int numExtraParams)
|
||||
: sinqController(
|
||||
portName, ipPortConfigName, numAxes, movingPollPeriod, idlePollPeriod,
|
||||
/*
|
||||
@@ -53,7 +41,7 @@ turboPmacController::turboPmacController(const char *portName,
|
||||
- REREAD_ENCODER_POSITION
|
||||
- READ_CONFIG
|
||||
*/
|
||||
NUM_turboPmac_DRIVER_PARAMS)
|
||||
numExtraParams + NUM_turboPmac_DRIVER_PARAMS)
|
||||
|
||||
{
|
||||
|
||||
@@ -510,13 +498,14 @@ asynStatus turboPmacController::writeInt32(asynUser *pasynUser,
|
||||
}
|
||||
}
|
||||
|
||||
asynStatus sinqController::readInt32(asynUser *pasynUser, epicsInt32 *value) {
|
||||
asynStatus turboPmacController::readInt32(asynUser *pasynUser,
|
||||
epicsInt32 *value) {
|
||||
// PMACs can be disabled
|
||||
if (pasynUser->reason == motorCanDisable_) {
|
||||
*value = 1;
|
||||
return asynSuccess;
|
||||
} else {
|
||||
return asynMotorController::readInt32(pasynUser, value);
|
||||
return sinqController::readInt32(pasynUser, value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -582,7 +571,7 @@ static const iocshArg CreateControllerArg5 = {"Communication timeout (s)",
|
||||
static const iocshArg *const CreateControllerArgs[] = {
|
||||
&CreateControllerArg0, &CreateControllerArg1, &CreateControllerArg2,
|
||||
&CreateControllerArg3, &CreateControllerArg4, &CreateControllerArg5};
|
||||
static const iocshFuncDef configturboPmacCreateController = {
|
||||
static const iocshFuncDef configTurboPmacCreateController = {
|
||||
"turboPmacController", 6, CreateControllerArgs};
|
||||
static void configTurboPmacCreateControllerCallFunc(const iocshArgBuf *args) {
|
||||
turboPmacCreateController(args[0].sval, args[1].sval, args[2].ival,
|
||||
@@ -592,7 +581,7 @@ static void configTurboPmacCreateControllerCallFunc(const iocshArgBuf *args) {
|
||||
// This function is made known to EPICS in turboPmac.dbd and is called by EPICS
|
||||
// in order to register both functions in the IOC shell
|
||||
static void turboPmacControllerRegister(void) {
|
||||
iocshRegister(&configturboPmacCreateController,
|
||||
iocshRegister(&configTurboPmacCreateController,
|
||||
configTurboPmacCreateControllerCallFunc);
|
||||
}
|
||||
epicsExportRegistrar(turboPmacControllerRegister);
|
||||
|
||||
Reference in New Issue
Block a user