bug fixes
This commit is contained in:
19
ipsdriv.c
19
ipsdriv.c
@ -327,20 +327,20 @@ static int IpsChangeField(long pc, IpsDriv *me) {
|
||||
|
||||
target_reached:
|
||||
eve->hwstate = HWIdle;
|
||||
EveWrite(eve, "A0"); /* hold */
|
||||
FSM_NEXT
|
||||
evc->eMode = EVMonitor; /* we are at field, drive has finished */
|
||||
if (!me->persmode) goto hold_finish;
|
||||
/* but we continue in the background */
|
||||
evc->eMode = EVMonitor;
|
||||
/* we are at field, drive has finished, but we continue in the background */
|
||||
me->tim = time(NULL);
|
||||
|
||||
stab3:
|
||||
FSM_WAIT(1)
|
||||
EveWrite(eve, "X");
|
||||
FSM_NEXT
|
||||
IpsStatus(me); /* just check for errors */
|
||||
if (time(NULL) < me->tim + 3) goto stab3; /* stabilize */
|
||||
|
||||
|
||||
EveWrite(eve, "A0"); /* hold */
|
||||
FSM_NEXT
|
||||
if (!me->persmode) goto finish;
|
||||
|
||||
EveWrite(eve, "H0");
|
||||
me->perswitch = 0;
|
||||
me->swtim = time(NULL);
|
||||
@ -361,11 +361,6 @@ static int IpsChangeField(long pc, IpsDriv *me) {
|
||||
FSM_NEXT
|
||||
goto finish;
|
||||
|
||||
hold_finish:
|
||||
EveWrite(eve, "A0");
|
||||
FSM_NEXT
|
||||
goto finish;
|
||||
|
||||
off_finish:
|
||||
if (me->perswitch) {
|
||||
me->lastfield = me->current;
|
||||
|
8
oicom.c
8
oicom.c
@ -115,11 +115,11 @@ double OiGetFlt(Eve *eve, int dig, int *pdig) {
|
||||
}
|
||||
|
||||
void OiSet(Eve *eve, char *cmd, double val, int dig) {
|
||||
char buf[64];
|
||||
|
||||
char buf[64];
|
||||
long lval;
|
||||
|
||||
if (eve->syntax == 0) {
|
||||
for (;dig>0;dig--) val=val*10;
|
||||
snprintf(buf, sizeof(buf), "%s%05d", cmd, (int)val);
|
||||
snprintf(buf, sizeof(buf), "%s%.*f", cmd, dig, val);
|
||||
} else {
|
||||
snprintf(buf, sizeof(buf), "%s%f", cmd, val);
|
||||
}
|
||||
|
Reference in New Issue
Block a user