#ifndef TorchHeightControl_h
#define TorchHeightControl_h
#include "Energia.h"
#include "Axis.h"
class OutputPin;
class InputPin;
class AnalogPin;
class Machine;
class TorchHeightControl : public Axis {
public:
TorchHeightControl(
char* data,
String* msgPtr,
Machine* parent );
virtual ~TorchHeightControl();
// Called automatically after derived class destructor
void
setArcVector(
float xyArcLength,
float ayArcOffset,
float azArcOffset );
void
startPlasma( bool on );
bool
arcEstablished();
virtual void
interpolationIsr(
Machine* machine );
virtual bool
isTorchAxis();
float setVoltage;
protected:
private:
OutputPin* plasmaStart;
InputPin* arcTransfer;
AnalogPin* arcVoltage;
Axis* xAxis;
Axis* yAxis;
Axis* zAxis;
Axis* torchRotationAxis;
float xyArcLength;
float xArcOffset;
float yArcOffset;
float zArcOffset;
float headRotationAngleRad;
float headRotationSin;
float headRotationCos;
float cuttingAngleRad;
float integral;
float calabration;
float proportionalComponent;
float integralComponent;
};
#endif