Added Undefined Severity field UDFS

With this, records can be configured to have a lower
alarm severity when they are undefined.
Sets initial severity at iocInit too.
This commit is contained in:
Andrew Johnson
2012-12-10 09:25:58 -06:00
parent 85ed3b9f4e
commit 5a498e26a1
19 changed files with 30 additions and 19 deletions
+7 -1
View File
@@ -110,7 +110,6 @@
prompt("Alarm Severity")
special(SPC_NOMOD)
menu(menuAlarmSevr)
initial("INVALID")
}
field(NSTA,DBF_MENU) {
prompt("New Alarm Status")
@@ -241,6 +240,13 @@
interest(1)
initial("1")
}
field(UDFS,DBF_MENU) {
prompt("Undefined Alarm Sevrty")
promptgroup(GUI_COMMON)
interest(1)
menu(menuAlarmSevr)
initial("INVALID")
}
%#include "epicsTime.h"
field(TIME,DBF_NOACCESS) {
prompt("Time")
+5
View File
@@ -33,6 +33,7 @@
#include "caeventmask.h"
#define epicsExportSharedSymbols
#include "alarm.h"
#include "dbBase.h"
#include "dbFldTypes.h"
#include "link.h"
@@ -415,6 +416,10 @@ static void doInitRecord0(dbRecordType *pdbRecordType, dbCommon *precord,
/* Reset the process active field */
precord->pact = FALSE;
/* Initial UDF severity */
if (precord->udf && precord->stat == UDF_ALARM)
precord->sevr = precord->udfs;
/* Init DSET NOTE that result may be NULL */
pdevSup = dbDTYPtoDevSup(pdbRecordType, precord->dtyp);
precord->dset = pdevSup ? pdevSup->pdset : NULL;
+1 -1
View File
@@ -62,7 +62,7 @@ static long read_stringin (stringinRecord *prec)
prec->inp.value.instio.string, &prec->time);
if (len >= sizeof prec->val) {
prec->udf = TRUE;
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
return -1;
}
prec->udf = FALSE;
+1 -1
View File
@@ -323,7 +323,7 @@ static void checkAlarms(aiRecord *prec, epicsTimeStamp *lastTime)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
prec->afvl = 0;
return;
}
+1 -1
View File
@@ -378,7 +378,7 @@ static void checkAlarms(aoRecord *prec)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
return;
}
+1 -1
View File
@@ -204,7 +204,7 @@ static void checkAlarms(biRecord *prec)
if(prec->udf == TRUE){
recGblSetSevr(prec,UDF_ALARM,INVALID_ALARM);
recGblSetSevr(prec,UDF_ALARM,prec->udfs);
return;
}
+1 -1
View File
@@ -353,7 +353,7 @@ static void checkAlarms(boRecord *prec)
/* check for udf alarm */
if(prec->udf == TRUE ){
recGblSetSevr(prec,UDF_ALARM,INVALID_ALARM);
recGblSetSevr(prec,UDF_ALARM,prec->udfs);
}
/* check for state alarm */
+1 -1
View File
@@ -299,7 +299,7 @@ static void checkAlarms(calcRecord *prec, epicsTimeStamp *timeLast)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
prec->afvl = 0;
return;
}
+2 -2
View File
@@ -526,7 +526,7 @@ static void checkAlarms(calcoutRecord *prec)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
return;
}
@@ -591,7 +591,7 @@ static void execOutput(calcoutRecord *prec)
break;
}
if (prec->udf){
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
}
/* Check to see what to do if INVALID */
+1 -1
View File
@@ -207,7 +207,7 @@ static void checkAlarms(dfanoutRecord *prec)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
return;
}
+1 -1
View File
@@ -255,7 +255,7 @@ static void checkAlarms(longinRecord *prec, epicsTimeStamp *timeLast)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
prec->afvl = 0;
return;
}
+1 -1
View File
@@ -272,7 +272,7 @@ static void checkAlarms(longoutRecord *prec)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
return;
}
+1 -1
View File
@@ -311,7 +311,7 @@ static void checkAlarms(mbbiRecord *prec, epicsTimeStamp *timeLast)
/* check for udf alarm */
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
prec->afvl = 0;
return;
}
+1 -1
View File
@@ -175,7 +175,7 @@ static long process(mbboDirectRecord *prec)
}
}
if(prec->udf) {
recGblSetSevr(prec,UDF_ALARM,INVALID_ALARM);
recGblSetSevr(prec,UDF_ALARM,prec->udfs);
goto CONTINUE;
}
if(prec->nsev < INVALID_ALARM
+1 -1
View File
@@ -219,7 +219,7 @@ static long process(mbboRecord *prec)
}
}
if (prec->udf==TRUE) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
goto CONTINUE;
}
/* convert val to rval */
+1 -1
View File
@@ -255,7 +255,7 @@ static void checkAlarms(selRecord *prec)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
return;
}
+1 -1
View File
@@ -146,7 +146,7 @@ static long process(stringoutRecord *prec)
}
if(prec->udf == TRUE ){
recGblSetSevr(prec,UDF_ALARM,INVALID_ALARM);
recGblSetSevr(prec,UDF_ALARM,prec->udfs);
}
if (prec->nsev < INVALID_ALARM )
+1 -1
View File
@@ -152,7 +152,7 @@ static long process(subArrayRecord *prec)
prec->udf = !!status; /* 0 or 1 */
if (status)
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
monitor(prec);
+1 -1
View File
@@ -321,7 +321,7 @@ static void checkAlarms(subRecord *prec)
epicsEnum16 asev;
if (prec->udf) {
recGblSetSevr(prec, UDF_ALARM, INVALID_ALARM);
recGblSetSevr(prec, UDF_ALARM, prec->udfs);
return;
}