From c812ce5e14cf476526d955edbce2effa9d922902 Mon Sep 17 00:00:00 2001 From: David Crocker Date: Sat, 18 Jan 2020 23:03:39 +0000 Subject: Major refactoring, bug fixes in function evaluation Changed all bitmaps to use the bitmap class from RRFLibraries Fixed bugs in functoin evaluation --- src/Movement/Kinematics/FiveBarScaraKinematics.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src/Movement/Kinematics/FiveBarScaraKinematics.cpp') diff --git a/src/Movement/Kinematics/FiveBarScaraKinematics.cpp b/src/Movement/Kinematics/FiveBarScaraKinematics.cpp index 0a7e7a40..ea16329c 100644 --- a/src/Movement/Kinematics/FiveBarScaraKinematics.cpp +++ b/src/Movement/Kinematics/FiveBarScaraKinematics.cpp @@ -819,10 +819,9 @@ void FiveBarScaraKinematics::GetAssumedInitialPosition(size_t numAxes, float pos AxesBitmap FiveBarScaraKinematics::AxesAssumedHomed(AxesBitmap g92Axes) const { // If both X and Y have been specified then we know the positions of both arm motors, otherwise we don't - const AxesBitmap xyAxes = MakeBitmap(X_AXIS) | MakeBitmap(Y_AXIS); - if ((g92Axes & xyAxes) != xyAxes) + if ((g92Axes & XyAxes) != XyAxes) { - g92Axes &= ~xyAxes; + g92Axes &= ~XyAxes; } return g92Axes; } @@ -830,10 +829,9 @@ AxesBitmap FiveBarScaraKinematics::AxesAssumedHomed(AxesBitmap g92Axes) const // Return the set of axes that must be homed prior to regular movement of the specified axes AxesBitmap FiveBarScaraKinematics::MustBeHomedAxes(AxesBitmap axesMoving, bool disallowMovesBeforeHoming) const { - constexpr AxesBitmap xyzAxes = MakeBitmap(X_AXIS) | MakeBitmap(Y_AXIS) | MakeBitmap(Z_AXIS); - if ((axesMoving & xyzAxes) != 0) + if (axesMoving.Intersects(XyzAxes)) { - axesMoving |= xyzAxes; + axesMoving |= XyzAxes; } return axesMoving; } @@ -911,14 +909,14 @@ bool FiveBarScaraKinematics::IsContinuousRotationAxis(size_t axis) const AxesBitmap FiveBarScaraKinematics::GetLinearAxes() const { - return MakeBitmap(Z_AXIS); + return AxesBitmap::MakeFromBits(Z_AXIS); } AxesBitmap FiveBarScaraKinematics::GetConnectedAxes(size_t axis) const { return (axis == X_AXIS || axis == Y_AXIS) - ? MakeBitmap(X_AXIS) | MakeBitmap(Y_AXIS) - : MakeBitmap(axis); + ? XyAxes + : AxesBitmap::MakeFromBits(axis); } // Recalculate the derived parameters -- cgit v1.2.3