farmbot-arduino-firmware/src/CurrentState.h

107 lines
1.9 KiB
C
Raw Normal View History

/*
* CurrentState.h
*
* Created on: 15 maj 2014
* Author: MattLech
*/
#ifndef CURRENTSTATE_H_
#define CURRENTSTATE_H_
#include "Arduino.h"
2014-07-24 15:04:19 -06:00
#include "pins.h"
2019-10-16 14:41:06 -06:00
enum ErrorListEnum
{
ERR_NO_ERROR = 0,
ERR_EMERGENCY_STOP = 1,
ERR_TIMEOUT = 2,
ERR_STALL_DETECTED = 3,
2020-02-12 18:39:40 -07:00
ERR_CALIBRATION_ERROR = 4,
2019-10-16 14:41:06 -06:00
ERR_INVALID_COMMAND = 14,
ERR_PARAMS_NOT_OK = 15,
2020-02-18 15:23:20 -07:00
ERR_STALL_DETECTED_X = 31,
ERR_STALL_DETECTED_Y = 32,
ERR_STALL_DETECTED_Z = 33,
2019-10-16 14:41:06 -06:00
};
2017-04-19 08:12:12 -06:00
class CurrentState
{
public:
2017-04-19 08:12:12 -06:00
static CurrentState *getInstance();
2017-04-19 08:12:12 -06:00
long getX();
long getY();
long getZ();
long *getPoint();
void setX(long);
void setY(long);
void setZ(long);
long getHomeMissedStepsX();
long getHomeMissedStepsY();
long getHomeMissedStepsZ();
long getHomeMissedStepsXscaled();
long getHomeMissedStepsYscaled();
long getHomeMissedStepsZscaled();
void setHomeMissedStepsX(long);
void setHomeMissedStepsY(long);
void setHomeMissedStepsZ(long);
2017-07-08 12:17:16 -06:00
int getLastError();
void setLastError(int error);
2017-04-19 08:12:12 -06:00
void setEndStopState(unsigned int, unsigned int, bool);
void printPosition();
2017-06-29 14:00:48 -06:00
String getPosition();
2017-04-19 08:12:12 -06:00
void storeEndStops();
void printEndStops();
void print();
void printBool(bool);
2016-10-02 15:43:39 -06:00
2017-04-19 08:12:12 -06:00
void setQ(long);
void resetQ();
void printQAndNewLine();
2017-06-29 14:00:48 -06:00
String getQAndNewLine();
2016-10-02 15:43:39 -06:00
void setEmergencyStop();
void resetEmergencyStop();
bool isEmergencyStop();
2017-12-10 14:01:13 -07:00
void setStepsPerMm(long stepsX, long stepsY, long stepsZ);
long getStepsPerMmX();
long getStepsPerMmY();
long getStepsPerMmZ();
2017-08-15 08:15:17 -06:00
private:
2017-04-19 08:12:12 -06:00
CurrentState();
CurrentState(CurrentState const &);
void operator=(CurrentState const &);
2019-12-02 14:07:28 -07:00
long stepsPerMmX = 1;
long stepsPerMmY = 1;
long stepsPerMmZ = 1;
2017-08-15 08:15:17 -06:00
2019-10-16 14:41:06 -06:00
int errorCode = 0;
long x = 0;
long y = 0;
long z = 0;
unsigned int speed = 0;
bool endStopState[3][2];
long Q = 0;
int lastError = 0;
long homeMissedStepX = 0;
long homeMissedStepY = 0;
long homeMissedStepZ = 0;
bool emergencyStop = false;
};
#endif /* CURRENTSTATE_H_ */