- added general binary scriptcontext protocoll
- improved some drivers
This commit is contained in:
10
ipsdriv.c
10
ipsdriv.c
@ -62,6 +62,9 @@ static int IpsOk(Ips * drv)
|
||||
return 1; /* connection not yet confirmed */
|
||||
if (drv->perswitch)
|
||||
return 1;
|
||||
if (drv->lastfield == PAR_NAN) {
|
||||
drv->lastfield = drv->persfield;
|
||||
}
|
||||
if (fabs(drv->persfield - drv->lastfield) < 1e-5)
|
||||
return 1;
|
||||
if (drv->force != 0)
|
||||
@ -186,7 +189,7 @@ void IpsParDef(void *object)
|
||||
|
||||
ParName("lastfield");
|
||||
ParSave(1);
|
||||
ParFloat(&drv->lastfield, 0);
|
||||
ParFloat(&drv->lastfield, PAR_NAN);
|
||||
|
||||
ParName("confirm");
|
||||
ParCmd(IpsConfirm, NULL);
|
||||
@ -232,6 +235,7 @@ static void IpsStatus(Ips * drv)
|
||||
break;
|
||||
case '1':
|
||||
ParPrintf(drv, eError, "magnet quenched");
|
||||
drv->lastfield = PAR_NAN;
|
||||
*code = EASE_FAULT;
|
||||
return;
|
||||
case '2':
|
||||
@ -358,6 +362,7 @@ static long IpsStart(long pc, void *object)
|
||||
FsmCall(IpsRead);
|
||||
return __LINE__;
|
||||
case __LINE__: /**********************************/
|
||||
drv->d.targetValue = drv->persfield;
|
||||
|
||||
quit:
|
||||
return 0;
|
||||
@ -398,6 +403,9 @@ static long IpsChangeField(long pc, void *object)
|
||||
drv->remote = 2;
|
||||
if (!IpsOk(drv))
|
||||
goto finish;
|
||||
if (drv->lastfield == PAR_NAN) {
|
||||
drv->lastfield = drv->persfield;
|
||||
}
|
||||
if (fabs(drv->d.targetValue - drv->lastfield) < 1e-5) {
|
||||
ParPrintf(drv, -1, "IPS: we are already at field %f",
|
||||
drv->lastfield);
|
||||
|
Reference in New Issue
Block a user