- various enhancements in drivers
This commit is contained in:
24
lsc370driv.c
24
lsc370driv.c
@ -54,6 +54,7 @@ typedef struct {
|
||||
int range;
|
||||
int autoRange;
|
||||
int index;
|
||||
int controlChan;
|
||||
} Lsc370;
|
||||
|
||||
static ParClass lsc370Class = { "LSC370", sizeof(Lsc370) };
|
||||
@ -126,7 +127,11 @@ static void Lsc370ParDef(void *object)
|
||||
|
||||
ParName("set");
|
||||
ParTail("K");
|
||||
ParFloat(&drv->set, PAR_NAN);
|
||||
if (EaseUpdate(EASE_RUN)) {
|
||||
ParFloat(&drv->d.targetValue, PAR_NAN);
|
||||
} else {
|
||||
ParFloat(&drv->set, PAR_NAN);
|
||||
}
|
||||
|
||||
ParName("htr");
|
||||
ParTail("%");
|
||||
@ -174,6 +179,11 @@ static void Lsc370ParDef(void *object)
|
||||
ParAccess(usUser);
|
||||
ParInt(&drv->ighHeater, -1);
|
||||
|
||||
ParName("controlChan");
|
||||
ParList(NULL);
|
||||
ParAccess(usUser);
|
||||
ParInt(&drv->controlChan, 1);
|
||||
|
||||
ParName("currentEx");
|
||||
EaseUpdate(RDGRNG_FLAG);
|
||||
ParEnum(currentList);
|
||||
@ -276,6 +286,10 @@ static long Lsc370Read(long pc, void *object)
|
||||
default: /* FSM BEGIN ****************************** */
|
||||
drv->index = 0;
|
||||
chanLoop:
|
||||
if (drv->channel[drv->index] == 0) {
|
||||
drv->temp[drv->index] == PAR_NAN;
|
||||
goto noRead;
|
||||
}
|
||||
snprintf(buf, sizeof buf, "RDGK?%d", drv->channel[drv->index]);
|
||||
EaseWrite(eab, buf);
|
||||
return __LINE__;
|
||||
@ -284,6 +298,8 @@ static long Lsc370Read(long pc, void *object)
|
||||
if (1 == sscanf(eab->ans, "%f", &x)) {
|
||||
drv->temp[drv->index] = x;
|
||||
}
|
||||
|
||||
noRead:
|
||||
drv->index++;
|
||||
if (drv->index < MAX_CHAN)
|
||||
goto chanLoop;
|
||||
@ -332,6 +348,9 @@ static long Lsc370Read(long pc, void *object)
|
||||
goto skipHtrRng;
|
||||
if (1 == sscanf(eab->ans, "%d", &rng)) {
|
||||
drv->htrRange = rng;
|
||||
if (rng == 0) {
|
||||
drv->set = 0;
|
||||
}
|
||||
}
|
||||
skipHtrRng:
|
||||
|
||||
@ -427,7 +446,8 @@ static long Lsc370Set(long pc, void *object)
|
||||
/* fall through */
|
||||
|
||||
htrrng:
|
||||
snprintf(cmd, sizeof cmd, "CSET 1,1,1,1,1,8,%g;CSET?", drv->resist);
|
||||
snprintf(cmd, sizeof cmd, "CSET %d,1,1,1,1,8,%g;CSET?",
|
||||
drv->controlChan, drv->resist);
|
||||
EaseWrite(eab, cmd);
|
||||
return __LINE__;
|
||||
case __LINE__: /**********************************/
|
||||
|
Reference in New Issue
Block a user