diff --git a/src/rec/Makefile.Vx b/src/rec/Makefile.Vx index ea0c6e3af..781a0c726 100644 --- a/src/rec/Makefile.Vx +++ b/src/rec/Makefile.Vx @@ -2,52 +2,95 @@ EPICS = ../../../.. include Target.include include $(EPICS)/config/CONFIG_BASE -USR_INCLUDES = -I../../drv/ansi -I../../drv/old +USR_INCLUDES = -I../drv/ansi -I../../drv/old -# SRCS.c += ../recAai.c -# SRCS.c += ../recAao.c -SRCS.c += ../recAi.c -SRCS.c += ../recAo.c -SRCS.c += ../recBi.c -SRCS.c += ../recBo.c -SRCS.c += ../recCalc.c -SRCS.c += ../recCompress.c -SRCS.c += ../recDfanout.c -SRCS.c += ../recEg.c -SRCS.c += ../recEgevent.c -SRCS.c += ../recEr.c -SRCS.c += ../recErevent.c -SRCS.c += ../recEvent.c -SRCS.c += ../recFanout.c -# SRCS.c += ../recGsub.c -SRCS.c += ../recHistogram.c -SRCS.c += ../recLongin.c -SRCS.c += ../recLongout.c -SRCS.c += ../recMbbi.c -SRCS.c += ../recMbbiDirect.c -SRCS.c += ../recMbbo.c -SRCS.c += ../recMbboDirect.c -# SRCS.c += ../recPal.c -SRCS.c += ../recPermissive.c -SRCS.c += ../recPid.c -SRCS.c += ../recPulseCounter.c -SRCS.c += ../recPulseDelay.c -SRCS.c += ../recPulseTrain.c -SRCS.c += ../recScan.c -SRCS.c += ../recSel.c -SRCS.c += ../recSeq.c -SRCS.c += ../recState.c -SRCS.c += ../recSteppermotor.c -SRCS.c += ../recStringin.c -SRCS.c += ../recStringout.c -SRCS.c += ../recSub.c -SRCS.c += ../recSubArray.c -SRCS.c += ../recTimer.c -SRCS.c += ../recWait.c +RECTYPES += aaiRecord.h +RECTYPES += aaoRecord.h +RECTYPES += aiRecord.h +RECTYPES += aoRecord.h +RECTYPES += biRecord.h +RECTYPES += boRecord.h +RECTYPES += calcRecord.h +RECTYPES += compressRecord.h +RECTYPES += dfanoutRecord.h +RECTYPES += egRecord.h +RECTYPES += egeventRecord.h +RECTYPES += erRecord.h +RECTYPES += ereventRecord.h +RECTYPES += eventRecord.h +RECTYPES += fanoutRecord.h +RECTYPES += gsubRecord.h +RECTYPES += histogramRecord.h +RECTYPES += longinRecord.h +RECTYPES += longoutRecord.h +RECTYPES += mbbiRecord.h +RECTYPES += mbbiDirectRecord.h +RECTYPES += mbboRecord.h +RECTYPES += mbboDirectRecord.h +RECTYPES += palRecord.h +RECTYPES += permissiveRecord.h +RECTYPES += pidRecord.h +RECTYPES += pulseCounterRecord.h +RECTYPES += pulseDelayRecord.h +RECTYPES += pulseTrainRecord.h +RECTYPES += scanRecord.h +RECTYPES += selRecord.h +RECTYPES += seqRecord.h +RECTYPES += stateRecord.h +RECTYPES += steppermotorRecord.h +RECTYPES += stringinRecord.h +RECTYPES += stringoutRecord.h +RECTYPES += subRecord.h +RECTYPES += subArrayRecord.h +RECTYPES += timerRecord.h +RECTYPES += waitRecord.h +RECTYPES += waveformRecord.h + + +SRCS.c += ../aaiRecord.c +SRCS.c += ../aaoRecord.c +SRCS.c += ../aiRecord.c +SRCS.c += ../aoRecord.c +SRCS.c += ../biRecord.c +SRCS.c += ../boRecord.c +SRCS.c += ../calcRecord.c +SRCS.c += ../compressRecord.c +SRCS.c += ../dfanoutRecord.c +SRCS.c += ../egRecord.c +SRCS.c += ../egeventRecord.c +SRCS.c += ../erRecord.c +SRCS.c += ../ereventRecord.c +SRCS.c += ../eventRecord.c +SRCS.c += ../fanoutRecord.c +SRCS.c += ../gsubRecord.c +SRCS.c += ../histogramRecord.c +SRCS.c += ../longinRecord.c +SRCS.c += ../longoutRecord.c +SRCS.c += ../mbbiRecord.c +SRCS.c += ../mbbiDirectRecord.c +SRCS.c += ../mbboRecord.c +SRCS.c += ../mbboDirectRecord.c +SRCS.c += ../palRecord.c +SRCS.c += ../permissiveRecord.c +SRCS.c += ../pidRecord.c +SRCS.c += ../pulseCounterRecord.c +SRCS.c += ../pulseDelayRecord.c +SRCS.c += ../pulseTrainRecord.c +SRCS.c += ../scanRecord.c +SRCS.c += ../selRecord.c +SRCS.c += ../seqRecord.c +SRCS.c += ../stateRecord.c +SRCS.c += ../steppermotorRecord.c +SRCS.c += ../stringinRecord.c +SRCS.c += ../stringoutRecord.c +SRCS.c += ../subRecord.c +SRCS.c += ../subArrayRecord.c +SRCS.c += ../timerRecord.c +SRCS.c += ../waitRecord.c SRCS.c += ../recWaitCa.c SRCS.c += ../recDynLink.c SRCS.c += ../recDynLinkTest.c -SRCS.c += ../recWaveform.c +SRCS.c += ../waveformRecord.c LIBOBJS = $(SRCS.c:../%.c=%.o) diff --git a/src/rec/aaiRecord.ascii b/src/rec/aaiRecord.ascii new file mode 100644 index 000000000..737b5ba5a --- /dev/null +++ b/src/rec/aaiRecord.ascii @@ -0,0 +1,86 @@ +recordtype(aai) { + include "dbCommon.ascii" + field(VAL,DBF_NOACCESS) { + prompt("Value") + asl(ASL0) + special(SPC_DBADDR) + pp(TRUE) + size(4) + extra("void * val") + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_ALARMS) + interest(1) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_BITS1) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Engineering Units Name") + promptgroup(GUI_BITS2) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_CALC) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_CLOCK) + interest(1) + } + field(NELM,DBF_ULONG) { + prompt("Number of Elements") + promptgroup(GUI_COMPRESS) + special(SPC_NOMOD) + interest(1) + initial("1") + } + field(FTVL,DBF_MENU) { + prompt("Field Type of Value") + promptgroup(GUI_CONVERT) + special(SPC_NOMOD) + interest(1) + menu(menuFtype) + } + field(NORD,DBF_ULONG) { + prompt("Number elements read") + special(SPC_NOMOD) + } + field(BPTR,DBF_NOACCESS) { + prompt("Buffer Pointer") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * bptr") + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_DISPLAY) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_HIST) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recAai.c b/src/rec/aaiRecord.c similarity index 98% rename from src/rec/recAai.c rename to src/rec/aaiRecord.c index 5f6b1d878..91feb0c31 100644 --- a/src/rec/recAai.c +++ b/src/rec/aaiRecord.c @@ -53,7 +53,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -126,7 +128,7 @@ static long init_record(paai,pass) /* aai.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ switch (paai->siml.type) { case (CONSTANT) : - paai->simm = paai->siml.value.value; + recGblInitConstantLink(&paai->siml,DBF_USHORT,&paai->simm); break; case (PV_LINK) : status = dbCaAddInlink(&(paai->siml), (void *) paai, "SIMM"); diff --git a/src/rec/aaoRecord.ascii b/src/rec/aaoRecord.ascii new file mode 100644 index 000000000..5708cb054 --- /dev/null +++ b/src/rec/aaoRecord.ascii @@ -0,0 +1,86 @@ +recordtype(aao) { + include "dbCommon.ascii" + field(VAL,DBF_NOACCESS) { + prompt("Value") + asl(ASL0) + special(SPC_DBADDR) + pp(TRUE) + size(4) + extra("void * val") + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_ALARMS) + interest(1) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_BITS1) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Engineering Units Name") + promptgroup(GUI_BITS2) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_CALC) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_CLOCK) + interest(1) + } + field(NELM,DBF_ULONG) { + prompt("Number of Elements") + promptgroup(GUI_COMPRESS) + special(SPC_NOMOD) + interest(1) + initial("1") + } + field(FTVL,DBF_MENU) { + prompt("Field Type of Value") + promptgroup(GUI_CONVERT) + special(SPC_NOMOD) + interest(1) + menu(menuFtype) + } + field(NORD,DBF_ULONG) { + prompt("Number elements read") + special(SPC_NOMOD) + } + field(BPTR,DBF_NOACCESS) { + prompt("Buffer Pointer") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * bptr") + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_DISPLAY) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_HIST) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recAao.c b/src/rec/aaoRecord.c similarity index 98% rename from src/rec/recAao.c rename to src/rec/aaoRecord.c index bfd1b200d..58a032685 100644 --- a/src/rec/recAao.c +++ b/src/rec/aaoRecord.c @@ -53,7 +53,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -126,7 +128,7 @@ static long init_record(paao,pass) /* aao.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ switch (paao->siml.type) { case (CONSTANT) : - paao->simm = paao->siml.value.value; + recGblInitConstantLink(&paao->siml,DBF_USHORT,&paao->simm); break; case (PV_LINK) : status = dbCaAddInlink(&(paao->siml), (void *) paao, "SIMM"); diff --git a/src/rec/aiRecord.ascii b/src/rec/aiRecord.ascii new file mode 100644 index 000000000..eaf14a378 --- /dev/null +++ b/src/rec/aiRecord.ascii @@ -0,0 +1,220 @@ +recordtype(ai) { + include "dbCommon.ascii" + field(VAL,DBF_DOUBLE) { + prompt("Current EGU Value") + asl(ASL0) + pp(TRUE) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LINR,DBF_MENU) { + prompt("Linearization") + promptgroup(GUI_CONVERT) + special(SPC_LINCONV) + pp(TRUE) + interest(1) + menu(menuConvert) + } + field(EGUF,DBF_FLOAT) { + prompt("Engineer Units Full") + promptgroup(GUI_CONVERT) + special(SPC_LINCONV) + pp(TRUE) + interest(1) + } + field(EGUL,DBF_FLOAT) { + prompt("Engineer Units Low") + promptgroup(GUI_CONVERT) + special(SPC_LINCONV) + pp(TRUE) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Engineering Units") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(AOFF,DBF_FLOAT) { + prompt("Adjustment Offset") + promptgroup(GUI_CONVERT) + pp(TRUE) + interest(1) + } + field(ASLO,DBF_FLOAT) { + prompt("Adjustment Slope") + promptgroup(GUI_CONVERT) + pp(TRUE) + interest(1) + initial("1") + } + field(SMOO,DBF_FLOAT) { + prompt("Smoothing") + promptgroup(GUI_CONVERT) + interest(1) + } + field(HIHI,DBF_FLOAT) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_FLOAT) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_FLOAT) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_DOUBLE) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_DOUBLE) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_DOUBLE) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LALM,DBF_DOUBLE) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_DOUBLE) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_DOUBLE) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } + field(ESLO,DBF_DOUBLE) { + prompt("Rawto EGU Slope") + special(SPC_NOMOD) + interest(2) + initial("1") + } + field(ROFF,DBF_LONG) { + prompt("Raw Offset") + pp(TRUE) + interest(2) + } + field(PBRK,DBF_NOACCESS) { + prompt("Ptrto brkTable") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * pbrk") + } + field(INIT,DBF_SHORT) { + prompt("Initialized?") + special(SPC_NOMOD) + interest(3) + } + field(LBRK,DBF_SHORT) { + prompt("LastBreak Point") + special(SPC_NOMOD) + interest(3) + } + field(RVAL,DBF_LONG) { + prompt("Current Raw Value") + pp(TRUE) + } + field(ORAW,DBF_LONG) { + prompt("Previous Raw Value") + special(SPC_NOMOD) + interest(3) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_DOUBLE) { + prompt("Simulation Value") + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recAi.c b/src/rec/aiRecord.c similarity index 98% rename from src/rec/recAi.c rename to src/rec/aiRecord.c index ea3f8c097..1f107e092 100644 --- a/src/rec/recAi.c +++ b/src/rec/aiRecord.c @@ -88,7 +88,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -162,7 +164,7 @@ static long init_record(pai,pass) /* ai.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ if (pai->siml.type == CONSTANT) { - pai->simm = pai->siml.value.value; + recGblInitConstantLink(&pai->siml,DBF_USHORT,&pai->simm); } else { status = recGblInitFastInLink(&(pai->siml), (void *) pai, DBR_ENUM, "SIMM"); @@ -171,7 +173,7 @@ static long init_record(pai,pass) /* ai.siol must be a CONSTANT or a PV_LINK or a DB_LINK */ if (pai->siol.type == CONSTANT) { - pai->sval = pai->siol.value.value; + recGblInitConstantLink(&pai->siol,DBF_DOUBLE,&pai->sval); } else { status = recGblInitFastInLink(&(pai->siol), (void *) pai, DBR_DOUBLE, "SVAL"); diff --git a/src/rec/aoRecord.ascii b/src/rec/aoRecord.ascii new file mode 100644 index 000000000..ea2eb7859 --- /dev/null +++ b/src/rec/aoRecord.ascii @@ -0,0 +1,282 @@ +menu(aoOIF) { + choice(aoOIF_Full,"Full") + choice(aoOIF_Incremental,"Incremental") +} +recordtype(ao) { + include "dbCommon.ascii" + field(VAL,DBF_DOUBLE) { + prompt("Desired Output") + asl(ASL0) + pp(TRUE) + } + field(OVAL,DBF_DOUBLE) { + prompt("Output Value") + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OROC,DBF_FLOAT) { + prompt("Output Rate of Chang") + promptgroup(GUI_OUTPUT) + interest(1) + } + field(DOL,DBF_INLINK) { + prompt("Desired Output Loc") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OMSL,DBF_MENU) { + prompt("Output Mode Select") + promptgroup(GUI_OUTPUT) + interest(1) + menu(menuOmsl) + } + field(OIF,DBF_MENU) { + prompt("Out Full/Incremental") + promptgroup(GUI_OUTPUT) + interest(1) + menu(aoOIF) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LINR,DBF_MENU) { + prompt("Linearization") + promptgroup(GUI_CONVERT) + special(SPC_LINCONV) + pp(TRUE) + interest(1) + menu(menuConvert) + } + field(EGUF,DBF_FLOAT) { + prompt("Eng Units Full") + promptgroup(GUI_CONVERT) + special(SPC_LINCONV) + pp(TRUE) + interest(1) + } + field(EGUL,DBF_FLOAT) { + prompt("Eng Units Low") + promptgroup(GUI_CONVERT) + special(SPC_LINCONV) + pp(TRUE) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Engineering Units") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(ROFF,DBF_LONG) { + prompt("Raw Offset") + pp(TRUE) + interest(2) + } + field(ESLO,DBF_DOUBLE) { + prompt("EGU to Raw Slope") + special(SPC_NOMOD) + interest(2) + initial("1") + } + field(DRVH,DBF_FLOAT) { + prompt("Drive High Limit") + promptgroup(GUI_OUTPUT) + pp(TRUE) + interest(1) + } + field(DRVL,DBF_FLOAT) { + prompt("Drive Low Limit") + promptgroup(GUI_OUTPUT) + pp(TRUE) + interest(1) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(AOFF,DBF_FLOAT) { + prompt("Adjustment Offset") + promptgroup(GUI_CONVERT) + pp(TRUE) + interest(1) + } + field(ASLO,DBF_FLOAT) { + prompt("Adjustment Slope") + promptgroup(GUI_CONVERT) + pp(TRUE) + interest(1) + } + field(HIHI,DBF_FLOAT) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_FLOAT) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_FLOAT) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_DOUBLE) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_DOUBLE) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_DOUBLE) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(RVAL,DBF_LONG) { + prompt("Current Raw Value") + pp(TRUE) + } + field(ORAW,DBF_LONG) { + prompt("Previous Raw Value") + special(SPC_NOMOD) + interest(3) + } + field(RBV,DBF_LONG) { + prompt("Readback Value") + special(SPC_NOMOD) + } + field(ORBV,DBF_LONG) { + prompt("Prev Readback Value") + special(SPC_NOMOD) + interest(3) + } + field(PVAL,DBF_DOUBLE) { + prompt("Previous value") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_DOUBLE) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_DOUBLE) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_DOUBLE) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } + field(PBRK,DBF_NOACCESS) { + prompt("Ptrto brkTable") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * pbrk") + } + field(INIT,DBF_SHORT) { + prompt("Initialized?") + special(SPC_NOMOD) + interest(3) + } + field(LBRK,DBF_SHORT) { + prompt("LastBreak Point") + special(SPC_NOMOD) + interest(3) + } + field(SIOL,DBF_OUTLINK) { + prompt("Sim Output Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } + field(IVOA,DBF_MENU) { + prompt("INVALID output action") + promptgroup(GUI_OUTPUT) + interest(2) + menu(menuIvoa) + } + field(IVOV,DBF_DOUBLE) { + prompt("INVALID output value") + promptgroup(GUI_OUTPUT) + interest(2) + } + field(OMOD,DBF_UCHAR) { + prompt("Was OVAL modified?") + special(SPC_NOMOD) + } +} diff --git a/src/rec/recAo.c b/src/rec/aoRecord.c similarity index 98% rename from src/rec/recAo.c rename to src/rec/aoRecord.c index d29466a66..e155b3928 100644 --- a/src/rec/recAo.c +++ b/src/rec/aoRecord.c @@ -85,7 +85,10 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET +#include /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -159,7 +162,7 @@ static long init_record(pao,pass) /* ao.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ if (pao->siml.type == CONSTANT) { - pao->simm = pao->siml.value.value; + recGblInitConstantLink(&pao->siml,DBF_USHORT,&pao->simm); } else { status = recGblInitFastInLink(&(pao->siml), (void *) pao, DBR_ENUM, "SIMM"); @@ -176,8 +179,8 @@ static long init_record(pao,pass) } /* get the initial value if dol is a constant*/ if (pao->dol.type == CONSTANT) { + if(recGblInitConstantLink(&pao->dol,DBF_DOUBLE,&pao->val)) pao->udf = FALSE; - pao->val = pao->dol.value.value; } else { status = recGblInitFastInLink(&(pao->dol), (void *) pao, @@ -258,12 +261,12 @@ static long process(pao) status=writeValue(pao); /* write the new value */ else { switch (pao->ivoa) { - case (IVOA_CONTINUE) : + case (menuIvoaContinue_normally) : status=writeValue(pao); /* write the new value */ break; - case (IVOA_NO_OUTPUT) : + case (menuIvoaDon_t_drive_outputs) : break; - case (IVOA_OUTPUT_IVOV) : + case (menuIvoaSet_output_to_IVOV) : if(pao->pact == FALSE){ pao->val=pao->ivov; value=pao->ivov; diff --git a/src/rec/biRecord.ascii b/src/rec/biRecord.ascii new file mode 100644 index 000000000..3320e86ea --- /dev/null +++ b/src/rec/biRecord.ascii @@ -0,0 +1,99 @@ +recordtype(bi) { + include "dbCommon.ascii" + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(VAL,DBF_ENUM) { + prompt("Current Value") + asl(ASL0) + pp(TRUE) + } + field(ZSV,DBF_MENU) { + prompt("Zero Error Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(OSV,DBF_MENU) { + prompt("One Error Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(COSV,DBF_MENU) { + prompt("Change of State Svr") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(ZNAM,DBF_STRING) { + prompt("Zero Name") + promptgroup(GUI_CALC) + pp(TRUE) + interest(1) + size(20) + } + field(ONAM,DBF_STRING) { + prompt("One Name") + promptgroup(GUI_CLOCK) + pp(TRUE) + interest(1) + size(20) + } + field(RVAL,DBF_ULONG) { + prompt("Raw Value") + pp(TRUE) + } + field(ORAW,DBF_ULONG) { + prompt("prev Raw Value") + special(SPC_NOMOD) + interest(3) + } + field(MASK,DBF_ULONG) { + prompt("Hardware Mask") + special(SPC_NOMOD) + interest(1) + } + field(LALM,DBF_USHORT) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_USHORT) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_USHORT) { + prompt("Simulation Value") + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recBi.c b/src/rec/biRecord.c similarity index 98% rename from src/rec/recBi.c rename to src/rec/biRecord.c index 5131c3b0c..8fb00d25e 100644 --- a/src/rec/recBi.c +++ b/src/rec/biRecord.c @@ -70,7 +70,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL @@ -132,7 +134,7 @@ static long init_record(pbi,pass) /* bi.siml must be a CONSTANT or a PV_LINK or a DB_LINK or a CA_LINK*/ if (pbi->siml.type == CONSTANT) { - pbi->simm = pbi->siml.value.value; + recGblInitConstantLink(&pbi->siml,DBF_USHORT,&pbi->simm); } else { status = recGblInitFastInLink(&(pbi->siml), (void *) pbi, DBR_ENUM, "SIMM"); @@ -142,7 +144,7 @@ static long init_record(pbi,pass) /* bi.siol must be a CONSTANT or a PV_LINK or a DB_LINK or a CA_LINK*/ if (pbi->siol.type == CONSTANT) { - pbi->sval = pbi->siol.value.value; + recGblInitConstantLink(&pbi->siol,DBF_USHORT,&pbi->sval); } else { status = recGblInitFastInLink(&(pbi->siol), (void *) pbi, DBR_USHORT, "SVAL"); diff --git a/src/rec/boRecord.ascii b/src/rec/boRecord.ascii new file mode 100644 index 000000000..9ac8a3f17 --- /dev/null +++ b/src/rec/boRecord.ascii @@ -0,0 +1,147 @@ +recordtype(bo) { + include "dbCommon.ascii" + field(VAL,DBF_ENUM) { + prompt("Current Value") + asl(ASL0) + pp(TRUE) + } + field(OMSL,DBF_MENU) { + prompt("Output Mode Select") + promptgroup(GUI_OUTPUT) + interest(1) + menu(menuOmsl) + } + field(DOL,DBF_INLINK) { + prompt("Desired Output Loc") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("Seconds to Hold High") + promptgroup(GUI_OUTPUT) + interest(1) + } + field(ZNAM,DBF_STRING) { + prompt("Zero Name") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + size(20) + } + field(ONAM,DBF_STRING) { + prompt("One Name") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + size(20) + } + field(RVAL,DBF_ULONG) { + prompt("Raw Value") + pp(TRUE) + } + field(ORAW,DBF_ULONG) { + prompt("prev Raw Value") + special(SPC_NOMOD) + interest(3) + } + field(MASK,DBF_ULONG) { + prompt("Hardware Mask") + special(SPC_NOMOD) + interest(1) + } + field(RPVT,DBF_NOACCESS) { + prompt("Record Private") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * rpvt") + } + field(WDPT,DBF_NOACCESS) { + prompt("Watch Dog Timer ID") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * wdpt") + } + field(ZSV,DBF_MENU) { + prompt("Zero Error Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(OSV,DBF_MENU) { + prompt("One Error Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(COSV,DBF_MENU) { + prompt("Change of State Sevr") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(RBV,DBF_ULONG) { + prompt("Readback Value") + special(SPC_NOMOD) + } + field(ORBV,DBF_ULONG) { + prompt("Prev Readback Value") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_USHORT) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_USHORT) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(SIOL,DBF_OUTLINK) { + prompt("Sim Output Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } + field(IVOA,DBF_MENU) { + prompt("INVALID outpt action") + promptgroup(GUI_OUTPUT) + interest(2) + menu(menuIvoa) + } + field(IVOV,DBF_USHORT) { + prompt("INVALID output value") + promptgroup(GUI_OUTPUT) + interest(2) + } +} diff --git a/src/rec/recBo.c b/src/rec/boRecord.c similarity index 96% rename from src/rec/recBo.c rename to src/rec/boRecord.c index c294e7d53..9756349c3 100644 --- a/src/rec/recBo.c +++ b/src/rec/boRecord.c @@ -84,7 +84,10 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET +#include /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -185,7 +188,7 @@ static long init_record(pbo,pass) /* bo.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ if (pbo->siml.type == CONSTANT) { - pbo->simm = pbo->siml.value.value; + recGblInitConstantLink(&pbo->siml,DBF_USHORT,&pbo->simm); } else { status = recGblInitFastInLink(&(pbo->siml), (void *) pbo, DBR_ENUM, "SIMM"); @@ -209,8 +212,11 @@ static long init_record(pbo,pass) } /* get the initial value */ if (pbo->dol.type == CONSTANT) { - if (pbo->dol.value.value == 0) pbo->val = 0; - else pbo->val = 1; + unsigned short ival; + + recGblInitConstantLink(&pbo->dol,DBF_USHORT,&ival); + if (ival == 0) pbo->val = 0; + else pbo->val = 1; pbo->udf = FALSE; } else { @@ -278,12 +284,12 @@ static long process(pbo) status=writeValue(pbo); /* write the new value */ else { switch (pbo->ivoa) { - case (IVOA_CONTINUE) : + case (menuIvoaContinue_normally) : status=writeValue(pbo); /* write the new value */ break; - case (IVOA_NO_OUTPUT) : + case (menuIvoaDon_t_drive_outputs) : break; - case (IVOA_OUTPUT_IVOV) : + case (menuIvoaSet_output_to_IVOV) : if(pbo->pact == FALSE){ /* convert val to rval */ pbo->val=pbo->ivov; diff --git a/src/rec/calcRecord.ascii b/src/rec/calcRecord.ascii new file mode 100644 index 000000000..29d96b340 --- /dev/null +++ b/src/rec/calcRecord.ascii @@ -0,0 +1,304 @@ +recordtype(calc) { + include "dbCommon.ascii" + field(VAL,DBF_DOUBLE) { + prompt("Result") + asl(ASL0) + } + field(CALC,DBF_STRING) { + prompt("Calculation") + promptgroup(GUI_CALC) + special(SPC_CALC) + pp(TRUE) + size(36) + } + field(INPA,DBF_INLINK) { + prompt("Input A") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPB,DBF_INLINK) { + prompt("Input B") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPC,DBF_INLINK) { + prompt("Input C") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPD,DBF_INLINK) { + prompt("Input D") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPE,DBF_INLINK) { + prompt("Input E") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPF,DBF_INLINK) { + prompt("Input F") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPG,DBF_INLINK) { + prompt("Input G") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPH,DBF_INLINK) { + prompt("Input H") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPI,DBF_INLINK) { + prompt("Input I") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPJ,DBF_INLINK) { + prompt("Input J") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPK,DBF_INLINK) { + prompt("Input K") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(INPL,DBF_INLINK) { + prompt("Input L") + promptgroup(GUI_CALC) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Units Name") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Rng") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_FLOAT) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_FLOAT) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_FLOAT) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_DOUBLE) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_DOUBLE) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_DOUBLE) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(A,DBF_DOUBLE) { + prompt("Value of Input A") + pp(TRUE) + } + field(B,DBF_DOUBLE) { + prompt("Value of Input B") + pp(TRUE) + } + field(C,DBF_DOUBLE) { + prompt("Value of Input C") + pp(TRUE) + } + field(D,DBF_DOUBLE) { + prompt("Value of Input D") + pp(TRUE) + } + field(E,DBF_DOUBLE) { + prompt("Value of Input E") + pp(TRUE) + } + field(F,DBF_DOUBLE) { + prompt("Value of Input F") + pp(TRUE) + } + field(G,DBF_DOUBLE) { + prompt("Value of Input G") + pp(TRUE) + } + field(H,DBF_DOUBLE) { + prompt("Value of Input H") + pp(TRUE) + } + field(I,DBF_DOUBLE) { + prompt("Value of Input I") + pp(TRUE) + } + field(J,DBF_DOUBLE) { + prompt("Value of Input J") + pp(TRUE) + } + field(K,DBF_DOUBLE) { + prompt("Value of Input K") + pp(TRUE) + } + field(L,DBF_DOUBLE) { + prompt("Value of Input L") + pp(TRUE) + } + field(LA,DBF_DOUBLE) { + prompt("Prev Value of A") + special(SPC_NOMOD) + interest(3) + } + field(LB,DBF_DOUBLE) { + prompt("Prev Value of B") + special(SPC_NOMOD) + interest(3) + } + field(LC,DBF_DOUBLE) { + prompt("Prev Value of C") + special(SPC_NOMOD) + interest(3) + } + field(LD,DBF_DOUBLE) { + prompt("Prev Value of D") + special(SPC_NOMOD) + interest(3) + } + field(LE,DBF_DOUBLE) { + prompt("Prev Value of E") + special(SPC_NOMOD) + interest(3) + } + field(LF,DBF_DOUBLE) { + prompt("Prev Value of F") + special(SPC_NOMOD) + interest(3) + } + field(LG,DBF_DOUBLE) { + prompt("Prev Value of G") + special(SPC_NOMOD) + interest(3) + } + field(LH,DBF_DOUBLE) { + prompt("Prev Value of H") + special(SPC_NOMOD) + interest(3) + } + field(LI,DBF_DOUBLE) { + prompt("Prev Value of I") + special(SPC_NOMOD) + interest(3) + } + field(LJ,DBF_DOUBLE) { + prompt("Prev Value of J") + special(SPC_NOMOD) + interest(3) + } + field(LK,DBF_DOUBLE) { + prompt("Prev Value of K") + special(SPC_NOMOD) + interest(3) + } + field(LL,DBF_DOUBLE) { + prompt("Prev Value of L") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_DOUBLE) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_DOUBLE) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_DOUBLE) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } + field(RPCL,DBF_NOACCESS) { + prompt("Reverse Polish Calc") + special(SPC_NOMOD) + interest(4) + size(184) + extra("char rpcl[184]") + } +} diff --git a/src/rec/recCalc.c b/src/rec/calcRecord.c similarity index 99% rename from src/rec/recCalc.c rename to src/rec/calcRecord.c index de176cd1e..ef47bf14f 100644 --- a/src/rec/recCalc.c +++ b/src/rec/calcRecord.c @@ -85,7 +85,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -154,7 +156,7 @@ static long init_record(pcalc,pass) pvalue = &pcalc->a; for(i=0; itype == CONSTANT) { - *pvalue = plink->value.value; + recGblInitConstantLink(plink,DBF_DOUBLE,pvalue); } else { status = recGblInitFastInLink(plink, (void *) pcalc, DBR_DOUBLE, Fldnames[i]); diff --git a/src/rec/compressRecord.ascii b/src/rec/compressRecord.ascii new file mode 100644 index 000000000..8e26105af --- /dev/null +++ b/src/rec/compressRecord.ascii @@ -0,0 +1,121 @@ +menu(compressALG) { + choice(compressALG_N_to_1_Low_Value,"N to 1 Low Value") + choice(compressALG_N_to_1_High_Value,"N to 1 High Value") + choice(compressALG_N_to_1_Average,"N to 1 Average") + choice(compressALG_Average,"Average") + choice(compressALG_Circular_Buffer,"Circular Buffer") +} +recordtype(compress) { + include "dbCommon.ascii" + field(VAL,DBF_NOACCESS) { + prompt("Value") + asl(ASL0) + special(SPC_DBADDR) + pp(TRUE) + size(4) + extra("void * val") + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_COMPRESS) + special(SPC_NOMOD) + interest(1) + } + field(RES,DBF_SHORT) { + prompt("Reset") + asl(ASL0) + special(SPC_RESET) + interest(3) + } + field(ALG,DBF_MENU) { + prompt("Compression Algorithm") + promptgroup(GUI_ALARMS) + special(SPC_RESET) + interest(1) + menu(compressALG) + } + field(NSAM,DBF_ULONG) { + prompt("Number of Values") + promptgroup(GUI_COMPRESS) + special(SPC_NOMOD) + interest(1) + initial("1") + } + field(N,DBF_ULONG) { + prompt("N to 1 Compression") + promptgroup(GUI_COMPRESS) + special(SPC_RESET) + interest(1) + initial("1") + } + field(IHIL,DBF_FLOAT) { + prompt("Init High Interest Lim") + promptgroup(GUI_COMPRESS) + interest(1) + } + field(ILIL,DBF_FLOAT) { + prompt("Init Low Interest Lim") + promptgroup(GUI_COMPRESS) + interest(1) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("EngineeringUnits") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(OFF,DBF_ULONG) { + prompt("Offset") + special(SPC_NOMOD) + } + field(NUSE,DBF_ULONG) { + prompt("Number Used") + special(SPC_NOMOD) + } + field(BPTR,DBF_NOACCESS) { + prompt("Buffer Pointer") + special(SPC_NOMOD) + interest(4) + size(4) + extra("double *bptr") + } + field(SPTR,DBF_NOACCESS) { + prompt("Summing Buffer Ptr") + special(SPC_NOMOD) + interest(4) + size(4) + extra("double *sptr") + } + field(WPTR,DBF_NOACCESS) { + prompt("Working Buffer Ptr") + special(SPC_NOMOD) + interest(4) + size(4) + extra("double *wptr") + } + field(CVB,DBF_DOUBLE) { + prompt("Compress Value Buffer") + special(SPC_NOMOD) + interest(3) + } + field(INX,DBF_ULONG) { + prompt("Compressed Array Inx") + special(SPC_NOMOD) + interest(3) + } +} diff --git a/src/rec/recCompress.c b/src/rec/compressRecord.c similarity index 99% rename from src/rec/recCompress.c rename to src/rec/compressRecord.c index 092d4f148..893b2b38a 100644 --- a/src/rec/recCompress.c +++ b/src/rec/compressRecord.c @@ -73,7 +73,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL diff --git a/src/rec/dfanoutRecord.ascii b/src/rec/dfanoutRecord.ascii new file mode 100644 index 000000000..5f13500ac --- /dev/null +++ b/src/rec/dfanoutRecord.ascii @@ -0,0 +1,177 @@ +recordtype(dfanout) { + include "dbCommon.ascii" + field(VAL,DBF_LONG) { + prompt("Desired Output") + asl(ASL0) + pp(TRUE) + } + field(OUTA,DBF_OUTLINK) { + prompt("Output Spec A") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OUTB,DBF_OUTLINK) { + prompt("Output Spec B") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OUTC,DBF_OUTLINK) { + prompt("Output Spec C") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OUTD,DBF_OUTLINK) { + prompt("Output Spec D") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OUTE,DBF_OUTLINK) { + prompt("Output Spec E") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OUTF,DBF_OUTLINK) { + prompt("Output Spec F") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OUTG,DBF_OUTLINK) { + prompt("Output Spec G") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OUTH,DBF_OUTLINK) { + prompt("Output Spec H") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(DOL,DBF_INLINK) { + prompt("Desired Output Loc") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(OMSL,DBF_MENU) { + prompt("Output Mode Select") + promptgroup(GUI_OUTPUT) + interest(1) + menu(menuOmsl) + } + field(EGU,DBF_STRING) { + prompt("Units name") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(HOPR,DBF_LONG) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_LONG) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_LONG) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_LONG) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_LONG) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_LONG) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_LONG) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_LONG) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_LONG) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LALM,DBF_LONG) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_LONG) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_LONG) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } + field(IVOA,DBF_MENU) { + prompt("INVALID output action") + promptgroup(GUI_OUTPUT) + interest(2) + menu(menuIvoa) + } + field(IVOV,DBF_LONG) { + prompt("INVALID output value") + promptgroup(GUI_OUTPUT) + interest(2) + } +} diff --git a/src/rec/recDfanout.c b/src/rec/dfanoutRecord.c similarity index 98% rename from src/rec/recDfanout.c rename to src/rec/dfanoutRecord.c index 15223e3a0..f618b5832 100644 --- a/src/rec/recDfanout.c +++ b/src/rec/dfanoutRecord.c @@ -26,7 +26,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -99,8 +101,8 @@ static long init_record(pdfanout,pass) /* get the initial value dol is a constant*/ if (pdfanout->dol.type == CONSTANT){ - pdfanout->val = pdfanout->dol.value.value; - pdfanout->udf=FALSE; + if(recGblInitConstantLink(&pdfanout->dol,DBF_LONG,&pdfanout->val)) + pdfanout->udf=FALSE; } if (pdfanout->dol.type == PV_LINK) { diff --git a/src/rec/egRecord.ascii b/src/rec/egRecord.ascii new file mode 100644 index 000000000..75df288c7 --- /dev/null +++ b/src/rec/egRecord.ascii @@ -0,0 +1,285 @@ +menu(egMOD1) { + choice(egMOD1_Off,"Off") + choice(egMOD1_Normal,"Normal") + choice(egMOD1_Normal_Recycle,"Normal Recycle") + choice(egMOD1_Single,"Single") + choice(egMOD1_Alternate,"Alternate") +} +recordtype(eg) { + include "dbCommon.ascii" + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(MOD1,DBF_MENU) { + prompt("RAM 1 Operating Mode") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(egMOD1) + } + field(R1SP,DBF_DOUBLE) { + prompt("RAM 1 Clock (Hz)") + promptgroup(GUI_DISPLAY) + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(MOD2,DBF_MENU) { + prompt("RAM 2 Operating Mode") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(egMOD1) + } + field(R2SP,DBF_DOUBLE) { + prompt("RAM 2 Clock (Hz)") + promptgroup(GUI_DISPLAY) + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(LMD1,DBF_MENU) { + prompt("Last Operating Mode1") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + menu(egMOD1) + } + field(LMD2,DBF_MENU) { + prompt("Last Operating Mode2") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + menu(egMOD1) + } + field(FIFO,DBF_MENU) { + prompt("Input FIFO Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(LFFO,DBF_MENU) { + prompt("Last FIFO Enable") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(CLR1,DBF_CHAR) { + prompt("Clear Sequence 1") + pp(TRUE) + interest(1) + } + field(CLR2,DBF_CHAR) { + prompt("Clear Sequence 2") + pp(TRUE) + interest(1) + } + field(TRG1,DBF_CHAR) { + prompt("Trigger Sequence 1") + pp(TRUE) + interest(1) + } + field(TRG2,DBF_CHAR) { + prompt("Trigger Sequence 2") + pp(TRUE) + interest(1) + } + field(ENAB,DBF_MENU) { + prompt("Master Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(LENA,DBF_LONG) { + prompt("Last Master Enable") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(TAXI,DBF_LONG) { + prompt("Taxi Violation") + interest(1) + } + field(LTAX,DBF_LONG) { + prompt("Last Taxi Violation") + special(SPC_NOMOD) + interest(1) + } + field(VME,DBF_LONG) { + prompt("Generate VME Event") + pp(TRUE) + interest(1) + } + field(ETE0,DBF_MENU) { + prompt("Trigger 0 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(ET0,DBF_LONG) { + prompt("Trigger 0 Event") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LET0,DBF_LONG) { + prompt("Last Trigger 0 Event") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(ETE1,DBF_MENU) { + prompt("Trigger 1 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(ET1,DBF_LONG) { + prompt("Trigger 1 Event") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LET1,DBF_LONG) { + prompt("Last Trigger 1 Event") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(ETE2,DBF_MENU) { + prompt("Trigger 2 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(ET2,DBF_LONG) { + prompt("Trigger 2 Event") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LET2,DBF_LONG) { + prompt("Last Trigger 2 Event") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(ETE3,DBF_MENU) { + prompt("Trigger 3 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(ET3,DBF_LONG) { + prompt("Trigger 3 Event") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LET3,DBF_LONG) { + prompt("Last Trigger 3 Event") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(ETE4,DBF_MENU) { + prompt("Trigger 4 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(ET4,DBF_LONG) { + prompt("Trigger 4 Event") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LET4,DBF_LONG) { + prompt("Last Trigger 4 Event") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(ETE5,DBF_MENU) { + prompt("Trigger 5 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(ET5,DBF_LONG) { + prompt("Trigger 5 Event") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LET5,DBF_LONG) { + prompt("Last Trigger 5 Event") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(ETE6,DBF_MENU) { + prompt("Trigger 6 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(ET6,DBF_LONG) { + prompt("Trigger 6 Event") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LET6,DBF_LONG) { + prompt("Last Trigger 6 Event") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(ETE7,DBF_MENU) { + prompt("Trigger 7 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(ET7,DBF_LONG) { + prompt("Trigger 7 Event") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LET7,DBF_LONG) { + prompt("Last Trigger 7 Event") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(VAL,DBF_CHAR) { + prompt("Worthless Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } +} diff --git a/src/rec/recEg.c b/src/rec/egRecord.c similarity index 99% rename from src/rec/recEg.c rename to src/rec/egRecord.c index 830396cd6..b1215d802 100644 --- a/src/rec/recEg.c +++ b/src/rec/egRecord.c @@ -68,7 +68,9 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000). #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET #include #define STATIC static diff --git a/src/rec/egeventRecord.ascii b/src/rec/egeventRecord.ascii new file mode 100644 index 000000000..fac907fee --- /dev/null +++ b/src/rec/egeventRecord.ascii @@ -0,0 +1,105 @@ +menu(egeventRAM) { + choice(egeventRAM_RAM_1,"RAM 1") + choice(egeventRAM_RAM_2,"RAM 2") +} +menu(egeventUNIT) { + choice(egeventUNIT_Clock_Ticks,"Clock Ticks") + choice(egeventUNIT_Fortnights,"Fortnights") + choice(egeventUNIT_Weeks,"Weeks") + choice(egeventUNIT_Days,"Days") + choice(egeventUNIT_Hours,"Hours") + choice(egeventUNIT_Minuites,"Minuites") + choice(egeventUNIT_Seconds,"Seconds") + choice(egeventUNIT_Milliseconds,"Milliseconds") + choice(egeventUNIT_Microseconds,"Microseconds") + choice(egeventUNIT_Nanoseconds,"Nanoseconds") +} +recordtype(egevent) { + include "dbCommon.ascii" + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(ENM,DBF_LONG) { + prompt("Event Number") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LEVT,DBF_LONG) { + prompt("Last Event Number") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(RAM,DBF_MENU) { + prompt("Event RAM") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(egeventRAM) + } + field(LRAM,DBF_MENU) { + prompt("Last RAM") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + menu(egeventRAM) + } + field(DELY,DBF_FLOAT) { + prompt("Desired Delay Time") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } + field(ADLY,DBF_FLOAT) { + prompt("Actual Delay") + special(SPC_NOMOD) + interest(1) + } + field(DPOS,DBF_LONG) { + prompt("Desired Position") + special(SPC_NOMOD) + interest(1) + } + field(APOS,DBF_LONG) { + prompt("Actual Position") + special(SPC_NOMOD) + interest(1) + } + field(LDLY,DBF_FLOAT) { + prompt("Last Desired Delay") + special(SPC_NOMOD) + interest(1) + } + field(UNIT,DBF_MENU) { + prompt("Delay Units") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(egeventUNIT) + } + field(VAL,DBF_CHAR) { + prompt("Worthless Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(ELN,DBF_NOACCESS) { + prompt("List Node") + special(SPC_NOMOD) + interest(4) + size(12) + extra("ELLNODE eln") + } + field(SELF,DBF_NOACCESS) { + prompt("Self Pointer") + special(SPC_NOMOD) + interest(4) + size(4) + extra("struct egeventRecord *self") + } +} diff --git a/src/rec/recEgevent.c b/src/rec/egeventRecord.c similarity index 99% rename from src/rec/recEgevent.c rename to src/rec/egeventRecord.c index 57a0dda78..371f2f4e6 100644 --- a/src/rec/recEgevent.c +++ b/src/rec/egeventRecord.c @@ -67,7 +67,9 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000). #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET #include #define STATIC static diff --git a/src/rec/erRecord.ascii b/src/rec/erRecord.ascii new file mode 100644 index 000000000..c4fdb4b54 --- /dev/null +++ b/src/rec/erRecord.ascii @@ -0,0 +1,313 @@ +menu(erTRG0) { + choice(erTRG0_Disabled,"Disabled") + choice(erTRG0_Enabled,"Enabled") +} +recordtype(er) { + include "dbCommon.ascii" + field(VAL,DBF_CHAR) { + prompt("Worthless Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(ENAB,DBF_MENU) { + prompt("Master Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(TAXI,DBF_LONG) { + prompt("Taxi Violation") + special(SPC_NOMOD) + interest(1) + } + field(LTAX,DBF_LONG) { + prompt("Last Taxi Violation") + special(SPC_NOMOD) + interest(1) + } + field(TRG0,DBF_MENU) { + prompt("Trigger 0 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(TRG1,DBF_MENU) { + prompt("Trigger 1 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(TRG2,DBF_MENU) { + prompt("Trigger 2 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(TRG3,DBF_MENU) { + prompt("Trigger 3 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(TRG4,DBF_MENU) { + prompt("Trigger 4 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(TRG5,DBF_MENU) { + prompt("Trigger 5 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(TRG6,DBF_MENU) { + prompt("Trigger 6 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP0,DBF_MENU) { + prompt("OTP 0 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP1,DBF_MENU) { + prompt("OTP 1 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP2,DBF_MENU) { + prompt("OTP 2 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP3,DBF_MENU) { + prompt("OTP 3 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP4,DBF_MENU) { + prompt("OTP 4 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP5,DBF_MENU) { + prompt("OTP 5 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP6,DBF_MENU) { + prompt("OTP 6 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP7,DBF_MENU) { + prompt("OTP 7 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP8,DBF_MENU) { + prompt("OTP 8 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTP9,DBF_MENU) { + prompt("OTP 9 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTPA,DBF_MENU) { + prompt("OTP 10 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTPB,DBF_MENU) { + prompt("OTP 11 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTPC,DBF_MENU) { + prompt("OTP 12 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTPD,DBF_MENU) { + prompt("OTP 13 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTL0,DBF_MENU) { + prompt("OTL 0 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTL1,DBF_MENU) { + prompt("OTL 1 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTL2,DBF_MENU) { + prompt("OTL 2 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTL3,DBF_MENU) { + prompt("OTL 3 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTL4,DBF_MENU) { + prompt("OTL 4 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTL5,DBF_MENU) { + prompt("OTL 5 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(OTL6,DBF_MENU) { + prompt("OTL 6 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(DGCM,DBF_LONG) { + prompt("DG Change Mask") + special(SPC_NOMOD) + interest(1) + } + field(DG0E,DBF_MENU) { + prompt("DG 0 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(DG0D,DBF_USHORT) { + prompt("DG 0 Delay") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } + field(DG0W,DBF_USHORT) { + prompt("DG 0 Width") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } + field(DG1E,DBF_MENU) { + prompt("DG 1 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(DG1D,DBF_USHORT) { + prompt("DG 1 Delay") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } + field(DG1W,DBF_USHORT) { + prompt("DG 1 Width") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } + field(DG2E,DBF_MENU) { + prompt("DG 2 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(DG2D,DBF_USHORT) { + prompt("DG 2 Delay") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } + field(DG2W,DBF_USHORT) { + prompt("DG 2 Width") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } + field(DG3E,DBF_MENU) { + prompt("DG 3 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(erTRG0) + } + field(DG3D,DBF_USHORT) { + prompt("DG 3 Delay") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } + field(DG3W,DBF_USHORT) { + prompt("DG 3 Width") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + } +} diff --git a/src/rec/recEr.c b/src/rec/erRecord.c similarity index 99% rename from src/rec/recEr.c rename to src/rec/erRecord.c index f98ddd0af..11033ee49 100644 --- a/src/rec/recEr.c +++ b/src/rec/erRecord.c @@ -68,7 +68,9 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000). #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET #define STATIC static diff --git a/src/rec/ereventRecord.ascii b/src/rec/ereventRecord.ascii new file mode 100644 index 000000000..1fa3f24fc --- /dev/null +++ b/src/rec/ereventRecord.ascii @@ -0,0 +1,150 @@ +menu(ereventENAB) { + choice(ereventENAB_Disabled,"Disabled") + choice(ereventENAB_Enabled,"Enabled") +} +recordtype(erevent) { + include "dbCommon.ascii" + field(VAL,DBF_CHAR) { + prompt("Worthless Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(ENAB,DBF_MENU) { + prompt("Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(ENM,DBF_LONG) { + prompt("Event Number") + promptgroup(GUI_DISPLAY) + pp(TRUE) + base(HEX) + interest(1) + } + field(LENM,DBF_LONG) { + prompt("Last Event Number") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(LOUT,DBF_LONG) { + prompt("Last Out Enable Mask") + special(SPC_NOMOD) + pp(TRUE) + interest(1) + } + field(OUT0,DBF_MENU) { + prompt("Out 0 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT1,DBF_MENU) { + prompt("Out 1 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT2,DBF_MENU) { + prompt("Out 2 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT3,DBF_MENU) { + prompt("Out 3 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT4,DBF_MENU) { + prompt("Out 4 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT5,DBF_MENU) { + prompt("Out 5 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT6,DBF_MENU) { + prompt("Out 6 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT7,DBF_MENU) { + prompt("Out 7 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT8,DBF_MENU) { + prompt("Out 8 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUT9,DBF_MENU) { + prompt("Out 9 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUTA,DBF_MENU) { + prompt("Out 10 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUTB,DBF_MENU) { + prompt("Out 11 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUTC,DBF_MENU) { + prompt("Out 12 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(OUTD,DBF_MENU) { + prompt("Out 13 Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } + field(VME,DBF_MENU) { + prompt("VME IRQ Enable") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + menu(ereventENAB) + } +} diff --git a/src/rec/recErevent.c b/src/rec/ereventRecord.c similarity index 99% rename from src/rec/recErevent.c rename to src/rec/ereventRecord.c index 680eb0363..1dd6447aa 100644 --- a/src/rec/recErevent.c +++ b/src/rec/ereventRecord.c @@ -67,7 +67,9 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000). #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET #define STATIC static diff --git a/src/rec/eventRecord.ascii b/src/rec/eventRecord.ascii new file mode 100644 index 000000000..aeb2bcb78 --- /dev/null +++ b/src/rec/eventRecord.ascii @@ -0,0 +1,40 @@ +recordtype(event) { + include "dbCommon.ascii" + field(VAL,DBF_USHORT) { + prompt("Event Number To Post") + promptgroup(GUI_INPUTS) + asl(ASL0) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_USHORT) { + prompt("Simulation Value") + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recEvent.c b/src/rec/eventRecord.c similarity index 97% rename from src/rec/recEvent.c rename to src/rec/eventRecord.c index b3306517f..3518ae7de 100644 --- a/src/rec/recEvent.c +++ b/src/rec/eventRecord.c @@ -51,7 +51,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -114,7 +116,7 @@ static long init_record(pevent,pass) if (pass==0) return(0); if (pevent->siml.type == CONSTANT) { - pevent->simm = pevent->siml.value.value; + recGblInitConstantLink(&pevent->siml,DBF_USHORT,&pevent->simm); } else { status = recGblInitFastInLink(&(pevent->siml), (void *) pevent, DBR_ENUM, "SIMM"); @@ -123,7 +125,7 @@ static long init_record(pevent,pass) } if (pevent->siol.type == CONSTANT) { - pevent->sval = pevent->siol.value.value; + recGblInitConstantLink(&pevent->siol,DBF_USHORT,&pevent->sval); } else { status = recGblInitFastInLink(&(pevent->siol), (void *) pevent, DBR_USHORT, "SVAL"); diff --git a/src/rec/fanoutRecord.ascii b/src/rec/fanoutRecord.ascii new file mode 100644 index 000000000..949357692 --- /dev/null +++ b/src/rec/fanoutRecord.ascii @@ -0,0 +1,66 @@ +menu(fanoutSELM) { + choice(fanoutSELM_All,"All") + choice(fanoutSELM_Specified,"Specified") + choice(fanoutSELM_Mask,"Mask") +} +recordtype(fanout) { + include "dbCommon.ascii" + field(VAL,DBF_LONG) { + prompt("Used to trigger") + asl(ASL0) + pp(TRUE) + } + field(SELM,DBF_MENU) { + prompt("Select Mechanism") + promptgroup(GUI_LINKS) + interest(1) + menu(fanoutSELM) + } + field(SELN,DBF_USHORT) { + prompt("Link Selection") + interest(1) + initial("1") + } + field(SELL,DBF_INLINK) { + prompt("Link Selection Loc") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(LNK1,DBF_FWDLINK) { + prompt("Forward Link 1") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(LNK2,DBF_FWDLINK) { + prompt("Forward Link 2") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(LNK3,DBF_FWDLINK) { + prompt("Forward Link 3") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(LNK4,DBF_FWDLINK) { + prompt("Forward Link 4") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(LNK5,DBF_FWDLINK) { + prompt("Forward Link 5") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(LNK6,DBF_FWDLINK) { + prompt("Forward Link 6") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } +} diff --git a/src/rec/recFanout.c b/src/rec/fanoutRecord.c similarity index 97% rename from src/rec/recFanout.c rename to src/rec/fanoutRecord.c index d550fc64e..60dcf8b2f 100644 --- a/src/rec/recFanout.c +++ b/src/rec/fanoutRecord.c @@ -60,7 +60,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -117,11 +119,11 @@ static long init_record(pfanout,pass) /* get link selection if sell is a constant and nonzero*/ if (pfanout->sell.type == CONSTANT) { - if (pfanout->sell.value.value != 0) - pfanout->seln = pfanout->sell.value.value; + recGblInitConstantLink(&pfanout->sell,DBF_USHORT,&pfanout->seln); } else { - status = recGblInitFastInLink(&(pfanout->sell), (void *) pfanout, DBR_USHORT, "SELN"); + status = recGblInitFastInLink(&(pfanout->sell), (void *) pfanout, + DBR_USHORT, "SELN"); if (status) return(status); } diff --git a/src/rec/gsubRecord.ascii b/src/rec/gsubRecord.ascii new file mode 100644 index 000000000..33996e85b --- /dev/null +++ b/src/rec/gsubRecord.ascii @@ -0,0 +1,234 @@ +recordtype(gsub) { + include "dbCommon.ascii" + field(VAL,DBF_FLOAT) { + prompt("Result") + asl(ASL0) + pp(TRUE) + } + field(INAM,DBF_STRING) { + prompt("Init Routine Name") + promptgroup(GUI_SUB) + special(SPC_NOMOD) + interest(1) + size(16) + } + field(SNAM,DBF_STRING) { + prompt("Subroutine Name") + promptgroup(GUI_SUB) + special(SPC_NOMOD) + interest(1) + size(16) + } + field(SADR,DBF_NOACCESS) { + prompt("Subroutine Address") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * sadr") + } + field(STYP,DBF_SHORT) { + prompt("Subr symbol type") + special(SPC_NOMOD) + interest(3) + } + field(INPA,DBF_INLINK) { + prompt("Input A") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPB,DBF_INLINK) { + prompt("Input B") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPC,DBF_INLINK) { + prompt("Input C") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPD,DBF_INLINK) { + prompt("Input D") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPE,DBF_INLINK) { + prompt("Input E") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPF,DBF_INLINK) { + prompt("Input F") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Units Name") + promptgroup(GUI_INPUTS) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Rng") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_FLOAT) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_FLOAT) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_FLOAT) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(BRSV,DBF_MENU) { + prompt("Bad Return Severity") + promptgroup(GUI_SUB) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_DOUBLE) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_DOUBLE) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_DOUBLE) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(A,DBF_FLOAT) { + prompt("Value of Input A") + pp(TRUE) + } + field(B,DBF_FLOAT) { + prompt("Value of Input B") + pp(TRUE) + } + field(C,DBF_FLOAT) { + prompt("Value of Input C") + pp(TRUE) + } + field(D,DBF_FLOAT) { + prompt("Value of Input D") + pp(TRUE) + } + field(E,DBF_FLOAT) { + prompt("Value of Input E") + pp(TRUE) + } + field(F,DBF_FLOAT) { + prompt("Value of Input F") + pp(TRUE) + } + field(LA,DBF_FLOAT) { + prompt("Prev Value of A") + special(SPC_NOMOD) + interest(3) + } + field(LB,DBF_FLOAT) { + prompt("Prev Value of B") + special(SPC_NOMOD) + interest(3) + } + field(LC,DBF_FLOAT) { + prompt("Prev Value of C") + special(SPC_NOMOD) + interest(3) + } + field(LD,DBF_FLOAT) { + prompt("Prev Value of D") + special(SPC_NOMOD) + interest(3) + } + field(LE,DBF_FLOAT) { + prompt("Prev Value of E") + special(SPC_NOMOD) + interest(3) + } + field(LF,DBF_FLOAT) { + prompt("Prev Value of F") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_FLOAT) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_FLOAT) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_FLOAT) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } +} diff --git a/src/rec/recGsub.c b/src/rec/gsubRecord.c similarity index 98% rename from src/rec/recGsub.c rename to src/rec/gsubRecord.c index 7db6c9536..308da1a86 100644 --- a/src/rec/recGsub.c +++ b/src/rec/gsubRecord.c @@ -49,7 +49,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -120,7 +122,8 @@ static long init_record(psub,pass) plink = &psub->inpa; pvalue = &psub->a; for(i=0; itype==CONSTANT) *pvalue = plink->value.value; + if(plink->type==CONSTANT) + recGblInitConstantLink(plink,DBF_FLOAT,pvalue); if (plink->type == PV_LINK) { status = dbCaAddInlink(plink, (void *) psub, Fldnames[i]); diff --git a/src/rec/histogramRecord.ascii b/src/rec/histogramRecord.ascii new file mode 100644 index 000000000..2559dcb44 --- /dev/null +++ b/src/rec/histogramRecord.ascii @@ -0,0 +1,120 @@ +menu(histogramCMD) { + choice(histogramCMD_Read,"Read") + choice(histogramCMD_Clear,"Clear") + choice(histogramCMD_Start,"Start") + choice(histogramCMD_Stop,"Stop") + choice(histogramCMD_Setup,"Setup") +} +recordtype(histogram) { + include "dbCommon.ascii" + field(VAL,DBF_NOACCESS) { + prompt("Value") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("void * val") + } + field(NELM,DBF_USHORT) { + prompt("Num of Array Elements") + promptgroup(GUI_HIST) + special(SPC_NOMOD) + interest(1) + initial("1") + } + field(CSTA,DBF_SHORT) { + prompt("Collection Status") + special(SPC_NOMOD) + interest(1) + initial("1") + } + field(CMD,DBF_MENU) { + prompt("Collection Control") + asl(ASL0) + special(SPC_CALC) + interest(1) + menu(histogramCMD) + } + field(ULIM,DBF_DOUBLE) { + prompt("Upper Signal Limit") + promptgroup(GUI_HIST) + special(SPC_RESET) + interest(1) + } + field(LLIM,DBF_DOUBLE) { + prompt("Lower Signal Limit ") + promptgroup(GUI_HIST) + special(SPC_RESET) + interest(1) + } + field(WDTH,DBF_DOUBLE) { + prompt("Element Width") + special(SPC_NOMOD) + interest(3) + } + field(SGNL,DBF_DOUBLE) { + prompt("Signal Value") + special(SPC_MOD) + } + field(SVL,DBF_INLINK) { + prompt("Signal Value Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(BPTR,DBF_NOACCESS) { + prompt("Buffer Pointer") + special(SPC_NOMOD) + interest(4) + size(4) + extra("unsigned long *bptr") + } + field(WDOG,DBF_NOACCESS) { + prompt("Watchdog callback") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * wdog") + } + field(MDEL,DBF_SHORT) { + prompt("Monitor Count Deadband") + promptgroup(GUI_HIST) + interest(1) + } + field(MCNT,DBF_SHORT) { + prompt("Counts Since Monitor") + special(SPC_NOMOD) + interest(3) + } + field(SDEL,DBF_FLOAT) { + prompt("Monitor Seconds Dband") + promptgroup(GUI_HIST) + special(SPC_NOMOD) + interest(1) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_DOUBLE) { + prompt("Simulation Value") + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recHistogram.c b/src/rec/histogramRecord.c similarity index 98% rename from src/rec/recHistogram.c rename to src/rec/histogramRecord.c index a8bbac989..3cecc36f1 100644 --- a/src/rec/recHistogram.c +++ b/src/rec/histogramRecord.c @@ -59,7 +59,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -193,7 +195,7 @@ static long init_record(phistogram,pass) } if (phistogram->siml.type == CONSTANT) { - phistogram->simm = phistogram->siml.value.value; + recGblInitConstantLink(&phistogram->siml,DBF_USHORT,&phistogram->simm); } else { status = recGblInitFastInLink(&(phistogram->siml), (void *) phistogram, DBR_ENUM, "SIMM"); @@ -202,7 +204,7 @@ static long init_record(phistogram,pass) } if (phistogram->siol.type == CONSTANT) { - phistogram->sval = phistogram->siol.value.value; + recGblInitConstantLink(&phistogram->siol,DBF_DOUBLE,&phistogram->sval); } else { status = recGblInitFastInLink(&(phistogram->siol), (void *) phistogram, DBR_DOUBLE, "SVAL"); diff --git a/src/rec/longinRecord.ascii b/src/rec/longinRecord.ascii new file mode 100644 index 000000000..06bd4ca30 --- /dev/null +++ b/src/rec/longinRecord.ascii @@ -0,0 +1,138 @@ +recordtype(longin) { + include "dbCommon.ascii" + field(VAL,DBF_LONG) { + prompt("Current value") + asl(ASL0) + pp(TRUE) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Units name") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(HOPR,DBF_LONG) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_LONG) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_LONG) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_LONG) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_LONG) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_LONG) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_LONG) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_LONG) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_LONG) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LALM,DBF_LONG) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_LONG) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_LONG) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_LONG) { + prompt("Simulation Value") + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recLongin.c b/src/rec/longinRecord.c similarity index 98% rename from src/rec/recLongin.c rename to src/rec/longinRecord.c index 8c7568f1f..977eaa034 100644 --- a/src/rec/recLongin.c +++ b/src/rec/longinRecord.c @@ -58,7 +58,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -124,7 +126,7 @@ static long init_record(plongin,pass) /* longin.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ if (plongin->siml.type == CONSTANT) { - plongin->simm = plongin->siml.value.value; + recGblInitConstantLink(&plongin->siml,DBF_USHORT,&plongin->simm); } else { status = recGblInitFastInLink(&(plongin->siml), (void *) plongin, DBR_ENUM, "SIMM"); @@ -133,7 +135,7 @@ static long init_record(plongin,pass) /* longin.siol must be a CONSTANT or a PV_LINK or a DB_LINK */ if (plongin->siol.type == CONSTANT) { - plongin->sval = plongin->siol.value.value; + recGblInitConstantLink(&plongin->siol,DBF_LONG,&plongin->sval); } else { status = recGblInitFastInLink(&(plongin->siol), (void *) plongin, DBR_LONG, "SVAL"); diff --git a/src/rec/longoutRecord.ascii b/src/rec/longoutRecord.ascii new file mode 100644 index 000000000..b3dea2ef9 --- /dev/null +++ b/src/rec/longoutRecord.ascii @@ -0,0 +1,158 @@ +recordtype(longout) { + include "dbCommon.ascii" + field(VAL,DBF_LONG) { + prompt("Desired Output") + asl(ASL0) + pp(TRUE) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(DOL,DBF_INLINK) { + prompt("Desired Output Loc") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OMSL,DBF_MENU) { + prompt("Output Mode Select") + promptgroup(GUI_OUTPUT) + interest(1) + menu(menuOmsl) + } + field(EGU,DBF_STRING) { + prompt("Units name") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(HOPR,DBF_LONG) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_LONG) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_LONG) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_LONG) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_LONG) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_LONG) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_LONG) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_LONG) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_LONG) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LALM,DBF_LONG) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_LONG) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_LONG) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } + field(SIOL,DBF_OUTLINK) { + prompt("Sim Output Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } + field(IVOA,DBF_MENU) { + prompt("INVALID output action") + promptgroup(GUI_OUTPUT) + interest(2) + menu(menuIvoa) + } + field(IVOV,DBF_LONG) { + prompt("INVALID output value") + promptgroup(GUI_OUTPUT) + interest(2) + } +} diff --git a/src/rec/recLongout.c b/src/rec/longoutRecord.c similarity index 96% rename from src/rec/recLongout.c rename to src/rec/longoutRecord.c index a1660b025..0b5d9963c 100644 --- a/src/rec/recLongout.c +++ b/src/rec/longoutRecord.c @@ -60,7 +60,10 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET +#include /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -126,7 +129,7 @@ static long init_record(plongout,pass) /* longout.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ if (plongout->siml.type == CONSTANT) { - plongout->simm = plongout->siml.value.value; + recGblInitConstantLink(&plongout->siml,DBF_USHORT,&plongout->simm); } else { status = recGblInitFastInLink(&(plongout->siml), (void *) plongout, DBR_ENUM, "SIMM"); @@ -147,8 +150,8 @@ static long init_record(plongout,pass) } /* get the initial value dol is a constant*/ if (plongout->dol.type == CONSTANT) { - plongout->val = plongout->dol.value.value; - plongout->udf=FALSE; + if(recGblInitConstantLink(&plongout->dol,DBF_LONG,&plongout->val)) + plongout->udf=FALSE; } else { status = recGblInitFastInLink(&(plongout->dol), (void *) plongout, DBR_LONG, "VAL"); @@ -189,12 +192,12 @@ static long process(plongout) status=writeValue(plongout); /* write the new value */ else { switch (plongout->ivoa) { - case (IVOA_CONTINUE) : + case (menuIvoaContinue_normally) : status=writeValue(plongout); /* write the new value */ break; - case (IVOA_NO_OUTPUT) : + case (menuIvoaDon_t_drive_outputs) : break; - case (IVOA_OUTPUT_IVOV) : + case (menuIvoaSet_output_to_IVOV) : if(plongout->pact == FALSE){ plongout->val=plongout->ivov; } diff --git a/src/rec/mbbiDirectRecord.ascii b/src/rec/mbbiDirectRecord.ascii new file mode 100644 index 000000000..c76ba0064 --- /dev/null +++ b/src/rec/mbbiDirectRecord.ascii @@ -0,0 +1,177 @@ +recordtype(mbbiDirect) { + include "dbCommon.ascii" + field(VAL,DBF_USHORT) { + prompt("Current Value") + asl(ASL0) + special(SPC_NOMOD) + pp(TRUE) + } + field(NOBT,DBF_SHORT) { + prompt("Number of Bits") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(RVAL,DBF_ULONG) { + prompt("Raw Value") + pp(TRUE) + } + field(ORAW,DBF_ULONG) { + prompt("Prev Raw Value") + special(SPC_NOMOD) + interest(3) + } + field(MASK,DBF_ULONG) { + prompt("Hardware Mask") + special(SPC_NOMOD) + interest(1) + } + field(MLST,DBF_USHORT) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_USHORT) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(SDEF,DBF_SHORT) { + prompt("States Defined") + special(SPC_NOMOD) + interest(3) + } + field(SHFT,DBF_USHORT) { + prompt("Shift") + special(SPC_NOMOD) + interest(1) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_USHORT) { + prompt("Simulation Value") + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_MBB) + interest(2) + menu(menuAlarmSevr) + } + field(B0,DBF_UCHAR) { + prompt("Bit 0") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + } + field(B1,DBF_UCHAR) { + prompt("Bit 1") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + } + field(B2,DBF_UCHAR) { + prompt("Bit 2") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + } + field(B3,DBF_UCHAR) { + prompt("Bit 3") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + } + field(B4,DBF_UCHAR) { + prompt("Bit 4") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + } + field(B5,DBF_UCHAR) { + prompt("Bit 5") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + } + field(B6,DBF_UCHAR) { + prompt("Bit 6") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + } + field(B7,DBF_UCHAR) { + prompt("Bit 7") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + } + field(B8,DBF_UCHAR) { + prompt("Bit 8") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + } + field(B9,DBF_UCHAR) { + prompt("Bit 9") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + } + field(BA,DBF_UCHAR) { + prompt("Bit A") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + } + field(BB,DBF_UCHAR) { + prompt("Bit B") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + } + field(BC,DBF_UCHAR) { + prompt("Bit C") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + } + field(BD,DBF_UCHAR) { + prompt("Bit D") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + } + field(BE,DBF_UCHAR) { + prompt("Bit E") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + } + field(BF,DBF_UCHAR) { + prompt("Bit F") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + } +} diff --git a/src/rec/recMbbiDirect.c b/src/rec/mbbiDirectRecord.c similarity index 97% rename from src/rec/recMbbiDirect.c rename to src/rec/mbbiDirectRecord.c index d74ef4eab..be235582b 100644 --- a/src/rec/recMbbiDirect.c +++ b/src/rec/mbbiDirectRecord.c @@ -48,7 +48,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -141,7 +143,7 @@ static long init_record(pmbbiDirect,pass) /* mbbi.siml must be a CONSTANT or a PV_LINK or a DB_LINK or a CA_LINK*/ switch (pmbbiDirect->siml.type) { case (CONSTANT) : - pmbbiDirect->simm = pmbbiDirect->siml.value.value; + recGblInitConstantLink(&pmbbiDirect->siml,DBF_USHORT,&pmbbiDirect->simm); break; case (PV_LINK) : status = dbCaAddInlink(&(pmbbiDirect->siml), (void *) pmbbiDirect, "SIMM"); @@ -158,7 +160,7 @@ static long init_record(pmbbiDirect,pass) /* mbbi.siol must be a CONSTANT or a PV_LINK or a DB_LINK or a CA_LINK*/ switch (pmbbiDirect->siol.type) { case (CONSTANT) : - pmbbiDirect->sval = pmbbiDirect->siol.value.value; + recGblInitConstantLink(&pmbbiDirect->siol,DBF_USHORT,&pmbbiDirect->sval); break; case (PV_LINK) : status = dbCaAddInlink(&(pmbbiDirect->siol), (void *) pmbbiDirect, "SVAL"); diff --git a/src/rec/mbbiRecord.ascii b/src/rec/mbbiRecord.ascii new file mode 100644 index 000000000..91c989c15 --- /dev/null +++ b/src/rec/mbbiRecord.ascii @@ -0,0 +1,446 @@ +recordtype(mbbi) { + include "dbCommon.ascii" + field(VAL,DBF_ENUM) { + prompt("Current Value") + asl(ASL0) + pp(TRUE) + } + field(NOBT,DBF_SHORT) { + prompt("Number of Bits") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(ZRVL,DBF_ULONG) { + prompt("Zero Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(ONVL,DBF_ULONG) { + prompt("One Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(TWVL,DBF_ULONG) { + prompt("Two Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(THVL,DBF_ULONG) { + prompt("Three Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(FRVL,DBF_ULONG) { + prompt("Four Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(FVVL,DBF_ULONG) { + prompt("Five Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(SXVL,DBF_ULONG) { + prompt("Six Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(SVVL,DBF_ULONG) { + prompt("Seven Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(EIVL,DBF_ULONG) { + prompt("Eight Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(NIVL,DBF_ULONG) { + prompt("Nine Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(TEVL,DBF_ULONG) { + prompt("Ten Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(ELVL,DBF_ULONG) { + prompt("Eleven Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(TVVL,DBF_ULONG) { + prompt("Twelve Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(TTVL,DBF_ULONG) { + prompt("Thirteen Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(FTVL,DBF_ULONG) { + prompt("Fourteen Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(FFVL,DBF_ULONG) { + prompt("Fifteen Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(ZRST,DBF_STRING) { + prompt("Zero String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(ONST,DBF_STRING) { + prompt("One String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(TWST,DBF_STRING) { + prompt("Two String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(THST,DBF_STRING) { + prompt("Three String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(FRST,DBF_STRING) { + prompt("Four String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(FVST,DBF_STRING) { + prompt("Five String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(SXST,DBF_STRING) { + prompt("Six String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(SVST,DBF_STRING) { + prompt("Seven String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(EIST,DBF_STRING) { + prompt("Eight String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(NIST,DBF_STRING) { + prompt("Nine String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(TEST,DBF_STRING) { + prompt("Ten String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(ELST,DBF_STRING) { + prompt("Eleven String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(TVST,DBF_STRING) { + prompt("Twelve String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(TTST,DBF_STRING) { + prompt("Thirteen String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(FTST,DBF_STRING) { + prompt("Fourteen String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(FFST,DBF_STRING) { + prompt("Fifteen String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(ZRSV,DBF_MENU) { + prompt("State Zero Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(ONSV,DBF_MENU) { + prompt("State One Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(TWSV,DBF_MENU) { + prompt("State Two Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(THSV,DBF_MENU) { + prompt("State Three Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(FRSV,DBF_MENU) { + prompt("State Four Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(FVSV,DBF_MENU) { + prompt("State Five Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(SXSV,DBF_MENU) { + prompt("State Six Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(SVSV,DBF_MENU) { + prompt("State Seven Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(EISV,DBF_MENU) { + prompt("State Eight Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(NISV,DBF_MENU) { + prompt("State Nine Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(TESV,DBF_MENU) { + prompt("State Ten Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(ELSV,DBF_MENU) { + prompt("State Eleven Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(TVSV,DBF_MENU) { + prompt("State Twelve Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(TTSV,DBF_MENU) { + prompt("State Thirteen Sevr") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(FTSV,DBF_MENU) { + prompt("State Fourteen Sevr") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(FFSV,DBF_MENU) { + prompt("State Fifteen Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(UNSV,DBF_MENU) { + prompt("Unknown State Severity") + promptgroup(GUI_MBB) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(COSV,DBF_MENU) { + prompt("Change of State Svr") + promptgroup(GUI_MBB) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(RVAL,DBF_ULONG) { + prompt("Raw Value") + pp(TRUE) + } + field(ORAW,DBF_ULONG) { + prompt("Prev Raw Value") + special(SPC_NOMOD) + interest(3) + } + field(MASK,DBF_ULONG) { + prompt("Hardware Mask") + special(SPC_NOMOD) + interest(1) + } + field(MLST,DBF_USHORT) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_USHORT) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(SDEF,DBF_SHORT) { + prompt("States Defined") + special(SPC_NOMOD) + interest(3) + } + field(SHFT,DBF_USHORT) { + prompt("Shift") + special(SPC_NOMOD) + interest(1) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_USHORT) { + prompt("Simulation Value") + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_MBB) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recMbbi.c b/src/rec/mbbiRecord.c similarity index 98% rename from src/rec/recMbbi.c rename to src/rec/mbbiRecord.c index a114a0be0..cc703ebeb 100644 --- a/src/rec/recMbbi.c +++ b/src/rec/mbbiRecord.c @@ -71,7 +71,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL #define initialize NULL @@ -155,7 +157,7 @@ static long init_record(pmbbi,pass) /* mbbi.siml must be a CONSTANT or a PV_LINK or a DB_LINK or a CA_LINK*/ if (pmbbi->siml.type == CONSTANT) { - pmbbi->simm = pmbbi->siml.value.value; + recGblInitConstantLink(&pmbbi->siml,DBF_USHORT,&pmbbi->simm); } else { status = recGblInitFastInLink(&(pmbbi->siml), (void *) pmbbi, DBR_ENUM, "SIMM"); @@ -165,7 +167,7 @@ static long init_record(pmbbi,pass) /* mbbi.siol must be a CONSTANT or a PV_LINK or a DB_LINK or a CA_LINK*/ if (pmbbi->siol.type == CONSTANT) { - pmbbi->sval = pmbbi->siol.value.value; + recGblInitConstantLink(&pmbbi->siol,DBF_USHORT,&pmbbi->sval); } else { status = recGblInitFastInLink(&(pmbbi->siol), (void *) pmbbi, DBR_USHORT, "SVAL"); diff --git a/src/rec/mbboDirectRecord.ascii b/src/rec/mbboDirectRecord.ascii new file mode 100644 index 000000000..ada3170ce --- /dev/null +++ b/src/rec/mbboDirectRecord.ascii @@ -0,0 +1,204 @@ +recordtype(mbboDirect) { + include "dbCommon.ascii" + field(VAL,DBF_USHORT) { + prompt("Word") + asl(ASL0) + special(SPC_NOMOD) + pp(TRUE) + } + field(OMSL,DBF_MENU) { + prompt("Output Mode Select") + promptgroup(GUI_MBB) + special(SPC_RESET) + pp(TRUE) + interest(1) + menu(menuOmsl) + } + field(NOBT,DBF_SHORT) { + prompt("Number of Bits") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(DOL,DBF_INLINK) { + prompt("Desired Output Loc") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(B0,DBF_UCHAR) { + prompt("Bit 0") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B1,DBF_UCHAR) { + prompt("Bit 1") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B2,DBF_UCHAR) { + prompt("Bit 2") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B3,DBF_UCHAR) { + prompt("Bit 3") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B4,DBF_UCHAR) { + prompt("Bit 4") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B5,DBF_UCHAR) { + prompt("Bit 5") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B6,DBF_UCHAR) { + prompt("Bit 6") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B7,DBF_UCHAR) { + prompt("Bit 7") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B8,DBF_UCHAR) { + prompt("Bit 8") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(B9,DBF_UCHAR) { + prompt("Bit 9") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(BA,DBF_UCHAR) { + prompt("Bit 10") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(BB,DBF_UCHAR) { + prompt("Bit 11") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(BC,DBF_UCHAR) { + prompt("Bit 12") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(BD,DBF_UCHAR) { + prompt("Bit 13") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(BE,DBF_UCHAR) { + prompt("Bit 14") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(BF,DBF_UCHAR) { + prompt("Bit 15") + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(RVAL,DBF_ULONG) { + prompt("Raw Value") + special(SPC_NOMOD) + pp(TRUE) + } + field(ORAW,DBF_ULONG) { + prompt("Prev Raw Value") + special(SPC_NOMOD) + interest(3) + } + field(RBV,DBF_ULONG) { + prompt("Readback Value") + special(SPC_NOMOD) + } + field(ORBV,DBF_ULONG) { + prompt("Prev Readback Value") + special(SPC_NOMOD) + interest(3) + } + field(MASK,DBF_ULONG) { + prompt("Hardware Mask") + special(SPC_NOMOD) + interest(1) + } + field(MLST,DBF_ULONG) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_ULONG) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(SHFT,DBF_ULONG) { + prompt("Shift") + special(SPC_NOMOD) + interest(1) + } + field(SIOL,DBF_OUTLINK) { + prompt("Sim Output Specifctn") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_MBB) + interest(2) + menu(menuAlarmSevr) + } + field(IVOA,DBF_MENU) { + prompt("INVALID outpt action") + promptgroup(GUI_MBB) + interest(2) + menu(menuIvoa) + } + field(IVOV,DBF_USHORT) { + prompt("INVALID output value") + promptgroup(GUI_MBB) + interest(2) + } +} diff --git a/src/rec/recMbboDirect.c b/src/rec/mbboDirectRecord.c similarity index 98% rename from src/rec/recMbboDirect.c rename to src/rec/mbboDirectRecord.c index f19425457..5a2632fa2 100644 --- a/src/rec/recMbboDirect.c +++ b/src/rec/mbboDirectRecord.c @@ -48,7 +48,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -118,7 +120,7 @@ static long init_record(pmbboDirect,pass) /* mbbo.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ switch (pmbboDirect->siml.type) { case (CONSTANT) : - pmbboDirect->simm = pmbboDirect->siml.value.value; + recGblInitConstantLink(&pmbboDirect->siml,DBF_USHORT,&pmbboDirect->simm); break; case (PV_LINK) : status = dbCaAddInlink(&(pmbboDirect->siml), (void *) pmbboDirect, "SIMM"); @@ -148,7 +150,7 @@ static long init_record(pmbboDirect,pass) return(S_dev_missingSup); } if (pmbboDirect->dol.type == CONSTANT){ - pmbboDirect->val = pmbboDirect->dol.value.value; + recGblInitConstantLink(&pmbboDirect->dol,DBF_USHORT,&pmbboDirect->val); } /* initialize mask*/ pmbboDirect->mask = 0; diff --git a/src/rec/mbboRecord.ascii b/src/rec/mbboRecord.ascii new file mode 100644 index 000000000..e1082ff94 --- /dev/null +++ b/src/rec/mbboRecord.ascii @@ -0,0 +1,475 @@ +recordtype(mbbo) { + include "dbCommon.ascii" + field(VAL,DBF_ENUM) { + prompt("Desired Value") + asl(ASL0) + pp(TRUE) + } + field(DOL,DBF_INLINK) { + prompt("Desired Output Loc") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(OMSL,DBF_MENU) { + prompt("Output Mode Select") + promptgroup(GUI_MBB) + interest(1) + menu(menuOmsl) + } + field(NOBT,DBF_SHORT) { + prompt("Number of Bits") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(ZRVL,DBF_ULONG) { + prompt("Zero Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(ONVL,DBF_ULONG) { + prompt("One Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(TWVL,DBF_ULONG) { + prompt("Two Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(THVL,DBF_ULONG) { + prompt("Three Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(FRVL,DBF_ULONG) { + prompt("Four Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(FVVL,DBF_ULONG) { + prompt("Five Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(SXVL,DBF_ULONG) { + prompt("Six Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(SVVL,DBF_ULONG) { + prompt("Seven Value") + promptgroup(GUI_BITS1) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(EIVL,DBF_ULONG) { + prompt("Eight Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(NIVL,DBF_ULONG) { + prompt("Nine Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(TEVL,DBF_ULONG) { + prompt("Ten Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(ELVL,DBF_ULONG) { + prompt("Eleven Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(TVVL,DBF_ULONG) { + prompt("Twelve Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(TTVL,DBF_ULONG) { + prompt("Thirteen Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(FTVL,DBF_ULONG) { + prompt("Fourteen Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(FFVL,DBF_ULONG) { + prompt("Fifteen Value") + promptgroup(GUI_BITS2) + special(SPC_MOD) + pp(TRUE) + base(HEX) + interest(1) + } + field(ZRST,DBF_STRING) { + prompt("Zero String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(ONST,DBF_STRING) { + prompt("One String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(TWST,DBF_STRING) { + prompt("Two String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(THST,DBF_STRING) { + prompt("Three String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(FRST,DBF_STRING) { + prompt("Four String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(FVST,DBF_STRING) { + prompt("Five String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(SXST,DBF_STRING) { + prompt("Six String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(SVST,DBF_STRING) { + prompt("Seven String") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + size(16) + } + field(EIST,DBF_STRING) { + prompt("Eight String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(NIST,DBF_STRING) { + prompt("Nine String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(TEST,DBF_STRING) { + prompt("Ten String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(ELST,DBF_STRING) { + prompt("Eleven String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(TVST,DBF_STRING) { + prompt("Twelve String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(TTST,DBF_STRING) { + prompt("Thirteen String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(FTST,DBF_STRING) { + prompt("Fourteen String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(FFST,DBF_STRING) { + prompt("Fifteen String") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + size(16) + } + field(ZRSV,DBF_MENU) { + prompt("State Zero Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(ONSV,DBF_MENU) { + prompt("State One Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(TWSV,DBF_MENU) { + prompt("State Two Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(THSV,DBF_MENU) { + prompt("State Three Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(FRSV,DBF_MENU) { + prompt("State Four Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(FVSV,DBF_MENU) { + prompt("State Five Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(SXSV,DBF_MENU) { + prompt("State Six Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(SVSV,DBF_MENU) { + prompt("State Seven Severity") + promptgroup(GUI_BITS1) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(EISV,DBF_MENU) { + prompt("State Eight Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(NISV,DBF_MENU) { + prompt("State Nine Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(TESV,DBF_MENU) { + prompt("State Ten Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(ELSV,DBF_MENU) { + prompt("State Eleven Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(TVSV,DBF_MENU) { + prompt("State Twelve Severity") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(TTSV,DBF_MENU) { + prompt("State Thirteen Sevr") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(FTSV,DBF_MENU) { + prompt("State Fourteen Sevr") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(FFSV,DBF_MENU) { + prompt("State Fifteen Sevr") + promptgroup(GUI_BITS2) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(UNSV,DBF_MENU) { + prompt("Unknown State Sevr") + promptgroup(GUI_MBB) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(COSV,DBF_MENU) { + prompt("Change of State Sevr") + promptgroup(GUI_MBB) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(RVAL,DBF_ULONG) { + prompt("Raw Value") + pp(TRUE) + } + field(ORAW,DBF_ULONG) { + prompt("Prev Raw Value") + special(SPC_NOMOD) + interest(3) + } + field(RBV,DBF_ULONG) { + prompt("Readback Value") + special(SPC_NOMOD) + } + field(ORBV,DBF_ULONG) { + prompt("Prev Readback Value") + special(SPC_NOMOD) + interest(3) + } + field(MASK,DBF_ULONG) { + prompt("Hardware Mask") + special(SPC_NOMOD) + interest(1) + } + field(MLST,DBF_USHORT) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_USHORT) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(SDEF,DBF_SHORT) { + prompt("States Defined") + special(SPC_NOMOD) + interest(3) + } + field(SHFT,DBF_USHORT) { + prompt("Shift") + special(SPC_NOMOD) + interest(1) + } + field(SIOL,DBF_OUTLINK) { + prompt("Sim Output Specifctn") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_MBB) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_MBB) + interest(2) + menu(menuAlarmSevr) + } + field(IVOA,DBF_MENU) { + prompt("INVALID outpt action") + promptgroup(GUI_MBB) + interest(2) + menu(menuIvoa) + } + field(IVOV,DBF_USHORT) { + prompt("INVALID output value") + promptgroup(GUI_MBB) + interest(2) + } +} diff --git a/src/rec/recMbbo.c b/src/rec/mbboRecord.c similarity index 97% rename from src/rec/recMbbo.c rename to src/rec/mbboRecord.c index 856ec0e0c..f236ee267 100644 --- a/src/rec/recMbbo.c +++ b/src/rec/mbboRecord.c @@ -75,7 +75,10 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET +#include /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -163,7 +166,7 @@ static long init_record(pmbbo,pass) /* mbbo.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ if (pmbbo->siml.type == CONSTANT) { - pmbbo->simm = pmbbo->siml.value.value; + recGblInitConstantLink(&pmbbo->siml,DBF_USHORT,&pmbbo->simm); } else { status = recGblInitFastInLink(&(pmbbo->siml), (void *) pmbbo, DBR_ENUM, "SIMM"); @@ -186,8 +189,8 @@ static long init_record(pmbbo,pass) return(S_dev_missingSup); } if (pmbbo->dol.type == CONSTANT){ - pmbbo->val = pmbbo->dol.value.value; - pmbbo->udf = FALSE; + if(recGblInitConstantLink(&pmbbo->dol,DBF_USHORT,&pmbbo->val)) + pmbbo->udf = FALSE; } else { status = recGblInitFastInLink(&(pmbbo->dol), (void *) pmbbo, DBR_USHORT, "VAL"); @@ -278,12 +281,12 @@ CONTINUE: status=writeValue(pmbbo); /* write the new value */ else { switch (pmbbo->ivoa) { - case (IVOA_CONTINUE) : + case (menuIvoaContinue_normally) : status=writeValue(pmbbo); /* write the new value */ break; - case (IVOA_NO_OUTPUT) : + case (menuIvoaDon_t_drive_outputs) : break; - case (IVOA_OUTPUT_IVOV) : + case (menuIvoaSet_output_to_IVOV) : if (pmbbo->pact == FALSE){ pmbbo->val=pmbbo->ivov; convert(pmbbo); diff --git a/src/rec/palRecord.ascii b/src/rec/palRecord.ascii new file mode 100644 index 000000000..c390833c9 --- /dev/null +++ b/src/rec/palRecord.ascii @@ -0,0 +1,336 @@ +recordtype(pal) { + include "dbCommon.ascii" + field(VAL,DBF_ULONG) { + prompt("Result") + asl(ASL0) + } + field(JEDF,DBF_STRING) { + prompt("jedfile") + promptgroup(GUI_INPUTS) + pp(TRUE) + interest(1) + size(36) + } + field(PPTR,DBF_NOACCESS) { + prompt("paldata") + interest(4) + size(4) + extra("void * pptr") + } + field(INPA,DBF_INLINK) { + prompt("Input A") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPB,DBF_INLINK) { + prompt("Input B") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPC,DBF_INLINK) { + prompt("Input C") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPD,DBF_INLINK) { + prompt("Input D") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPE,DBF_INLINK) { + prompt("Input E") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPF,DBF_INLINK) { + prompt("Input F") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPG,DBF_INLINK) { + prompt("Input G") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPH,DBF_INLINK) { + prompt("Input H") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPI,DBF_INLINK) { + prompt("Input I") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPJ,DBF_INLINK) { + prompt("Input J") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPK,DBF_INLINK) { + prompt("Input K") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(INPL,DBF_INLINK) { + prompt("Input L") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + } + field(A0,DBF_DOUBLE) { + prompt("0 thresh of Input A") + promptgroup(GUI_INPUTS) + interest(1) + } + field(A1,DBF_DOUBLE) { + prompt("1 thresh of Input A") + promptgroup(GUI_INPUTS) + interest(1) + } + field(B0,DBF_DOUBLE) { + prompt("0 thresh of Input B") + promptgroup(GUI_INPUTS) + interest(1) + } + field(B1,DBF_DOUBLE) { + prompt("1 thresh of Input B") + promptgroup(GUI_INPUTS) + interest(1) + } + field(C0,DBF_DOUBLE) { + prompt("0 thresh of Input C") + promptgroup(GUI_INPUTS) + interest(1) + } + field(C1,DBF_DOUBLE) { + prompt("1 thresh of Input C") + promptgroup(GUI_INPUTS) + interest(1) + } + field(D0,DBF_DOUBLE) { + prompt("0 thresh of Input D") + promptgroup(GUI_INPUTS) + interest(1) + } + field(D1,DBF_DOUBLE) { + prompt("1 thresh of Input D") + promptgroup(GUI_INPUTS) + interest(1) + } + field(E0,DBF_DOUBLE) { + prompt("0 thresh of Input E") + promptgroup(GUI_INPUTS) + interest(1) + } + field(E1,DBF_DOUBLE) { + prompt("1 thresh of Input E") + promptgroup(GUI_INPUTS) + interest(1) + } + field(F0,DBF_DOUBLE) { + prompt("0 thresh of Input F") + promptgroup(GUI_INPUTS) + interest(1) + } + field(F1,DBF_DOUBLE) { + prompt("1 thresh of Input F") + promptgroup(GUI_INPUTS) + interest(1) + } + field(G0,DBF_DOUBLE) { + prompt("0 thresh of Input G") + promptgroup(GUI_INPUTS) + interest(1) + } + field(G1,DBF_DOUBLE) { + prompt("1 thresh of Input G") + promptgroup(GUI_INPUTS) + interest(1) + } + field(H0,DBF_DOUBLE) { + prompt("0 thresh of Input H") + promptgroup(GUI_INPUTS) + interest(1) + } + field(H1,DBF_DOUBLE) { + prompt("1 thresh of Input H") + promptgroup(GUI_INPUTS) + interest(1) + } + field(I0,DBF_DOUBLE) { + prompt("0 thresh of Input I") + promptgroup(GUI_INPUTS) + interest(1) + } + field(I1,DBF_DOUBLE) { + prompt("1 thresh of Input I") + promptgroup(GUI_INPUTS) + interest(1) + } + field(J0,DBF_DOUBLE) { + prompt("0 thresh of Input J") + promptgroup(GUI_INPUTS) + interest(1) + } + field(J1,DBF_DOUBLE) { + prompt("1 thresh of Input J") + promptgroup(GUI_INPUTS) + interest(1) + } + field(K0,DBF_DOUBLE) { + prompt("0 thresh of Input K") + promptgroup(GUI_INPUTS) + interest(1) + } + field(K1,DBF_DOUBLE) { + prompt("1 thresh of Input K") + promptgroup(GUI_INPUTS) + interest(1) + } + field(L0,DBF_DOUBLE) { + prompt("0 thresh of Input L") + promptgroup(GUI_INPUTS) + interest(1) + } + field(L1,DBF_DOUBLE) { + prompt("1 thresh of Input L") + promptgroup(GUI_INPUTS) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Units Name") + promptgroup(GUI_INPUTS) + interest(1) + size(16) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_INPUTS) + interest(1) + } + field(A,DBF_DOUBLE) { + prompt("value of input A") + } + field(B,DBF_DOUBLE) { + prompt("value of input B") + } + field(C,DBF_DOUBLE) { + prompt("value of input C") + } + field(D,DBF_DOUBLE) { + prompt("value of input D") + } + field(E,DBF_DOUBLE) { + prompt("value of input E") + } + field(F,DBF_DOUBLE) { + prompt("value of input F") + } + field(G,DBF_DOUBLE) { + prompt("value of input G") + } + field(H,DBF_DOUBLE) { + prompt("value of input H") + } + field(I,DBF_DOUBLE) { + prompt("value of input I") + } + field(J,DBF_DOUBLE) { + prompt("value of input J") + } + field(K,DBF_DOUBLE) { + prompt("value of input K") + } + field(L,DBF_DOUBLE) { + prompt("value of input L") + } + field(LA,DBF_DOUBLE) { + prompt("prev value of A") + } + field(LB,DBF_DOUBLE) { + prompt("prev value of B") + } + field(LC,DBF_DOUBLE) { + prompt("prev value of C") + } + field(LD,DBF_DOUBLE) { + prompt("prev value of D") + } + field(LE,DBF_DOUBLE) { + prompt("prev value of E") + } + field(LF,DBF_DOUBLE) { + prompt("prev value of F") + } + field(LG,DBF_DOUBLE) { + prompt("prev value of G") + } + field(LH,DBF_DOUBLE) { + prompt("prev value of H") + } + field(LI,DBF_DOUBLE) { + prompt("prev value of I") + } + field(LJ,DBF_DOUBLE) { + prompt("prev value of J") + } + field(LK,DBF_DOUBLE) { + prompt("prev value of K") + } + field(LL,DBF_DOUBLE) { + prompt("prev value of L") + } + field(Q0,DBF_UCHAR) { + prompt("Value of Q0") + } + field(Q1,DBF_UCHAR) { + prompt("Value of Q1") + } + field(Q2,DBF_UCHAR) { + prompt("Value of Q2") + } + field(Q3,DBF_UCHAR) { + prompt("Value of Q3") + } + field(Q4,DBF_UCHAR) { + prompt("Value of Q4") + } + field(Q5,DBF_UCHAR) { + prompt("Value of Q5") + } + field(Q6,DBF_UCHAR) { + prompt("Value of Q6") + } + field(Q7,DBF_UCHAR) { + prompt("Value of Q7") + } + field(Q8,DBF_UCHAR) { + prompt("Value of Q8") + } + field(Q9,DBF_UCHAR) { + prompt("Value of Q9") + } + field(QA,DBF_UCHAR) { + prompt("Value of QA") + } + field(QB,DBF_UCHAR) { + prompt("Value of QB") + } + field(MLST,DBF_ULONG) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } +} diff --git a/src/rec/recPal.c b/src/rec/palRecord.c similarity index 98% rename from src/rec/recPal.c rename to src/rec/palRecord.c index 8169aa602..128d2d37a 100644 --- a/src/rec/recPal.c +++ b/src/rec/palRecord.c @@ -45,7 +45,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -115,7 +117,7 @@ static long init_record(ppal,pass) pvalue = &ppal->a; for(i=0; itype==CONSTANT) { - *pvalue = plink->value.value; + recGblInitConstantLink(plink,DBF_DOUBLE,pvalue); } else { status = recGblInitFastInLink(plink, (void *) ppal, DBR_DOUBLE, Fldnames[i]); diff --git a/src/rec/permissiveRecord.ascii b/src/rec/permissiveRecord.ascii new file mode 100644 index 000000000..b854dd623 --- /dev/null +++ b/src/rec/permissiveRecord.ascii @@ -0,0 +1,29 @@ +recordtype(permissive) { + include "dbCommon.ascii" + field(LABL,DBF_STRING) { + prompt("Button Label") + promptgroup(GUI_DISPLAY) + pp(TRUE) + interest(1) + size(20) + } + field(VAL,DBF_USHORT) { + prompt("Status") + asl(ASL0) + pp(TRUE) + } + field(OVAL,DBF_USHORT) { + prompt("Old Status") + special(SPC_NOMOD) + interest(3) + } + field(WFLG,DBF_USHORT) { + prompt("Wait Flag") + pp(TRUE) + } + field(OFLG,DBF_USHORT) { + prompt("Old Flag") + special(SPC_NOMOD) + interest(3) + } +} diff --git a/src/rec/recPermissive.c b/src/rec/permissiveRecord.c similarity index 98% rename from src/rec/recPermissive.c rename to src/rec/permissiveRecord.c index a56aa9dfd..f44e455a1 100644 --- a/src/rec/recPermissive.c +++ b/src/rec/permissiveRecord.c @@ -47,7 +47,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL diff --git a/src/rec/pidRecord.ascii b/src/rec/pidRecord.ascii new file mode 100644 index 000000000..5b6a41186 --- /dev/null +++ b/src/rec/pidRecord.ascii @@ -0,0 +1,193 @@ +recordtype(pid) { + include "dbCommon.ascii" + field(VAL,DBF_FLOAT) { + prompt("Setpoint") + asl(ASL0) + pp(TRUE) + } + field(CVL,DBF_INLINK) { + prompt("Controlled Value Loc") + promptgroup(GUI_PID) + special(SPC_NOMOD) + interest(1) + } + field(STPL,DBF_INLINK) { + prompt("Setpoint Location") + promptgroup(GUI_PID) + special(SPC_NOMOD) + interest(1) + } + field(SMSL,DBF_MENU) { + prompt("Setpoint Mode Select") + promptgroup(GUI_PID) + interest(1) + menu(menuOmsl) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDT,DBF_FLOAT) { + prompt("Min Delta T") + promptgroup(GUI_PID) + interest(1) + } + field(KP,DBF_FLOAT) { + prompt("Proportional Gain") + promptgroup(GUI_PID) + interest(1) + } + field(KI,DBF_FLOAT) { + prompt("Intergral Gain") + promptgroup(GUI_PID) + interest(1) + } + field(KD,DBF_FLOAT) { + prompt("Derivative Gain") + promptgroup(GUI_PID) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Engineering Units") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_FLOAT) { + prompt("Hihi Deviation Limit") + promptgroup(GUI_ALARMS) + interest(1) + } + field(LOLO,DBF_FLOAT) { + prompt("Lolo Deviation Limit") + promptgroup(GUI_ALARMS) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("High Deviation Limit") + promptgroup(GUI_ALARMS) + interest(1) + } + field(LOW,DBF_FLOAT) { + prompt("Low Deviation Limit") + promptgroup(GUI_ALARMS) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_FLOAT) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_FLOAT) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_FLOAT) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(ODEL,DBF_FLOAT) { + prompt("DM Deadband") + promptgroup(GUI_PID) + interest(1) + } + field(CVAL,DBF_FLOAT) { + prompt("Controlled Value") + } + field(DM,DBF_FLOAT) { + prompt("Change in Manip Var") + special(SPC_NOMOD) + } + field(ODM,DBF_FLOAT) { + prompt("Prev Change") + special(SPC_NOMOD) + interest(3) + } + field(P,DBF_FLOAT) { + prompt("P component") + special(SPC_NOMOD) + interest(2) + } + field(I,DBF_FLOAT) { + prompt("I component") + special(SPC_NOMOD) + interest(2) + } + field(D,DBF_FLOAT) { + prompt("D component") + special(SPC_NOMOD) + interest(2) + } + field(CT,DBF_ULONG) { + prompt("Clock Ticks Prev") + special(SPC_NOMOD) + interest(4) + } + field(DT,DBF_FLOAT) { + prompt("Delta T") + special(SPC_NOMOD) + interest(2) + } + field(ERR,DBF_FLOAT) { + prompt("Error") + special(SPC_NOMOD) + interest(2) + } + field(DERR,DBF_FLOAT) { + prompt("Change in Error") + special(SPC_NOMOD) + interest(2) + } + field(LALM,DBF_FLOAT) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_FLOAT) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_FLOAT) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } +} diff --git a/src/rec/recPid.c b/src/rec/pidRecord.c similarity index 99% rename from src/rec/recPid.c rename to src/rec/pidRecord.c index 29adb3793..847a0a731 100644 --- a/src/rec/recPid.c +++ b/src/rec/pidRecord.c @@ -58,7 +58,9 @@ unsigned long tickGet(); #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -116,7 +118,7 @@ static long init_record(ppid,pass) /* initialize the setpoint for constant setpoint */ if (ppid->stpl.type == CONSTANT){ - ppid->val = ppid->stpl.value.value; + if(recGblInitConstantLink(&ppid->stpl,DBF_FLOAT,&ppid->val)) ppid->udf = FALSE; } else { diff --git a/src/rec/pulseCounterRecord.ascii b/src/rec/pulseCounterRecord.ascii new file mode 100644 index 000000000..ec9ad0c96 --- /dev/null +++ b/src/rec/pulseCounterRecord.ascii @@ -0,0 +1,106 @@ +menu(pulseCounterCNTE) { + choice(pulseCounterCNTE_Rising_Edge,"Rising Edge") + choice(pulseCounterCNTE_Falling_Edge,"Falling Edge") +} +menu(pulseCounterGTYP) { + choice(pulseCounterGTYP_Hardware,"Hardware") + choice(pulseCounterGTYP_Software,"Software") +} +menu(pulseCounterCMD) { + choice(pulseCounterCMD_Read,"Read") + choice(pulseCounterCMD_Clear,"Clear") + choice(pulseCounterCMD_Start,"Start") + choice(pulseCounterCMD_Stop,"Stop") + choice(pulseCounterCMD_Setup,"Setup") +} +menu(pulseCounterSGV) { + choice(pulseCounterSGV_Inactive,"Inactive") + choice(pulseCounterSGV_Active,"Active") +} +menu(pulseCounterCSIZ) { + choice(pulseCounterCSIZ_16_bit,"16 bit") + choice(pulseCounterCSIZ_32_bit,"32 bit") +} +recordtype(pulseCounter) { + include "dbCommon.ascii" + field(VAL,DBF_ULONG) { + prompt("Counter Value") + asl(ASL0) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(GTYP,DBF_MENU) { + prompt("Gate Type") + promptgroup(GUI_PULSE) + interest(1) + menu(pulseCounterGTYP) + } + field(HGV,DBF_SHORT) { + prompt("Hardware Gate Value") + promptgroup(GUI_PULSE) + } + field(SGL,DBF_INLINK) { + prompt("Soft Gate Location") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(SGV,DBF_MENU) { + prompt("Soft Gate Value") + promptgroup(GUI_PULSE) + menu(pulseCounterSGV) + } + field(OSGV,DBF_USHORT) { + prompt("Old Soft Gate Value") + special(SPC_NOMOD) + interest(3) + } + field(CSIZ,DBF_MENU) { + prompt("Counter Size") + promptgroup(GUI_PULSE) + interest(1) + menu(pulseCounterCSIZ) + } + field(CNTE,DBF_MENU) { + prompt("Counter Sounce Edge") + promptgroup(GUI_PULSE) + interest(1) + menu(pulseCounterCNTE) + } + field(CNTS,DBF_SHORT) { + prompt("Count Source") + promptgroup(GUI_PULSE) + interest(1) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + initial("4.3e+09") + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(CMD,DBF_MENU) { + prompt("Command") + asl(ASL0) + pp(TRUE) + interest(1) + menu(pulseCounterCMD) + } + field(SCMD,DBF_USHORT) { + prompt("Save Command") + special(SPC_NOMOD) + interest(3) + } + field(CPTR,DBF_ULONG) { + prompt("Callback") + special(SPC_NOMOD) + } +} diff --git a/src/rec/recPulseCounter.c b/src/rec/pulseCounterRecord.c similarity index 98% rename from src/rec/recPulseCounter.c rename to src/rec/pulseCounterRecord.c index bdbd0ea84..89fea08cd 100644 --- a/src/rec/recPulseCounter.c +++ b/src/rec/pulseCounterRecord.c @@ -46,13 +46,14 @@ #include #include #include -#include #include #include #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -152,8 +153,7 @@ static long init_record(struct pulseCounterRecord *ppc, int pass) /* get the hgv value if sgl is a constant*/ if (ppc->sgl.type == CONSTANT && ppc->gtyp == SOFTWARE) - if(ppc->sgl.value.value!=0) - ppc->sgv = ppc->sgl.value.value; + recGblInitConstantLink(&ppc->sgl,DBF_USHORT,&ppc->sgv); if (ppc->sgl.type == PV_LINK && ppc->gtyp == SOFTWARE) { diff --git a/src/rec/pulseDelayRecord.ascii b/src/rec/pulseDelayRecord.ascii new file mode 100644 index 000000000..96b930d27 --- /dev/null +++ b/src/rec/pulseDelayRecord.ascii @@ -0,0 +1,164 @@ +menu(pulseDelayCTYP) { + choice(pulseDelayCTYP_Internal,"Internal") + choice(pulseDelayCTYP_External,"External") +} +menu(pulseDelayLLOW) { + choice(pulseDelayLLOW_Logic_Low_0,"Logic Low=0") + choice(pulseDelayLLOW_Logic_Low_1,"Logic Low=1") +} +menu(pulseDelayCEDG) { + choice(pulseDelayCEDG_Rising_Edge,"Rising Edge") + choice(pulseDelayCEDG_Falling_Edge,"Falling Edge") +} +menu(pulseDelayTTYP) { + choice(pulseDelayTTYP_Hardware,"Hardware") + choice(pulseDelayTTYP_Software,"Software") +} +menu(pulseDelaySTV) { + choice(pulseDelaySTV_Disable,"Disable") + choice(pulseDelaySTV_Enable,"Enable") +} +menu(pulseDelayUNIT) { + choice(pulseDelayUNIT_Seconds,"Seconds") + choice(pulseDelayUNIT_Milliseconds,"Milliseconds") + choice(pulseDelayUNIT_Microseconds,"Microseconds") + choice(pulseDelayUNIT_Nanoseconds,"Nanoseconds") + choice(pulseDelayUNIT_Picoseconds,"Picoseconds") +} +menu(pulseDelayVAL) { + choice(pulseDelayVAL_Inactive,"Inactive") + choice(pulseDelayVAL_Active,"Active") +} +recordtype(pulseDelay) { + include "dbCommon.ascii" + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(UNIT,DBF_MENU) { + prompt("Delay Time Units") + promptgroup(GUI_PULSE) + interest(1) + menu(pulseDelayUNIT) + } + field(DLY,DBF_DOUBLE) { + prompt("Pulse Delay") + promptgroup(GUI_PULSE) + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(WIDE,DBF_DOUBLE) { + prompt("Pulse Width") + promptgroup(GUI_PULSE) + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(ODLY,DBF_DOUBLE) { + prompt("Old Pulse Delay") + special(SPC_NOMOD) + interest(3) + } + field(OWID,DBF_DOUBLE) { + prompt("Old Pulse Width") + special(SPC_NOMOD) + interest(3) + } + field(CTYP,DBF_MENU) { + prompt("Clock Type") + promptgroup(GUI_CLOCK) + interest(1) + menu(pulseDelayCTYP) + } + field(CEDG,DBF_MENU) { + prompt("Clock Signal Edge") + promptgroup(GUI_CLOCK) + interest(1) + menu(pulseDelayCEDG) + } + field(ECS,DBF_SHORT) { + prompt("Ext Clock Source") + promptgroup(GUI_CLOCK) + interest(1) + } + field(ECR,DBF_DOUBLE) { + prompt("Ext Clock Rate (HZ)") + promptgroup(GUI_CLOCK) + interest(1) + } + field(LLOW,DBF_MENU) { + prompt("Low Logic Level") + promptgroup(GUI_CLOCK) + interest(1) + menu(pulseDelayLLOW) + } + field(VAL,DBF_MENU) { + prompt("Trigger Detect") + asl(ASL0) + menu(pulseDelayVAL) + } + field(TTYP,DBF_MENU) { + prompt("Trigger Type") + promptgroup(GUI_CLOCK) + interest(1) + menu(pulseDelayTTYP) + } + field(HTS,DBF_ENUM) { + prompt("Hardware Trigger Src") + promptgroup(GUI_CLOCK) + special(SPC_MOD) + pp(TRUE) + interest(1) + } + field(STL,DBF_INLINK) { + prompt("Soft Trigger Location") + promptgroup(GUI_CLOCK) + special(SPC_NOMOD) + interest(1) + } + field(STV,DBF_MENU) { + prompt("Soft Trigger Value") + promptgroup(GUI_CLOCK) + special(SPC_MOD) + pp(TRUE) + interest(1) + menu(pulseDelaySTV) + } + field(GLNK,DBF_INLINK) { + prompt("Soft Gate Location") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(GATE,DBF_MENU) { + prompt("Soft Gate Value") + promptgroup(GUI_PULSE) + special(SPC_MOD) + pp(TRUE) + interest(1) + menu(pulseDelaySTV) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(PFLD,DBF_USHORT) { + prompt("Field Processing") + special(SPC_NOMOD) + interest(3) + } +} diff --git a/src/rec/recPulseDelay.c b/src/rec/pulseDelayRecord.c similarity index 98% rename from src/rec/recPulseDelay.c rename to src/rec/pulseDelayRecord.c index cd6e82519..972fab91d 100644 --- a/src/rec/recPulseDelay.c +++ b/src/rec/pulseDelayRecord.c @@ -49,12 +49,13 @@ #include #include #include -#include #include #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* defines used in special routine */ @@ -139,8 +140,7 @@ static long init_record(ppd,pass) /* get the soft trigger value if stl is a constant*/ if(ppd->stl.type==CONSTANT) { - if(ppd->stl.value.value!=0) - ppd->stv=ppd->stl.value.value; + recGblInitConstantLink(&ppd->stl,DBF_USHORT,&ppd->stv); } if(ppd->stl.type==PV_LINK) @@ -152,9 +152,7 @@ static long init_record(ppd,pass) /* get the soft gate value if glnk is a constant*/ if(ppd->glnk.type==CONSTANT) { - /* changed by jbk */ - if(ppd->glnk.value.value!=0) - ppd->gate=ppd->glnk.value.value; + recGblInitConstantLink(&ppd->glnk,DBF_USHORT,&ppd->gate); } if(ppd->glnk.type==PV_LINK) diff --git a/src/rec/pulseTrainRecord.ascii b/src/rec/pulseTrainRecord.ascii new file mode 100644 index 000000000..9ba379022 --- /dev/null +++ b/src/rec/pulseTrainRecord.ascii @@ -0,0 +1,137 @@ +menu(pulseTrainCTYP) { + choice(pulseTrainCTYP_Internal,"Internal") + choice(pulseTrainCTYP_External,"External") +} +menu(pulseTrainLLOW) { + choice(pulseTrainLLOW_Logic_Low_0,"Logic Low=0") + choice(pulseTrainLLOW_Logic_Low_1,"Logic Low=1") +} +menu(pulseTrainCEDG) { + choice(pulseTrainCEDG_Rising_Edge,"Rising Edge") + choice(pulseTrainCEDG_Falling_Edge,"Falling Edge") +} +menu(pulseTrainGTYP) { + choice(pulseTrainGTYP_Hardware,"Hardware") + choice(pulseTrainGTYP_Software,"Software") +} +menu(pulseTrainSGV) { + choice(pulseTrainSGV_Inactive,"Inactive") + choice(pulseTrainSGV_Active,"Active") +} +menu(pulseTrainUNIT) { + choice(pulseTrainUNIT_Seconds,"Seconds") + choice(pulseTrainUNIT_Milliseconds,"Milliseconds") + choice(pulseTrainUNIT_Microseconds,"Microseconds") + choice(pulseTrainUNIT_Nanoseconds,"Nanoseconds") + choice(pulseTrainUNIT_Picoseconds,"Picoseconds") +} +recordtype(pulseTrain) { + include "dbCommon.ascii" + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(UNIT,DBF_MENU) { + prompt("Delay Time Units") + promptgroup(GUI_PULSE) + interest(1) + menu(pulseTrainUNIT) + } + field(PER,DBF_DOUBLE) { + prompt("Pulse Period") + promptgroup(GUI_PULSE) + interest(1) + } + field(DCY,DBF_DOUBLE) { + prompt("Duty Cycle %") + promptgroup(GUI_PULSE) + interest(1) + } + field(OPER,DBF_DOUBLE) { + prompt("Old pulse Period") + special(SPC_NOMOD) + pp(TRUE) + interest(3) + } + field(ODCY,DBF_DOUBLE) { + prompt("Old duty Cycle %") + special(SPC_NOMOD) + pp(TRUE) + interest(3) + } + field(GTYP,DBF_MENU) { + prompt("Gate Type") + promptgroup(GUI_PULSE) + interest(1) + menu(pulseTrainGTYP) + } + field(HGV,DBF_SHORT) { + prompt("Hardware Gate Value") + promptgroup(GUI_PULSE) + } + field(SGV,DBF_MENU) { + prompt("Soft Gate Value") + promptgroup(GUI_PULSE) + menu(pulseTrainSGV) + } + field(SGL,DBF_INLINK) { + prompt("Soft Gate Location") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(OSGV,DBF_USHORT) { + prompt("Old Soft Gate Value") + special(SPC_NOMOD) + } + field(VAL,DBF_SHORT) { + prompt("Not Used") + asl(ASL0) + pp(TRUE) + } + field(CTYP,DBF_MENU) { + prompt("Clock Type") + promptgroup(GUI_CLOCK) + interest(1) + menu(pulseTrainCTYP) + } + field(CEDG,DBF_MENU) { + prompt("Clock Signal Edge") + promptgroup(GUI_CLOCK) + interest(1) + menu(pulseTrainCEDG) + } + field(ECS,DBF_SHORT) { + prompt("Ext Clock Source") + promptgroup(GUI_CLOCK) + interest(1) + } + field(ECR,DBF_DOUBLE) { + prompt("Ext Clock Rate (HZ)") + promptgroup(GUI_CLOCK) + interest(1) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LLOW,DBF_MENU) { + prompt("Low Logic Level") + promptgroup(GUI_CLOCK) + interest(1) + menu(pulseTrainLLOW) + } +} diff --git a/src/rec/recPulseTrain.c b/src/rec/pulseTrainRecord.c similarity index 98% rename from src/rec/recPulseTrain.c rename to src/rec/pulseTrainRecord.c index 8ca100b45..b3d43f159 100644 --- a/src/rec/recPulseTrain.c +++ b/src/rec/pulseTrainRecord.c @@ -52,12 +52,13 @@ #include #include #include -#include #include #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -138,8 +139,7 @@ static long init_record(ppt,pass) /* get the hgv value if sgl is a constant*/ if (ppt->sgl.type == CONSTANT ) { - if(ppt->sgl.value.value!=0) - ppt->hgv = ppt->sgl.value.value; + recGblInitConstantLink(&ppt->sgl,DBF_SHORT,&ppt->hgv); } if (ppt->sgl.type == PV_LINK ) diff --git a/src/rec/scanRecord.ascii b/src/rec/scanRecord.ascii new file mode 100644 index 000000000..a24901d2f --- /dev/null +++ b/src/rec/scanRecord.ascii @@ -0,0 +1,1944 @@ +menu(scanP1SM) { + choice(scanP1SM_Linear,"Linear") + choice(scanP1SM_Table,"Table") + choice(scanP1SM_On_The_Fly,"On-The-Fly") +} +menu(scanFPTS) { + choice(scanFPTS_No,"No") + choice(scanFPTS_Freeze,"Freeze") +} +menu(scanFFO) { + choice(scanFFO_Use_F_Flags,"Use F-Flags") + choice(scanFFO_Override,"Override") +} +menu(scanPASM) { + choice(scanPASM_Stay,"Stay") + choice(scanPASM_Start_Pos,"Start Pos") + choice(scanPASM_Prior_Pos,"Prior Pos") +} +menu(scanP1AR) { + choice(scanP1AR_Absolute,"Absolute") + choice(scanP1AR_Relative,"Relative") +} +menu(scanP1NV) { + choice(scanP1NV_PV_OK,"PV OK") + choice(scanP1NV_PV_BAD,"PV BAD") + choice(scanP1NV_No_PV,"No PV") +} +recordtype(scan) { + include "dbCommon.ascii" + field(VERS,DBF_DOUBLE) { + prompt("Code Version") + special(SPC_NOMOD) + initial("3") + } + field(VAL,DBF_DOUBLE) { + prompt("Value Field") + } + field(SMSG,DBF_STRING) { + prompt("Record State Msg") + interest(1) + size(40) + } + field(CMND,DBF_ENUM) { + prompt("Command Field") + asl(ASL0) + special(SPC_MOD) + interest(1) + } + field(ALRT,DBF_UCHAR) { + prompt("Operator Alert") + special(SPC_NOMOD) + } + field(RPVT,DBF_NOACCESS) { + prompt("Ptr to Pvt Struct") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * rpvt") + } + field(MPTS,DBF_SHORT) { + prompt("Max # of Points") + promptgroup(GUI_LINKS) + special(SPC_NOMOD) + interest(1) + initial("100") + } + field(EXSC,DBF_SHORT) { + prompt("Execute Scan") + asl(ASL0) + special(SPC_MOD) + interest(1) + } + field(PXSC,DBF_UCHAR) { + prompt("Previous XScan") + special(SPC_NOMOD) + } + field(NPTS,DBF_SHORT) { + prompt("Number of Points") + promptgroup(GUI_LINKS) + asl(ASL0) + special(116) + interest(1) + initial("100") + } + field(FPTS,DBF_MENU) { + prompt("Freeze Num of Points") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(FFO,DBF_MENU) { + prompt("Freeze Flag Override") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(117) + interest(1) + menu(scanFFO) + } + field(CPT,DBF_SHORT) { + prompt("Current Point") + special(SPC_NOMOD) + interest(1) + } + field(DPT,DBF_SHORT) { + prompt("Desired Point") + special(119) + interest(1) + } + field(PCPT,DBF_SHORT) { + prompt("Point ofLast Posting") + special(SPC_NOMOD) + interest(1) + } + field(PASM,DBF_MENU) { + prompt("After Scan Mode") + promptgroup(GUI_OUTPUT) + asl(ASL0) + interest(1) + menu(scanPASM) + } + field(TOLP,DBF_ULONG) { + prompt("Time of Last Posting") + special(SPC_NOMOD) + interest(1) + } + field(P1PV,DBF_STRING) { + prompt("Positioner 1 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(130) + interest(1) + size(40) + } + field(P2PV,DBF_STRING) { + prompt("Positioner 2 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(131) + interest(1) + size(40) + } + field(P3PV,DBF_STRING) { + prompt("Positioner 3 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(132) + interest(1) + size(40) + } + field(P4PV,DBF_STRING) { + prompt("Positioner 4 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(133) + interest(1) + size(40) + } + field(R1PV,DBF_STRING) { + prompt("P1 Readback PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(134) + interest(1) + size(40) + } + field(R2PV,DBF_STRING) { + prompt("P2 Readback PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(135) + interest(1) + size(40) + } + field(R3PV,DBF_STRING) { + prompt("P3 Readback PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(136) + interest(1) + size(40) + } + field(R4PV,DBF_STRING) { + prompt("P4 Readback PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(137) + interest(1) + size(40) + } + field(D1PV,DBF_STRING) { + prompt("Detector 1 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(138) + interest(1) + size(40) + } + field(D2PV,DBF_STRING) { + prompt("Detector 2 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(139) + interest(1) + size(40) + } + field(D3PV,DBF_STRING) { + prompt("Detector 3 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(140) + interest(1) + size(40) + } + field(D4PV,DBF_STRING) { + prompt("Detector 4 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(141) + interest(1) + size(40) + } + field(D5PV,DBF_STRING) { + prompt("Detector 5 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(142) + interest(1) + size(40) + } + field(D6PV,DBF_STRING) { + prompt("Detector 6 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(143) + interest(1) + size(40) + } + field(D7PV,DBF_STRING) { + prompt("Detector 7 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(144) + interest(1) + size(40) + } + field(D8PV,DBF_STRING) { + prompt("Detector 8 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(145) + interest(1) + size(40) + } + field(D9PV,DBF_STRING) { + prompt("Detector 9 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(146) + interest(1) + size(40) + } + field(DAPV,DBF_STRING) { + prompt("Detector 10 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(147) + interest(1) + size(40) + } + field(DBPV,DBF_STRING) { + prompt("Detector 11 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(148) + interest(1) + size(40) + } + field(DCPV,DBF_STRING) { + prompt("Detector 12 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(149) + interest(1) + size(40) + } + field(DDPV,DBF_STRING) { + prompt("Detector 13 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(150) + interest(1) + size(40) + } + field(DEPV,DBF_STRING) { + prompt("Detector 14 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(151) + interest(1) + size(40) + } + field(DFPV,DBF_STRING) { + prompt("Detector 15 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(152) + interest(1) + size(40) + } + field(T1PV,DBF_STRING) { + prompt("Trigger 1 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(153) + interest(1) + size(40) + } + field(T2PV,DBF_STRING) { + prompt("Trigger 2 PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(154) + interest(1) + size(40) + } + field(BSPV,DBF_STRING) { + prompt("Before Scan PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(155) + interest(1) + size(40) + } + field(ASPV,DBF_STRING) { + prompt("After Scan PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(156) + interest(1) + size(40) + } + field(P1NV,DBF_MENU) { + prompt("P1 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(P2NV,DBF_MENU) { + prompt("P2 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(P3NV,DBF_MENU) { + prompt("P3 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(P4NV,DBF_MENU) { + prompt("P4 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(R1NV,DBF_MENU) { + prompt("R1 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(R2NV,DBF_MENU) { + prompt("R2 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(R3NV,DBF_MENU) { + prompt("R3 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(R4NV,DBF_MENU) { + prompt("R4 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D1NV,DBF_MENU) { + prompt("D1 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D2NV,DBF_MENU) { + prompt("D2 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D3NV,DBF_MENU) { + prompt("D3 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D4NV,DBF_MENU) { + prompt("D4 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D5NV,DBF_MENU) { + prompt("D5 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D6NV,DBF_MENU) { + prompt("D6 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D7NV,DBF_MENU) { + prompt("D7 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D8NV,DBF_MENU) { + prompt("D8 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(D9NV,DBF_MENU) { + prompt("D9 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(DANV,DBF_MENU) { + prompt("D10 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(DBNV,DBF_MENU) { + prompt("D11 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(DCNV,DBF_MENU) { + prompt("D12 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(DDNV,DBF_MENU) { + prompt("D13 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(DENV,DBF_MENU) { + prompt("D14 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(DFNV,DBF_MENU) { + prompt("D15 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(T1NV,DBF_MENU) { + prompt("T1 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(T2NV,DBF_MENU) { + prompt("T2 PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(BSNV,DBF_MENU) { + prompt("BeforeScan PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(ASNV,DBF_MENU) { + prompt("After Scan PV Status") + special(SPC_NOMOD) + interest(1) + menu(scanP1NV) + } + field(P1PP,DBF_DOUBLE) { + prompt("P1 Previous Position") + special(SPC_NOMOD) + interest(1) + } + field(P1CV,DBF_DOUBLE) { + prompt("P1 Current Value") + special(SPC_NOMOD) + interest(1) + } + field(P1DV,DBF_DOUBLE) { + prompt("P1 Desired Value") + special(SPC_MOD) + interest(1) + } + field(P1LV,DBF_DOUBLE) { + prompt("P1 Last Value Posted") + special(SPC_NOMOD) + interest(1) + } + field(P1SP,DBF_DOUBLE) { + prompt("P1 Start Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(111) + interest(1) + } + field(P1SI,DBF_DOUBLE) { + prompt("P1 Step Increment") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(112) + interest(1) + } + field(P1EP,DBF_DOUBLE) { + prompt("P1 End Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(113) + interest(1) + } + field(P1CP,DBF_DOUBLE) { + prompt("P1 Center Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(114) + interest(1) + } + field(P1WD,DBF_DOUBLE) { + prompt("P1 Scan Width") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(115) + interest(1) + } + field(R1CV,DBF_DOUBLE) { + prompt("P1 Readback Value") + special(SPC_NOMOD) + interest(1) + } + field(R1LV,DBF_DOUBLE) { + prompt("P1 Rdbk Last Val Pst") + special(SPC_NOMOD) + interest(1) + } + field(R1DL,DBF_DOUBLE) { + prompt("P1 Readback Delta") + promptgroup(GUI_INPUTS) + asl(ASL0) + interest(1) + } + field(P1HR,DBF_DOUBLE) { + prompt("P1 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(P1LR,DBF_DOUBLE) { + prompt("P1 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(P1PA,DBF_NOACCESS) { + prompt("P1 Step Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("double * p1pa") + } + field(P1RA,DBF_NOACCESS) { + prompt("P1 Readback Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("double * p1ra") + } + field(P1FS,DBF_MENU) { + prompt("P1 Freeze Start Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P1FI,DBF_MENU) { + prompt("P1 Freeze Step Inc") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P1FE,DBF_MENU) { + prompt("P1 Freeze End Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P1FC,DBF_MENU) { + prompt("P1 Freeze Center Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P1FW,DBF_MENU) { + prompt("P1 Freeze Width") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P1SM,DBF_MENU) { + prompt("P1 Step Mode") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(120) + interest(1) + menu(scanP1SM) + } + field(P1AR,DBF_MENU) { + prompt("P1 Absolute/Relative") + promptgroup(GUI_OUTPUT) + asl(ASL0) + interest(1) + menu(scanP1AR) + } + field(P1EU,DBF_STRING) { + prompt("P1 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(P1PR,DBF_SHORT) { + prompt("P1 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(P2PP,DBF_DOUBLE) { + prompt("P2 Previous Position") + special(SPC_NOMOD) + interest(1) + } + field(P2CV,DBF_DOUBLE) { + prompt("P2 Current Value") + special(SPC_NOMOD) + interest(1) + } + field(P2DV,DBF_DOUBLE) { + prompt("P2 Desired Value") + special(SPC_MOD) + interest(1) + } + field(P2LV,DBF_DOUBLE) { + prompt("P2 Last Value Posted") + special(SPC_NOMOD) + interest(1) + } + field(P2SP,DBF_DOUBLE) { + prompt("P2 Start Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(111) + interest(1) + } + field(P2SI,DBF_DOUBLE) { + prompt("P2 Step Increment") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(112) + interest(1) + } + field(P2EP,DBF_DOUBLE) { + prompt("P2 End Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(113) + interest(1) + } + field(P2CP,DBF_DOUBLE) { + prompt("P2 Center Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(114) + interest(1) + } + field(P2WD,DBF_DOUBLE) { + prompt("P2 Scan Width") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(115) + interest(1) + } + field(R2CV,DBF_DOUBLE) { + prompt("P2 Readback Value") + special(SPC_NOMOD) + interest(1) + } + field(R2LV,DBF_DOUBLE) { + prompt("P2 Rdbk Last Val Pst") + special(SPC_NOMOD) + interest(1) + } + field(R2DL,DBF_DOUBLE) { + prompt("P2 Readback Delta") + promptgroup(GUI_INPUTS) + asl(ASL0) + interest(1) + } + field(P2HR,DBF_DOUBLE) { + prompt("P2 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(P2LR,DBF_DOUBLE) { + prompt("P2 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(P2PA,DBF_NOACCESS) { + prompt("P2 Step Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("double * p2pa") + } + field(P2RA,DBF_NOACCESS) { + prompt("P2 Readback Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("double * p2ra") + } + field(P2FS,DBF_MENU) { + prompt("P2 Freeze Start Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P2FI,DBF_MENU) { + prompt("P2 Freeze Step Inc") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P2FE,DBF_MENU) { + prompt("P2 Freeze End Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P2FC,DBF_MENU) { + prompt("P2 Freeze Center Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P2FW,DBF_MENU) { + prompt("P2 Freeze Width") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P2SM,DBF_MENU) { + prompt("P2 Step Mode") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(120) + interest(1) + menu(scanP1SM) + } + field(P2AR,DBF_MENU) { + prompt("P2 Absolute/Relative") + promptgroup(GUI_OUTPUT) + asl(ASL0) + interest(1) + menu(scanP1AR) + } + field(P2EU,DBF_STRING) { + prompt("P2 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(P2PR,DBF_SHORT) { + prompt("P2 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(P3PP,DBF_DOUBLE) { + prompt("P3 Previous Position") + special(SPC_NOMOD) + interest(1) + } + field(P3CV,DBF_DOUBLE) { + prompt("P3 Current Value") + special(SPC_NOMOD) + interest(1) + } + field(P3DV,DBF_DOUBLE) { + prompt("P3 Desired Value") + special(SPC_MOD) + interest(1) + } + field(P3LV,DBF_DOUBLE) { + prompt("P3 Last Value Posted") + special(SPC_NOMOD) + interest(1) + } + field(P3SP,DBF_DOUBLE) { + prompt("P3 Start Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(111) + interest(1) + } + field(P3SI,DBF_DOUBLE) { + prompt("P3 Step Increment") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(112) + interest(1) + } + field(P3EP,DBF_DOUBLE) { + prompt("P3 End Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(113) + interest(1) + } + field(P3CP,DBF_DOUBLE) { + prompt("P3 Center Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(114) + interest(1) + } + field(P3WD,DBF_DOUBLE) { + prompt("P3 Scan Width") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(115) + interest(1) + } + field(R3CV,DBF_DOUBLE) { + prompt("P3 Readback Value") + special(SPC_NOMOD) + interest(1) + } + field(R3LV,DBF_DOUBLE) { + prompt("P3 Rdbk Last Val Pst") + special(SPC_NOMOD) + interest(1) + } + field(R3DL,DBF_DOUBLE) { + prompt("P3 Readback Delta") + promptgroup(GUI_INPUTS) + asl(ASL0) + interest(1) + } + field(P3HR,DBF_DOUBLE) { + prompt("P3 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(P3LR,DBF_DOUBLE) { + prompt("P3 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(P3PA,DBF_NOACCESS) { + prompt("P3 Step Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("double * p3pa") + } + field(P3RA,DBF_NOACCESS) { + prompt("P3 Readback Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("double * p3ra") + } + field(P3FS,DBF_MENU) { + prompt("P3 Freeze Start Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P3FI,DBF_MENU) { + prompt("P3 Freeze Step Inc") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P3FE,DBF_MENU) { + prompt("P3 Freeze End Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P3FC,DBF_MENU) { + prompt("P3 Freeze Center Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P3FW,DBF_MENU) { + prompt("P3 Freeze Width") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P3SM,DBF_MENU) { + prompt("P3 Step Mode") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(120) + interest(1) + menu(scanP1SM) + } + field(P3AR,DBF_MENU) { + prompt("P3 Absolute/Relative") + promptgroup(GUI_OUTPUT) + asl(ASL0) + interest(1) + menu(scanP1AR) + } + field(P3EU,DBF_STRING) { + prompt("P3 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(P3PR,DBF_SHORT) { + prompt("P3 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(P4PP,DBF_DOUBLE) { + prompt("P4 Previous Position") + special(SPC_NOMOD) + interest(1) + } + field(P4CV,DBF_DOUBLE) { + prompt("P4 Current Value") + special(SPC_NOMOD) + interest(1) + } + field(P4DV,DBF_DOUBLE) { + prompt("P4 Desired Value") + special(SPC_MOD) + interest(1) + } + field(P4LV,DBF_DOUBLE) { + prompt("P4 Last Value Posted") + special(SPC_NOMOD) + interest(1) + } + field(P4SP,DBF_DOUBLE) { + prompt("P4 Start Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(111) + interest(1) + } + field(P4SI,DBF_DOUBLE) { + prompt("P4 Step Increment") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(112) + interest(1) + } + field(P4EP,DBF_DOUBLE) { + prompt("P4 End Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(113) + interest(1) + } + field(P4CP,DBF_DOUBLE) { + prompt("P4 Center Position") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(114) + interest(1) + } + field(P4WD,DBF_DOUBLE) { + prompt("P4 Scan Width") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(115) + interest(1) + } + field(R4CV,DBF_DOUBLE) { + prompt("P4 Readback Value") + special(SPC_NOMOD) + interest(1) + } + field(R4LV,DBF_DOUBLE) { + prompt("P4 Rdbk Last Val Pst") + special(SPC_NOMOD) + interest(1) + } + field(R4DL,DBF_DOUBLE) { + prompt("P4 Readback Delta") + promptgroup(GUI_INPUTS) + asl(ASL0) + interest(1) + } + field(P4HR,DBF_DOUBLE) { + prompt("P4 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(P4LR,DBF_DOUBLE) { + prompt("P4 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(P4PA,DBF_NOACCESS) { + prompt("P4 Step Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("double * p4pa") + } + field(P4RA,DBF_NOACCESS) { + prompt("P4 Readback Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("double * p4ra") + } + field(P4FS,DBF_MENU) { + prompt("P4 Freeze Start Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P4FI,DBF_MENU) { + prompt("P4 Freeze Step Inc") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P4FE,DBF_MENU) { + prompt("P4 Freeze End Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P4FC,DBF_MENU) { + prompt("P4 Freeze Center Pos") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P4FW,DBF_MENU) { + prompt("P4 Freeze Width") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(118) + interest(1) + menu(scanFPTS) + } + field(P4SM,DBF_MENU) { + prompt("P4 Step Mode") + promptgroup(GUI_OUTPUT) + asl(ASL0) + special(120) + interest(1) + menu(scanP1SM) + } + field(P4AR,DBF_MENU) { + prompt("P4 Absolute/Relative") + promptgroup(GUI_OUTPUT) + asl(ASL0) + interest(1) + menu(scanP1AR) + } + field(P4EU,DBF_STRING) { + prompt("P4 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(P4PR,DBF_SHORT) { + prompt("P4 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D1HR,DBF_DOUBLE) { + prompt("D1 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D1LR,DBF_DOUBLE) { + prompt("D1 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D1DA,DBF_NOACCESS) { + prompt("D1 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d1da") + } + field(D1CV,DBF_FLOAT) { + prompt("D1 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D1LV,DBF_FLOAT) { + prompt("D1 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D1NE,DBF_ULONG) { + prompt("D1 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D1EU,DBF_STRING) { + prompt("D1 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D1PR,DBF_SHORT) { + prompt("D1 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D2HR,DBF_DOUBLE) { + prompt("D2 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D2LR,DBF_DOUBLE) { + prompt("D2 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D2DA,DBF_NOACCESS) { + prompt("D2 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d2da") + } + field(D2CV,DBF_FLOAT) { + prompt("D2 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D2LV,DBF_FLOAT) { + prompt("D2 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D2NE,DBF_ULONG) { + prompt("D2 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D2EU,DBF_STRING) { + prompt("D2 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D2PR,DBF_SHORT) { + prompt("D2 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D3HR,DBF_DOUBLE) { + prompt("D3 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D3LR,DBF_DOUBLE) { + prompt("D3 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D3DA,DBF_NOACCESS) { + prompt("D3 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d3da") + } + field(D3CV,DBF_FLOAT) { + prompt("D3 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D3LV,DBF_FLOAT) { + prompt("D3 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D3NE,DBF_ULONG) { + prompt("D3 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D3EU,DBF_STRING) { + prompt("D3 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D3PR,DBF_SHORT) { + prompt("D3 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D4HR,DBF_DOUBLE) { + prompt("D4 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D4LR,DBF_DOUBLE) { + prompt("D4 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D4DA,DBF_NOACCESS) { + prompt("D4 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d4da") + } + field(D4CV,DBF_FLOAT) { + prompt("D4 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D4LV,DBF_FLOAT) { + prompt("D4 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D4NE,DBF_ULONG) { + prompt("D4 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D4EU,DBF_STRING) { + prompt("D4 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D4PR,DBF_SHORT) { + prompt("D4 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D5HR,DBF_DOUBLE) { + prompt("D5 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D5LR,DBF_DOUBLE) { + prompt("D5 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D5DA,DBF_NOACCESS) { + prompt("D5 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d5da") + } + field(D5CV,DBF_FLOAT) { + prompt("D5 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D5LV,DBF_FLOAT) { + prompt("D5 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D5NE,DBF_ULONG) { + prompt("D5 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D5EU,DBF_STRING) { + prompt("D5 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D5PR,DBF_SHORT) { + prompt("D5 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D6HR,DBF_DOUBLE) { + prompt("D6 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D6LR,DBF_DOUBLE) { + prompt("D6 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D6DA,DBF_NOACCESS) { + prompt("D6 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d6da") + } + field(D6CV,DBF_FLOAT) { + prompt("D6 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D6LV,DBF_FLOAT) { + prompt("D6 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D6NE,DBF_ULONG) { + prompt("D6 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D6EU,DBF_STRING) { + prompt("D6 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D6PR,DBF_SHORT) { + prompt("D6 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D7HR,DBF_DOUBLE) { + prompt("D7 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D7LR,DBF_DOUBLE) { + prompt("D7 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D7DA,DBF_NOACCESS) { + prompt("D7 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d7da") + } + field(D7CV,DBF_FLOAT) { + prompt("D7 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D7LV,DBF_FLOAT) { + prompt("D7 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D7NE,DBF_ULONG) { + prompt("D7 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D7EU,DBF_STRING) { + prompt("D7 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D7PR,DBF_SHORT) { + prompt("D7 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D8HR,DBF_DOUBLE) { + prompt("D8 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D8LR,DBF_DOUBLE) { + prompt("D8 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D8DA,DBF_NOACCESS) { + prompt("D8 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d8da") + } + field(D8CV,DBF_FLOAT) { + prompt("D8 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D8LV,DBF_FLOAT) { + prompt("D8 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D8NE,DBF_ULONG) { + prompt("D8 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D8EU,DBF_STRING) { + prompt("D8 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D8PR,DBF_SHORT) { + prompt("D8 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(D9HR,DBF_DOUBLE) { + prompt("D9 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D9LR,DBF_DOUBLE) { + prompt("D9 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(D9DA,DBF_NOACCESS) { + prompt("D9 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * d9da") + } + field(D9CV,DBF_FLOAT) { + prompt("D9 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D9LV,DBF_FLOAT) { + prompt("D9 Last Value Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D9NE,DBF_ULONG) { + prompt("D9 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(D9EU,DBF_STRING) { + prompt("D9 Engineering Units") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(D9PR,DBF_SHORT) { + prompt("D9 Display Precision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(DAHR,DBF_DOUBLE) { + prompt("D10 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DALR,DBF_DOUBLE) { + prompt("D10 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DADA,DBF_NOACCESS) { + prompt("D10 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * dada") + } + field(DACV,DBF_FLOAT) { + prompt("D10 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DALV,DBF_FLOAT) { + prompt("D10 LastValue Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DANE,DBF_ULONG) { + prompt("D10 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DAEU,DBF_STRING) { + prompt("D10 EngineeringUnits") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(DAPR,DBF_SHORT) { + prompt("D10 DisplayPrecision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(DBHR,DBF_DOUBLE) { + prompt("D11 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DBLR,DBF_DOUBLE) { + prompt("D11 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DBDA,DBF_NOACCESS) { + prompt("D11 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * dbda") + } + field(DBCV,DBF_FLOAT) { + prompt("D11 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DBLV,DBF_FLOAT) { + prompt("D11 LastValue Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DBNE,DBF_ULONG) { + prompt("D11 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DBEU,DBF_STRING) { + prompt("D11 EngineeringUnits") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(DBPR,DBF_SHORT) { + prompt("D11 DisplayPrecision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(DCHR,DBF_DOUBLE) { + prompt("D12 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DCLR,DBF_DOUBLE) { + prompt("D12 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DCDA,DBF_NOACCESS) { + prompt("D12 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * dcda") + } + field(DCCV,DBF_FLOAT) { + prompt("D12 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DCLV,DBF_FLOAT) { + prompt("D12 LastValue Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DCNE,DBF_ULONG) { + prompt("D12 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DCEU,DBF_STRING) { + prompt("D12 EngineeringUnits") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(DCPR,DBF_SHORT) { + prompt("D12 DisplayPrecision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(DDHR,DBF_DOUBLE) { + prompt("D13 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DDLR,DBF_DOUBLE) { + prompt("D13 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DDDA,DBF_NOACCESS) { + prompt("D13 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * ddda") + } + field(DDCV,DBF_FLOAT) { + prompt("D13 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DDLV,DBF_FLOAT) { + prompt("D13 LastValue Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DDNE,DBF_ULONG) { + prompt("D13 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DDEU,DBF_STRING) { + prompt("D13 EngineeringUnits") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(DDPR,DBF_SHORT) { + prompt("D13 DisplayPrecision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(DEHR,DBF_DOUBLE) { + prompt("D14 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DELR,DBF_DOUBLE) { + prompt("D14 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DEDA,DBF_NOACCESS) { + prompt("D14 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * deda") + } + field(DECV,DBF_FLOAT) { + prompt("D14 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DELV,DBF_FLOAT) { + prompt("D14 LastValue Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DENE,DBF_ULONG) { + prompt("D14 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DEEU,DBF_STRING) { + prompt("D14 EngineeringUnits") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(DEPR,DBF_SHORT) { + prompt("D14 DisplayPrecision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(DFHR,DBF_DOUBLE) { + prompt("D15 High Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DFLR,DBF_DOUBLE) { + prompt("D15 Low Oper Range") + promptgroup(GUI_CONVERT) + asl(ASL0) + interest(1) + } + field(DFDA,DBF_NOACCESS) { + prompt("D15 Data Array") + asl(ASL0) + special(SPC_DBADDR) + size(4) + extra("float * dfda") + } + field(DFCV,DBF_FLOAT) { + prompt("D15 Current Value") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DFLV,DBF_FLOAT) { + prompt("D15 LastValue Posted") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DFNE,DBF_ULONG) { + prompt("D15 # of Elements/Pt") + asl(ASL0) + special(SPC_NOMOD) + interest(1) + } + field(DFEU,DBF_STRING) { + prompt("D15 EngineeringUnits") + promptgroup(GUI_COMPRESS) + asl(ASL0) + interest(1) + size(16) + } + field(DFPR,DBF_SHORT) { + prompt("D15 DisplayPrecision") + promptgroup(GUI_HIST) + asl(ASL0) + interest(1) + } + field(T1CD,DBF_FLOAT) { + prompt("T1 Cmnd") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(SPC_MOD) + interest(1) + } + field(T2CD,DBF_FLOAT) { + prompt("T2 Cmnd") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(SPC_MOD) + interest(1) + } + field(BSCD,DBF_FLOAT) { + prompt("Before Scan Cmnd") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(SPC_MOD) + interest(1) + } + field(ASCD,DBF_FLOAT) { + prompt("After Scan Cmnd") + promptgroup(GUI_INPUTS) + asl(ASL0) + special(SPC_MOD) + interest(1) + } +} diff --git a/src/rec/recScan.c b/src/rec/scanRecord.c similarity index 99% rename from src/rec/recScan.c rename to src/rec/scanRecord.c index 9c74bd02e..4961f8791 100644 --- a/src/rec/recScan.c +++ b/src/rec/scanRecord.c @@ -99,7 +99,6 @@ #include #include #include -#include #include #include #include @@ -108,7 +107,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET #include #include #include /* also includes timers.h and tsDefs.h */ @@ -784,7 +785,7 @@ static long cvt_dbaddr(paddr) short fieldOffset; unsigned short i; - fieldOffset = ((struct fldDes *)(paddr->pfldDes))->offset; + fieldOffset = ((dbFldDes *)(paddr->pfldDes))->offset; /* for the double buffered arrays, must use the field offset because you don't know what the pointer will be */ @@ -835,7 +836,7 @@ static long get_array_info(paddr,no_elements,offset) which array they are interested by comparing the address of the field to the array pointers */ - fieldOffset = ((struct fldDes *)(paddr->pfldDes))->offset; + fieldOffset = ((dbFldDes *)(paddr->pfldDes))->offset; pPvStat = &precPvt->pscan->d1nv; for(i=0; i < NUM_DET; i++, pDetFields++, pPvStat++) { @@ -902,7 +903,7 @@ static long put_array_info(paddr,nNew) "positioner" array p_pa. Determine which positioner and store nelem for future use. Also check against current npts */ - fieldOffset = ((struct fldDes *)(paddr->pfldDes))->offset; + fieldOffset = ((dbFldDes *)(paddr->pfldDes))->offset; for(i=0; i < NUM_POS; i++, pPosFields++) { if(((char *)&pPosFields->p_pa - (char *)pscan) == fieldOffset) { @@ -1009,7 +1010,7 @@ static long get_units(paddr,units) /* Use the field offset to see which detector or positioner it is */ - fieldOffset = ((struct fldDes *)(paddr->pfldDes))->offset; + fieldOffset = ((dbFldDes *)(paddr->pfldDes))->offset; for(i=0; i < NUM_POS; i++, pPosFields++) { if((fieldOffset >= ((char *)&pPosFields->p_pp - (char *)pscan)) && @@ -1043,7 +1044,7 @@ static long get_precision(paddr,precision) /* Use the field offset to see which detector or positioner it is */ - fieldOffset = ((struct fldDes *)(paddr->pfldDes))->offset; + fieldOffset = ((dbFldDes *)(paddr->pfldDes))->offset; for(i=0; i < NUM_POS; i++, pPosFields++) { if((fieldOffset >= ((char *)&pPosFields->p_pp - (char *)pscan)) && @@ -1076,7 +1077,7 @@ static long get_graphic_double(paddr,pgd) /* Use the field offset to see which detector or positioner it is */ - fieldOffset = ((struct fldDes *)(paddr->pfldDes))->offset; + fieldOffset = ((dbFldDes *)(paddr->pfldDes))->offset; for(i=0; i < NUM_POS; i++, pPosFields++) { if((fieldOffset >= ((char *)&pPosFields->p_pp - (char *)pscan)) && diff --git a/src/rec/selRecord.ascii b/src/rec/selRecord.ascii new file mode 100644 index 000000000..82ef755fd --- /dev/null +++ b/src/rec/selRecord.ascii @@ -0,0 +1,311 @@ +menu(selSELM) { + choice(selSELM_Specified,"Specified") + choice(selSELM_High_Signal,"High Signal") + choice(selSELM_Low_Signal,"Low Signal") + choice(selSELM_Median_Signal,"Median Signal") +} +recordtype(sel) { + include "dbCommon.ascii" + field(VAL,DBF_DOUBLE) { + prompt("Result") + asl(ASL0) + special(SPC_NOMOD) + } + field(SELM,DBF_MENU) { + prompt("Select Mechanism") + promptgroup(GUI_INPUTS) + menu(selSELM) + } + field(SELN,DBF_USHORT) { + prompt("Index value") + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(NVL,DBF_INLINK) { + prompt("Index Value Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPA,DBF_INLINK) { + prompt("Input A") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPB,DBF_INLINK) { + prompt("Input B") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPC,DBF_INLINK) { + prompt("Input C") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPD,DBF_INLINK) { + prompt("Input D") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPE,DBF_INLINK) { + prompt("Input E") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPF,DBF_INLINK) { + prompt("Input F") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPG,DBF_INLINK) { + prompt("Input G") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPH,DBF_INLINK) { + prompt("Input H") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPI,DBF_INLINK) { + prompt("Input I") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPJ,DBF_INLINK) { + prompt("Input J") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPK,DBF_INLINK) { + prompt("Input K") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(INPL,DBF_INLINK) { + prompt("Input L") + promptgroup(GUI_SELECT) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Units Name") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Rng") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_FLOAT) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_FLOAT) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_FLOAT) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_DOUBLE) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_DOUBLE) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_DOUBLE) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(A,DBF_DOUBLE) { + prompt("Value of Input A") + pp(TRUE) + } + field(B,DBF_DOUBLE) { + prompt("Value of Input B") + pp(TRUE) + } + field(C,DBF_DOUBLE) { + prompt("Value of Input C") + pp(TRUE) + } + field(D,DBF_DOUBLE) { + prompt("Value of Input D") + pp(TRUE) + } + field(E,DBF_DOUBLE) { + prompt("Value of Input E") + pp(TRUE) + } + field(F,DBF_DOUBLE) { + prompt("Value of Input F") + pp(TRUE) + } + field(G,DBF_DOUBLE) { + prompt("Value of Input G") + pp(TRUE) + } + field(H,DBF_DOUBLE) { + prompt("Value of Input H") + pp(TRUE) + } + field(I,DBF_DOUBLE) { + prompt("Value of Input I") + pp(TRUE) + } + field(J,DBF_DOUBLE) { + prompt("Value of Input J") + pp(TRUE) + } + field(K,DBF_DOUBLE) { + prompt("Value of Input K") + pp(TRUE) + } + field(L,DBF_DOUBLE) { + prompt("Value of Input L") + pp(TRUE) + } + field(LA,DBF_DOUBLE) { + prompt("Prev Value of A") + special(SPC_NOMOD) + interest(3) + } + field(LB,DBF_DOUBLE) { + prompt("Prev Value of B") + special(SPC_NOMOD) + interest(3) + } + field(LC,DBF_DOUBLE) { + prompt("Prev Value of C") + special(SPC_NOMOD) + interest(3) + } + field(LD,DBF_DOUBLE) { + prompt("Prev Value of D") + special(SPC_NOMOD) + interest(3) + } + field(LE,DBF_DOUBLE) { + prompt("Prev Value of E") + special(SPC_NOMOD) + interest(3) + } + field(LF,DBF_DOUBLE) { + prompt("Prev Value of F") + special(SPC_NOMOD) + interest(3) + } + field(LG,DBF_DOUBLE) { + prompt("Prev Value of G") + special(SPC_NOMOD) + interest(3) + } + field(LH,DBF_DOUBLE) { + prompt("Prev Value of H") + special(SPC_NOMOD) + interest(3) + } + field(LI,DBF_DOUBLE) { + prompt("Prev Value of I") + special(SPC_NOMOD) + interest(3) + } + field(LJ,DBF_DOUBLE) { + prompt("Prev Value of J") + special(SPC_NOMOD) + interest(3) + } + field(LK,DBF_DOUBLE) { + prompt("Prev Value of K") + special(SPC_NOMOD) + interest(3) + } + field(LL,DBF_DOUBLE) { + prompt("Prev Value of L") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_DOUBLE) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_DOUBLE) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_DOUBLE) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } +} diff --git a/src/rec/recSel.c b/src/rec/selRecord.c similarity index 98% rename from src/rec/recSel.c rename to src/rec/selRecord.c index 3050c36d3..cd8365742 100644 --- a/src/rec/recSel.c +++ b/src/rec/selRecord.c @@ -60,7 +60,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -132,7 +134,7 @@ static long init_record(psel,pass) /* get seln initial value if nvl is a constant*/ if (psel->nvl.type == CONSTANT ) { - psel->seln = psel->nvl.value.value; + recGblInitConstantLink(&psel->nvl,DBF_USHORT,&psel->seln); } else { status = recGblInitFastInLink(&(psel->nvl), (void *) psel, DBR_USHORT, "SELN"); @@ -144,8 +146,8 @@ static long init_record(psel,pass) pvalue = &psel->a; for(i=0; itype==CONSTANT && plink->value.value != 0.) { - *pvalue = plink->value.value; + if (plink->type==CONSTANT) { + recGblInitConstantLink(plink,DBF_DOUBLE,pvalue); } else { status = recGblInitFastInLink(plink, (void *) psel, DBR_DOUBLE, Fldnames[i]); diff --git a/src/rec/seqRecord.ascii b/src/rec/seqRecord.ascii new file mode 100644 index 000000000..72ea49fc0 --- /dev/null +++ b/src/rec/seqRecord.ascii @@ -0,0 +1,245 @@ +menu(seqSELM) { + choice(seqSELM_All,"All") + choice(seqSELM_Specified,"Specified") + choice(seqSELM_Mask,"Mask") +} +recordtype(seq) { + include "dbCommon.ascii" + field(VAL,DBF_LONG) { + prompt("Used to trigger") + asl(ASL0) + pp(TRUE) + } + field(SELM,DBF_MENU) { + prompt("Select Mechanism") + promptgroup(GUI_INPUTS) + interest(1) + menu(seqSELM) + } + field(SELN,DBF_USHORT) { + prompt("Link Selection") + interest(1) + initial("1") + } + field(SELL,DBF_INLINK) { + prompt("Link Selection Loc") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(DLY1,DBF_DOUBLE) { + prompt("Delay 1") + promptgroup(GUI_SEQ1) + interest(1) + } + field(DOL1,DBF_INLINK) { + prompt("Input link1") + promptgroup(GUI_SEQ1) + special(SPC_NOMOD) + interest(1) + } + field(DO1,DBF_DOUBLE) { + prompt("Constant input 1") + interest(1) + } + field(LNK1,DBF_OUTLINK) { + prompt("Output Link 1") + promptgroup(GUI_SEQ1) + special(SPC_NOMOD) + interest(1) + } + field(DLY2,DBF_DOUBLE) { + prompt("Delay 2") + promptgroup(GUI_SEQ1) + interest(1) + } + field(DOL2,DBF_INLINK) { + prompt("Input link 2") + promptgroup(GUI_SEQ1) + special(SPC_NOMOD) + interest(1) + } + field(DO2,DBF_DOUBLE) { + prompt("Constant input 2") + interest(1) + } + field(LNK2,DBF_OUTLINK) { + prompt("Output Link 2") + promptgroup(GUI_SEQ1) + special(SPC_NOMOD) + interest(1) + } + field(DLY3,DBF_DOUBLE) { + prompt("Delay 3") + promptgroup(GUI_SEQ1) + interest(1) + } + field(DOL3,DBF_INLINK) { + prompt("Input link 3") + promptgroup(GUI_SEQ1) + special(SPC_NOMOD) + interest(1) + } + field(DO3,DBF_DOUBLE) { + prompt("Constant input 3") + interest(1) + } + field(LNK3,DBF_OUTLINK) { + prompt("Output Link 3") + promptgroup(GUI_SEQ1) + special(SPC_NOMOD) + interest(1) + } + field(DLY4,DBF_DOUBLE) { + prompt("Delay 4") + promptgroup(GUI_SEQ2) + interest(1) + } + field(DOL4,DBF_INLINK) { + prompt("Input link 4") + promptgroup(GUI_SEQ2) + special(SPC_NOMOD) + interest(1) + } + field(DO4,DBF_DOUBLE) { + prompt("Constant input 4") + interest(1) + } + field(LNK4,DBF_OUTLINK) { + prompt("Output Link 4") + promptgroup(GUI_SEQ2) + special(SPC_NOMOD) + interest(1) + } + field(DLY5,DBF_DOUBLE) { + prompt("Delay 5") + promptgroup(GUI_SEQ2) + interest(1) + } + field(DOL5,DBF_INLINK) { + prompt("Input link 5") + promptgroup(GUI_SEQ2) + special(SPC_NOMOD) + interest(1) + } + field(DO5,DBF_DOUBLE) { + prompt("Constant input 5") + interest(1) + } + field(LNK5,DBF_OUTLINK) { + prompt("Output Link 5") + promptgroup(GUI_SEQ2) + special(SPC_NOMOD) + interest(1) + } + field(DLY6,DBF_DOUBLE) { + prompt("Delay 6") + promptgroup(GUI_SEQ2) + interest(1) + } + field(DOL6,DBF_INLINK) { + prompt("Input link 6") + promptgroup(GUI_SEQ2) + special(SPC_NOMOD) + interest(1) + } + field(DO6,DBF_DOUBLE) { + prompt("Constant input 6") + interest(1) + } + field(LNK6,DBF_OUTLINK) { + prompt("Output Link 6") + promptgroup(GUI_SEQ2) + special(SPC_NOMOD) + interest(1) + } + field(DLY7,DBF_DOUBLE) { + prompt("Delay 7") + promptgroup(GUI_SEQ3) + interest(1) + } + field(DOL7,DBF_INLINK) { + prompt("Input link 7") + promptgroup(GUI_SEQ3) + special(SPC_NOMOD) + interest(1) + } + field(DO7,DBF_DOUBLE) { + prompt("Constant input 7") + interest(1) + } + field(LNK7,DBF_OUTLINK) { + prompt("Output Link 7") + promptgroup(GUI_SEQ3) + special(SPC_NOMOD) + interest(1) + } + field(DLY8,DBF_DOUBLE) { + prompt("Delay 8") + promptgroup(GUI_SEQ3) + interest(1) + } + field(DOL8,DBF_INLINK) { + prompt("Input link 8") + promptgroup(GUI_SEQ3) + special(SPC_NOMOD) + interest(1) + } + field(DO8,DBF_DOUBLE) { + prompt("Constant input 8") + interest(1) + } + field(LNK8,DBF_OUTLINK) { + prompt("Output Link 8") + promptgroup(GUI_SEQ3) + special(SPC_NOMOD) + interest(1) + } + field(DLY9,DBF_DOUBLE) { + prompt("Delay 9") + promptgroup(GUI_SEQ3) + interest(1) + } + field(DOL9,DBF_INLINK) { + prompt("Input link 9") + promptgroup(GUI_SEQ3) + special(SPC_NOMOD) + interest(1) + } + field(DO9,DBF_DOUBLE) { + prompt("Constant input 9") + interest(1) + } + field(LNK9,DBF_OUTLINK) { + prompt("Output Link 9") + promptgroup(GUI_SEQ3) + special(SPC_NOMOD) + interest(1) + } + field(DLYA,DBF_DOUBLE) { + prompt("Delay 10") + promptgroup(GUI_SEQ3) + interest(1) + } + field(DOLA,DBF_INLINK) { + prompt("Input link 10") + promptgroup(GUI_SEQ3) + special(SPC_NOMOD) + interest(1) + } + field(DOA,DBF_DOUBLE) { + prompt("Constant input 10") + interest(1) + } + field(LNKA,DBF_OUTLINK) { + prompt("Output Link 10") + promptgroup(GUI_SEQ3) + special(SPC_NOMOD) + interest(1) + } +} diff --git a/src/rec/recSeq.c b/src/rec/seqRecord.c similarity index 98% rename from src/rec/recSeq.c rename to src/rec/seqRecord.c index de1d20351..ceb1f8ab0 100644 --- a/src/rec/recSeq.c +++ b/src/rec/seqRecord.c @@ -48,7 +48,9 @@ #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET #include int seqRecDebug = 0; @@ -131,11 +133,11 @@ int pass; ((struct callbackSeq *) (pseq->dpvt))->wd_id = wdCreate(); /* Get link selection if sell is a constant and nonzero */ - if (pseq->sell.type==CONSTANT && pseq->sell.value.value!=0 ) + if (pseq->sell.type==CONSTANT) { if (seqRecDebug > 5) printf("init_record(%s) SELL is a constant\n", pseq->name); - pseq->seln = pseq->sell.value.value; + recGblInitConstantLink(&pseq->sell,DBF_USHORT,&pseq->seln); } /* If is a channel access link, deal with it. */ @@ -155,7 +157,7 @@ int pass; char DumbCaString[10]; if (plink->dol.type == CONSTANT) - plink->dov = plink->dol.value.value; + recGblInitConstantLink(&plink->dol,DBF_DOUBLE,&plink->dov); index++; diff --git a/src/rec/stateRecord.ascii b/src/rec/stateRecord.ascii new file mode 100644 index 000000000..4262936cb --- /dev/null +++ b/src/rec/stateRecord.ascii @@ -0,0 +1,16 @@ +recordtype(state) { + include "dbCommon.ascii" + field(VAL,DBF_STRING) { + prompt("Value") + promptgroup(GUI_DISPLAY) + asl(ASL0) + pp(TRUE) + size(20) + } + field(OVAL,DBF_STRING) { + prompt("Prev Value") + special(SPC_NOMOD) + interest(3) + size(20) + } +} diff --git a/src/rec/recState.c b/src/rec/stateRecord.c similarity index 98% rename from src/rec/recState.c rename to src/rec/stateRecord.c index 4e81c6840..4c6f9055b 100644 --- a/src/rec/recState.c +++ b/src/rec/stateRecord.c @@ -49,7 +49,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL diff --git a/src/rec/steppermotorRecord.ascii b/src/rec/steppermotorRecord.ascii new file mode 100644 index 000000000..818e0dec6 --- /dev/null +++ b/src/rec/steppermotorRecord.ascii @@ -0,0 +1,308 @@ +menu(steppermotorIALG) { + choice(steppermotorIALG_No_Initialization,"No Initialization") + choice(steppermotorIALG_Move_to_the_Positive_Limit,"Move to the Positive Limit") + choice(steppermotorIALG_Move_to_the_Negative_Limit,"Move to the Negative Limit") +} +menu(steppermotorMODE) { + choice(steppermotorMODE_Velocity,"Velocity") + choice(steppermotorMODE_Position,"Position") +} +recordtype(steppermotor) { + include "dbCommon.ascii" + field(VAL,DBF_FLOAT) { + prompt("Desired Value") + asl(ASL0) + special(SPC_MOD) + pp(TRUE) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(RDBL,DBF_INLINK) { + prompt("Readback Location") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(DOL,DBF_INLINK) { + prompt("Desired Output Loc") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OMSL,DBF_MENU) { + prompt("Output Mode Select") + promptgroup(GUI_OUTPUT) + interest(1) + menu(menuOmsl) + } + field(ACCL,DBF_FLOAT) { + prompt("Seconds to Velocity") + promptgroup(GUI_MOTOR) + interest(1) + } + field(VELO,DBF_FLOAT) { + prompt("Velocity Rotation/Sec") + promptgroup(GUI_MOTOR) + interest(1) + } + field(DIST,DBF_FLOAT) { + prompt("Dist of One Pulse") + promptgroup(GUI_MOTOR) + interest(1) + } + field(IVAL,DBF_FLOAT) { + prompt("Value at init") + promptgroup(GUI_MOTOR) + interest(1) + } + field(MODE,DBF_MENU) { + prompt("Operating Mode") + promptgroup(GUI_MOTOR) + interest(1) + menu(steppermotorMODE) + } + field(CMOD,DBF_MENU) { + prompt("Current Operating Mode") + promptgroup(GUI_MOTOR) + interest(1) + menu(steppermotorMODE) + } + field(IALG,DBF_MENU) { + prompt("Initialization Alg") + promptgroup(GUI_MOTOR) + interest(1) + menu(steppermotorIALG) + } + field(MRES,DBF_USHORT) { + prompt("Motor Pulses/Revolution") + promptgroup(GUI_MOTOR) + interest(1) + } + field(ERES,DBF_USHORT) { + prompt("Encoder Pulses/Rev") + promptgroup(GUI_MOTOR) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Engineering Units") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(DRVH,DBF_FLOAT) { + prompt("Drive High Limit") + promptgroup(GUI_OUTPUT) + pp(TRUE) + interest(1) + } + field(DRVL,DBF_FLOAT) { + prompt("Drive Low Limit") + promptgroup(GUI_OUTPUT) + pp(TRUE) + interest(1) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_FLOAT) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_FLOAT) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_FLOAT) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HLSV,DBF_MENU) { + prompt("HW Limit Violation Svr") + promptgroup(GUI_MOTOR) + pp(TRUE) + interest(2) + menu(menuAlarmSevr) + } + field(MDEL,DBF_FLOAT) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(ADEL,DBF_FLOAT) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(RDBD,DBF_FLOAT) { + prompt("Retry Deadband") + promptgroup(GUI_MOTOR) + interest(1) + } + field(RTRY,DBF_SHORT) { + prompt("Number of retries") + promptgroup(GUI_MOTOR) + interest(1) + } + field(STHM,DBF_SHORT) { + prompt("Set Home") + pp(TRUE) + interest(2) + } + field(STOP,DBF_SHORT) { + prompt("Stop motor") + pp(TRUE) + interest(2) + } + field(DMOV,DBF_SHORT) { + prompt("Done moving to value") + interest(2) + } + field(RVAL,DBF_LONG) { + prompt("Current Raw Value") + pp(TRUE) + } + field(RBV,DBF_FLOAT) { + prompt("Readback Value") + interest(1) + } + field(RRBV,DBF_LONG) { + prompt("Raw Readback Value") + interest(1) + } + field(ALST,DBF_FLOAT) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_FLOAT) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } + field(INIT,DBF_SHORT) { + prompt("Initialize") + interest(2) + } + field(MCW,DBF_SHORT) { + prompt("Mtr Clckws Lim") + pp(TRUE) + interest(2) + } + field(MCCW,DBF_SHORT) { + prompt("Mtr Cntr Clockwise Lmt") + pp(TRUE) + interest(2) + } + field(CW,DBF_SHORT) { + prompt("Clockwise Limit") + pp(TRUE) + interest(2) + } + field(CCW,DBF_SHORT) { + prompt("Counter Clockwise Lmt") + pp(TRUE) + interest(2) + } + field(DIR,DBF_SHORT) { + prompt("Direction of Travel") + pp(TRUE) + interest(2) + } + field(MOVN,DBF_SHORT) { + prompt("Moving Status") + interest(2) + } + field(CVEL,DBF_SHORT) { + prompt("Constant Velocity") + interest(2) + } + field(RCNT,DBF_SHORT) { + prompt("Retry count") + interest(2) + } + field(POSM,DBF_SHORT) { + prompt("Positive motion") + interest(2) + } + field(LVAL,DBF_FLOAT) { + prompt("Last Value") + special(SPC_NOMOD) + interest(3) + } + field(EPOS,DBF_FLOAT) { + prompt("Encoder position rdbck") + interest(2) + } + field(MPOS,DBF_FLOAT) { + prompt("Motor position rdbck") + interest(2) + } + field(MISS,DBF_FLOAT) { + prompt("First attemp error") + interest(2) + } + field(LVEL,DBF_FLOAT) { + prompt("Last Velocity set") + interest(2) + } + field(LACC,DBF_FLOAT) { + prompt("Last acc set") + interest(2) + } +} diff --git a/src/rec/recSteppermotor.c b/src/rec/steppermotorRecord.c similarity index 99% rename from src/rec/recSteppermotor.c rename to src/rec/steppermotorRecord.c index 15ab66699..eeafe3aa5 100644 --- a/src/rec/recSteppermotor.c +++ b/src/rec/steppermotorRecord.c @@ -113,7 +113,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET #include /* Create RSET - Record Support Entry Table*/ @@ -203,8 +205,8 @@ static long init_record(psm,pass) /* get the initial value if dol is a constant*/ if (psm->dol.type == CONSTANT ){ + if(recGblInitConstantLink(&psm->dol,DBF_FLOAT,&psm->val)) psm->udf = FALSE; - psm->val = psm->dol.value.value; } else { status = recGblInitFastInLink(&(psm->dol), (void *) psm, DBR_FLOAT, "VAL"); diff --git a/src/rec/stringinRecord.ascii b/src/rec/stringinRecord.ascii new file mode 100644 index 000000000..d0397678c --- /dev/null +++ b/src/rec/stringinRecord.ascii @@ -0,0 +1,50 @@ +recordtype(stringin) { + include "dbCommon.ascii" + field(VAL,DBF_STRING) { + prompt("Current Value") + promptgroup(GUI_INPUTS) + asl(ASL0) + pp(TRUE) + size(40) + } + field(OVAL,DBF_STRING) { + prompt("Previous Value") + special(SPC_NOMOD) + interest(3) + size(40) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_STRING) { + prompt("Simulation Value") + pp(TRUE) + size(40) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recStringin.c b/src/rec/stringinRecord.c similarity index 97% rename from src/rec/recStringin.c rename to src/rec/stringinRecord.c index f8ba3bdaa..df1c95a5d 100644 --- a/src/rec/recStringin.c +++ b/src/rec/stringinRecord.c @@ -53,7 +53,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -116,7 +118,7 @@ static long init_record(pstringin,pass) if (pass==0) return(0); if (pstringin->siml.type == CONSTANT) { - pstringin->simm = pstringin->siml.value.value; + recGblInitConstantLink(&pstringin->siml,DBF_USHORT,&pstringin->simm); } else { status = recGblInitFastInLink(&(pstringin->siml), (void *) pstringin, DBR_ENUM, "SIMM"); @@ -126,9 +128,7 @@ static long init_record(pstringin,pass) /* stringin.siol must be a CONSTANT or a PV_LINK or a DB_LINK */ if (pstringin->siol.type == CONSTANT) { - if (pstringin->siol.value.value!=0.0 ){ - sprintf(pstringin->sval,"%-14.7g",pstringin->siol.value.value); - } + recGblInitConstantLink(&pstringin->siol,DBF_STRING,pstringin->sval); } else { status = recGblInitFastInLink(&(pstringin->siol), (void *) pstringin, DBR_STRING, "SVAL"); diff --git a/src/rec/stringoutRecord.ascii b/src/rec/stringoutRecord.ascii new file mode 100644 index 000000000..7bce709e8 --- /dev/null +++ b/src/rec/stringoutRecord.ascii @@ -0,0 +1,69 @@ +recordtype(stringout) { + include "dbCommon.ascii" + field(VAL,DBF_STRING) { + prompt("Current Value") + promptgroup(GUI_OUTPUT) + asl(ASL0) + pp(TRUE) + size(40) + } + field(OVAL,DBF_STRING) { + prompt("Previous Value") + special(SPC_NOMOD) + interest(3) + size(40) + } + field(DOL,DBF_INLINK) { + prompt("Desired Output Loc") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(OMSL,DBF_MENU) { + prompt("Output Mode Select") + promptgroup(GUI_OUTPUT) + interest(1) + menu(menuOmsl) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_OUTPUT) + special(SPC_NOMOD) + interest(1) + } + field(SIOL,DBF_OUTLINK) { + prompt("Sim Output Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } + field(IVOA,DBF_MENU) { + prompt("INVALID output action") + promptgroup(GUI_OUTPUT) + interest(2) + menu(menuIvoa) + } + field(IVOV,DBF_STRING) { + prompt("INVALID output value") + promptgroup(GUI_OUTPUT) + interest(2) + size(40) + } +} diff --git a/src/rec/recStringout.c b/src/rec/stringoutRecord.c similarity index 95% rename from src/rec/recStringout.c rename to src/rec/stringoutRecord.c index 62ca7c870..459d5a740 100644 --- a/src/rec/recStringout.c +++ b/src/rec/stringoutRecord.c @@ -58,7 +58,10 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET +#include /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -121,7 +124,7 @@ static long init_record(pstringout,pass) if (pass==0) return(0); if (pstringout->siml.type == CONSTANT) { - pstringout->simm = pstringout->siml.value.value; + recGblInitConstantLink(&pstringout->siml,DBF_USHORT,&pstringout->simm); } else { status = recGblInitFastInLink(&(pstringout->siml), (void *) pstringout, DBR_ENUM, "SIMM"); @@ -142,10 +145,8 @@ static long init_record(pstringout,pass) } /* get the initial value dol is a constant*/ if (pstringout->dol.type == CONSTANT){ - if (pstringout->dol.value.value!=0.0 ){ - sprintf(pstringout->val,"%-14.7g",pstringout->dol.value.value); - } - pstringout->udf=FALSE; + if(recGblInitConstantLink(&pstringout->dol,DBF_STRING,pstringout->val)) + pstringout->udf=FALSE; } if (pstringout->dol.type == PV_LINK) { @@ -189,12 +190,12 @@ static long process(pstringout) status=writeValue(pstringout); /* write the new value */ else { switch (pstringout->ivoa) { - case (IVOA_CONTINUE) : + case (menuIvoaContinue_normally) : status=writeValue(pstringout); /* write the new value */ break; - case (IVOA_NO_OUTPUT) : + case (menuIvoaDon_t_drive_outputs) : break; - case (IVOA_OUTPUT_IVOV) : + case (menuIvoaSet_output_to_IVOV) : if(pstringout->pact == FALSE){ strcpy(pstringout->val,pstringout->ivov); } diff --git a/src/rec/subArrayRecord.ascii b/src/rec/subArrayRecord.ascii new file mode 100644 index 000000000..378e6d515 --- /dev/null +++ b/src/rec/subArrayRecord.ascii @@ -0,0 +1,78 @@ +recordtype(subArray) { + include "dbCommon.ascii" + field(VAL,DBF_NOACCESS) { + prompt("Value") + asl(ASL0) + special(SPC_DBADDR) + pp(TRUE) + size(4) + extra("void * val") + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_COMMON) + interest(1) + } + field(FTVL,DBF_MENU) { + prompt("Field Type of Value") + promptgroup(GUI_ALARMS) + special(SPC_NOMOD) + interest(1) + menu(menuFtype) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_BITS1) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Engineering Units Name") + promptgroup(GUI_BITS2) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_CALC) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_CLOCK) + interest(1) + } + field(MALM,DBF_ULONG) { + prompt("Maximum Elements ") + promptgroup(GUI_CLOCK) + special(SPC_NOMOD) + interest(1) + initial("1") + } + field(NELM,DBF_ULONG) { + prompt("Number of Elements") + promptgroup(GUI_COMPRESS) + pp(TRUE) + initial("1") + } + field(INDX,DBF_ULONG) { + prompt("Substring Index") + promptgroup(GUI_CONVERT) + pp(TRUE) + } + field(BUSY,DBF_SHORT) { + prompt("Busy Indicator") + special(SPC_NOMOD) + } + field(NORD,DBF_LONG) { + prompt("Number elements read") + special(SPC_NOMOD) + } + field(BPTR,DBF_NOACCESS) { + prompt("Buffer Pointer") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * bptr") + } +} diff --git a/src/rec/recSubArray.c b/src/rec/subArrayRecord.c similarity index 99% rename from src/rec/recSubArray.c rename to src/rec/subArrayRecord.c index a686658de..0432d4c86 100644 --- a/src/rec/recSubArray.c +++ b/src/rec/subArrayRecord.c @@ -51,7 +51,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL diff --git a/src/rec/subRecord.ascii b/src/rec/subRecord.ascii new file mode 100644 index 000000000..0ae571f9a --- /dev/null +++ b/src/rec/subRecord.ascii @@ -0,0 +1,324 @@ +recordtype(sub) { + include "dbCommon.ascii" + field(VAL,DBF_DOUBLE) { + prompt("Result") + asl(ASL0) + pp(TRUE) + } + field(INAM,DBF_STRING) { + prompt("Init Routine Name") + promptgroup(GUI_SUB) + special(SPC_NOMOD) + interest(1) + size(16) + } + field(SNAM,DBF_STRING) { + prompt("Subroutine Name") + promptgroup(GUI_SUB) + special(SPC_NOMOD) + interest(1) + size(16) + } + field(SADR,DBF_NOACCESS) { + prompt("Subroutine Address") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * sadr") + } + field(STYP,DBF_SHORT) { + prompt("Subr symbol type") + special(SPC_NOMOD) + interest(3) + } + field(INPA,DBF_INLINK) { + prompt("Input A") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPB,DBF_INLINK) { + prompt("Input B") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPC,DBF_INLINK) { + prompt("Input C") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPD,DBF_INLINK) { + prompt("Input D") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPE,DBF_INLINK) { + prompt("Input E") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPF,DBF_INLINK) { + prompt("Input F") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPG,DBF_INLINK) { + prompt("Input G") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPH,DBF_INLINK) { + prompt("Input H") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPI,DBF_INLINK) { + prompt("Input I") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPJ,DBF_INLINK) { + prompt("Input J") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPK,DBF_INLINK) { + prompt("Input K") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(INPL,DBF_INLINK) { + prompt("Input L") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Units Name") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Rng") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(HIHI,DBF_FLOAT) { + prompt("Hihi Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOLO,DBF_FLOAT) { + prompt("Lolo Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(HIGH,DBF_FLOAT) { + prompt("High Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(LOW,DBF_FLOAT) { + prompt("Low Alarm Limit") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(BRSV,DBF_MENU) { + prompt("Bad Return Severity") + promptgroup(GUI_SUB) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HHSV,DBF_MENU) { + prompt("Hihi Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LLSV,DBF_MENU) { + prompt("Lolo Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HSV,DBF_MENU) { + prompt("High Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(LSV,DBF_MENU) { + prompt("Low Severity") + promptgroup(GUI_ALARMS) + pp(TRUE) + interest(1) + menu(menuAlarmSevr) + } + field(HYST,DBF_DOUBLE) { + prompt("Alarm Deadband") + promptgroup(GUI_ALARMS) + interest(1) + } + field(ADEL,DBF_DOUBLE) { + prompt("Archive Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(MDEL,DBF_DOUBLE) { + prompt("Monitor Deadband") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(A,DBF_DOUBLE) { + prompt("Value of Input A") + pp(TRUE) + } + field(B,DBF_DOUBLE) { + prompt("Value of Input B") + pp(TRUE) + } + field(C,DBF_DOUBLE) { + prompt("Value of Input C") + pp(TRUE) + } + field(D,DBF_DOUBLE) { + prompt("Value of Input D") + pp(TRUE) + } + field(E,DBF_DOUBLE) { + prompt("Value of Input E") + pp(TRUE) + } + field(F,DBF_DOUBLE) { + prompt("Value of Input F") + pp(TRUE) + } + field(G,DBF_DOUBLE) { + prompt("Value of Input G") + pp(TRUE) + } + field(H,DBF_DOUBLE) { + prompt("Value of Input H") + pp(TRUE) + } + field(I,DBF_DOUBLE) { + prompt("Value of Input I") + pp(TRUE) + } + field(J,DBF_DOUBLE) { + prompt("Value of Input J") + pp(TRUE) + } + field(K,DBF_DOUBLE) { + prompt("Value of Input K") + pp(TRUE) + } + field(L,DBF_DOUBLE) { + prompt("Value of Input L") + pp(TRUE) + } + field(LA,DBF_DOUBLE) { + prompt("Prev Value of A") + special(SPC_NOMOD) + interest(3) + } + field(LB,DBF_DOUBLE) { + prompt("Prev Value of B") + special(SPC_NOMOD) + interest(3) + } + field(LC,DBF_DOUBLE) { + prompt("Prev Value of C") + special(SPC_NOMOD) + interest(3) + } + field(LD,DBF_DOUBLE) { + prompt("Prev Value of D") + special(SPC_NOMOD) + interest(3) + } + field(LE,DBF_DOUBLE) { + prompt("Prev Value of E") + special(SPC_NOMOD) + interest(3) + } + field(LF,DBF_DOUBLE) { + prompt("Prev Value of F") + special(SPC_NOMOD) + interest(3) + } + field(LG,DBF_DOUBLE) { + prompt("Prev Value of G") + special(SPC_NOMOD) + interest(3) + } + field(LH,DBF_DOUBLE) { + prompt("Prev Value of H") + special(SPC_NOMOD) + interest(3) + } + field(LI,DBF_DOUBLE) { + prompt("Prev Value of I") + special(SPC_NOMOD) + interest(3) + } + field(LJ,DBF_DOUBLE) { + prompt("Prev Value of J") + special(SPC_NOMOD) + interest(3) + } + field(LK,DBF_DOUBLE) { + prompt("Prev Value of K") + special(SPC_NOMOD) + interest(3) + } + field(LL,DBF_DOUBLE) { + prompt("Prev Value of L") + special(SPC_NOMOD) + interest(3) + } + field(LALM,DBF_DOUBLE) { + prompt("Last Value Alarmed") + special(SPC_NOMOD) + interest(3) + } + field(ALST,DBF_DOUBLE) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_DOUBLE) { + prompt("Last Value Monitored") + special(SPC_NOMOD) + interest(3) + } +} diff --git a/src/rec/recSub.c b/src/rec/subRecord.c similarity index 99% rename from src/rec/recSub.c rename to src/rec/subRecord.c index 69ed3cb83..917fb7681 100644 --- a/src/rec/recSub.c +++ b/src/rec/subRecord.c @@ -62,7 +62,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -133,7 +135,7 @@ static long init_record(psub,pass) pvalue = &psub->a; for(i=0; itype==CONSTANT) { - *pvalue = plink->value.value; + recGblInitConstantLink(plink,DBF_DOUBLE,pvalue); } else { status = recGblInitFastInLink(plink, (void *) psub, DBR_DOUBLE, Fldnames[i]); diff --git a/src/rec/timerRecord.ascii b/src/rec/timerRecord.ascii new file mode 100644 index 000000000..2ec524a3c --- /dev/null +++ b/src/rec/timerRecord.ascii @@ -0,0 +1,233 @@ +menu(timerTIMU) { + choice(timerTIMU_milliseconds,"milliseconds") + choice(timerTIMU_microseconds,"microseconds") + choice(timerTIMU_nanoseconds,"nanoseconds") + choice(timerTIMU_picoseconds,"picoseconds") +} +menu(timerTSRC) { + choice(timerTSRC_external,"external") + choice(timerTSRC_internal,"internal") +} +menu(timerPTST) { + choice(timerPTST_low,"low") + choice(timerPTST_high,"high") +} +recordtype(timer) { + include "dbCommon.ascii" + field(TORG,DBF_INLINK) { + prompt("Trigger Origin") + promptgroup(GUI_TIMER) + special(SPC_NOMOD) + interest(1) + } + field(OUT,DBF_OUTLINK) { + prompt("Output Specification") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(VAL,DBF_SHORT) { + prompt("Status") + asl(ASL0) + pp(TRUE) + } + field(TSRC,DBF_MENU) { + prompt("Clock Source") + promptgroup(GUI_TIMER) + interest(1) + menu(timerTSRC) + } + field(PTST,DBF_MENU) { + prompt("Pre-Trigger State") + promptgroup(GUI_TIMER) + pp(TRUE) + interest(1) + menu(timerPTST) + } + field(TEVT,DBF_SHORT) { + prompt("Event on Trigger") + promptgroup(GUI_TIMER) + pp(TRUE) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_TIMER) + interest(1) + } + field(TIMU,DBF_MENU) { + prompt("Time Units") + promptgroup(GUI_TIMER) + interest(1) + menu(timerTIMU) + } + field(MAIN,DBF_MENU) { + prompt("Maintain on reboot") + promptgroup(GUI_TIMER) + pp(TRUE) + interest(1) + menu(menuYesNo) + } + field(RDT1,DBF_FLOAT) { + prompt("Reboot Delay of 1") + interest(1) + } + field(RPW1,DBF_FLOAT) { + prompt("Reboot Width of 1") + interest(1) + } + field(PDLY,DBF_FLOAT) { + prompt("Delay Source to Inp") + promptgroup(GUI_TIMER) + interest(1) + } + field(DUT1,DBF_FLOAT) { + prompt("Delay Until Trigger 1") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(OPW1,DBF_FLOAT) { + prompt("Output Pulse Width 1") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(DUT2,DBF_FLOAT) { + prompt("Delay Until Trigger 2") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(OPW2,DBF_FLOAT) { + prompt("Output Pulse Width 2") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(DUT3,DBF_FLOAT) { + prompt("Delay Until Trigger 3") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(OPW3,DBF_FLOAT) { + prompt("Output Pulse Width 3") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(DUT4,DBF_FLOAT) { + prompt("Delay Until Trigger 4") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(OPW4,DBF_FLOAT) { + prompt("Output Pulse Width 4") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(DUT5,DBF_FLOAT) { + prompt("Delay Until Trigger 5") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(OPW5,DBF_FLOAT) { + prompt("Output Pulse Width 5") + promptgroup(GUI_PULSE) + pp(TRUE) + interest(1) + } + field(T1DL,DBF_DOUBLE) { + prompt("Delay for trigger 1") + interest(2) + } + field(T1WD,DBF_DOUBLE) { + prompt("Width of Trigger 1") + interest(2) + } + field(T2DL,DBF_DOUBLE) { + prompt("Delay for trigger 2") + interest(2) + } + field(T2WD,DBF_DOUBLE) { + prompt("Width of Trigger 2") + interest(2) + } + field(T3DL,DBF_DOUBLE) { + prompt("Delay for trigger 3") + interest(2) + } + field(T3WD,DBF_DOUBLE) { + prompt("Width of Trigger 3") + interest(2) + } + field(T4DL,DBF_DOUBLE) { + prompt("Delay for trigger 4") + interest(2) + } + field(T4WD,DBF_DOUBLE) { + prompt("Width of Trigger 4") + interest(2) + } + field(T5DL,DBF_DOUBLE) { + prompt("Delay for trigger 5") + interest(2) + } + field(T5WD,DBF_DOUBLE) { + prompt("Width of Trigger 5") + interest(2) + } + field(T1TD,DBF_FLOAT) { + prompt("Trailing Delay of 1") + interest(2) + } + field(T1LD,DBF_FLOAT) { + prompt("Leading Delay of 1") + interest(2) + } + field(T2TD,DBF_FLOAT) { + prompt("Trailing Delay of 2") + interest(2) + } + field(T2LD,DBF_FLOAT) { + prompt("Leading Delay of 2") + interest(2) + } + field(T3TD,DBF_FLOAT) { + prompt("Trailing Delay of 3") + interest(2) + } + field(T3LD,DBF_FLOAT) { + prompt("Leading Delay of 3") + interest(2) + } + field(T4TD,DBF_FLOAT) { + prompt("Trailing Delay of 4") + interest(2) + } + field(T4LD,DBF_FLOAT) { + prompt("Leading Delay of 4") + interest(2) + } + field(T5TD,DBF_FLOAT) { + prompt("Trailing Delay of 5") + interest(2) + } + field(T5LD,DBF_FLOAT) { + prompt("Leading Delay of 5") + interest(2) + } + field(TRDL,DBF_FLOAT) { + prompt("Trigger Origin Delay") + interest(2) + } + field(TDIS,DBF_SHORT) { + prompt("Timing Pulse Disable") + pp(TRUE) + interest(2) + } +} diff --git a/src/rec/recTimer.c b/src/rec/timerRecord.c similarity index 98% rename from src/rec/recTimer.c rename to src/rec/timerRecord.c index 6c68542c6..8ae0fdc50 100644 --- a/src/rec/recTimer.c +++ b/src/rec/timerRecord.c @@ -67,7 +67,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -140,7 +142,7 @@ static long init_record(ptimer, pass) /* get the delay initial value if torg is a constant*/ if (ptimer->torg.type == CONSTANT) { - ptimer->trdl = ptimer->torg.value.value; + recGblInitConstantLink(&ptimer->torg,DBF_FLOAT,&ptimer->trdl); } else { status = recGblInitFastInLink(&(ptimer->torg), (void *) ptimer, DBR_FLOAT, "TRDL"); diff --git a/src/rec/waitRecord.ascii b/src/rec/waitRecord.ascii new file mode 100644 index 000000000..42eaa33ac --- /dev/null +++ b/src/rec/waitRecord.ascii @@ -0,0 +1,509 @@ +menu(waitOOPT) { + choice(waitOOPT_Every_Time,"Every Time") + choice(waitOOPT_On_Change,"On Change") + choice(waitOOPT_When_Zero,"When Zero") + choice(waitOOPT_When_Non_zero,"When Non-zero") + choice(waitOOPT_Transition_To_Zero,"Transition To Zero") + choice(waitOOPT_Transition_To_Non_zero,"Transition To Non-zero") +} +menu(waitDOPT) { + choice(waitDOPT_Use_VAL,"Use VAL") + choice(waitDOPT_Use_DOL,"Use DOL") +} +menu(waitINAP) { + choice(waitINAP_No,"No") + choice(waitINAP_Yes,"Yes") +} +menu(waitINAV) { + choice(waitINAV_PV_OK,"PV OK") + choice(waitINAV_PV_BAD,"PV BAD") + choice(waitINAV_No_PV,"No PV") +} +recordtype(wait) { + include "dbCommon.ascii" + field(VERS,DBF_FLOAT) { + prompt("Code Version") + special(SPC_NOMOD) + initial("1") + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_ALARMS) + asl(ASL0) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_BITS1) + asl(ASL0) + interest(1) + } + field(INIT,DBF_SHORT) { + prompt("Initialized?") + special(SPC_NOMOD) + interest(3) + } + field(CBST,DBF_NOACCESS) { + prompt("Pointer to cbStruct") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * cbst") + } + field(INAN,DBF_STRING) { + prompt("INPA PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(110) + interest(1) + size(40) + } + field(INBN,DBF_STRING) { + prompt("INPB PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(111) + interest(1) + size(40) + } + field(INCN,DBF_STRING) { + prompt("INPC PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(112) + interest(1) + size(40) + } + field(INDN,DBF_STRING) { + prompt("INPD PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(113) + interest(1) + size(40) + } + field(INEN,DBF_STRING) { + prompt("INPE PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(114) + interest(1) + size(40) + } + field(INFN,DBF_STRING) { + prompt("INPF PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(115) + interest(1) + size(40) + } + field(INGN,DBF_STRING) { + prompt("INPG PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(116) + interest(1) + size(40) + } + field(INHN,DBF_STRING) { + prompt("INPH PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(117) + interest(1) + size(40) + } + field(ININ,DBF_STRING) { + prompt("INPI PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(118) + interest(1) + size(40) + } + field(INJN,DBF_STRING) { + prompt("INPJ PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(119) + interest(1) + size(40) + } + field(INKN,DBF_STRING) { + prompt("INPK PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(120) + interest(1) + size(40) + } + field(INLN,DBF_STRING) { + prompt("INPL PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(121) + interest(1) + size(40) + } + field(DOLN,DBF_STRING) { + prompt("DOL PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(122) + interest(1) + size(40) + } + field(OUTN,DBF_STRING) { + prompt("OUT PV Name") + promptgroup(GUI_CALC) + asl(ASL0) + special(123) + interest(1) + size(40) + } + field(INAV,DBF_MENU) { + prompt("INPA PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INBV,DBF_MENU) { + prompt("INPB PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INCV,DBF_MENU) { + prompt("INPC PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INDV,DBF_MENU) { + prompt("INPD PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INEV,DBF_MENU) { + prompt("INPE PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INFV,DBF_MENU) { + prompt("INPF PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INGV,DBF_MENU) { + prompt("INPG PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INHV,DBF_MENU) { + prompt("INPH PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INIV,DBF_MENU) { + prompt("INPI PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INJV,DBF_MENU) { + prompt("INPJ PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INKV,DBF_MENU) { + prompt("INPK PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(INLV,DBF_MENU) { + prompt("INPL PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(DOLV,DBF_MENU) { + prompt("DOL PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(OUTV,DBF_MENU) { + prompt("OUT PV Status") + special(SPC_NOMOD) + interest(1) + menu(waitINAV) + } + field(A,DBF_DOUBLE) { + prompt("Value of Input A") + pp(TRUE) + } + field(B,DBF_DOUBLE) { + prompt("Value of Input B") + pp(TRUE) + } + field(C,DBF_DOUBLE) { + prompt("Value of Input C") + pp(TRUE) + } + field(D,DBF_DOUBLE) { + prompt("Value of Input D") + pp(TRUE) + } + field(E,DBF_DOUBLE) { + prompt("Value of Input E") + pp(TRUE) + } + field(F,DBF_DOUBLE) { + prompt("Value of Input F") + pp(TRUE) + } + field(G,DBF_DOUBLE) { + prompt("Value of Input G") + pp(TRUE) + } + field(H,DBF_DOUBLE) { + prompt("Value of Input H") + pp(TRUE) + } + field(I,DBF_DOUBLE) { + prompt("Value of Input I") + pp(TRUE) + } + field(J,DBF_DOUBLE) { + prompt("Value of Input J") + pp(TRUE) + } + field(K,DBF_DOUBLE) { + prompt("Value of Input K") + pp(TRUE) + } + field(L,DBF_DOUBLE) { + prompt("Value of Input L") + pp(TRUE) + } + field(LA,DBF_DOUBLE) { + prompt("Last Val of Input A") + } + field(LB,DBF_DOUBLE) { + prompt("Last Val of Input B") + } + field(LC,DBF_DOUBLE) { + prompt("Last Val of Input C") + } + field(LD,DBF_DOUBLE) { + prompt("Last Val of Input D") + } + field(LE,DBF_DOUBLE) { + prompt("Last Val of Input E") + } + field(LF,DBF_DOUBLE) { + prompt("Last Val of Input F") + } + field(LG,DBF_DOUBLE) { + prompt("Last Val of Input G") + } + field(LH,DBF_DOUBLE) { + prompt("Last Val of Input H") + } + field(LI,DBF_DOUBLE) { + prompt("Last Val of Input I") + } + field(LJ,DBF_DOUBLE) { + prompt("Last Val of Input J") + } + field(LK,DBF_DOUBLE) { + prompt("Last Val of Input K") + } + field(LL,DBF_DOUBLE) { + prompt("Last Val of Input L") + } + field(INAP,DBF_MENU) { + prompt("INPA causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INBP,DBF_MENU) { + prompt("INPB causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INCP,DBF_MENU) { + prompt("INPC causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INDP,DBF_MENU) { + prompt("INPD causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INEP,DBF_MENU) { + prompt("INPE causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INFP,DBF_MENU) { + prompt("INPF causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INGP,DBF_MENU) { + prompt("INPG causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INHP,DBF_MENU) { + prompt("INPH causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INIP,DBF_MENU) { + prompt("INPI causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INJP,DBF_MENU) { + prompt("INPJ causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INKP,DBF_MENU) { + prompt("INPK causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(INLP,DBF_MENU) { + prompt("INPL causes I/O INTR") + promptgroup(GUI_CALC) + interest(1) + menu(waitINAP) + } + field(CALC,DBF_STRING) { + prompt("Calculation") + promptgroup(GUI_CLOCK) + asl(ASL0) + special(SPC_CALC) + size(36) + } + field(RPCL,DBF_NOACCESS) { + prompt("Reverse Polish Calc") + special(SPC_NOMOD) + interest(4) + size(184) + extra("char rpcl[184]") + } + field(CLCV,DBF_LONG) { + prompt("CALC Valid") + interest(1) + } + field(VAL,DBF_DOUBLE) { + prompt("Value Field") + } + field(OVAL,DBF_DOUBLE) { + prompt("Old Value") + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_COMMON) + interest(1) + } + field(OOPT,DBF_MENU) { + prompt("Output Execute Opt") + promptgroup(GUI_CALC) + interest(1) + menu(waitOOPT) + } + field(ODLY,DBF_FLOAT) { + prompt("Output Execute Delay") + promptgroup(GUI_ALARMS) + asl(ASL0) + interest(1) + } + field(DOPT,DBF_MENU) { + prompt("Output Data Option") + promptgroup(GUI_CALC) + interest(1) + menu(waitDOPT) + } + field(DOLD,DBF_DOUBLE) { + prompt("Desired Output Data") + promptgroup(GUI_CLOCK) + asl(ASL0) + interest(1) + } + field(OEVT,DBF_USHORT) { + prompt("Event To Issue") + promptgroup(GUI_CLOCK) + asl(ASL0) + } + field(ADEL,DBF_DOUBLE) { + prompt("Archive Deadband") + promptgroup(GUI_CLOCK) + interest(1) + } + field(MDEL,DBF_DOUBLE) { + prompt("Monitor Deadband") + promptgroup(GUI_CLOCK) + interest(1) + } + field(ALST,DBF_DOUBLE) { + prompt("Last Value Archived") + special(SPC_NOMOD) + interest(3) + } + field(MLST,DBF_DOUBLE) { + prompt("Last Val Monitored") + special(SPC_NOMOD) + interest(3) + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(SVAL,DBF_DOUBLE) { + prompt("Simulation Value") + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_PULSE) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_SELECT) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recWait.c b/src/rec/waitRecord.c similarity index 99% rename from src/rec/recWait.c rename to src/rec/waitRecord.c index d28d4a7a2..a5a81bbfb 100644 --- a/src/rec/recWait.c +++ b/src/rec/waitRecord.c @@ -92,7 +92,9 @@ #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET #include @@ -600,7 +602,7 @@ struct waitRecord *pwait; /* wait.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ switch (pwait->siml.type) { case (CONSTANT) : - pwait->simm = pwait->siml.value.value; + recGblInitConstantLink(&pwait->siml,DBF_USHORT,&pwait->simm); break; case (PV_LINK) : status = dbCaAddInlink(&(pwait->siml), (void *) pwait, "SIMM"); @@ -617,7 +619,7 @@ struct waitRecord *pwait; /* wait.siol must be a CONSTANT or a PV_LINK or a DB_LINK */ switch (pwait->siol.type) { case (CONSTANT) : - pwait->sval = pwait->siol.value.value; + recGblInitConstantLink(&pwait->siol,DBF_DOUBLE,&pwait->sval); break; case (PV_LINK) : status = dbCaAddInlink(&(pwait->siol), (void *) pwait, "SVAL"); diff --git a/src/rec/waveformRecord.ascii b/src/rec/waveformRecord.ascii new file mode 100644 index 000000000..a44920b3f --- /dev/null +++ b/src/rec/waveformRecord.ascii @@ -0,0 +1,96 @@ +recordtype(waveform) { + include "dbCommon.ascii" + field(VAL,DBF_NOACCESS) { + prompt("Value") + asl(ASL0) + special(SPC_DBADDR) + pp(TRUE) + size(4) + extra("void * val") + } + field(RARM,DBF_SHORT) { + prompt("Rearm the waveform") + promptgroup(GUI_WAVE) + pp(TRUE) + interest(1) + } + field(PREC,DBF_SHORT) { + prompt("Display Precision") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(INP,DBF_INLINK) { + prompt("Input Specification") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(EGU,DBF_STRING) { + prompt("Engineering Units Name") + promptgroup(GUI_DISPLAY) + interest(1) + size(16) + } + field(HOPR,DBF_FLOAT) { + prompt("High Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(LOPR,DBF_FLOAT) { + prompt("Low Operating Range") + promptgroup(GUI_DISPLAY) + interest(1) + } + field(NELM,DBF_ULONG) { + prompt("Number of Elements") + promptgroup(GUI_WAVE) + special(SPC_NOMOD) + interest(1) + initial("1") + } + field(FTVL,DBF_MENU) { + prompt("Field Type of Value") + promptgroup(GUI_WAVE) + special(SPC_NOMOD) + interest(1) + menu(menuFtype) + } + field(BUSY,DBF_SHORT) { + prompt("Busy Indicator") + special(SPC_NOMOD) + } + field(NORD,DBF_ULONG) { + prompt("Number elements read") + special(SPC_NOMOD) + } + field(BPTR,DBF_NOACCESS) { + prompt("Buffer Pointer") + special(SPC_NOMOD) + interest(4) + size(4) + extra("void * bptr") + } + field(SIOL,DBF_INLINK) { + prompt("Sim Input Specifctn") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIML,DBF_INLINK) { + prompt("Sim Mode Location") + promptgroup(GUI_INPUTS) + special(SPC_NOMOD) + interest(1) + } + field(SIMM,DBF_MENU) { + prompt("Simulation Mode") + interest(1) + menu(menuYesNo) + } + field(SIMS,DBF_MENU) { + prompt("Sim mode Alarm Svrty") + promptgroup(GUI_INPUTS) + interest(2) + menu(menuAlarmSevr) + } +} diff --git a/src/rec/recWaveform.c b/src/rec/waveformRecord.c similarity index 99% rename from src/rec/recWaveform.c rename to src/rec/waveformRecord.c index 154296cf5..6fa082b00 100644 --- a/src/rec/recWaveform.c +++ b/src/rec/waveformRecord.c @@ -75,7 +75,9 @@ #include #include #include +#define GEN_SIZE_OFFSET #include +#undef GEN_SIZE_OFFSET /* Create RSET - Record Support Entry Table*/ #define report NULL @@ -159,7 +161,7 @@ static long init_record(pwf,pass) /* wf.siml must be a CONSTANT or a PV_LINK or a DB_LINK */ switch (pwf->siml.type) { case (CONSTANT) : - pwf->simm = pwf->siml.value.value; + recGblInitConstantLink(&pwf->siml,DBF_USHORT,&pwf->simm); break; case (PV_LINK) : status = dbCaAddInlink(&(pwf->siml), (void *) pwf, "SIMM");