Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
78257dc618 | |||
b8c9a58baa | |||
0f68160c16 | |||
5b4210cf4e | |||
d2ccc28a08 |
5
Makefile
5
Makefile
@ -12,11 +12,8 @@ REQUIRED+=motorBase
|
||||
# Specify the version of motorBase we want to build against
|
||||
motorBase_VERSION=7.2.2
|
||||
|
||||
# Specify the version of sinqMotor we want to build against
|
||||
sinqMotor_VERSION=0.11.0
|
||||
|
||||
# Specify the version of turboPmac we want to build against
|
||||
turboPmac_VERSION=0.10.0
|
||||
turboPmac_VERSION=0.13.0
|
||||
|
||||
# These headers allow to depend on this library for derived drivers.
|
||||
HEADERS += src/seleneGuideController.h
|
||||
|
@ -243,7 +243,7 @@ $z_{iH} = z_i + \mathrm{DHLM}_i$
|
||||
|
||||
$z_{iL} = z_i + \mathrm{DLLM}_i$
|
||||
|
||||
If $z_{iH} would exceed the corresponding absolute high limit $z_{iH,abs}$, it is set to $z_{iH,abs}$. The same holds true for the lower limits.
|
||||
If $z_{iH}$ would exceed the corresponding absolute high limit $z_{iH,abs}$, it is set to $z_{iH,abs}$. The same holds true for the lower limits.
|
||||
|
||||
#### Lift axis
|
||||
|
||||
@ -277,6 +277,7 @@ For axes which are located behind the center of rotation (lever arm $x_i - x_{gu
|
||||
|
||||
$\alpha_{6H} = -\arctan((z_{6L} - z_{guide} - \Delta z_6) / (x_6 - x_{guide}))$
|
||||
|
||||
|
||||
$\alpha_{6L} = -\arctan((z_{6H} - z_{guide} - \Delta z_6) / (x_6 - x_{guide}))$
|
||||
|
||||
### Versioning
|
||||
|
@ -60,7 +60,7 @@ seleneLiftAxis::seleneLiftAxis(seleneGuideController *pC, int axis1No,
|
||||
for (int i = 0; i < numAxes_; i++) {
|
||||
oAxis = dynamic_cast<seleneOffsetAxis *>(pC->getAxis(axisNos[i]));
|
||||
if (oAxis == nullptr) {
|
||||
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||
asynPrint(pC_->pasynUser(), ASYN_TRACE_ERROR,
|
||||
"Controller \"%s\", axis %d => %s, line %d\nFATAL ERROR "
|
||||
"(given axis number %d is not an instance of "
|
||||
"seleneOffsetAxis).\nTerminating IOC.\n",
|
||||
@ -118,7 +118,7 @@ asynStatus seleneLiftAxis::init() {
|
||||
&motorRecResolution);
|
||||
if (status == asynParamUndefined) {
|
||||
if (now + maxInitTime < time(NULL)) {
|
||||
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||
asynPrint(pC_->pasynUser(), ASYN_TRACE_ERROR,
|
||||
"Controller \"%s\", axis %d => %s, line "
|
||||
"%d\nInitializing the parameter library failed.\n",
|
||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__,
|
||||
@ -191,7 +191,7 @@ asynStatus seleneLiftAxis::normalizePositions() {
|
||||
double lift = 0.0;
|
||||
double angle = 0.0;
|
||||
asynStatus status = asynSuccess;
|
||||
char response[pC_->MAXBUF_];
|
||||
char response[pC_->MAXBUF_] = {0};
|
||||
double encoderPositions[6] = {0.0};
|
||||
double absolutePositions[6] = {0.0};
|
||||
int nvals = 0;
|
||||
@ -268,7 +268,8 @@ asynStatus seleneLiftAxis::doPoll(bool *moving) {
|
||||
// Status of parameter library operations
|
||||
asynStatus pl_status = asynSuccess;
|
||||
|
||||
char response[pC_->MAXBUF_], userMessage[pC_->MAXBUF_] = {0};
|
||||
char response[pC_->MAXBUF_] = {0};
|
||||
char userMessage[pC_->MAXBUF_] = {0};
|
||||
|
||||
int nvals = 0;
|
||||
int axStatus = 0;
|
||||
@ -475,7 +476,8 @@ asynStatus seleneLiftAxis::targetPosition(double *targetPosition) {
|
||||
|
||||
asynStatus seleneLiftAxis::startCombinedMove() {
|
||||
|
||||
char command[pC_->MAXBUF_], response[pC_->MAXBUF_];
|
||||
char command[pC_->MAXBUF_] = {0};
|
||||
char response[pC_->MAXBUF_] = {0};
|
||||
double liftTargetPosition = 0.0;
|
||||
double angleTargetPosition = 0.0;
|
||||
asynStatus status = asynSuccess;
|
||||
@ -527,7 +529,7 @@ asynStatus seleneLiftAxis::stop(double acceleration) {
|
||||
// Status of parameter library operations
|
||||
asynStatus pl_status = asynSuccess;
|
||||
|
||||
char response[pC_->MAXBUF_];
|
||||
char response[pC_->MAXBUF_] = {0};
|
||||
|
||||
// =========================================================================
|
||||
|
||||
@ -536,7 +538,7 @@ asynStatus seleneLiftAxis::stop(double acceleration) {
|
||||
|
||||
if (rw_status != asynSuccess) {
|
||||
asynPrint(
|
||||
pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||
pC_->pasynUser(), ASYN_TRACE_ERROR,
|
||||
"Controller \"%s\", axis %d => %s, line %d\nStopping the movement "
|
||||
"failed.\n",
|
||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__);
|
||||
@ -586,7 +588,7 @@ asynStatus seleneLiftAxis::readEncoderType() {
|
||||
asynStatus seleneLiftAxis::doHome(double minVelocity, double maxVelocity,
|
||||
double acceleration, int forwards) {
|
||||
|
||||
char response[pC_->MAXBUF_];
|
||||
char response[pC_->MAXBUF_] = {0};
|
||||
|
||||
// No answer expected
|
||||
return pC_->writeRead(axisNo_,
|
||||
|
@ -99,7 +99,7 @@ asynStatus seleneOffsetAxis::init() {
|
||||
&motorRecResolution);
|
||||
if (status == asynParamUndefined) {
|
||||
if (now + maxInitTime < time(NULL)) {
|
||||
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||
asynPrint(pC_->pasynUser(), ASYN_TRACE_ERROR,
|
||||
"Controller \"%s\", axis %d => %s, line "
|
||||
"%d\nInitializing the parameter library failed.\n",
|
||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__,
|
||||
@ -156,8 +156,9 @@ asynStatus seleneOffsetAxis::doPoll(bool *moving) {
|
||||
int error = 0;
|
||||
int nvals = 0;
|
||||
|
||||
char command[pC_->MAXBUF_], response[pC_->MAXBUF_],
|
||||
userMessage[pC_->MAXBUF_];
|
||||
char command[pC_->MAXBUF_] = {0};
|
||||
char response[pC_->MAXBUF_] = {0};
|
||||
char userMessage[pC_->MAXBUF_] = {0};
|
||||
|
||||
// =========================================================================
|
||||
|
||||
@ -368,7 +369,6 @@ asynStatus seleneOffsetAxisCreateAxis(const char *portName, int axisNo,
|
||||
portName, __PRETTY_FUNCTION__, __LINE__);
|
||||
return asynError;
|
||||
}
|
||||
// Unsafe cast of the pointer to an asynPortDriver
|
||||
asynPortDriver *apd = (asynPortDriver *)(ptr);
|
||||
|
||||
// Safe downcast
|
||||
|
Reference in New Issue
Block a user