TCCode TCmd::WakeUp( void ) { // does not change the actual motor int mid; double dd; BOOL bAllReady = TRUE; for (mid = 0; mid < mlGetAxisNumber(); mid++) if (!bMoveOk[mid]) { if (mlIsMoveFinish( mid )) { DelayTime( 5 ); if (mlGetDistance( mid, dd )) bMoveOk[mid] = TRUE; else bAllReady = FALSE; } else bAllReady = FALSE; } if (bAllReady) { bPositionValid = TRUE; if (bNoMeasure) { bNoMeasure = FALSE; return DoAction(); } else return CMeasure; } return CRecall; /* if (nAskIdx > 0) return CRecall; else return DoAction(); */ }
Nachfolgend die gerufene Funktion DoAction().
TCCode TCmd::DoAction( void ) { switch(eStep) { case CFirstStep: return FirstStep(); case CControlStep: return ControlStep(); case CReadyStep: return ReadyStep(); case CReady: return Ready(); } MessageBox( GetFocus(), "Unbekannter Schritt", "Meldung", MBINFO ); return CStop; }