#ifndef TURRET_H #define TURRET_H #include 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