From 631ee46a50ccca1ea2e511a02262206ea2c16138 Mon Sep 17 00:00:00 2001 From: smathis Date: Mon, 10 Mar 2025 17:07:33 +0100 Subject: [PATCH] Removed friend class declaration and replaced access to private,properties with accessors --- src/masterMacsAxis.cpp | 126 +++++++++++++++++------------------ src/masterMacsAxis.h | 3 - src/masterMacsController.cpp | 47 ++++--------- src/masterMacsController.h | 15 +---- 4 files changed, 78 insertions(+), 113 deletions(-) diff --git a/src/masterMacsAxis.cpp b/src/masterMacsAxis.cpp index 6769273..b282abd 100644 --- a/src/masterMacsAxis.cpp +++ b/src/masterMacsAxis.cpp @@ -78,13 +78,13 @@ masterMacsAxis::masterMacsAxis(masterMacsController *pC, int axisNo) bounds, asynMotorAxis prints an error. However, we want the IOC creation to stop completely, since this is a configuration error. */ - if (axisNo >= pC->numAxes_) { - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + if (axisNo >= pC->numAxes()) { + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line %d:: FATAL ERROR: " "Axis index %d must be smaller than the total number of axes " "%d. Call the support.", pC_->portName, axisNo, __PRETTY_FUNCTION__, __LINE__, axisNo_, - pC->numAxes_); + pC->numAxes()); exit(-1); } @@ -108,10 +108,10 @@ masterMacsAxis::masterMacsAxis(masterMacsController *pC, int axisNo) timeAtHandshake_ = 0; // masterMacs motors can always be disabled - status = pC_->setIntegerParam(axisNo_, pC_->motorCanDisable_, 1); + status = pC_->setIntegerParam(axisNo_, pC_->motorCanDisable(), 1); if (status != asynSuccess) { asynPrint( - pC_->pasynUserSelf, ASYN_TRACE_ERROR, + pC_->asynUserSelf(), 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__, @@ -120,10 +120,10 @@ masterMacsAxis::masterMacsAxis(masterMacsController *pC, int axisNo) } // Assume that the motor is initially not moving - status = pC_->setIntegerParam(axisNo_, pC_->motorStatusMoving_, false); + status = pC_->setIntegerParam(axisNo_, pC_->motorStatusMoving(), false); if (status != asynSuccess) { asynPrint( - pC_->pasynUserSelf, ASYN_TRACE_ERROR, + pC_->asynUserSelf(), 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__, @@ -163,11 +163,11 @@ asynStatus masterMacsAxis::init() { time_t now = time(NULL); time_t maxInitTime = 60; while (1) { - pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution_, + pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution(), &motorRecResolution); if (pl_status == asynParamUndefined) { if (now + maxInitTime < time(NULL)) { - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line " "%d\nInitializing the parameter library failed.\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, @@ -237,7 +237,7 @@ asynStatus masterMacsAxis::init() { // Store these values in the parameter library pl_status = - pC_->setDoubleParam(axisNo_, pC_->motorPosition_, motorPosition); + pC_->setDoubleParam(axisNo_, pC_->motorPosition(), motorPosition); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_, __PRETTY_FUNCTION__, __LINE__); @@ -264,7 +264,7 @@ asynStatus masterMacsAxis::init() { // If we can't communicate with the parameter library, it doesn't // make sense to try and upstream this to the user -> Just log the // error - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line " "%d:\ncallParamCallbacks failed with %s.\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, @@ -309,10 +309,10 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { time_t currentTime = time(NULL); bool timedOut = (currentTime > timeAtHandshake_ + 5); - if (pC_->msgPrintControl_.shouldBePrinted( + if (pC_->getMsgPrintControl().shouldBePrinted( pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, timedOut, - pC_->pasynUserSelf)) { - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + pC_->asynUserSelf())) { + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line %d\nAsked for a " "handshake at %ld s and didn't get a positive reply yet " "(current time is %ld s).\n", @@ -322,7 +322,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { if (timedOut) { pl_status = - setStringParam(pC_->motorMessageText_, + setStringParam(pC_->motorMessageText(), "Timed out while waiting for a handshake"); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorMessageText_", @@ -351,14 +351,14 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { // poll. This is already part of the movement procedure. *moving = true; - pl_status = setIntegerParam(pC_->motorStatusMoving_, *moving); + pl_status = setIntegerParam(pC_->motorStatusMoving(), *moving); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusMoving_", axisNo_, __PRETTY_FUNCTION__, __LINE__); } - pl_status = setIntegerParam(pC_->motorStatusDone_, !(*moving)); + pl_status = setIntegerParam(pC_->motorStatusDone(), !(*moving)); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusDone_", axisNo_, __PRETTY_FUNCTION__, @@ -370,7 +370,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { } // Motor resolution from parameter library - pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution_, + pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution(), &motorRecResolution); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorRecResolution_", @@ -380,7 +380,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { // Read the previous motor position pl_status = - pC_->getDoubleParam(axisNo_, pC_->motorPosition_, &previousPosition); + pC_->getDoubleParam(axisNo_, pC_->motorPosition(), &previousPosition); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_, __PRETTY_FUNCTION__, __LINE__); @@ -431,17 +431,17 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { since this information is not reliable. */ if (communicationError()) { - if (pC_->msgPrintControl_.shouldBePrinted(keyError, true, - pC_->pasynUserSelf)) { - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + if (pC_->getMsgPrintControl().shouldBePrinted( + keyError, true, pC_->asynUserSelf())) { + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line " "%d\nCommunication error.%s\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, - pC_->msgPrintControl_.getSuffix()); + pC_->getMsgPrintControl().getSuffix()); } pl_status = - setStringParam(pC_->motorMessageText_, + setStringParam(pC_->motorMessageText(), "Communication error between PC and motor " "controller. Please call the support."); if (pl_status != asynSuccess) { @@ -589,18 +589,18 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { } if (strlen(shellMessage) > 0) { - if (pC_->msgPrintControl_.shouldBePrinted(keyError, true, - pC_->pasynUserSelf)) { - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + if (pC_->getMsgPrintControl().shouldBePrinted( + keyError, true, pC_->asynUserSelf())) { + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line " "%d\n%s.%s\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, shellMessage, - pC_->msgPrintControl_.getSuffix()); + pC_->getMsgPrintControl().getSuffix()); } } - pl_status = setStringParam(pC_->motorMessageText_, userMessage); + pl_status = setStringParam(pC_->motorMessageText(), userMessage); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorMessageText_", axisNo_, __PRETTY_FUNCTION__, @@ -608,7 +608,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { } } } else { - pC_->msgPrintControl_.resetCount(keyError, pC_->pasynUserSelf); + pC_->getMsgPrintControl().resetCount(keyError, pC_->asynUserSelf()); } // Read out the limits, if the motor is not moving @@ -646,7 +646,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { directly, but need to shrink them a bit. In this case, we're shrinking them by 0.1 mm or 0.1 degree (depending on the axis type) on both sides. */ - pl_status = pC_->getDoubleParam(axisNo_, pC_->motorLimitsOffset_, + pl_status = pC_->getDoubleParam(axisNo_, pC_->motorLimitsOffset(), &limitsOffset); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorLimitsOffset_", @@ -656,15 +656,15 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { highLimit = highLimit - limitsOffset; lowLimit = lowLimit + limitsOffset; - pl_status = pC_->setDoubleParam(axisNo_, pC_->motorHighLimitFromDriver_, - highLimit); + pl_status = pC_->setDoubleParam( + axisNo_, pC_->motorHighLimitFromDriver(), highLimit); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed( pl_status, "motorHighLimitFromDriver_", axisNo_, __PRETTY_FUNCTION__, __LINE__); } - pl_status = pC_->setDoubleParam(axisNo_, pC_->motorLowLimitFromDriver_, + pl_status = pC_->setDoubleParam(axisNo_, pC_->motorLowLimitFromDriver(), lowLimit); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorLowLimit_", @@ -674,7 +674,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { } // Update the enable PV - pl_status = setIntegerParam(pC_->motorEnableRBV_, + pl_status = setIntegerParam(pC_->motorEnableRBV(), readyToBeSwitchedOn() && switchedOn()); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorEnableRBV_", axisNo_, @@ -692,27 +692,27 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { // Update the parameter library if (hasError) { - pl_status = setIntegerParam(pC_->motorStatusProblem_, true); + pl_status = setIntegerParam(pC_->motorStatusProblem(), true); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_", axisNo_, __PRETTY_FUNCTION__, __LINE__); } } - pl_status = setIntegerParam(pC_->motorStatusMoving_, *moving); + pl_status = setIntegerParam(pC_->motorStatusMoving(), *moving); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusMoving_", axisNo_, __PRETTY_FUNCTION__, __LINE__); } - pl_status = setIntegerParam(pC_->motorStatusDone_, !(*moving)); + pl_status = setIntegerParam(pC_->motorStatusDone(), !(*moving)); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusDone_", axisNo_, __PRETTY_FUNCTION__, __LINE__); } - pl_status = setIntegerParam(pC_->motorStatusDirection_, direction); + pl_status = setIntegerParam(pC_->motorStatusDirection(), direction); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusDirection_", axisNo_, __PRETTY_FUNCTION__, @@ -723,7 +723,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) { // masterMacsAxis::init()) currentPosition = currentPosition / motorRecResolution; - pl_status = setDoubleParam(pC_->motorPosition_, currentPosition); + pl_status = setDoubleParam(pC_->motorPosition(), currentPosition); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_, __PRETTY_FUNCTION__, __LINE__); @@ -751,13 +751,13 @@ asynStatus masterMacsAxis::doMove(double position, int relative, // ========================================================================= - pl_status = pC_->getIntegerParam(axisNo_, pC_->motorEnableRBV_, &enabled); + pl_status = pC_->getIntegerParam(axisNo_, pC_->motorEnableRBV(), &enabled); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "enableMotorRBV_", axisNo_, __PRETTY_FUNCTION__, __LINE__); } - pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution_, + pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution(), &motorRecResolution); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorRecResolution_", @@ -766,7 +766,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative, } if (enabled == 0) { - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line %d:\nAxis is " "disabled.\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__); @@ -778,12 +778,12 @@ asynStatus masterMacsAxis::doMove(double position, int relative, motorVelocity = maxVelocity * motorRecResolution; asynPrint( - pC_->pasynUserSelf, ASYN_TRACE_FLOW, + pC_->asynUserSelf(), ASYN_TRACE_FLOW, "Controller \"%s\", axis %d => %s, line %d:\nMove to position %lf.\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, position); // Check if the speed is allowed to be changed - pl_status = pC_->getIntegerParam(axisNo_, pC_->motorCanSetSpeed_, + pl_status = pC_->getIntegerParam(axisNo_, pC_->motorCanSetSpeed(), &motorCanSetSpeed); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorCanSetSpeed_", @@ -794,7 +794,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative, // Initialize the movement handshake rw_status = pC_->write(axisNo_, 86, "0"); if (rw_status != asynSuccess) { - pl_status = setIntegerParam(pC_->motorStatusProblem_, true); + pl_status = setIntegerParam(pC_->motorStatusProblem(), true); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_", axisNo_, __PRETTY_FUNCTION__, @@ -812,7 +812,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative, snprintf(value, sizeof(value), "%lf", motorVelocity); rw_status = pC_->write(axisNo_, 05, value); if (rw_status != asynSuccess) { - pl_status = setIntegerParam(pC_->motorStatusProblem_, true); + pl_status = setIntegerParam(pC_->motorStatusProblem(), true); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_", axisNo_, @@ -821,7 +821,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative, return rw_status; } - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_FLOW, + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_FLOW, "Controller \"%s\", axis %d => %s, line %d:\nSetting speed " "to %lf.\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, @@ -832,7 +832,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative, snprintf(value, sizeof(value), "%lf", motorCoordinatesPosition); rw_status = pC_->write(axisNo_, 02, value); if (rw_status != asynSuccess) { - pl_status = setIntegerParam(pC_->motorStatusProblem_, true); + pl_status = setIntegerParam(pC_->motorStatusProblem(), true); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_", axisNo_, __PRETTY_FUNCTION__, @@ -848,7 +848,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative, rw_status = pC_->write(axisNo_, 00, "1"); } if (rw_status != asynSuccess) { - pl_status = setIntegerParam(pC_->motorStatusProblem_, true); + pl_status = setIntegerParam(pC_->motorStatusProblem(), true); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_", axisNo_, __PRETTY_FUNCTION__, @@ -883,7 +883,7 @@ asynStatus masterMacsAxis::stop(double acceleration) { rw_status = pC_->write(axisNo_, 00, "8"); if (rw_status != asynSuccess) { - pl_status = setIntegerParam(pC_->motorStatusProblem_, true); + pl_status = setIntegerParam(pC_->motorStatusProblem(), true); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_", axisNo_, __PRETTY_FUNCTION__, @@ -910,7 +910,7 @@ asynStatus masterMacsAxis::doHome(double min_velocity, double max_velocity, // ========================================================================= - pl_status = pC_->getStringParam(axisNo_, pC_->encoderType_, + pl_status = pC_->getStringParam(axisNo_, pC_->encoderType(), sizeof(response), response); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "encoderType_", axisNo_, @@ -923,7 +923,7 @@ asynStatus masterMacsAxis::doHome(double min_velocity, double max_velocity, // Initialize the movement handshake rw_status = pC_->write(axisNo_, 86, "0"); if (rw_status != asynSuccess) { - pl_status = setIntegerParam(pC_->motorStatusProblem_, true); + pl_status = setIntegerParam(pC_->motorStatusProblem(), true); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_", axisNo_, @@ -983,9 +983,9 @@ asynStatus masterMacsAxis::readEncoderType() { 2=SSI (Absolute encoder with BiSS interface) */ if (encoder_id == 0) { - pl_status = setStringParam(pC_->encoderType_, IncrementalEncoder); + pl_status = setStringParam(pC_->encoderType(), IncrementalEncoder); } else { - pl_status = setStringParam(pC_->encoderType_, AbsoluteEncoder); + pl_status = setStringParam(pC_->encoderType(), AbsoluteEncoder); } if (pl_status != asynSuccess) { @@ -1017,13 +1017,13 @@ asynStatus masterMacsAxis::enable(bool on) { // axis instead of "moving", since status -6 is also moving, but the // motor can actually be disabled in this state! if (moving) { - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line %d:\nAxis is not " "idle and can therefore not be disabled.\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__); pl_status = - setStringParam(pC_->motorMessageText_, + setStringParam(pC_->motorMessageText(), "Axis cannot be disabled while it is moving."); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorMessageText_", @@ -1039,7 +1039,7 @@ asynStatus masterMacsAxis::enable(bool on) { if ((readyToBeSwitchedOn() && switchedOn()) == on) { asynPrint( - pC_->pasynUserSelf, ASYN_TRACE_WARNING, + pC_->asynUserSelf(), ASYN_TRACE_WARNING, "Controller \"%s\", axis %d => %s, line %d:\nAxis is already %s.\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, on ? "enabled" : "disabled"); @@ -1048,14 +1048,14 @@ asynStatus masterMacsAxis::enable(bool on) { // Enable / disable the axis if it is not moving snprintf(value, sizeof(value), "%d", on); - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_FLOW, + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_FLOW, "Controller \"%s\", axis %d => %s, line %d:\n%s axis.\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, on ? "Enable" : "Disable"); if (on == 0) { - pl_status = setStringParam(pC_->motorMessageText_, "Disabling ..."); + pl_status = setStringParam(pC_->motorMessageText(), "Disabling ..."); } else { - pl_status = setStringParam(pC_->motorMessageText_, "Enabling ..."); + pl_status = setStringParam(pC_->motorMessageText(), "Enabling ..."); } if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorMessageText_", @@ -1089,7 +1089,7 @@ asynStatus masterMacsAxis::enable(bool on) { // Failed to change axis status within timeout_enable_disable => Send a // corresponding message - asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR, + asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR, "Controller \"%s\", axis %d => %s, line %d:\nFailed to %s axis " "within %d seconds\n", pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, @@ -1098,7 +1098,7 @@ asynStatus masterMacsAxis::enable(bool on) { // Output message to user snprintf(value, sizeof(value), "Failed to %s within %d seconds", on ? "enable" : "disable", timeout_enable_disable); - pl_status = setStringParam(pC_->motorMessageText_, "Enabling ..."); + pl_status = setStringParam(pC_->motorMessageText(), "Enabling ..."); if (pl_status != asynSuccess) { return pC_->paramLibAccessFailed(pl_status, "motorMessageText_", axisNo_, __PRETTY_FUNCTION__, diff --git a/src/masterMacsAxis.h b/src/masterMacsAxis.h index 36d9c80..1fa0182 100644 --- a/src/masterMacsAxis.h +++ b/src/masterMacsAxis.h @@ -273,9 +273,6 @@ class masterMacsAxis : public sinqAxis { * @brief Read the property from axisError_ */ bool stoFault() { return axisError_[15]; } - - private: - friend class masterMacsController; }; #endif diff --git a/src/masterMacsController.cpp b/src/masterMacsController.cpp index 57aa1fd..43dacf1 100644 --- a/src/masterMacsController.cpp +++ b/src/masterMacsController.cpp @@ -49,14 +49,10 @@ masterMacsController::masterMacsController(const char *portName, int numAxes, double movingPollPeriod, double idlePollPeriod, double comTimeout) - : sinqController( - portName, ipPortConfigName, numAxes, movingPollPeriod, idlePollPeriod, - /* - The following parameter library entries are added in this driver: - - REREAD_ENCODER_POSITION - - READ_CONFIG - */ - NUM_masterMacs_DRIVER_PARAMS) + : sinqController(portName, ipPortConfigName, numAxes, movingPollPeriod, + idlePollPeriod, + // No additional parameter library entries + 0) { @@ -64,22 +60,9 @@ masterMacsController::masterMacsController(const char *portName, asynStatus status = asynSuccess; // Initialization of all member variables - lowLevelPortUser_ = nullptr; comTimeout_ = comTimeout; - // =========================================================================; - - /* - We try to connect to the port via the port name provided by the constructor. - If this fails, the function is terminated via exit - */ - pasynOctetSyncIO->connect(ipPortConfigName, 0, &lowLevelPortUser_, NULL); - if (status != asynSuccess || lowLevelPortUser_ == nullptr) { - errlogPrintf("Controller \"%s\" => %s, line %d:\nFATAL ERROR (cannot " - "connect to MCU controller).\nTerminating IOC", - portName, __PRETTY_FUNCTION__, __LINE__); - exit(-1); - } + // ========================================================================= /* Define the end-of-string of a message coming from the device to EPICS. @@ -87,15 +70,15 @@ masterMacsController::masterMacsController(const char *portName, the message length is encoded in the message header. */ const char *message_from_device = "\x0D"; // Hex-code for CR - status = pasynOctetSyncIO->setInputEos( - lowLevelPortUser_, message_from_device, strlen(message_from_device)); + status = pasynOctetSyncIO->setInputEos(ipPortUser_, message_from_device, + strlen(message_from_device)); if (status != asynSuccess) { asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "Controller \"%s\" => %s, line %d:\nFATAL ERROR (setting " "input EOS failed with %s).\nTerminating IOC", portName, __PRETTY_FUNCTION__, __LINE__, stringifyAsynStatus(status)); - pasynOctetSyncIO->disconnect(lowLevelPortUser_); + pasynOctetSyncIO->disconnect(ipPortUser_); exit(-1); } @@ -106,7 +89,7 @@ masterMacsController::masterMacsController(const char *portName, "ParamLib callbacks failed with %s).\nTerminating IOC", portName, __PRETTY_FUNCTION__, __LINE__, stringifyAsynStatus(status)); - pasynOctetSyncIO->disconnect(lowLevelPortUser_); + pasynOctetSyncIO->disconnect(ipPortUser_); exit(-1); } } @@ -193,9 +176,8 @@ asynStatus masterMacsController::writeRead(int axisNo, int tcpCmd, adjustForPrint(printableCommand, fullCommand, MAXBUF_); // Send out the command - status = - pasynOctetSyncIO->write(lowLevelPortUser_, fullCommand, - fullCommandLength, comTimeout_, &nbytesOut); + status = pasynOctetSyncIO->write( + ipPortUser_, fullCommand, fullCommandLength, comTimeout_, &nbytesOut); msgPrintControlKey writeKey = msgPrintControlKey(portName, axisNo, __PRETTY_FUNCTION__, __LINE__); @@ -221,10 +203,9 @@ asynStatus masterMacsController::writeRead(int axisNo, int tcpCmd, the return value of flush(), because it is always asynSuccess (see https://www.slac.stanford.edu/grp/lcls/controls/global/doc/epics-modules/R3-14-12/asyn/asyn-R4-18-lcls2/asyn/interfaces/asynOctetBase.c) */ - status = - pasynOctetSyncIO->read(lowLevelPortUser_, fullResponse, MAXBUF_, - comTimeout_, &nbytesIn, &eomReason); - pasynOctetSyncIO->flush(lowLevelPortUser_); + status = pasynOctetSyncIO->read(ipPortUser_, fullResponse, MAXBUF_, + comTimeout_, &nbytesIn, &eomReason); + pasynOctetSyncIO->flush(ipPortUser_); if (status == asynSuccess) { status = parseResponse(fullCommand, fullResponse, diff --git a/src/masterMacsController.h b/src/masterMacsController.h index 91c771c..d7e78f7 100644 --- a/src/masterMacsController.h +++ b/src/masterMacsController.h @@ -49,9 +49,6 @@ class masterMacsController : public sinqController { */ masterMacsAxis *getMasterMacsAxis(int axisNo); - protected: - asynUser *lowLevelPortUser_; - /** * @brief Send a command to the hardware (S mode) * @@ -114,26 +111,16 @@ class masterMacsController : public sinqController { int *valueStop, int axisNo, int tcpCmd, bool isRead); - private: // Set the maximum buffer size. This is an empirical value which must be // large enough to avoid overflows for all commands to the device / // responses from it. static const uint32_t MAXBUF_ = 200; + private: /* Stores the constructor input comTimeout */ double comTimeout_; - - // Indices of additional PVs -#define FIRST_masterMacs_PARAM rereadEncoderPosition_ - int rereadEncoderPosition_; - int readConfig_; -#define LAST_masterMacs_PARAM readConfig_ - - friend class masterMacsAxis; }; -#define NUM_masterMacs_DRIVER_PARAMS \ - (&LAST_masterMacs_PARAM - &FIRST_masterMacs_PARAM + 1) #endif /* masterMacsController_H */