remove all apsEvent support from base
This commit is contained in:
@@ -10,10 +10,6 @@
|
||||
TOP=../..
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
INC += egDefs.h
|
||||
INC += erDefs.h
|
||||
INC += ereventDefs.h
|
||||
|
||||
DBDINC += aaiRecord
|
||||
DBDINC += aaoRecord
|
||||
DBDINC += aiRecord
|
||||
@@ -24,10 +20,6 @@ DBDINC += calcRecord
|
||||
DBDINC += calcoutRecord
|
||||
DBDINC += compressRecord
|
||||
DBDINC += dfanoutRecord
|
||||
DBDINC += egRecord
|
||||
DBDINC += egeventRecord
|
||||
DBDINC += erRecord
|
||||
DBDINC += ereventRecord
|
||||
DBDINC += eventRecord
|
||||
DBDINC += fanoutRecord
|
||||
DBDINC += histogramRecord
|
||||
@@ -57,10 +49,6 @@ LIBSRCS += calcRecord.c
|
||||
LIBSRCS += calcoutRecord.c
|
||||
LIBSRCS += compressRecord.c
|
||||
LIBSRCS += dfanoutRecord.c
|
||||
LIBSRCS += egRecord.c
|
||||
LIBSRCS += egeventRecord.c
|
||||
LIBSRCS += erRecord.c
|
||||
LIBSRCS += ereventRecord.c
|
||||
LIBSRCS += eventRecord.c
|
||||
LIBSRCS += fanoutRecord.c
|
||||
LIBSRCS += histogramRecord.c
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE Versions 3.13.7
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/* $Id$ */
|
||||
#ifndef EPICS_EGDEFS_H
|
||||
#define EPICS_EGDEFS_H
|
||||
|
||||
typedef long (*EG_PROC_FUN)(struct egRecord *prec);
|
||||
typedef long (*EG_INIT_REC_FUN)(struct egRecord *prec);
|
||||
typedef long (*EG_INIT_DEV_FUN)(int pass);
|
||||
typedef struct
|
||||
{
|
||||
long number;
|
||||
DEVSUPFUN report;
|
||||
EG_INIT_DEV_FUN init;
|
||||
EG_INIT_REC_FUN initRec;
|
||||
DEVSUPFUN get_ioint_info;
|
||||
EG_PROC_FUN proc;
|
||||
} EgDsetStruct;
|
||||
|
||||
#define EG_SEQ_RAM_SIZE (1024*32)
|
||||
|
||||
#define EG_SEQ_RAM_EVENT_NULL 0
|
||||
#define EG_SEQ_RAM_EVENT_END 127
|
||||
#define EG_SEQ_RAM_EVENT_FREEZE 126
|
||||
#define EG_SEQ_RAM_EVENT_RESET_TIME 125
|
||||
#define EG_SEQ_RAM_EVENT_TICK_TIME 124
|
||||
#define EG_SEQ_RAM_EVENT_RESET_PRESCALE 123
|
||||
#define EG_SEQ_RAM_EVENT_HEARTBEAT 122
|
||||
|
||||
#define REC_EGEVENT_UNIT_TICKS (0)
|
||||
#define REC_EGEVENT_UNIT_FORTNIGHTS (1)
|
||||
#define REC_EGEVENT_UNIT_WEEKS (2)
|
||||
#define REC_EGEVENT_UNIT_DAYS (3)
|
||||
#define REC_EGEVENT_UNIT_HOURS (4)
|
||||
#define REC_EGEVENT_UNIT_MINUITES (5)
|
||||
#define REC_EGEVENT_UNIT_SECONDS (6)
|
||||
#define REC_EGEVENT_UNIT_MILLISECONDS (7)
|
||||
#define REC_EGEVENT_UNIT_MICROSECONDS (8)
|
||||
#define REC_EGEVENT_UNIT_NANOSECONDS (9)
|
||||
|
||||
#endif
|
||||
@@ -1,157 +0,0 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE Versions 3.13.7
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/*
|
||||
*
|
||||
* Author: John Winans
|
||||
* Date: 8/27/93
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "dbDefs.h"
|
||||
#include "epicsPrint.h"
|
||||
#include "alarm.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbEvent.h"
|
||||
#include "dbFldTypes.h"
|
||||
#include "devSup.h"
|
||||
#include "errMdef.h"
|
||||
#include "recSup.h"
|
||||
#include "recGbl.h"
|
||||
|
||||
#define GEN_SIZE_OFFSET
|
||||
#include "egRecord.h"
|
||||
#undef GEN_SIZE_OFFSET
|
||||
#include "egDefs.h"
|
||||
#include "epicsExport.h"
|
||||
|
||||
#define STATIC static
|
||||
|
||||
STATIC void EgMonitor(struct egRecord *pRec);
|
||||
|
||||
/* Create RSET - Record Support Entry Table*/
|
||||
#define report NULL
|
||||
#define initialize NULL
|
||||
STATIC long EgInitRec(struct egRecord *, int);
|
||||
STATIC long EgProc(struct egRecord *);
|
||||
#define special NULL
|
||||
#define get_value NULL
|
||||
#define cvt_dbaddr NULL
|
||||
#define get_array_info NULL
|
||||
#define put_array_info NULL
|
||||
#define get_units NULL
|
||||
#define get_precision NULL
|
||||
#define get_enum_str NULL
|
||||
#define get_enum_strs NULL
|
||||
#define put_enum_str NULL
|
||||
#define get_graphic_double NULL
|
||||
#define get_control_double NULL
|
||||
#define get_alarm_double NULL
|
||||
|
||||
rset egRSET={
|
||||
RSETNUMBER,
|
||||
report,
|
||||
initialize,
|
||||
EgInitRec,
|
||||
EgProc,
|
||||
special,
|
||||
get_value,
|
||||
cvt_dbaddr,
|
||||
get_array_info,
|
||||
put_array_info,
|
||||
get_units,
|
||||
get_precision,
|
||||
get_enum_str,
|
||||
get_enum_strs,
|
||||
put_enum_str,
|
||||
get_graphic_double,
|
||||
get_control_double,
|
||||
get_alarm_double
|
||||
};
|
||||
epicsExportAddress(rset,egRSET);
|
||||
|
||||
|
||||
|
||||
STATIC long EgInitRec(struct egRecord *pRec, int pass)
|
||||
{
|
||||
EgDsetStruct *pDset = (EgDsetStruct *) pRec->dset;
|
||||
|
||||
if (pass == 1)
|
||||
{
|
||||
/* Init the card via driver calls */
|
||||
/* Make sure we have a usable device support module */
|
||||
if (pDset == NULL)
|
||||
{
|
||||
recGblRecordError(S_dev_noDSET,(void *)pRec, "eg: EgInitRec");
|
||||
return(S_dev_noDSET);
|
||||
}
|
||||
if (pDset->number < 5)
|
||||
{
|
||||
recGblRecordError(S_dev_missingSup,(void *)pRec, "eg: EgInitRec");
|
||||
return(S_dev_missingSup);
|
||||
}
|
||||
if( pDset->initRec != NULL)
|
||||
return(*pDset->initRec)(pRec);
|
||||
}
|
||||
pRec->taxi = 0;
|
||||
|
||||
return(0);
|
||||
}
|
||||
/******************************************************************************
|
||||
******************************************************************************/
|
||||
STATIC long EgProc(struct egRecord *pRec)
|
||||
{
|
||||
EgDsetStruct *pDset = (EgDsetStruct *) pRec->dset;
|
||||
|
||||
pRec->pact=TRUE;
|
||||
|
||||
pRec->ltax = pRec->taxi; /* The only monitorable field we can change */
|
||||
|
||||
if (pRec->tpro > 10)
|
||||
printf("recEg::EgProc(%s) entered\n", pRec->name);
|
||||
|
||||
if (pDset->proc != NULL)
|
||||
(*pDset->proc)(pRec);
|
||||
|
||||
/* Take care of time stamps and such */
|
||||
pRec->udf=FALSE;
|
||||
/*tsLocalTime(&pRec->time);*/
|
||||
recGblGetTimeStamp(pRec);
|
||||
|
||||
/* Deal with monitor stuff */
|
||||
EgMonitor(pRec);
|
||||
/* process the forward scan link record */
|
||||
recGblFwdLink(pRec);
|
||||
|
||||
pRec->pact=FALSE;
|
||||
return(0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
******************************************************************************/
|
||||
STATIC void EgMonitor(struct egRecord *pRec)
|
||||
{
|
||||
unsigned short monitor_mask;
|
||||
|
||||
monitor_mask = recGblResetAlarms(pRec);
|
||||
monitor_mask |= (DBE_VALUE | DBE_LOG);
|
||||
db_post_events(pRec, &pRec->val, monitor_mask);
|
||||
|
||||
if (pRec->taxi != pRec->ltax)
|
||||
db_post_events(pRec, &pRec->taxi, monitor_mask);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -1,293 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
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.dbd"
|
||||
field(OUT,DBF_OUTLINK) {
|
||||
prompt("Output Specification")
|
||||
promptgroup(GUI_OUTPUT)
|
||||
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)
|
||||
}
|
||||
}
|
||||
@@ -1,221 +0,0 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE Versions 3.13.7
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/*
|
||||
* Author: John Winans
|
||||
* Date: 8/27/93
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "dbDefs.h"
|
||||
#include "epicsPrint.h"
|
||||
#include "alarm.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbEvent.h"
|
||||
#include "dbFldTypes.h"
|
||||
#include "devSup.h"
|
||||
#include "errMdef.h"
|
||||
#include "recSup.h"
|
||||
#include "recGbl.h"
|
||||
|
||||
#include "egRecord.h"
|
||||
#define GEN_SIZE_OFFSET
|
||||
#include "egeventRecord.h"
|
||||
#undef GEN_SIZE_OFFSET
|
||||
#include "egDefs.h"
|
||||
#include "epicsExport.h"
|
||||
|
||||
#define STATIC static
|
||||
|
||||
STATIC void EgEventMonitor(struct egeventRecord *pRec);
|
||||
|
||||
/* Create RSET - Record Support Entry Table*/
|
||||
#define report NULL
|
||||
#define initialize NULL
|
||||
STATIC long EgEventInitRec(struct egeventRecord *, int);
|
||||
STATIC long EgEventProc(struct egeventRecord *);
|
||||
#define special NULL
|
||||
#define get_value NULL
|
||||
#define cvt_dbaddr NULL
|
||||
#define get_array_info NULL
|
||||
#define put_array_info NULL
|
||||
#define get_units NULL
|
||||
#define get_precision NULL
|
||||
#define get_enum_str NULL
|
||||
#define get_enum_strs NULL
|
||||
#define put_enum_str NULL
|
||||
static long get_graphic_double(struct dbAddr *paddr, struct dbr_grDouble *pgd);
|
||||
static long get_control_double(struct dbAddr *paddr, struct dbr_ctrlDouble *pcd);
|
||||
static long get_alarm_double(struct dbAddr *paddr, struct dbr_alDouble *pad);
|
||||
|
||||
rset egeventRSET={
|
||||
RSETNUMBER,
|
||||
report,
|
||||
initialize,
|
||||
EgEventInitRec,
|
||||
EgEventProc,
|
||||
special,
|
||||
get_value,
|
||||
cvt_dbaddr,
|
||||
get_array_info,
|
||||
put_array_info,
|
||||
get_units,
|
||||
get_precision,
|
||||
get_enum_str,
|
||||
get_enum_strs,
|
||||
put_enum_str,
|
||||
get_graphic_double,
|
||||
get_control_double,
|
||||
get_alarm_double
|
||||
};
|
||||
epicsExportAddress(rset,egeventRSET);
|
||||
|
||||
|
||||
|
||||
STATIC long EgEventInitRec(struct egeventRecord *pRec, int pass)
|
||||
{
|
||||
EgDsetStruct *pDset = (EgDsetStruct *) pRec->dset;
|
||||
|
||||
printf("EgEventInitRec(%s, %d)\n", pRec->name, pass);
|
||||
if (pass == 1)
|
||||
{
|
||||
/* Init the card via driver calls */
|
||||
/* Make sure we have a usable device support module */
|
||||
if (pDset == NULL)
|
||||
{
|
||||
recGblRecordError(S_dev_noDSET,(void *)pRec, "eg: EgEventInitRec");
|
||||
return(S_dev_noDSET);
|
||||
}
|
||||
if (pDset->number < 5)
|
||||
{
|
||||
recGblRecordError(S_dev_missingSup,(void *)pRec, "eg: EgEventInitRec");
|
||||
return(S_dev_missingSup);
|
||||
}
|
||||
if( pDset->initRec != NULL)
|
||||
return(*pDset->initRec)((void *)pRec);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
/******************************************************************************
|
||||
******************************************************************************/
|
||||
STATIC long EgEventProc(struct egeventRecord *pRec)
|
||||
{
|
||||
EgDsetStruct *pDset = (EgDsetStruct *) pRec->dset;
|
||||
|
||||
pRec->pact=TRUE;
|
||||
|
||||
if (pRec->tpro > 10)
|
||||
printf("recEgEvent::EgEventProc(%s) entered\n", pRec->name);
|
||||
|
||||
if (pDset->proc)
|
||||
(*pDset->proc)((void *)pRec);
|
||||
|
||||
/* Take care of time stamps and such */
|
||||
pRec->udf=FALSE;
|
||||
/* tsLocalTime(&pRec->time);*/
|
||||
recGblGetTimeStamp(pRec);
|
||||
|
||||
/* Deal with monitor stuff */
|
||||
EgEventMonitor(pRec);
|
||||
/* process the forward scan link record */
|
||||
recGblFwdLink(pRec);
|
||||
|
||||
pRec->pact=FALSE;
|
||||
return(0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
******************************************************************************/
|
||||
STATIC void EgEventMonitor(struct egeventRecord *pRec)
|
||||
{
|
||||
unsigned short monitor_mask;
|
||||
|
||||
monitor_mask = recGblResetAlarms(pRec);
|
||||
monitor_mask |= (DBE_VALUE | DBE_LOG);
|
||||
db_post_events(pRec, &pRec->val, monitor_mask);
|
||||
#if 0 /* this is done in the device support code */
|
||||
db_post_events(pRec, &pRec->adly, monitor_mask);
|
||||
db_post_events(pRec, &pRec->dpos, monitor_mask);
|
||||
db_post_events(pRec, &pRec->apos, monitor_mask);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
/******************************************************************************
|
||||
*
|
||||
*
|
||||
******************************************************************************/
|
||||
static long get_graphic_double(struct dbAddr *paddr, struct dbr_grDouble *pgd)
|
||||
{
|
||||
struct egeventRecord *pRec=(struct egeventRecord *)paddr->precord;
|
||||
|
||||
if(paddr->pfield==(void *)&pRec->val)
|
||||
{
|
||||
pgd->upper_disp_limit = 0;
|
||||
pgd->lower_disp_limit = 0;
|
||||
}
|
||||
else if(paddr->pfield==(void *)&pRec->dely
|
||||
|| paddr->pfield==(void *)&pRec->adly
|
||||
|| paddr->pfield==(void *)&pRec->dpos
|
||||
|| paddr->pfield==(void *)&pRec->apos)
|
||||
{
|
||||
pgd->upper_disp_limit = (32*1024) - 1;
|
||||
pgd->lower_disp_limit = 0;
|
||||
}
|
||||
else if(paddr->pfield==(void *)&pRec->enm)
|
||||
{
|
||||
pgd->upper_disp_limit = 255;
|
||||
pgd->lower_disp_limit = 0;
|
||||
}
|
||||
else
|
||||
recGblGetGraphicDouble(paddr,pgd);
|
||||
return(0);
|
||||
}
|
||||
|
||||
static long get_control_double(struct dbAddr *paddr, struct dbr_ctrlDouble *pcd)
|
||||
{
|
||||
struct egeventRecord *pRec=(struct egeventRecord *)paddr->precord;
|
||||
|
||||
if(paddr->pfield==(void *)&pRec->val)
|
||||
{
|
||||
pcd->upper_ctrl_limit = 0;
|
||||
pcd->lower_ctrl_limit = 1;
|
||||
}
|
||||
else if(paddr->pfield==(void *)&pRec->dely
|
||||
|| paddr->pfield==(void *)&pRec->adly
|
||||
|| paddr->pfield==(void *)&pRec->dpos
|
||||
|| paddr->pfield==(void *)&pRec->apos)
|
||||
{
|
||||
pcd->upper_ctrl_limit = (32*1024) -1;
|
||||
pcd->lower_ctrl_limit = 0;
|
||||
}
|
||||
else
|
||||
recGblGetControlDouble(paddr,pcd);
|
||||
return(0);
|
||||
}
|
||||
|
||||
static long get_alarm_double(struct dbAddr *paddr, struct dbr_alDouble *pad)
|
||||
{
|
||||
#if 0
|
||||
{
|
||||
pad->upper_alarm_limit = 2;
|
||||
pad->upper_warning_limit = 2;
|
||||
pad->lower_warning_limit = -1;
|
||||
pad->lower_alarm_limit = -1;
|
||||
} else
|
||||
#endif
|
||||
recGblGetAlarmDouble(paddr,pad);
|
||||
return(0);
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
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.dbd"
|
||||
field(OUT,DBF_OUTLINK) {
|
||||
prompt("Output Specification")
|
||||
promptgroup(GUI_OUTPUT)
|
||||
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_DOUBLE) {
|
||||
prompt("Desired Delay Time")
|
||||
promptgroup(GUI_DISPLAY)
|
||||
pp(TRUE)
|
||||
interest(1)
|
||||
}
|
||||
field(ADLY,DBF_DOUBLE) {
|
||||
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_DOUBLE) {
|
||||
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)
|
||||
extra("ELLNODE eln")
|
||||
}
|
||||
field(SELF,DBF_NOACCESS) {
|
||||
prompt("Self Pointer")
|
||||
special(SPC_NOMOD)
|
||||
interest(4)
|
||||
extra("struct egeventRecord *self")
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE Versions 3.13.7
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
#ifndef EPICS_ERDEFS_H
|
||||
#define EPICS_ERDEFS_H
|
||||
|
||||
typedef struct ErDsetStruct {
|
||||
long number;
|
||||
DEVSUPFUN report;
|
||||
DEVSUPFUN init;
|
||||
DEVSUPFUN init_record;
|
||||
DEVSUPFUN get_ioint_info;
|
||||
DEVSUPFUN proc;
|
||||
} ErDsetStruct;
|
||||
#endif
|
||||
@@ -1,259 +0,0 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE Versions 3.13.7
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/*
|
||||
*
|
||||
* Author: John Winans
|
||||
* Date: 9/27/93
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "dbDefs.h"
|
||||
#include "epicsPrint.h"
|
||||
#include "alarm.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbEvent.h"
|
||||
#include "dbFldTypes.h"
|
||||
#include "devSup.h"
|
||||
#include "errMdef.h"
|
||||
#include "recSup.h"
|
||||
#include "recGbl.h"
|
||||
#include "erDefs.h"
|
||||
|
||||
#define GEN_SIZE_OFFSET
|
||||
#include "erRecord.h"
|
||||
#undef GEN_SIZE_OFFSET
|
||||
#include "epicsExport.h"
|
||||
|
||||
#define STATIC static
|
||||
|
||||
STATIC void ErMonitor(struct erRecord *pRec);
|
||||
|
||||
/* Create RSET - Record Support Entry Table*/
|
||||
#define report NULL
|
||||
#define initialize NULL
|
||||
STATIC long ErInitRec(struct erRecord *, int);
|
||||
STATIC long ErProc(struct erRecord *);
|
||||
#define ErSpecial NULL
|
||||
#define get_value NULL
|
||||
#define cvt_dbaddr NULL
|
||||
#define get_array_info NULL
|
||||
#define put_array_info NULL
|
||||
#define get_units NULL
|
||||
#define get_precision NULL
|
||||
#define get_enum_str NULL
|
||||
#define get_enum_strs NULL
|
||||
#define put_enum_str NULL
|
||||
static long get_graphic_double(struct dbAddr *paddr, struct dbr_grDouble *pgd);
|
||||
static long get_control_double(struct dbAddr *paddr, struct dbr_ctrlDouble *pcd);
|
||||
static long get_alarm_double(struct dbAddr *paddr, struct dbr_alDouble *pad);
|
||||
|
||||
rset erRSET={
|
||||
RSETNUMBER,
|
||||
report,
|
||||
initialize,
|
||||
ErInitRec,
|
||||
ErProc,
|
||||
ErSpecial,
|
||||
get_value,
|
||||
cvt_dbaddr,
|
||||
get_array_info,
|
||||
put_array_info,
|
||||
get_units,
|
||||
get_precision,
|
||||
get_enum_str,
|
||||
get_enum_strs,
|
||||
put_enum_str,
|
||||
get_graphic_double,
|
||||
get_control_double,
|
||||
get_alarm_double
|
||||
};
|
||||
epicsExportAddress(rset,erRSET);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Init an ER record.
|
||||
*
|
||||
******************************************************************************/
|
||||
STATIC long ErInitRec(struct erRecord *pRec, int pass)
|
||||
{
|
||||
ErDsetStruct *pDset = (ErDsetStruct *) pRec->dset;
|
||||
|
||||
if (pass == 1)
|
||||
{
|
||||
/* Init the card via driver calls */
|
||||
/* Make sure we have a usable device support module */
|
||||
if (pDset == NULL)
|
||||
{
|
||||
recGblRecordError(S_dev_noDSET,(void *)pRec, "er: ErInitRec");
|
||||
return(S_dev_noDSET);
|
||||
}
|
||||
if (pDset->number < 5)
|
||||
{
|
||||
recGblRecordError(S_dev_missingSup,(void *)pRec, "er: ErInitRec");
|
||||
return(S_dev_missingSup);
|
||||
}
|
||||
if( pDset->init_record != NULL)
|
||||
return(*pDset->init_record)(pRec);
|
||||
}
|
||||
pRec->taxi = 0;
|
||||
|
||||
return(0);
|
||||
}
|
||||
/******************************************************************************
|
||||
*
|
||||
* Process an ER record.
|
||||
*
|
||||
******************************************************************************/
|
||||
STATIC long ErProc(struct erRecord *pRec)
|
||||
{
|
||||
ErDsetStruct *pDset = (ErDsetStruct *) pRec->dset;
|
||||
|
||||
pRec->pact=TRUE;
|
||||
|
||||
pRec->ltax = pRec->taxi; /* The only monitorable field we can change */
|
||||
|
||||
if (pRec->tpro > 10)
|
||||
printf("recEr::ErProc(%s) entered\n", pRec->name);
|
||||
|
||||
if (pDset->proc != NULL)
|
||||
(*pDset->proc)(pRec);
|
||||
|
||||
/* Take care of time stamps and such */
|
||||
pRec->udf=FALSE;
|
||||
/* tsLocalTime(&pRec->time);*/
|
||||
recGblGetTimeStamp(pRec);
|
||||
|
||||
/* Deal with monitor stuff */
|
||||
ErMonitor(pRec);
|
||||
/* process the forward scan link record */
|
||||
recGblFwdLink(pRec);
|
||||
|
||||
pRec->pact=FALSE;
|
||||
return(0);
|
||||
}
|
||||
#if 0 /* this is not needed */
|
||||
/******************************************************************************
|
||||
*
|
||||
* Used to check for changed field values
|
||||
*
|
||||
******************************************************************************/
|
||||
STATIC long ErSpecial(struct dbAddr *paddr, int after)
|
||||
{
|
||||
struct erRecord *pRec = (struct erRecord *)(paddr->precord);
|
||||
void *p
|
||||
|
||||
if(!after)
|
||||
return(0);
|
||||
|
||||
/* Make sure we have the proper special flag type spec'd */
|
||||
if (pdbAddr->special != SPC_MOD)
|
||||
{
|
||||
recGblDbaddrError(S_db_badChoice,pdbAddr,"bp: special");
|
||||
return(S_db_badChoice);
|
||||
}
|
||||
p = (void *)(pdbAddr->pfield);
|
||||
|
||||
/* Figure out which field has been changed */
|
||||
if (p == &pRec->dg0d)
|
||||
pRec->dgcm |= 1;
|
||||
else ...
|
||||
|
||||
return(0);
|
||||
}
|
||||
#endif
|
||||
/******************************************************************************
|
||||
*
|
||||
* Post any events for fields that might have changed while processing.
|
||||
*
|
||||
******************************************************************************/
|
||||
STATIC void ErMonitor(struct erRecord *pRec)
|
||||
{
|
||||
unsigned short monitor_mask;
|
||||
|
||||
monitor_mask = recGblResetAlarms(pRec);
|
||||
monitor_mask |= (DBE_VALUE | DBE_LOG);
|
||||
db_post_events(pRec, &pRec->val, monitor_mask);
|
||||
|
||||
if (pRec->taxi != pRec->ltax)
|
||||
db_post_events(pRec, &pRec->taxi, monitor_mask);
|
||||
|
||||
return;
|
||||
}
|
||||
static long get_graphic_double(struct dbAddr *paddr, struct dbr_grDouble *pgd)
|
||||
{
|
||||
struct erRecord *pRec=(struct erRecord *)paddr->precord;
|
||||
|
||||
if(paddr->pfield==(void *)&pRec->val)
|
||||
{
|
||||
pgd->upper_disp_limit = 0;
|
||||
pgd->lower_disp_limit = 0;
|
||||
}
|
||||
else if(paddr->pfield==(void *)&pRec->dg0d
|
||||
|| paddr->pfield==(void *)&pRec->dg0w
|
||||
|| paddr->pfield==(void *)&pRec->dg1d
|
||||
|| paddr->pfield==(void *)&pRec->dg1w
|
||||
|| paddr->pfield==(void *)&pRec->dg2d
|
||||
|| paddr->pfield==(void *)&pRec->dg2w
|
||||
|| paddr->pfield==(void *)&pRec->dg3d
|
||||
|| paddr->pfield==(void *)&pRec->dg3w)
|
||||
{
|
||||
pgd->upper_disp_limit = 64*1024;
|
||||
pgd->lower_disp_limit = 0;
|
||||
}
|
||||
else
|
||||
recGblGetGraphicDouble(paddr,pgd);
|
||||
return(0);
|
||||
}
|
||||
|
||||
static long get_control_double(struct dbAddr *paddr, struct dbr_ctrlDouble *pcd)
|
||||
{
|
||||
struct erRecord *pRec=(struct erRecord *)paddr->precord;
|
||||
|
||||
if(paddr->pfield==(void *)&pRec->val)
|
||||
{
|
||||
pcd->upper_ctrl_limit = 0;
|
||||
pcd->lower_ctrl_limit = 1;
|
||||
}
|
||||
else if(paddr->pfield==(void *)&pRec->dg0d
|
||||
|| paddr->pfield==(void *)&pRec->dg0w
|
||||
|| paddr->pfield==(void *)&pRec->dg1d
|
||||
|| paddr->pfield==(void *)&pRec->dg1w
|
||||
|| paddr->pfield==(void *)&pRec->dg2d
|
||||
|| paddr->pfield==(void *)&pRec->dg2w
|
||||
|| paddr->pfield==(void *)&pRec->dg3d
|
||||
|| paddr->pfield==(void *)&pRec->dg3w)
|
||||
{
|
||||
pcd->upper_ctrl_limit = 64*1024;
|
||||
pcd->lower_ctrl_limit = 0;
|
||||
}
|
||||
else
|
||||
recGblGetControlDouble(paddr,pcd);
|
||||
return(0);
|
||||
}
|
||||
|
||||
static long get_alarm_double(struct dbAddr *paddr, struct dbr_alDouble *pad)
|
||||
{
|
||||
#if 0
|
||||
{
|
||||
pad->upper_alarm_limit = 2;
|
||||
pad->upper_warning_limit = 2;
|
||||
pad->lower_warning_limit = -1;
|
||||
pad->lower_alarm_limit = -1;
|
||||
} else
|
||||
#endif
|
||||
recGblGetAlarmDouble(paddr,pad);
|
||||
return(0);
|
||||
}
|
||||
@@ -1,321 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
menu(erTRG0) {
|
||||
choice(erTRG0_Disabled,"Disabled")
|
||||
choice(erTRG0_Enabled,"Enabled")
|
||||
}
|
||||
recordtype(er) {
|
||||
include "dbCommon.dbd"
|
||||
field(VAL,DBF_CHAR) {
|
||||
prompt("Worthless Value")
|
||||
asl(ASL0)
|
||||
special(SPC_NOMOD)
|
||||
interest(1)
|
||||
}
|
||||
field(OUT,DBF_OUTLINK) {
|
||||
prompt("Output Specification")
|
||||
promptgroup(GUI_OUTPUT)
|
||||
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)
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE Versions 3.13.7
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
#ifndef EPICS_EREVENTDEFS_H
|
||||
#define EPICS_EREVENTDEFS_H
|
||||
|
||||
typedef struct EreventDsetStruct {
|
||||
long number;
|
||||
DEVSUPFUN report;
|
||||
DEVSUPFUN init;
|
||||
DEVSUPFUN initRec;
|
||||
DEVSUPFUN get_ioint_info;
|
||||
DEVSUPFUN proc;
|
||||
} EreventDsetStruct;
|
||||
#endif
|
||||
@@ -1,148 +0,0 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
* National Laboratory.
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE Versions 3.13.7
|
||||
* and higher are distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/*
|
||||
*
|
||||
* Author: John Winans
|
||||
* Date: 8/27/93
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "dbDefs.h"
|
||||
#include "epicsPrint.h"
|
||||
#include "alarm.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbEvent.h"
|
||||
#include "dbFldTypes.h"
|
||||
#include "devSup.h"
|
||||
#include "errMdef.h"
|
||||
#include "recSup.h"
|
||||
#include "recGbl.h"
|
||||
|
||||
#include "ereventDefs.h"
|
||||
#define GEN_SIZE_OFFSET
|
||||
#include "ereventRecord.h"
|
||||
#undef GEN_SIZE_OFFSET
|
||||
#include "epicsExport.h"
|
||||
|
||||
#define STATIC static
|
||||
|
||||
STATIC void ErEventMonitor(struct ereventRecord *pRec);
|
||||
|
||||
/* Create RSET - Record Support Entry Table*/
|
||||
#define report NULL
|
||||
#define initialize NULL
|
||||
STATIC long ErEventInitRec(struct ereventRecord *, int);
|
||||
STATIC long ErEventProc(struct ereventRecord *);
|
||||
#define special NULL
|
||||
#define get_value NULL
|
||||
#define cvt_dbaddr NULL
|
||||
#define get_array_info NULL
|
||||
#define put_array_info NULL
|
||||
#define get_units NULL
|
||||
#define get_precision NULL
|
||||
#define get_enum_str NULL
|
||||
#define get_enum_strs NULL
|
||||
#define put_enum_str NULL
|
||||
#define get_graphic_double NULL
|
||||
#define get_control_double NULL
|
||||
#define get_alarm_double NULL
|
||||
|
||||
rset ereventRSET={
|
||||
RSETNUMBER,
|
||||
report,
|
||||
initialize,
|
||||
ErEventInitRec,
|
||||
ErEventProc,
|
||||
special,
|
||||
get_value,
|
||||
cvt_dbaddr,
|
||||
get_array_info,
|
||||
put_array_info,
|
||||
get_units,
|
||||
get_precision,
|
||||
get_enum_str,
|
||||
get_enum_strs,
|
||||
put_enum_str,
|
||||
get_graphic_double,
|
||||
get_control_double,
|
||||
get_alarm_double
|
||||
};
|
||||
epicsExportAddress(rset,ereventRSET);
|
||||
|
||||
|
||||
|
||||
STATIC long ErEventInitRec(struct ereventRecord *pRec, int pass)
|
||||
{
|
||||
EreventDsetStruct *pDset = (EreventDsetStruct *) pRec->dset;
|
||||
|
||||
if (pass == 1)
|
||||
{
|
||||
/* Init the card via driver calls */
|
||||
/* Make sure we have a usable device support module */
|
||||
if (pDset == NULL)
|
||||
{
|
||||
recGblRecordError(S_dev_noDSET,(void *)pRec, "eg: ErEventInitRec");
|
||||
return(S_dev_noDSET);
|
||||
}
|
||||
if (pDset->number < 5)
|
||||
{
|
||||
recGblRecordError(S_dev_missingSup,(void *)pRec, "eg: ErEventInitRec");
|
||||
return(S_dev_missingSup);
|
||||
}
|
||||
if( pDset->initRec != NULL)
|
||||
return(*pDset->initRec)(pRec);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
/******************************************************************************
|
||||
******************************************************************************/
|
||||
STATIC long ErEventProc(struct ereventRecord *pRec)
|
||||
{
|
||||
EreventDsetStruct *pDset = (EreventDsetStruct *) pRec->dset;
|
||||
|
||||
pRec->pact=TRUE;
|
||||
|
||||
if (pRec->tpro > 10)
|
||||
printf("recErEvent::ErEventProc(%s) entered\n", pRec->name);
|
||||
|
||||
if (pDset->proc)
|
||||
(*pDset->proc)(pRec);
|
||||
|
||||
/* Take care of time stamps and such */
|
||||
pRec->udf=FALSE;
|
||||
/* tsLocalTime(&pRec->time);*/
|
||||
recGblGetTimeStamp(pRec);
|
||||
|
||||
/* Deal with monitor stuff */
|
||||
ErEventMonitor(pRec);
|
||||
/* process the forward scan link record */
|
||||
recGblFwdLink(pRec);
|
||||
|
||||
pRec->pact=FALSE;
|
||||
return(0);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
******************************************************************************/
|
||||
STATIC void ErEventMonitor(struct ereventRecord *pRec)
|
||||
{
|
||||
unsigned short monitor_mask;
|
||||
|
||||
monitor_mask = recGblResetAlarms(pRec);
|
||||
monitor_mask |= (DBE_VALUE | DBE_LOG);
|
||||
db_post_events(pRec, &pRec->val, monitor_mask);
|
||||
return;
|
||||
}
|
||||
@@ -1,158 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
menu(ereventENAB) {
|
||||
choice(ereventENAB_Disabled,"Disabled")
|
||||
choice(ereventENAB_Enabled,"Enabled")
|
||||
}
|
||||
recordtype(erevent) {
|
||||
include "dbCommon.dbd"
|
||||
field(VAL,DBF_CHAR) {
|
||||
prompt("Worthless Value")
|
||||
asl(ASL0)
|
||||
special(SPC_NOMOD)
|
||||
interest(1)
|
||||
}
|
||||
field(OUT,DBF_OUTLINK) {
|
||||
prompt("Output Specification")
|
||||
promptgroup(GUI_OUTPUT)
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user