From e36ced571841bf0caa2c777cbdb9c481031f55b0 Mon Sep 17 00:00:00 2001 From: Mark Koennecke Date: Mon, 7 Apr 2014 14:06:48 +0200 Subject: [PATCH] Improved error reporting in eigermono --- eigermono.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/eigermono.c b/eigermono.c index 057492b..a8ad6f0 100644 --- a/eigermono.c +++ b/eigermono.c @@ -175,7 +175,7 @@ static void writeMotPos(SConnection * pCon, int silent, char *name, static long startTASMotor(pMotor mot, SConnection * pCon, char *name, double target, int silent, int stopFixed) { - float val, fixed, precision = MOTPREC; + float val, fixed, fHard, precision = MOTPREC; long status = NOTSTARTED; char buffer[132]; pIDrivable pDriv = NULL; @@ -195,18 +195,22 @@ static long startTASMotor(pMotor mot, SConnection * pCon, char *name, } return NOTSTARTED; } + if(MotorCheckBoundary(mot,target,&fHard,buffer,sizeof(buffer)) == 0){ + SCPrintf(pCon,eLog,"ERROR: %s", buffer); + } } mot->stopped = 0; if (ABS(val - target) > precision) { status = StartDriveTask(mot, pCon, name, (float)target); if(status < 0){ SCPrintf(pCon,eLog,"ERROR: failed to drive %s to %f", name, target); + } else { + /* + to force updates on targets + */ + InvokeNewTarget(pServ->pExecutor, name, target); + writeMotPos(pCon, silent, name, val, target); } - /* - to force updates on targets - */ - InvokeNewTarget(pServ->pExecutor, name, target); - writeMotPos(pCon, silent, name, val, target); return status; } return NOTSTARTED;