If the byte 15 is encountered in the message, the parseResponse function
must return asynDisconnected (instead of asynSuccess) so the state of
the axis is accounted for properly.
commit d90869cbca
Author: smathis <stefan.mathis@psi.ch>
Date: Tue Feb 10 13:18:43 2026 +0100
Added reminder comment
commit eadce0f594
Author: smathis <stefan.mathis@psi.ch>
Date: Tue Feb 10 12:31:01 2026 +0100
Draft velocity mode
See TODO in src/masterMacsAxis.cpp, line 552. The velocity readback is
the only thing that doesn't work properly, everything else does work.
Once a solution has been found here, this can be a new minor release.
commit 0e1f95a94b
Author: smathis <stefan.mathis@psi.ch>
Date: Tue Feb 10 09:04:04 2026 +0100
Updated sinqMotor and use setLimits
commit b01f398533
Author: smathis <stefan.mathis@psi.ch>
Date: Tue Feb 10 09:00:58 2026 +0100
Set move flag correctly in velocity / jog mode
commit 56d9d20c3a
Author: smathis <stefan.mathis@psi.ch>
Date: Tue Feb 3 17:57:00 2026 +0100
Simplified handling of velocity mode using standard EPICS motor record fields
commit 4634609891
Author: smathis <stefan.mathis@psi.ch>
Date: Tue Feb 3 13:35:24 2026 +0100
Rolled back to sinqMotor 1.5.7
Integrated a readout function for the position deadband. Also read from
the controller if the axis has dynamic limits and only poll the limits
repeatedly if that is the case. Lastly, added support for the velocity
mode (untested!).
The expected version can now be set in the Makefile via USR_CXXFLAGS.
Additionally, the README.md has received documentation regarding the
version check. Lastly, the version check can now be disabled by omitting
the flags or setting one of them to a negative value.
A "normal" error reset should not trigger a node reset. However, this
option is still available via a dedicated PV xx:NodeReset and a
corresponding function in masterMacsAxis.
Previously, error messaging was only done after the error has been read.
This means that cached errors were simply ignored, if e.g. the motor was
moving. This commit now messages an error as long as it exists in the
cache "masterMacsAxisImpl->axisError".
After discussion with Sven Schlienger, I now send the new speed
unconditionally before each move command. This also means that the
caching of the last speed is no longer needed.
When a MasterMacs motor is powered for the first time, it does not have
a target set. Therefore, the targetReached bit is 0, which the driver
used to interpret as "moving". This is solved now by an additional flag
which checks if the motor did a handshake.
Additionally, the communication module was simplified and new utility
scripts were added. It is now made sure that the communication timeout
for enabling and sending move commands is now at least equal to
PowerCycleTimeout defined in src/masterMacsAxis.cpp.
Added a custom timeout for the enable command, as it takes quite a bit
of time for the motor controller to answer and we don't want to show a
premature communication timeout error. Also changed the code in order to
use the motorPosition() and setMotorPosition() methods instead of
directly accessing the paramLib.