PositionDeadband, dynamic limit detection, velocity mode
Some checks failed
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!).
This commit is contained in:
2026-01-20 15:09:51 +01:00
parent f3f0a77f10
commit fd41d4c9c0
4 changed files with 301 additions and 98 deletions

View File

@@ -51,6 +51,19 @@ class HIDDEN masterMacsAxis : public sinqAxis {
*/
asynStatus doPoll(bool *moving);
/**
* @brief Implementation of the `doMoveVelocity` function from sinqAxis. The
* parameters are described in the documentation of
* `sinqAxis::doMoveVelocity`.
*
* @param minVelocity
* @param maxVelocity
* @param acceleration
* @return asynStatus
*/
asynStatus doMoveVelocity(double minVelocity, double maxVelocity,
double acceleration);
/**
* @brief Implementation of the `doMove` function from sinqAxis. The
* parameters are described in the documentation of `sinqAxis::doMove`.
@@ -154,6 +167,12 @@ class HIDDEN masterMacsAxis : public sinqAxis {
*/
asynStatus readAxisStatus();
/**
* @brief Read the upper and lower limits and store them in the parameter
* library.
*/
asynStatus readLimits();
/*
The functions below read the specified status bit from the axisStatus (see
masterMacsAxisImpl redefinition in masterMacsAxis.cpp) bitset. Since a bit