.
This commit is contained in:
63
ighdriv.c
63
ighdriv.c
@ -56,9 +56,6 @@ static char *motorCommands[]={"G", "H", "N"};
|
||||
static char *gauges[]={"G1", "G2", "G3", "", "", "", "P1", "P2", NULL};
|
||||
typedef enum {G1,G2,G3,G4,G5,G6,P1,P2,n_PRESS} PressureGauges;
|
||||
|
||||
static char *closedOrOpen[]={"closed", "open", NULL};
|
||||
|
||||
|
||||
typedef struct {
|
||||
EaseDriv d;
|
||||
float setT;
|
||||
@ -90,14 +87,14 @@ static int IghPower2Range(float p) {
|
||||
int e;
|
||||
if (p <= 0) return 0;
|
||||
for (e = 1; e < 5; e++) {
|
||||
if (p < 1.9994) break;
|
||||
if (p < 1.9994e-3) break;
|
||||
p /= 10;
|
||||
}
|
||||
return e;
|
||||
}
|
||||
/*----------------------------------------------------------------------------*/
|
||||
static float IghRange2Max(int e) {
|
||||
static float elist[]={0,2,20,200,2000,20000};
|
||||
static float elist[]={0,0.002,0.02,0.2,2.0,20.0};
|
||||
if (e < 0) {
|
||||
e = 0;
|
||||
} else if (e > 5) {
|
||||
@ -112,15 +109,24 @@ static void IghParDef(void *object) {
|
||||
int i, flag, l, changed;
|
||||
char *vPos, *val;
|
||||
char fmt[8], vList[80];
|
||||
static char *na=NULL;
|
||||
float maxP;
|
||||
static char *heaterList[]={"off", "2uW", "20uW", "200uW", "2mW", "20mW", NULL};
|
||||
static char *closedOrOpen[]={"closed", "open", NULL};
|
||||
|
||||
ParName(""); ParTail("K"); ParFmt("%.4f");
|
||||
ParFloat(&drv->mixT, PAR_NAN);
|
||||
|
||||
ParName("Tset"); ParTail("K"); ParFmt("%.4f");
|
||||
if (eab->syntax == OLDIGH) ParList("all");
|
||||
ParFloat(&drv->setT, PAR_NAN);
|
||||
|
||||
if (eab->syntax == OLDIGH) {
|
||||
ParList("all");
|
||||
drv->setT = -1;
|
||||
ParFloat(&drv->setT, -1);
|
||||
} else {
|
||||
if (drv->setT < 0) drv->setT = 0;
|
||||
ParFloat(&drv->setT, PAR_NAN);
|
||||
}
|
||||
|
||||
ParName("TsorbSet");
|
||||
EaseUpdate(SORBS_FLAG); ParTail("K"); ParFmt("%.1f");
|
||||
ParFloat(&drv->sorbS, PAR_NAN);
|
||||
@ -138,28 +144,27 @@ static void IghParDef(void *object) {
|
||||
ParFloat(&drv->sorbT, PAR_NAN);
|
||||
|
||||
ParName("Pmix");
|
||||
if (drv->e >= 5 || drv->e < 1) {
|
||||
strcpy(fmt, "%.0f");
|
||||
} else {
|
||||
snprintf(fmt, sizeof fmt, "%%.%df", 4 - drv->e);
|
||||
}
|
||||
EaseUpdate(MIXP_FLAG); ParTail("uW"); ParFmt(fmt);
|
||||
EaseUpdate(MIXP_FLAG); ParTail("mW"); ParFmt("%.5g");
|
||||
ParFloat(&drv->mixP, PAR_NAN);
|
||||
|
||||
ParName("Pmax");
|
||||
EaseUpdate(MAXP_FLAG); ParTail("uW"); ParFmt("%g");
|
||||
if ((val = ParGetValueArg())) {
|
||||
drv->e = IghPower2Range(atof(val) * 0.9);
|
||||
}
|
||||
ParTail("mW"); ParFmt("%.5g");
|
||||
maxP = IghRange2Max(drv->e);
|
||||
ParFloat(&maxP, PAR_NAN);
|
||||
|
||||
ParName("HtrRange");
|
||||
EaseUpdate(MAXP_FLAG); ParEnum(heaterList); ParList(NULL);
|
||||
ParInt(&drv->e, PAR_NAN);
|
||||
if (ParActionIs(PAR_SET) > 0) {
|
||||
drv->mixP = 0;
|
||||
}
|
||||
|
||||
ParName("Pstill");
|
||||
EaseUpdate(STILL_FLAG); ParTail("mW"); ParFmt("%.3f");
|
||||
ParFloat(&drv->stillP, PAR_NAN);
|
||||
|
||||
ParName("Psorb");
|
||||
EaseUpdate(SORBP_FLAG); ParTail("W"); ParFmt("%.1f");
|
||||
EaseUpdate(SORBP_FLAG); ParTail("W"); ParFmt("%.3f");
|
||||
ParFloat(&drv->sorbP, PAR_NAN);
|
||||
|
||||
for (i=0; i<n_PRESS; i++) {
|
||||
@ -359,11 +364,11 @@ static long IghRead(long pc, void *object) {
|
||||
drv->mixP = 0;
|
||||
goto skip4;
|
||||
}
|
||||
if (EaseGetUpdate(drv, MIXP_FLAG)) goto skip4;
|
||||
if (EaseGetUpdate(drv, MIXP_FLAG) || EaseGetUpdate(drv, MAXP_FLAG)) goto skip4;
|
||||
EaseWrite(eab, "R4");
|
||||
return __LINE__; case __LINE__: /**********************************/
|
||||
if (EaseGetUpdate(drv, MIXP_FLAG)) goto skip4;
|
||||
drv->mixP = OxiGet(eab, 5 - drv->e, NULL, drv->mixP/10) * 10;
|
||||
if (EaseGetUpdate(drv, MIXP_FLAG) || EaseGetUpdate(drv, MAXP_FLAG)) goto skip4;
|
||||
drv->mixP = OxiGet(eab, 5 - drv->e, NULL, drv->mixP*100) * 0.01;
|
||||
skip4:
|
||||
|
||||
if (EaseCheckDoit(eab)) goto quit;
|
||||
@ -576,15 +581,25 @@ static long IghSet(long pc, void *object) {
|
||||
}
|
||||
OxiSet(eab, "M", mp, 0);
|
||||
return __LINE__; case __LINE__: /**********************************/
|
||||
if (drv->e == 0) goto loop;
|
||||
if (drv->e == 0) goto seta0;
|
||||
snprintf(buf, sizeof buf, "E%d", drv->e);
|
||||
EaseWrite(eab, buf);
|
||||
return __LINE__; case __LINE__: /**********************************/
|
||||
EaseWrite(eab, "A1");
|
||||
return __LINE__; case __LINE__: /**********************************/
|
||||
goto loop;
|
||||
|
||||
EaseWrite(eab, "A1");
|
||||
return __LINE__; case __LINE__: /**********************************/
|
||||
|
||||
|
||||
set_max_pow:
|
||||
if (drv->e == 0) goto seta0;
|
||||
snprintf(buf, sizeof buf, "E%d", drv->e);
|
||||
EaseWrite(eab, buf);
|
||||
return __LINE__; case __LINE__: /**********************************/
|
||||
EaseWrite(eab, "M0");
|
||||
return __LINE__; case __LINE__: /**********************************/
|
||||
EaseWrite(eab, "A1");
|
||||
return __LINE__; case __LINE__: /**********************************/
|
||||
goto loop;
|
||||
|
||||
|
Reference in New Issue
Block a user