diff --git a/src/F11Handler.cpp b/src/F11Handler.cpp index d75968d..01e2b0c 100644 --- a/src/F11Handler.cpp +++ b/src/F11Handler.cpp @@ -32,29 +32,33 @@ int F11Handler::execute(Command *command) } int homeIsUp = ParameterList::getInstance()->getValue(MOVEMENT_HOME_UP_X); - int moveAwayCoord = 10; + int A = 10; // move away coordinates int execution; bool emergencyStop; if (homeIsUp == 1) { - moveAwayCoord = -moveAwayCoord; + A = -A; } int stepNr; + long X = CurrentState::getInstance()->getX(); + long Y = CurrentState::getInstance()->getY(); + long Z = CurrentState::getInstance()->getZ(); + // Move to home position. Then 3 times move away and move to home again. for (int stepNr = 0; stepNr < 7; stepNr++) { switch (stepNr) { - case 0: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, true, false, false); break; - case 1: Movement::getInstance()->moveToCoords(moveAwayCoord, 0, 0, 0, 0, 0, false, false, false); break; - case 2: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, true, false, false); break; - case 3: Movement::getInstance()->moveToCoords(moveAwayCoord, 0, 0, 0, 0, 0, false, false, false); break; - case 4: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, true, false, false); break; - case 5: Movement::getInstance()->moveToCoords(moveAwayCoord, 0, 0, 0, 0, 0, false, false, false); break; - case 6: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, true, false, false); break; + case 0: Movement::getInstance()->moveToCoords(0, Y, Z, 0, 0, 0, true, false, false); break; + case 1: Movement::getInstance()->moveToCoords(A, Y, Z, 0, 0, 0, false, false, false); break; + case 2: Movement::getInstance()->moveToCoords(0, Y, Z, 0, 0, 0, true, false, false); break; + case 3: Movement::getInstance()->moveToCoords(A, Y, Z, 0, 0, 0, false, false, false); break; + case 4: Movement::getInstance()->moveToCoords(0, Y, Z, 0, 0, 0, true, false, false); break; + case 5: Movement::getInstance()->moveToCoords(A, Y, Z, 0, 0, 0, false, false, false); break; + case 6: Movement::getInstance()->moveToCoords(0, Y, Z, 0, 0, 0, true, false, false); break; } execution = CurrentState::getInstance()->getLastError(); diff --git a/src/F12Handler.cpp b/src/F12Handler.cpp index 7c00aa9..a44d42e 100644 --- a/src/F12Handler.cpp +++ b/src/F12Handler.cpp @@ -31,30 +31,34 @@ int F12Handler::execute(Command *command) Serial.print("R99 HOME Y\r\n"); } - int homeIsUp = ParameterList::getInstance()->getValue(MOVEMENT_HOME_UP_X); - int moveAwayCoord = 10; + int homeIsUp = ParameterList::getInstance()->getValue(MOVEMENT_HOME_UP_Y); + int A = 10; // move away coordinates int execution; bool emergencyStop; if (homeIsUp == 1) { - moveAwayCoord = -moveAwayCoord; + A = -A; } int stepNr; + long X = CurrentState::getInstance()->getX(); + long Y = CurrentState::getInstance()->getY(); + long Z = CurrentState::getInstance()->getZ(); + // Move to home position. Then 3 times move away and move to home again. for (int stepNr = 0; stepNr < 7; stepNr++) { switch (stepNr) { - case 0: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, true, false); break; - case 1: Movement::getInstance()->moveToCoords(0, moveAwayCoord, 0, 0, 0, 0, false, false, false); break; - case 2: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, true, false); break; - case 3: Movement::getInstance()->moveToCoords(0, moveAwayCoord, 0, 0, 0, 0, false, false, false); break; - case 4: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, true, false); break; - case 5: Movement::getInstance()->moveToCoords(0, moveAwayCoord, 0, 0, 0, 0, false, false, false); break; - case 6: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, true, false); break; + case 0: Movement::getInstance()->moveToCoords(X, 0, Z, 0, 0, 0, false, true, false); break; + case 1: Movement::getInstance()->moveToCoords(X, A, Z, 0, 0, 0, false, false, false); break; + case 2: Movement::getInstance()->moveToCoords(X, 0, Z, 0, 0, 0, false, true, false); break; + case 3: Movement::getInstance()->moveToCoords(X, A, Z, 0, 0, 0, false, false, false); break; + case 4: Movement::getInstance()->moveToCoords(X, 0, Z, 0, 0, 0, false, true, false); break; + case 5: Movement::getInstance()->moveToCoords(X, A, Z, 0, 0, 0, false, false, false); break; + case 6: Movement::getInstance()->moveToCoords(X, 0, Z, 0, 0, 0, false, true, false); break; } execution = CurrentState::getInstance()->getLastError(); diff --git a/src/F13Handler.cpp b/src/F13Handler.cpp index 31055e4..3f2ddb7 100644 --- a/src/F13Handler.cpp +++ b/src/F13Handler.cpp @@ -33,30 +33,34 @@ int F13Handler::execute(Command *command) Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, false, true); - int homeIsUp = ParameterList::getInstance()->getValue(MOVEMENT_HOME_UP_X); - int moveAwayCoord = 10; + int homeIsUp = ParameterList::getInstance()->getValue(MOVEMENT_HOME_UP_Z); + int A = 10; // move away coord int execution; bool emergencyStop; if (homeIsUp == 1) { - moveAwayCoord = -moveAwayCoord; + A = -A; } int stepNr; + long X = CurrentState::getInstance()->getX(); + long Y = CurrentState::getInstance()->getY(); + long Z = CurrentState::getInstance()->getZ(); + // Move to home position. Then 3 times move away and move to home again. for (int stepNr = 0; stepNr < 7; stepNr++) { switch (stepNr) { - case 0: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, false, true); break; - case 1: Movement::getInstance()->moveToCoords(0, 0, moveAwayCoord, 0, 0, 0, false, false, false); break; - case 2: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, false, true); break; - case 3: Movement::getInstance()->moveToCoords(0, 0, moveAwayCoord, 0, 0, 0, false, false, false); break; - case 4: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, false, true); break; - case 5: Movement::getInstance()->moveToCoords(0, 0, moveAwayCoord, 0, 0, 0, false, false, false); break; - case 6: Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, false, true); break; + case 0: Movement::getInstance()->moveToCoords(X, Y, 0, 0, 0, 0, false, false, true); break; + case 1: Movement::getInstance()->moveToCoords(X, Y, A, 0, 0, 0, false, false, false); break; + case 2: Movement::getInstance()->moveToCoords(X, Y, 0, 0, 0, 0, false, false, true); break; + case 3: Movement::getInstance()->moveToCoords(X, Y, A, 0, 0, 0, false, false, false); break; + case 4: Movement::getInstance()->moveToCoords(X, Y, 0, 0, 0, 0, false, false, true); break; + case 5: Movement::getInstance()->moveToCoords(X, Y, A, 0, 0, 0, false, false, false); break; + case 6: Movement::getInstance()->moveToCoords(X, Y, 0, 0, 0, 0, false, false, true); break; } execution = CurrentState::getInstance()->getLastError();