|
@@ -14,7 +14,7 @@ Atm_Teenstep& Atm_Teenstep::begin(Stepper & motorRef, StepControl & stepControlR
|
|
|
/* STOPPING */ ENT_STOPPING, -1, -1, -1, -1, -1, EMERGENCY_STOP, EMERGENCY_STOP, EMERGENCY_STOP, -1, -1, RUNNING, -1, -1, -1,
|
|
|
/* EMERGENCY_STOP */ ENT_EMERGENCY_STOP, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, RUNNING, -1, ENABLED, -1,
|
|
|
/* HOMING_HIGH */ ENT_HOMING_HIGH, -1, EXT_HOMING_HIGH, -1, -1, -1, ENABLED, -1, EMERGENCY_STOP, STOPPING, -1, -1, -1, -1, -1,
|
|
|
- /* HOMING_LOW */ ENT_HOMING_LOW, -1, EXT_HOMING_LOW, -1, -1, -1, -1, ENABLED, EMERGENCY_STOP, STOPPING, -1, -1, -1, -1, -1,
|
|
|
+ /* HOMING_LOW */ ENT_HOMING_LOW, -1, EXT_HOMING_LOW, -1, -1, -1, -1, ENABLED, EMERGENCY_STOP, STOPPING, -1, -1, -1, -1, -1,
|
|
|
};
|
|
|
// clang-format on
|
|
|
Machine::begin( state_table, ELSE );
|
|
@@ -70,34 +70,43 @@ void Atm_Teenstep::action( int id ) {
|
|
|
switch ( id ) {
|
|
|
long int tempStep ;
|
|
|
case ENT_DISABLED:
|
|
|
+ push(connectors, ON_CHANGE, 0, state(), 0);
|
|
|
enabled = _enableReversed ? HIGH : LOW;
|
|
|
digitalWrite(_enablePin, enabled);
|
|
|
sendOSC();
|
|
|
return;
|
|
|
case ENT_ENABLED:
|
|
|
+ push(connectors, ON_CHANGE, 0, state(), 0);
|
|
|
enabled = _enableReversed ? LOW : HIGH ;
|
|
|
digitalWrite(_enablePin, enabled);
|
|
|
sendOSC();
|
|
|
return;
|
|
|
case ENT_RUNNING:
|
|
|
+ push(connectors, ON_CHANGE, 0, state(), 0);
|
|
|
+ push(connectors, ON_CHANGE, 0, 2, 0);
|
|
|
return;
|
|
|
case LP_RUNNING:
|
|
|
tempStep = motor->getPosition();
|
|
|
- //connectors[ON_ONCHANGEPOSITION].push(_currentStep);
|
|
|
- // if (tempStep != _currentStep){push( connectors, ON_ONCHANGEPOSITION, 0, _currentStep, 0 );} ;
|
|
|
- _currentStep = tempStep;
|
|
|
+ if (tempStep != _currentStep){
|
|
|
+ _currentStep = tempStep;
|
|
|
+ push(connectors, ON_CHANGEPOSITION, 0, _currentStep, 0);
|
|
|
+ }
|
|
|
+
|
|
|
//updateLimitSwitch();
|
|
|
sendOSC();
|
|
|
return;
|
|
|
case ENT_STOPPING:
|
|
|
+ push(connectors, ON_CHANGE, 0, state(), 0);
|
|
|
sendOSC();
|
|
|
return;
|
|
|
case ENT_EMERGENCY_STOP:
|
|
|
+ push(connectors, ON_CHANGE, 0, state(), 0);
|
|
|
controller->emergencyStop();
|
|
|
trigger(EVT_ENABLE);
|
|
|
sendOSC();
|
|
|
return;
|
|
|
case ENT_HOMING_HIGH:
|
|
|
+ push(connectors, ON_CHANGE, 0, state(), 0);
|
|
|
if(_limitType) {
|
|
|
motor->setTargetRel(2147483647);
|
|
|
controller->moveAsync(*motor);
|
|
@@ -107,18 +116,21 @@ void Atm_Teenstep::action( int id ) {
|
|
|
case EXT_HOMING_HIGH:
|
|
|
controller->emergencyStop();
|
|
|
if(last_trigger == EVT_LIMIT_HIGH){
|
|
|
+ push(connectors, ON_LIMITHIGH, 0, 1, 0);
|
|
|
_maxStep = motor->getPosition();
|
|
|
Serial.print("Stepper maxPos ");
|
|
|
Serial.println(motor->getPosition());
|
|
|
trigger(EVT_ENABLE);
|
|
|
}
|
|
|
else{
|
|
|
+ push(connectors, ON_LIMITLOW, 0, 1, 0);
|
|
|
Serial.println("homing failed ");
|
|
|
trigger(EVT_EMERGENCYSTOP);
|
|
|
}
|
|
|
|
|
|
return;
|
|
|
case ENT_HOMING_LOW:
|
|
|
+ push(connectors, ON_CHANGE, 0, state(), 0);
|
|
|
if(_limitType) {
|
|
|
motor->setTargetRel(-2147483647);
|
|
|
controller->moveAsync(*motor);
|
|
@@ -128,12 +140,14 @@ void Atm_Teenstep::action( int id ) {
|
|
|
case EXT_HOMING_LOW:
|
|
|
controller->emergencyStop();
|
|
|
if(last_trigger == EVT_LIMIT_LOW){
|
|
|
+ push(connectors, ON_LIMITLOW, 0, 1, 0);
|
|
|
motor->setPosition(0);
|
|
|
Serial.print("Stepper homed ");
|
|
|
Serial.println(motor->getPosition());
|
|
|
trigger(EVT_ENABLE);
|
|
|
}
|
|
|
else{
|
|
|
+ push(connectors, ON_LIMITHIGH, 0, 1, 0);
|
|
|
Serial.println("homing failed ");
|
|
|
trigger(EVT_EMERGENCYSTOP);
|
|
|
}
|
|
@@ -300,7 +314,7 @@ Atm_Teenstep& Atm_Teenstep::ontarget() {
|
|
|
|
|
|
Atm_Teenstep& Atm_Teenstep::move(long int stepRel) {
|
|
|
_targetStep = _currentStep + stepRel;
|
|
|
- Serial.println(_targetStep);
|
|
|
+ //Serial.println(_targetStep);
|
|
|
motor->setTargetAbs(_targetStep);
|
|
|
controller->moveAsync(*motor);
|
|
|
enable();
|
|
@@ -324,7 +338,6 @@ Atm_Teenstep& Atm_Teenstep::disable() {
|
|
|
|
|
|
Atm_Teenstep& Atm_Teenstep::enable() {
|
|
|
trigger( EVT_ENABLE );
|
|
|
- return *this;
|
|
|
}
|
|
|
|
|
|
Atm_Teenstep& Atm_Teenstep::homing(bool direction) {
|