This commit is contained in:
cvs
2002-08-22 14:58:58 +00:00
parent c95a7bbd9f
commit 85f7fc212e

View File

@ -1115,6 +1115,49 @@ void CalcMaxPower(void) {
} }
} }
int PutFloat(StrBuf *buf, int prec, float f) {
char num[32], fmt[32];
int l;
if (f == DATA_UNDEF) {
return StrPut(buf, "NaN", StrNONE);
} else {
sprintf(fmt, "%%.%dg", prec);
sprintf(num, fmt, f);
return StrPut(buf, num, StrNONE);
}
}
int PidSumHdl(int mode, void *base, int fd) {
StrBuf buf;
readTemp=1;
StrLink(&buf, pid);
StrClear(&buf);
ERR_I(PutFloat(&buf, 5, prop));
ERR_I(StrPut(&buf, " ", StrNONE));
ERR_I(PutFloat(&buf, 5, integ));
ERR_I(StrPut(&buf, " ", StrNONE));
ERR_I(PutFloat(&buf, 4, deriv));
ERR_I(StrPut(&buf, " /", ' '));
ERR_I(PutFloat(&buf, 4, prop*sqrt(scalPower/resist)/600));
ERR_I(StrPut(&buf, " A/K,", ' '));
ERR_I(PutFloat(&buf, 4, 1000.0/integ));
ERR_I(StrPut(&buf, " sec,", ' '));
ERR_I(PutFloat(&buf, 4, deriv));
ERR_I(StrPut(&buf, " sec/scalPower", ' '));
if (scalPower>0.5) {
ERR_I(PutFloat(&buf, 4, scalPower));
ERR_I(StrPut(&buf, " W", StrNONE));
} else {
ERR_I(PutFloat(&buf, 4, scalPower*1000));
ERR_I(StrPut(&buf, " mW", StrNONE));
}
return 0;
OnError:
return -1;
}
int SetMaxPower(void) { int SetMaxPower(void) {
static float p0, pold; static float p0, pold;
float plim; float plim;
@ -1142,6 +1185,8 @@ int SetMaxPower(void) {
} }
p0=scalPower; p0=scalPower;
pold=maxPower; pold=maxPower;
PidSumHdl(COC_RD, NULL, 0);
logfileOut(LOG_MAIN, "pid: %s\n", pid);
return 0; return 0;
OnError: return -1; OnError: return -1;
} }
@ -1755,6 +1800,8 @@ int PidHdl(int mode, void *base, int fd) {
return COC_DWR; return COC_DWR;
} else if (mode==COC_DWR) { } else if (mode==COC_DWR) {
ERR_P(LscCmd(ser,"PID [loop]:[prop],[integ],[deriv]")); ERR_P(LscCmd(ser,"PID [loop]:[prop],[integ],[deriv]"));
PidSumHdl(COC_RD, base, fd);
logfileOut(LOG_MAIN, "pid: %s\n", pid);
} }
return 0; return 0;
OnError: return -1; OnError: return -1;
@ -1860,19 +1907,6 @@ int GraHdl(int mode, void *base, int fd) {
OnError: return -1; OnError: return -1;
} }
int PutFloat(StrBuf *buf, int prec, float f) {
char num[32], fmt[32];
int l;
if (f == DATA_UNDEF) {
return StrPut(buf, "NaN", StrNONE);
} else {
sprintf(fmt, "%%.%dg", prec);
sprintf(num, fmt, f);
return StrPut(buf, num, StrNONE);
}
}
int ShowSensor(StrBuf *buf, SensorT *s, char *name, char *units, char lim) { int ShowSensor(StrBuf *buf, SensorT *s, char *name, char *units, char lim) {
if (s->present!=1) return 0; if (s->present!=1) return 0;
@ -2042,29 +2076,6 @@ EndStatus:
return -1; return -1;
} }
int PidSumHdl(int mode, void *base, int fd) {
StrBuf buf;
readTemp=1;
StrLink(&buf, pid);
StrClear(&buf);
ERR_I(PutFloat(&buf, 5, prop));
ERR_I(StrPut(&buf, " ", StrNONE));
ERR_I(PutFloat(&buf, 5, integ));
ERR_I(StrPut(&buf, " ", StrNONE));
ERR_I(PutFloat(&buf, 4, deriv));
ERR_I(StrPut(&buf, " /", ' '));
ERR_I(PutFloat(&buf, 4, prop*sqrt(scalPower/resist)/600));
ERR_I(StrPut(&buf, " A/K,", ' '));
ERR_I(PutFloat(&buf, 4, 1000.0/integ));
ERR_I(StrPut(&buf, " sec,", ' '));
ERR_I(PutFloat(&buf, 4, deriv));
ERR_I(StrPut(&buf, " sec", StrNONE));
return 0;
OnError:
return -1;
}
int RemoteHdl(int mode, void *base, int fd) { int RemoteHdl(int mode, void *base, int fd) {
if (mode==COC_WR) { if (mode==COC_WR) {
return COC_DWR; return COC_DWR;