mirror of
https://github.com/Binary-Coalescence/motorDSM.git
synced 2025-08-04 21:55:40 -05:00
Replaced writeController() with writeReadController() to prevent talking too fast; improved debugging
This commit is contained in:
@@ -123,12 +123,11 @@ MCB4BAxis::MCB4BAxis(MCB4BController *pC, int axisNo)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Reports on status of the driver
|
/** Reports on status of the axis
|
||||||
* \param[in] fp The file pointer on which report information will be written
|
* \param[in] fp The file pointer on which report information will be written
|
||||||
* \param[in] level The level of report detail desired
|
* \param[in] level The level of report detail desired
|
||||||
*
|
*
|
||||||
* If details > 0 then information is printed about each axis.
|
* After printing device-specific information calls asynMotorAxis::report()
|
||||||
* After printing controller-specific information calls asynMotorController::report()
|
|
||||||
*/
|
*/
|
||||||
void MCB4BAxis::report(FILE *fp, int level)
|
void MCB4BAxis::report(FILE *fp, int level)
|
||||||
{
|
{
|
||||||
@@ -152,7 +151,7 @@ asynStatus MCB4BAxis::sendAccelAndVelocity(double acceleration, double velocity)
|
|||||||
if (ival < 2) ival=2;
|
if (ival < 2) ival=2;
|
||||||
if (ival > 255) ival = 255;
|
if (ival > 255) ival = 255;
|
||||||
sprintf(pC_->outString_, "#%02dV=%d", axisNo_, ival);
|
sprintf(pC_->outString_, "#%02dV=%d", axisNo_, ival);
|
||||||
status = pC_->writeController();
|
status = pC_->writeReadController();
|
||||||
|
|
||||||
// Send the acceleration
|
// Send the acceleration
|
||||||
// acceleration is in steps/sec/sec
|
// acceleration is in steps/sec/sec
|
||||||
@@ -163,7 +162,7 @@ asynStatus MCB4BAxis::sendAccelAndVelocity(double acceleration, double velocity)
|
|||||||
if (ival < 1) ival=1;
|
if (ival < 1) ival=1;
|
||||||
if (ival > 255) ival=255;
|
if (ival > 255) ival=255;
|
||||||
sprintf(pC_->outString_, "#%02dR=%d", axisNo_, ival);
|
sprintf(pC_->outString_, "#%02dR=%d", axisNo_, ival);
|
||||||
status = pC_->writeController();
|
status = pC_->writeReadController();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,7 +179,7 @@ asynStatus MCB4BAxis::move(double position, int relative, double minVelocity, do
|
|||||||
} else {
|
} else {
|
||||||
sprintf(pC_->outString_, "#%02dG%+d", axisNo_, NINT(position));
|
sprintf(pC_->outString_, "#%02dG%+d", axisNo_, NINT(position));
|
||||||
}
|
}
|
||||||
status = pC_->writeController();
|
status = pC_->writeReadController();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,26 +195,30 @@ asynStatus MCB4BAxis::home(double minVelocity, double maxVelocity, double accele
|
|||||||
} else {
|
} else {
|
||||||
sprintf(pC_->outString_, "#%02dH-", axisNo_);
|
sprintf(pC_->outString_, "#%02dH-", axisNo_);
|
||||||
}
|
}
|
||||||
status = pC_->writeController();
|
status = pC_->writeReadController();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
asynStatus MCB4BAxis::moveVelocity(double minVelocity, double maxVelocity, double acceleration)
|
asynStatus MCB4BAxis::moveVelocity(double minVelocity, double maxVelocity, double acceleration)
|
||||||
{
|
{
|
||||||
asynStatus status;
|
asynStatus status;
|
||||||
// static const char *functionName = "MCB4BAxis::moveVelocity";
|
static const char *functionName = "MCB4BAxis::moveVelocity";
|
||||||
|
|
||||||
|
asynPrint(pasynUser_, ASYN_TRACE_FLOW,
|
||||||
|
"%s: minVelocity=%f, maxVelocity=%f, acceleration=%f\n",
|
||||||
|
functionName, minVelocity, maxVelocity, acceleration);
|
||||||
|
|
||||||
status = sendAccelAndVelocity(acceleration, maxVelocity);
|
status = sendAccelAndVelocity(acceleration, maxVelocity);
|
||||||
|
|
||||||
/* MCB-4B does not have jog command. Move 1 million steps */
|
/* MCB-4B does not have jog command. Move 1 million steps */
|
||||||
if (maxVelocity > 0.) {
|
if (maxVelocity > 0.) {
|
||||||
/* This is a positive move in MCB4B coordinates */
|
/* This is a positive move in MCB4B coordinates */
|
||||||
sprintf(pC_->outString_, "#%02dM+1000000", axisNo_);
|
sprintf(pC_->outString_, "#%02dI+1000000", axisNo_);
|
||||||
} else {
|
} else {
|
||||||
/* This is a negative move in MCB4B coordinates */
|
/* This is a negative move in MCB4B coordinates */
|
||||||
sprintf(pC_->outString_, "#%02dM-1000000", axisNo_);
|
sprintf(pC_->outString_, "#%02dI-1000000", axisNo_);
|
||||||
}
|
}
|
||||||
status = pC_->writeController();
|
status = pC_->writeReadController();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,7 +228,7 @@ asynStatus MCB4BAxis::stop(double acceleration )
|
|||||||
//static const char *functionName = "MCB4BAxis::stop";
|
//static const char *functionName = "MCB4BAxis::stop";
|
||||||
|
|
||||||
sprintf(pC_->outString_, "#%02dQ", axisNo_);
|
sprintf(pC_->outString_, "#%02dQ", axisNo_);
|
||||||
status = pC_->writeController();
|
status = pC_->writeReadController();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,7 +238,7 @@ asynStatus MCB4BAxis::setPosition(double position)
|
|||||||
//static const char *functionName = "MCB4BAxis::setPosition";
|
//static const char *functionName = "MCB4BAxis::setPosition";
|
||||||
|
|
||||||
sprintf(pC_->outString_, "#%02dP=%+d", axisNo_, NINT(position));
|
sprintf(pC_->outString_, "#%02dP=%+d", axisNo_, NINT(position));
|
||||||
status = pC_->writeController();
|
status = pC_->writeReadController();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,17 +248,16 @@ asynStatus MCB4BAxis::setClosedLoop(bool closedLoop)
|
|||||||
//static const char *functionName = "MCB4BAxis::setClosedLoop";
|
//static const char *functionName = "MCB4BAxis::setClosedLoop";
|
||||||
|
|
||||||
sprintf(pC_->outString_, "#%02dW=%d", axisNo_, closedLoop ? 1:0);
|
sprintf(pC_->outString_, "#%02dW=%d", axisNo_, closedLoop ? 1:0);
|
||||||
status = pC_->writeController();
|
status = pC_->writeReadController();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Polls the axis.
|
/** Polls the axis.
|
||||||
* This function reads the controller position, encoder position, the limit status, the moving status,
|
* This function reads the motor position, the limit status, the home status, the moving status,
|
||||||
* and the drive power-on status. It does not current detect following error, etc. but this could be
|
* and the drive power-on status.
|
||||||
* added.
|
|
||||||
* It calls setIntegerParam() and setDoubleParam() for each item that it polls,
|
* It calls setIntegerParam() and setDoubleParam() for each item that it polls,
|
||||||
* and then calls callParamCallbacks() at the end.
|
* and then calls callParamCallbacks() at the end.
|
||||||
* \param[out] moving A flag that is set indicating that the axis is moving (1) or done (0). */
|
* \param[out] moving A flag that is set indicating that the axis is moving (true) or done (false). */
|
||||||
asynStatus MCB4BAxis::poll(bool *moving)
|
asynStatus MCB4BAxis::poll(bool *moving)
|
||||||
{
|
{
|
||||||
int done;
|
int done;
|
||||||
|
Reference in New Issue
Block a user