- Connections write timeouts were incorrectly handled in asynnetc. Fixed.

- Implemented the desired run/drive behaviour: drive waits for what it started
  run starts, and success waits for everything to finish. This required
  changes to a lot of files.
- Fixed a bug in remob which supressed required messages
This commit is contained in:
koennecke
2009-04-17 12:52:01 +00:00
parent 50b0a5c4a7
commit 99d2485d22
39 changed files with 422 additions and 200 deletions

10
drive.c
View File

@ -107,7 +107,7 @@ int Drive(SConnection * pCon, SicsInterp * pInter, char *name, float fNew)
SCSetInterrupt(pCon, eAbortOperation);
return 0;
}
iRet = StartDevice(GetExecutor(), name, pDes, pDum, pCon, fNew);
iRet = StartDevice(GetExecutor(), name, pDes, pDum, pCon, RUNDRIVE, fNew);
if (!iRet) {
sprintf(pBueffel, "ERROR: cannot start device %s", name);
SCWrite(pCon, pBueffel, eError);
@ -143,7 +143,7 @@ int Drive(SConnection * pCon, SicsInterp * pInter, char *name, float fNew)
/*---------------------------------------------------------------------------*/
int Start2Run(SConnection * pCon, SicsInterp * pInter, char *name,
float fNew)
int level, float fNew)
{
CommandList *pObject = NULL;
pObjectDescriptor pDes = NULL;
@ -199,7 +199,7 @@ int Start2Run(SConnection * pCon, SicsInterp * pInter, char *name,
SCSetInterrupt(pCon, eAbortOperation);
return 0;
}
iRet = StartDevice(GetExecutor(), name, pDes, pDum, pCon, fNew);
iRet = StartDevice(GetExecutor(), name, pDes, pDum, pCon,level, fNew);
if (!iRet) {
return 0;
} else {
@ -315,7 +315,7 @@ int DriveWrapper(SConnection * pCon, SicsInterp * pSics, void *pData,
SetStatus(eOld);
return 0;
}
iRet = Start2Run(pCon, pSics, argv[i], dTarget);
iRet = Start2Run(pCon, pSics, argv[i], RUNDRIVE, dTarget);
if (!iRet) {
sprintf(pBueffel, "ERROR: cannot run %s to %s", argv[i],
argv[i + 1]);
@ -407,7 +407,7 @@ int RunWrapper(SConnection * pCon, SicsInterp * pSics, void *pData,
SetStatus(eOld);
return 0;
}
iRet = Start2Run(pCon, pSics, argv[i], dTarget);
iRet = Start2Run(pCon, pSics, argv[i], RUNRUN, dTarget);
if (!iRet) {
sprintf(pBueffel, "ERROR: cannot run %s to %s", argv[i],
argv[i + 1]);