- various enhancements
This commit is contained in:
41
tecs/tecs.c
41
tecs/tecs.c
@@ -58,18 +58,19 @@ typedef struct {
|
||||
char typ;
|
||||
} SensorT;
|
||||
|
||||
enum Sensors { A, B, C, D, A1, A2, A3, A4, N_SENSORS };
|
||||
enum Sensors { A, B, C, D, A0, A1, A2, A3, A4, N_SENSORS };
|
||||
|
||||
static SensorT
|
||||
sensA={"A"},
|
||||
sensB={"B"},
|
||||
sensC={"C"},
|
||||
sensD={"D"},
|
||||
sensA0={"A0", DATA_UNDEF},
|
||||
sensA1={"A1", DATA_UNDEF},
|
||||
sensA2={"A2", DATA_UNDEF},
|
||||
sensA3={"A3", DATA_UNDEF},
|
||||
sensA4={"A4", DATA_UNDEF},
|
||||
*sensors[N_SENSORS]={&sensA, &sensB, &sensC, &sensD, &sensA1, &sensA2, &sensA3, &sensA4 },
|
||||
*sensors[N_SENSORS]={&sensA, &sensB, &sensC, &sensD, &sensA0, &sensA1, &sensA2, &sensA3, &sensA4 },
|
||||
*ctlSens=NULL, /* control sensor */
|
||||
*heliumSens=NULL,
|
||||
*auxSens=NULL,
|
||||
@@ -672,15 +673,15 @@ again:
|
||||
}
|
||||
if (sensA.type[0]>'0' && sensA.type[0]<='4') {
|
||||
nScan=sensA.type[0]-'0';
|
||||
for (i=4;i<4+nScan;i++) {
|
||||
for (i=5;i<5+nScan;i++) {
|
||||
s=sensors[i];
|
||||
s->present=-1;
|
||||
s->band=10;
|
||||
if (s->scale==0.0) s->scale=1.0;
|
||||
s->typ='1'+i-4;
|
||||
s->typ='1'+i-5;
|
||||
}
|
||||
sensA.type[0]='\0';
|
||||
for (i=4+nScan; i<N_SENSORS; i++) {
|
||||
for (i=5+nScan; i<N_SENSORS; i++) {
|
||||
sensors[i]->t=DATA_UNDEF;
|
||||
sensors[i]->present=0;
|
||||
}
|
||||
@@ -879,7 +880,7 @@ void LogMinMax(int new) {
|
||||
} else if (nScan==0) {
|
||||
return;
|
||||
}
|
||||
for (i=4; i<4+nScan; i++) {
|
||||
for (i=5; i<5+nScan; i++) {
|
||||
s1=sensors[i];
|
||||
if (s1->t!=DATA_UNDEF) {
|
||||
sprintf(buf1, " T%c %.5g", s1->ch[1], s1->t);
|
||||
@@ -1009,7 +1010,7 @@ int ReadTemp(void) {
|
||||
if (nScan>0) {
|
||||
while (1) { /* read until a non-selected channel found */
|
||||
if (iScan>=nScan) iScan=0;
|
||||
s=sensors[iScan+4];
|
||||
s=sensors[iScan+5];
|
||||
if (s->present<1) break;
|
||||
str_copy(chan, s->ch);
|
||||
ERR_P(LscCmd(ser, "KRDG?[chan]>fbuf;DIOST?>,out1"));
|
||||
@@ -1615,7 +1616,7 @@ int ConfigAlarms(float genLimit) {
|
||||
ERR_P(LscCmd(ser, "RELAY 1:1;BEEP:0"));
|
||||
relay=0;
|
||||
k=0;
|
||||
for (i=0;i<4+nScan;i++) {
|
||||
for (i=0;i<5+nScan;i++) {
|
||||
s=sensors[i];
|
||||
str_copy(buf1, s->ch);
|
||||
if (s->customAlarm==0 && genLimit>0.0) s->alarm=genLimit;
|
||||
@@ -1675,7 +1676,7 @@ void AssignTypes(void) {
|
||||
auxSens=NULL;
|
||||
testSens=NULL;
|
||||
test2Sens=NULL;
|
||||
for (i=0; i<4+nScan; i++) {
|
||||
for (i=0; i<5+nScan; i++) {
|
||||
s=sensors[i];
|
||||
if (s->present==1) {
|
||||
typ=s->typ;
|
||||
@@ -1736,7 +1737,7 @@ int Settings(void) {
|
||||
} else {
|
||||
ERR_P(LscCmd(ser, "PID [loop],[prop],[integ],[deriv]"));
|
||||
}
|
||||
for (i=0; i<4+nScan; i++) {
|
||||
for (i=0; i<5+nScan; i++) {
|
||||
s=sensors[i];
|
||||
if (i<4) {
|
||||
plug=plugs[i/2];
|
||||
@@ -1796,7 +1797,7 @@ int Settings(void) {
|
||||
DisplayFmt(auxSens, fields, &k);
|
||||
if (nScan>0) {
|
||||
i=0;
|
||||
while (i<nScan && DisplayFmt(sensors[i+4], fields, &k)) {
|
||||
while (i<nScan && DisplayFmt(sensors[i+5], fields, &k)) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
@@ -2491,6 +2492,19 @@ int PeriodicTask(void) {
|
||||
}
|
||||
}
|
||||
|
||||
if ((plug0.code1 & 0x2a) == 0x20) {
|
||||
sensA0.t = DATA_UNDEF;
|
||||
sensA1.t = DATA_UNDEF;
|
||||
sensA2.t = DATA_UNDEF;
|
||||
sensA3.t = DATA_UNDEF;
|
||||
switch ((int)scanChan) {
|
||||
case 0: sensA0.t = te; break;
|
||||
case 1: sensA1.t = te; break;
|
||||
case 2: sensA2.t = te; break;
|
||||
case 3: sensA3.t = te; break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
if (out1==30 && out2==29) {
|
||||
/* code conversion */
|
||||
plug0.code1=3*decod[cod2 % 8] ^ 2*decod[cod1 % 8]; /* ^ is exclusive OR */
|
||||
@@ -3105,7 +3119,7 @@ int StatusHdl(int mode, void *base, int fd) {
|
||||
if (test2Sens!=NULL) {
|
||||
ERR_I(ShowSensor(&buf, test2Sens, "T", "K", 0));
|
||||
}
|
||||
for (i=4; i<4+nScan; i++) {
|
||||
for (i=5; i<5+nScan; i++) {
|
||||
ERR_I(ShowSensor(&buf, sensors[i], "T", "K", 0));
|
||||
}
|
||||
if (auxSens!=NULL) {
|
||||
@@ -3298,6 +3312,7 @@ int main(int argc, char *argv[]) {
|
||||
CocDefStruct(sensB, SensorT);
|
||||
CocDefStruct(sensC, SensorT);
|
||||
CocDefStruct(sensD, SensorT);
|
||||
CocDefStruct(sensA0, SensorT);
|
||||
CocDefStruct(sensA1, SensorT);
|
||||
CocDefStruct(sensA2, SensorT);
|
||||
CocDefStruct(sensA3, SensorT);
|
||||
@@ -3438,6 +3453,7 @@ int main(int argc, char *argv[]) {
|
||||
CocAlias(Tb,sensB.t);
|
||||
CocAlias(Tc,sensC.t);
|
||||
CocAlias(Td,sensD.t);
|
||||
CocAlias(T0,sensA0.t);
|
||||
CocAlias(T1,sensA1.t);
|
||||
CocAlias(T2,sensA2.t);
|
||||
CocAlias(T3,sensA3.t);
|
||||
@@ -3561,6 +3577,7 @@ int main(int argc, char *argv[]) {
|
||||
ERR_P(DataCreateSet(NULL, "Te", &te, logPeriod, LOGLIFETIME, tim));
|
||||
ERR_P(DataCreateSet(NULL, "Tk", &tk, logPeriod, LOGLIFETIME, tim));
|
||||
ERR_P(DataCreateSet(NULL, "He", &he, logPeriod, LOGLIFETIME, tim));
|
||||
ERR_P(DataCreateSet(NULL, "T0", &sensA0.t, logPeriod, LOGLIFETIME, tim));
|
||||
ERR_P(DataCreateSet(NULL, "T1", &sensA1.t, logPeriod, LOGLIFETIME, tim));
|
||||
ERR_P(DataCreateSet(NULL, "T2", &sensA2.t, logPeriod, LOGLIFETIME, tim));
|
||||
ERR_P(DataCreateSet(NULL, "T3", &sensA3.t, logPeriod, LOGLIFETIME, tim));
|
||||
|
||||
Reference in New Issue
Block a user