Change state transition on limit switch event to ensure that motor is stopped before turning it off.

r2505 | dcl | 2008-05-07 10:14:28 +1000 (Wed, 07 May 2008) | 2 lines
This commit is contained in:
Douglas Clowes
2008-05-07 10:14:28 +10:00
parent 0e4be397d5
commit a143b9905e

View File

@@ -2245,13 +2245,13 @@ static void DMCState_Moving(pDMC2280Driv self, pEvtEvent event) {
if (self->stopCode == 2) {
self->errorCode = FWDLIM;
self->driver_status = HWFault;
change_state(self, DMCState_OffTimer);
change_state(self, DMCState_MotorHalt);
return;
}
else if (self->stopCode == 3) {
self->errorCode = RVRSLIM;
self->driver_status = HWFault;
change_state(self, DMCState_OffTimer);
change_state(self, DMCState_MotorHalt);
return;
}
else if (self->stopCode == 4) {
@@ -2268,7 +2268,7 @@ static void DMCState_Moving(pDMC2280Driv self, pEvtEvent event) {
self->driver_status = HWFault;
}
if (self->driver_status == HWFault) {
change_state(self, DMCState_OffTimer);
change_state(self, DMCState_MotorHalt);
return;
}
}
@@ -2276,7 +2276,7 @@ static void DMCState_Moving(pDMC2280Driv self, pEvtEvent event) {
snprintf(self->dmc2280Error, CMDLEN, "BAD Stop Code %d",
self->stopCode);
self->driver_status = HWFault;
change_state(self, DMCState_OffTimer);
change_state(self, DMCState_MotorHalt);
return;
}
if (self->moving) {