farmbot-arduino-firmware/src/F13Handler.cpp

77 lines
1.8 KiB
C++
Raw Normal View History

2014-07-23 01:46:21 -06:00
/*
* F13Handler.cpp
*
* Created on: 2014/07/21
* Author: MattLech
*/
#include "F13Handler.h"
2017-04-19 08:12:12 -06:00
static F13Handler *instance;
F13Handler *F13Handler::getInstance()
{
if (!instance)
{
instance = new F13Handler();
};
return instance;
};
F13Handler::F13Handler()
{
2014-07-23 01:46:21 -06:00
}
2017-04-19 08:12:12 -06:00
int F13Handler::execute(Command *command)
{
2014-07-23 01:46:21 -06:00
2017-04-19 08:12:12 -06:00
if (LOGGING)
{
Serial.print("R99 HOME Z\r\n");
}
2014-07-23 01:46:21 -06:00
2019-12-02 14:07:28 -07:00
Movement::getInstance()->moveToCoords(0, 0, 0, 0, 0, 0, false, false, true);
2014-07-23 01:46:21 -06:00
int homeIsUp = ParameterList::getInstance()->getValue(MOVEMENT_HOME_UP_X);
int moveAwayCoord = 10;
int execution;
bool emergencyStop;
if (homeIsUp == 1)
{
moveAwayCoord = -moveAwayCoord;
}
int stepNr;
// Move to home position. Then 3 times move away and move to home again.
for (int stepNr = 0; stepNr < 7; stepNr++)
{
switch (stepNr)
{
2019-12-02 14:07:28 -07:00
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;
}
execution = CurrentState::getInstance()->getLastError();
emergencyStop = CurrentState::getInstance()->isEmergencyStop();
if (emergencyStop || execution != 0)
{
break;
}
}
2017-04-19 08:12:12 -06:00
if (LOGGING)
{
CurrentState::getInstance()->print();
}
return 0;
2014-07-23 01:46:21 -06:00
}