Commit Graph
60 Commits
Author SHA1 Message Date
mathis_s c7a2a32c73 Bugfix
Test And Build / Lint (push) Failing after 5s
Test And Build / Build (push) Successful in 7s
2026-05-11 11:20:52 +02:00
mathis_s 21cd9320ee Fixed bug in enable method and adjusted PowerCycleTimeout value
Test And Build / Lint (push) Failing after 5s
Test And Build / Build (push) Failing after 6s
2026-05-11 11:16:59 +02:00
mathis_s 9098a932fa Fixed bug in response parsing
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 8s
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.
2026-04-09 10:47:27 +02:00
mathis_s b5dcc7bdf1 Fixed scaling of the written motorVelocity value
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
2026-02-12 12:04:20 +01:00
mathis_s 9a332f7a19 Squashed commit of the following:
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
2026-02-12 11:38:42 +01:00
mathis_s b81e7926d1 Fixed limitswitch errors during homing 2026-02-12 11:35:21 +01:00
mathis_s dbb4e92171 Rolled back to sinqMotor 1.5.7
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
2026-02-11 10:45:25 +01:00
mathis_s d24d2da50a Removed debug prints 2026-02-11 10:23:46 +01:00
mathis_s 516b8e7d68 added debug print 2026-02-11 10:19:44 +01:00
mathis_s 238a47f38e Ignore limit switch errors when the motor is homing or has been homed
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
2026-02-10 12:57:52 +01:00
mathis_s 9a52a4b9ce Implemented velocity mode, but didn't test it yet
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
2026-01-20 16:52:52 +01:00
mathis_s 18e68b193a Updated to sinqMotor 1.6.1 2026-01-20 16:50:03 +01:00
mathis_s fd41d4c9c0 PositionDeadband, dynamic limit detection, velocity mode
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Failing after 6s
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!).
2026-01-20 15:09:51 +01:00
mathis_s 5314362c83 maxVelocity is not unused!
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Failing after 5s
2026-01-20 13:21:32 +01:00
mathis_s 5efb94f83e Changed default for motorConnected and updated manual
Test And Build / Lint (push) Failing after 3s
Test And Build / Build (push) Failing after 5s
2026-01-20 11:43:26 +01:00
mathis_s 7e7b8f486c Updated sinqMotor to fix segfault and improved docs 2025-12-23 11:47:12 +01:00
mathis_s e1732639b2 Added manual and .gitignore
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
2025-11-03 08:40:25 +01:00
mathis_s a435c3c960 Update src/masterMacsAxis.cpp
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
Updated comment: encoder type 0 can also mean "no encoder"
2025-09-23 15:11:07 +02:00
mathis_s f1c41d3081 Perform poll even if init fails
Test And Build / Lint (push) Failing after 5s
Test And Build / Build (push) Successful in 8s
2025-09-17 13:12:21 +02:00
mathis_s ebcf99ac56 Updated sinqMotor to 1.5.5 2025-09-17 12:34:47 +02:00
mathis_s 8f457889c0 Updated sinqMotor to 1.5.3 2025-09-17 11:28:53 +02:00
mathis_s 6f63e521c1 Updated sinqMotor to 1.5.2 2025-09-17 11:25:40 +02:00
mathis_s 25286652d5 Moved version definition in Makefile
Test And Build / Lint (push) Failing after 3s
Test And Build / Build (push) Successful in 7s
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.
2025-08-22 13:18:43 +02:00
mathis_s 27f7cc8602 Added version check prototype
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 8s
2025-08-22 08:46:30 +02:00
mathis_s 21a73717a5 Fixed handshake detection and reset bugs
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
2025-08-14 17:16:14 +02:00
mathis_s 23a911206a Removed node reset from doReset and moved it into dedicated function
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
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.
2025-08-12 15:51:12 +02:00
mathis_s 6553b468c8 Updated to sinqMotor 1.4.0 and hid all symbols
Test And Build / Lint (push) Failing after 3s
Test And Build / Build (push) Successful in 7s
2025-08-12 09:44:15 +02:00
mathis_s 954fc82414 Moved error handling out of error read condition.
Test And Build / Lint (push) Failing after 9s
Test And Build / Build (push) Successful in 12s
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".
2025-08-05 09:04:11 +02:00
mathis_s ff183576ec Added axis reinitialization after node reset
When resetting the node, values within the controller may change, which
need to be reread by the init function.
2025-08-05 08:58:50 +02:00
mathis_s 83f9be3be8 Switched to forcedPoll method 2025-07-24 13:20:30 +02:00
mathis_s 8bb81b1716 Fixed wrong comments
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 8s
2025-07-22 17:13:09 +02:00
mathis_s c32708e49c Removed lastSpeed caching
Test And Build / Lint (push) Failing after 4s
Test And Build / Build (push) Successful in 7s
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.
2025-07-16 11:23:37 +02:00
mathis_s 64b932c3ae Fixed bug 2025-07-01 10:05:39 +02:00
mathis_s 09897b6125 Added node reset to doReset 2025-07-01 10:03:20 +02:00
mathis_s 37dacbd3ee Updated sinqMotor version and removed unnecessary require 2025-06-17 13:21:59 +02:00
mathis_s d198dc8c9f Use axisParam accessor macros 2025-06-17 13:21:55 +02:00
mathis_s deb6e6996e Ready for release 1.0 2025-05-23 12:29:30 +02:00
mathis_s d1d694ad6b Applied PIMPL principle 2025-05-23 12:16:25 +02:00
mathis_s c334ed9f04 Add default value for motorMessageText 2025-05-15 12:22:33 +02:00
mathis_s 4b0031c3af Fixed bug with readInt32 function 2025-05-15 12:03:06 +02:00
mathis_s e93f11e779 Adjusted usage of motorMessageText to be an error text only 2025-05-14 16:28:51 +02:00
mathis_s a56a8cf646 Added explanation why the return status of doPoll is not used in the enable function. 2025-05-13 14:46:13 +02:00
mathis_s cd57409f3c Added motorConnected logic 2025-04-25 15:58:03 +02:00
mathis_s 60053244a1 Fixed moving after enable bug
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.
2025-04-17 16:50:42 +02:00
mathis_s 699b588ba5 Replaced ipPortUser_ with ipPortAsynOctetSyncIO_
See comment to sinqMotor 0.12.0
2025-04-15 17:22:15 +02:00
mathis_s fe52245e38 Custom timeout for enable and position methods
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.
2025-03-31 10:48:41 +02:00
mathis_s a3e849f386 Changed to the "motorPosition" and "setMotorPosition" functions provided
by sinqMotor.
2025-03-28 14:53:04 +01:00
mathis_s 16564011a6 Added stop and error reset function for masterMacs 2025-03-19 15:07:09 +01:00
mathis_s 631ee46a50 Removed friend class declaration and replaced access to private,properties with accessors 2025-03-10 17:07:33 +01:00
mathis_s cf9899062a Modified communication protocol for MCU software 2.0 2025-03-10 14:29:56 +01:00