- 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:
10
drive.c
10
drive.c
@ -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]);
|
||||
|
Reference in New Issue
Block a user