This broke the realtime build. limit.h is not available. http://buildbot.linuxcnc.org/buildbot-admin/builders/hardy-i386-realtime-rip/builds/380/steps/compile/logs/stdio
On Apr 2, 2012, at 16:44 , Michael Haberler wrote: > motion,tp: dont treat motion id zero special > > this defines a motion id value MOTION_INVALID_ID which shall never be used > when generating a motion. When comparing motion id's, one should first > test whether the motion id is valid with MOTION_ID_VALID(id), > and only then for equality. > > This patch removes the anomaly with motion id zero, which gave cause to > several workarounds, like negative MDI line numbers. > > > http://git.linuxcnc.org/?p=emc2.git;a=commitdiff;h=cfd174a > > --- > src/emc/kinematics/tp.c | 20 ++++++++++---------- > src/emc/motion/motion.h | 9 +++++++++ > 2 files changed, 19 insertions(+), 10 deletions(-) > > diff --git a/src/emc/kinematics/tp.c b/src/emc/kinematics/tp.c > index d1f2f44..d80e23d 100644 > --- a/src/emc/kinematics/tp.c > +++ b/src/emc/kinematics/tp.c > @@ -670,8 +670,8 @@ int tpRunCycle(TP_STRUCT * tp, long period) > EmcPose secondary_before, secondary_after; > EmcPose primary_displacement, secondary_displacement; > static double spindleoffset; > - static int waiting_for_index = 0; > - static int waiting_for_atspeed = 0; > + static int waiting_for_index = MOTION_INVALID_ID; > + static int waiting_for_atspeed = MOTION_INVALID_ID; > double save_vel; > static double revs; > EmcPose target; > @@ -763,8 +763,8 @@ int tpRunCycle(TP_STRUCT * tp, long period) > tp->execId = 0; > tp->motionType = 0; > tp->synchronized = 0; > - waiting_for_index = 0; > - waiting_for_atspeed = 0; > + waiting_for_index = MOTION_INVALID_ID; > + waiting_for_atspeed = MOTION_INVALID_ID; > emcmotStatus->spindleSync = 0; > tpResume(tp); > return 0; > @@ -775,20 +775,20 @@ int tpRunCycle(TP_STRUCT * tp, long period) > } > > // this is no longer the segment we were waiting_for_index for > - if(waiting_for_index && waiting_for_index != tc->id) > + if (MOTION_ID_VALID(waiting_for_index) && waiting_for_index != tc->id) > { > rtapi_print_msg(RTAPI_MSG_ERR, > "Was waiting for index on motion id %d, but reached id %d\n", > waiting_for_index, tc->id); > - waiting_for_index = 0; > + waiting_for_index = MOTION_INVALID_ID; > } > - if(waiting_for_atspeed && waiting_for_atspeed != tc->id) > + if (MOTION_ID_VALID(waiting_for_atspeed) && waiting_for_atspeed != > tc->id) > { > > rtapi_print_msg(RTAPI_MSG_ERR, > "Was waiting for atspeed on motion id %d, but reached id > %d\n", > waiting_for_atspeed, tc->id); > - waiting_for_atspeed = 0; > + waiting_for_atspeed = MOTION_INVALID_ID; > } > > // check for at-speed before marking the tc active > @@ -797,7 +797,7 @@ int tpRunCycle(TP_STRUCT * tp, long period) > /* spindle is still not at the right speed: wait */ > return 0; > } else { > - waiting_for_atspeed = 0; > + waiting_for_atspeed = MOTION_INVALID_ID; > } > } > > @@ -853,7 +853,7 @@ int tpRunCycle(TP_STRUCT * tp, long period) > } else { > /* passed index, start the move */ > emcmotStatus->spindleSync = 1; > - waiting_for_index=0; > + waiting_for_index = MOTION_INVALID_ID; > tc->sync_accel=1; > revs=0; > } > diff --git a/src/emc/motion/motion.h b/src/emc/motion/motion.h > index 16e794f..dd858ad 100644 > --- a/src/emc/motion/motion.h > +++ b/src/emc/motion/motion.h > @@ -79,6 +79,15 @@ to another. > #include "emcmotcfg.h" /* EMCMOT_MAX_JOINTS */ > #include "kinematics.h" > #include <stdarg.h> > +#include <limits.h> > + > + > +// define a special value to denote an invalid motion ID > +// NB: do not ever generate a motion id of INT_MIN > +// this should be really be tested for in command.c > + > +#define MOTION_INVALID_ID INT_MIN > +#define MOTION_ID_VALID(x) ((x) != MOTION_INVALID_ID) > > #ifdef __cplusplus > extern "C" { > > ------------------------------------------------------------------------------ > Better than sec? Nothing is better than sec when it comes to > monitoring Big Data applications. Try Boundary one-second > resolution app monitoring today. Free. > http://p.sf.net/sfu/Boundary-dev2dev > _____________________________________________ > Emc-commit mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-commit -- Sebastian Kuzminsky ------------------------------------------------------------------------------ Better than sec? Nothing is better than sec when it comes to monitoring Big Data applications. Try Boundary one-second resolution app monitoring today. Free. http://p.sf.net/sfu/Boundary-dev2dev _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
