2014-05-15 11:44:28 -06:00
|
|
|
/*
|
|
|
|
* CurrentState.h
|
|
|
|
*
|
|
|
|
* Created on: 15 maj 2014
|
|
|
|
* Author: MattLech
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CURRENTSTATE_H_
|
|
|
|
#define CURRENTSTATE_H_
|
2014-05-15 15:46:47 -06:00
|
|
|
#include "Arduino.h"
|
2014-07-24 15:04:19 -06:00
|
|
|
#include "pins.h"
|
2014-05-15 11:44:28 -06:00
|
|
|
|
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
|
|
|
|
{
|
2014-05-15 11:44:28 -06:00
|
|
|
public:
|
2017-04-19 08:12:12 -06:00
|
|
|
static CurrentState *getInstance();
|
2017-04-26 14:45:05 -06:00
|
|
|
|
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);
|
2017-04-26 14:45:05 -06:00
|
|
|
|
2020-03-22 14:45:31 -06:00
|
|
|
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
|
|
|
|
2017-04-26 14:45:05 -06:00
|
|
|
void setEmergencyStop();
|
|
|
|
void resetEmergencyStop();
|
|
|
|
bool isEmergencyStop();
|
|
|
|
|
2017-12-10 14:01:13 -07:00
|
|
|
void setStepsPerMm(long stepsX, long stepsY, long stepsZ);
|
2020-03-22 14:45:31 -06:00
|
|
|
long getStepsPerMmX();
|
|
|
|
long getStepsPerMmY();
|
|
|
|
long getStepsPerMmZ();
|
|
|
|
|
2017-08-15 08:15:17 -06:00
|
|
|
|
2014-05-15 11:44:28 -06:00
|
|
|
private:
|
2017-04-19 08:12:12 -06:00
|
|
|
CurrentState();
|
|
|
|
CurrentState(CurrentState const &);
|
|
|
|
void operator=(CurrentState const &);
|
2017-04-26 14:45:05 -06:00
|
|
|
|
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;
|
|
|
|
|
2020-03-22 14:45:31 -06:00
|
|
|
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;
|
|
|
|
|
|
|
|
|
2017-04-26 14:45:05 -06:00
|
|
|
bool emergencyStop = false;
|
2014-05-15 11:44:28 -06:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* CURRENTSTATE_H_ */
|