#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; long _homeX; long _homeY; long _zeroX; long _zeroY; long _currentX; long _currentY; long _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