Fixed a task and a tasdrive issue

There is a rare condition when SICS has frehsly stared up and on the first call
to a coordinated driving, like in TAS, something fails. Then the group has ID 0,
the default and that one is always active. This has been fixed by starting valid
groups at 7, defining 0 ans IDUNDEFINED and checking in isTaskGroupRunning for
IDUNDEFINED

Then there is an issue in tasdrive. I added a call to CheckStatus when starting the
mono. This is necessary for the eiger monochromator as with that one starting is deferred
to the CheckSttaus function. The reason is that in other use cases, the looser might want
to drive a2 and a2w at the same time. This can only correctly be accomodated by deferring
the caclulations to the CheckStatus phase.
This commit is contained in:
2014-04-07 14:02:07 +02:00
parent fc8798d012
commit 722fab935e
3 changed files with 20 additions and 6 deletions

View File

@ -364,6 +364,11 @@ static int startMotors(ptasMot self, tasAngles angles,
*/
status = self->math->mono->SetValue(self->math->monoData,
pCon,angles.monochromator_two_theta);
/*
The call to CheckStatus is necessary because the eiger monochromator may not
start until then. Deferred until all parameters are known.
*/
self->math->mono->CheckStatus(self->math->monoData,pCon);
if(status != OKOK){
return status;
} else {