technoshop.laser_turret_debug/turret.h

77 lines
1.5 KiB
C++

#ifndef TURRET_H
#define TURRET_H
#include <kissStepper.h>
class Turret {
public:
enum Unit {
MM,
CM,
M,
RAD,
DEG,
STEP
};
Turret(
int pin_x_direction, int pin_x_pulse, int pin_x_enable, int pin_x_home,
int pin_y_direction, int pin_y_pulse, int pin_y_enable, int pin_y_home,
int pin_laser
);
Turret& init();
Turret& gotoHome();
Turret& gotoZero();
Turret& moveTo(double x, double y, double z, Unit unit = Turret::Unit::CM);
Turret& moveBy(double x, double y, double z, Unit unit = Turret::Unit::CM);
Turret& moveToX(double x, Unit unit = Turret::Unit::CM);
Turret& moveToY(double y, Unit unit = Turret::Unit::CM);
Turret& moveToZ(double z, Unit unit = Turret::Unit::CM);
Turret& moveByX(double x, Unit unit = Turret::Unit::CM);
Turret& moveByY(double y, Unit unit = Turret::Unit::CM);
Turret& moveByZ(double z, Unit unit = Turret::Unit::CM);
Turret& getPosition(double &x, double &y, double &z, Unit unit);
Turret& getHome(double &x, double &y, double &z, Unit unit);
Turret& getZero(double &x, double &y, double &z, Unit unit);
Turret& calibrate();
Turret& laserOn();
Turret& laserOff();
private:
kissStepper _stepperX;
kissStepper _stepperY;
int _homeX;
int _homeY;
int _zeroX;
int _zeroY;
int _currentX;
int _currentY;
int _currentZ;
int _pin_x_direction;
int _pin_x_pulse;
int _pin_x_enable;
int _pin_y_direction;
int _pin_y_pulse;
int _pin_y_enable;
int _pin_x_home;
int _pin_y_home;
int _pin_laser;
};
#endif