Alex: Committing Mark's fixes to el737 devsup

This commit is contained in:
2023-09-12 16:43:24 +02:00
parent e3ac2962f5
commit 9422353107

View File

@ -289,7 +289,7 @@ static long el737_write_preset(scalerRecord *psr, int signal, unsigned long val)
{
EL737priv *priv;
//errlogPrintf("Setting preset %d to %ld\n", signal, val);
// errlogPrintf("EL737: Setting preset %d to %ld\n", signal, val);
priv = (EL737priv *)psr->dpvt;
if(signal >= 0 && signal < 13){
@ -298,7 +298,7 @@ static long el737_write_preset(scalerRecord *psr, int signal, unsigned long val)
if(signal == THRESHVAL){
priv->sendThreshold = 1;
epicsEventSignal(priv->wakeUp);
//errlogPrintf("Setting threshold \n");
// errlogPrintf("EL737: Setting threshold \n");
}
return 0;
@ -311,7 +311,7 @@ static long el737_arm(scalerRecord *psr, int val)
priv = (EL737priv *)psr->dpvt;
priv->countCommand = val;
//errlogPrintf("Sending arm %d \n", val);
// errlogPrintf("EL737: Sending arm %d \n", val);
epicsEventSignal(priv->wakeUp);
@ -323,7 +323,7 @@ static long el737_done(scalerRecord *psr)
EL737priv *priv;
priv = (EL737priv *)psr->dpvt;
// errlogPrintf("Calling done with %d\n", psr->cnt);
// errlogPrintf("EL737: Calling done with %d\n", psr->cnt);
if(priv->counting && psr->cnt == 0){
priv->countCommand = 0;
epicsEventSignal(priv->wakeUp);
@ -345,6 +345,8 @@ static asynStatus el737_transactCommand(EL737priv *priv,char command[COMLEN],cha
pasynOctetSyncIO->flush(priv->asynContext);
// errlogPrintf("EL737: sending command %s\n", command);
strcpy(message,"");
status = pasynOctetSyncIO->writeRead(priv->asynContext, command, strlen(command),
reply,COMLEN, 1.,&out,&in,&reason);
@ -390,6 +392,8 @@ static asynStatus el737_transactCommand(EL737priv *priv,char command[COMLEN],cha
errlogPrintf("Lost response to %s with EAGAIN\n", command);
} else {
snprintf(message,sizeof(message), "Lost communication with errno %d", errno);
/* force a reconnect */
pasynOctetSyncIO->disconnect(priv->asynContext);
}
}
if(priv->dbInit){
@ -405,7 +409,7 @@ static asynStatus el737_transactCommand(EL737priv *priv,char command[COMLEN],cha
static asynStatus sendStop(EL737priv *priv)
{
char command[COMLEN], reply[COMLEN];
//errlogPrintf("Sending stop\n");
// errlogPrintf("EL737: Sending stop\n");
strcpy(command,"S");
return el737_transactCommand(priv,command,reply);
}
@ -440,7 +444,7 @@ static void runEvents(EL737priv *priv)
}
sprintf(command,"DL %d %d", (int)threshCounter,
(int)myThreshold);
errlogPrintf("Sending threshold command %s\n", command);
// errlogPrintf("Sending threshold command %s\n", command);
status = el737_transactCommand(priv,command,reply);
sprintf(command,"DR %d", (int)threshCounter);
status = el737_transactCommand(priv, command,reply);
@ -458,7 +462,7 @@ static void runEvents(EL737priv *priv)
if(priv->presets[THRESHMON] > 0) {
sprintf(command,"DL %d %d", (int)priv->presets[THRESHMON],
(int)priv->presets[THRESHVAL]);
errlogPrintf("Sending threshold from presets, command %s\n", command);
// errlogPrintf("Sending threshold from presets, command %s\n", command);
status = el737_transactCommand(priv,command,reply);
sprintf(command,"DR %d", (int)priv->presets[THRESHMON]);
status = el737_transactCommand(priv, command,reply);
@ -468,16 +472,16 @@ static void runEvents(EL737priv *priv)
}
}
//errlogPrintf("Doing a count command: %d\n", priv->countCommand);
errlogPrintf("EL737: Doing a count command: %d\n", priv->countCommand);
if(priv->countCommand == 1){
if(priv->presets[MODE] > 0) {
/* preset monitor */
sprintf(command,"MP %d", (int)priv->presets[MONITOR]);
//errlogPrintf("Starting preset monitor\n");
// errlogPrintf("EL737: Starting preset monitor\n");
} else {
/* preset time */
sprintf(command,"TP %f", priv->presets[TIMER]/1000.);
//errlogPrintf("Starting preset timer\n");
// errlogPrintf("EL737: Starting preset timer\n");
}
status = el737_transactCommand(priv,command,reply);
if(status == asynSuccess){
@ -552,11 +556,11 @@ static void el737Thread(void *param)
int rs, ctStatus;
long dbStatus, options, nElements = 1, pauseFlag = 0;
//errlogPrintf("Within EL737 thread \n");
// errlogPrintf("EL737: Within EL737 thread \n");
while(1){
evStatus = epicsEventWaitWithTimeout(priv->wakeUp,timeout);
//errlogPrintf("EL737 thread woke up with %d\n", evStatus);
// errlogPrintf("EL737 thread woke up with %d\n", evStatus);
if(evStatus == epicsEventWaitOK) {
/*
@ -583,7 +587,7 @@ static void el737Thread(void *param)
if(status != asynSuccess){
errlogPrintf("devScalerEL737::el737Thread communication problem %s\n",
priv->asynContext->errorMessage);
break;
continue;
}
sscanf(reply,"%d",&rs);
//errlogPrintf("RS = %d\n", rs);
@ -632,7 +636,7 @@ static void el737Thread(void *param)
if(status != asynSuccess){
errlogPrintf("devScalerEL737::el737Thread communication problem %s\n",
priv->asynContext->errorMessage);
break;
continue;
}
} else if(pauseFlag == 0 && ctStatus == 3){
strcpy(command,"CO");
@ -640,7 +644,7 @@ static void el737Thread(void *param)
if(status != asynSuccess){
errlogPrintf("devScalerEL737::el737Thread communication problem %s\n",
priv->asynContext->errorMessage);
break;
continue;
}
}
}