#*************************************************************************
# 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 is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************


recordtype(longin) {


	include "dbCommon.dbd"
    %
    %/* Declare Device Support Entry Table */
    %struct longinRecord;
    %typedef struct longindset {
    %    dset common; /*init_record returns: (-1,0)=>(failure,success)*/
    %    long (*read_longin)(struct longinRecord *prec); /*returns: (-1,0)=>(failure,success)*/
    %} longindset;
    %#define HAS_longindset
    %
	field(VAL,DBF_LONG) {
		prompt("Current value")
		promptgroup("40 - Input")
		asl(ASL0)
		pp(TRUE)
	}
	field(INP,DBF_INLINK) {
		prompt("Input Specification")
		promptgroup("40 - Input")
		interest(1)
	}
	field(EGU,DBF_STRING) {
		prompt("Engineering Units")
		promptgroup("80 - Display")
		interest(1)
		size(16)
		prop(YES)
	}
	field(HOPR,DBF_LONG) {
		prompt("High Operating Range")
		promptgroup("80 - Display")
		interest(1)
		prop(YES)
	}
	field(LOPR,DBF_LONG) {
		prompt("Low Operating Range")
		promptgroup("80 - Display")
		interest(1)
		prop(YES)
	}
	field(HIHI,DBF_LONG) {
		prompt("Hihi Alarm Limit")
		promptgroup("70 - Alarm")
		pp(TRUE)
		interest(1)
		prop(YES)
	}
	field(LOLO,DBF_LONG) {
		prompt("Lolo Alarm Limit")
		promptgroup("70 - Alarm")
		pp(TRUE)
		interest(1)
		prop(YES)
	}
	field(HIGH,DBF_LONG) {
		prompt("High Alarm Limit")
		promptgroup("70 - Alarm")
		pp(TRUE)
		interest(1)
		prop(YES)
	}
	field(LOW,DBF_LONG) {
		prompt("Low Alarm Limit")
		promptgroup("70 - Alarm")
		pp(TRUE)
		interest(1)
		prop(YES)
	}
	field(HHSV,DBF_MENU) {
		prompt("Hihi Severity")
		promptgroup("70 - Alarm")
		pp(TRUE)
		interest(1)
		menu(menuAlarmSevr)
	}
	field(LLSV,DBF_MENU) {
		prompt("Lolo Severity")
		promptgroup("70 - Alarm")
		pp(TRUE)
		interest(1)
		menu(menuAlarmSevr)
	}
	field(HSV,DBF_MENU) {
		prompt("High Severity")
		promptgroup("70 - Alarm")
		pp(TRUE)
		interest(1)
		menu(menuAlarmSevr)
	}
	field(LSV,DBF_MENU) {
		prompt("Low Severity")
		promptgroup("70 - Alarm")
		pp(TRUE)
		interest(1)
		menu(menuAlarmSevr)
	}
	field(HYST,DBF_LONG) {
		prompt("Alarm Deadband")
		promptgroup("70 - Alarm")
		interest(1)
	}
        field(AFTC, DBF_DOUBLE) {
		prompt("Alarm Filter Time Constant")
		promptgroup("70 - Alarm")
		interest(1)
        }
        field(AFVL, DBF_DOUBLE) {
		prompt("Alarm Filter Value")
		special(SPC_NOMOD)
		interest(3)
        }
	field(ADEL,DBF_LONG) {
		prompt("Archive Deadband")
		promptgroup("80 - Display")
		interest(1)
	}
	field(MDEL,DBF_LONG) {
		prompt("Monitor Deadband")
		promptgroup("80 - 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("90 - Simulate")
		interest(1)
	}
	field(SVAL,DBF_LONG) {
		prompt("Simulation Value")
	}
	field(SIML,DBF_INLINK) {
		prompt("Sim Mode Location")
		promptgroup("90 - Simulate")
		interest(1)
	}
	field(SIMM,DBF_MENU) {
		prompt("Simulation Mode")
		special(SPC_MOD)
		interest(1)
		menu(menuYesNo)
	}
	field(SIMS,DBF_MENU) {
		prompt("Sim mode Alarm Svrty")
		promptgroup("90 - Simulate")
		interest(2)
		menu(menuAlarmSevr)
	}
	field(OLDSIMM,DBF_MENU) {
		prompt("Prev. Simulation Mode")
		special(SPC_NOMOD)
		interest(4)
		menu(menuSimm)
	}
	field(SSCN,DBF_MENU) {
		prompt("Sim. Mode Scan")
		promptgroup("90 - Simulate")
		interest(1)
		menu(menuScan)
		initial("65535")
	}
	field(SDLY,DBF_DOUBLE) {
		prompt("Sim. Mode Async Delay")
		promptgroup("90 - Simulate")
		interest(2)
		initial("-1.0")
	}
	%#include "callback.h"
	field(SIMPVT,DBF_NOACCESS) {
		prompt("Sim. Mode Private")
		special(SPC_NOMOD)
		interest(4)
		extra("epicsCallback            *simpvt")
	}
}
