bug fixes

This commit is contained in:
zolliker
2005-04-29 06:35:18 +00:00
parent 95c91a77c4
commit 27a6ad9e1d
2 changed files with 11 additions and 16 deletions

View File

@ -327,13 +327,9 @@ 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");
@ -341,6 +337,10 @@ static int IpsChangeField(long pc, IpsDriv *me) {
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;

View File

@ -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);
}