Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
sis8300bcm-acct.template 31.58 KiB
#=================================================================#
# Template file: sis8300bcm-acct.template
# Database for the records specific to the ACCT block of the 
# individual BCM channel
# Hinko Kocevar
# June 19, 2019

record(stringout, "$(P)$(R)Name")
{
    field(VAL,  "$(NAME)")
    info(autosaveFields, "VAL")
}

record(mbbo, "$(P)$(R)TriggerSource")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.TRIGGER_SOURCE")
    field(ZRVL, "0")
    field(ZRST, "Software")
    field(ONVL, "1")
    field(ONST, "Internal")
    field(TWVL, "2")
    field(TWST, "FrontPanel")
    field(THVL, "3")
    field(THST, "BackPlane1")
    field(FRVL, "4")
    field(FRST, "BackPlane2")
    field(FVVL, "5")
    field(FVST, "BackPlane3")
    field(SXVL, "6")
    field(SXST, "BackPlane4")
    field(SVVL, "7")
    field(SVST, "BackPlane5")
    field(EIVL, "8")
    field(EIST, "BackPlane6")
    field(NIVL, "9")
    field(NIST, "BackPlane7")
    field(TEVL, "10")
    field(TEST, "BackPlane8")
    field(PINI, "YES")
    field(VAL,  "3")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(mbbi, "$(P)$(R)TriggerSourceR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.TRIGGER_SOURCE")
    field(SCAN, "I/O Intr")
    field(ZRVL, "0")
    field(ZRST, "Software")
    field(ONVL, "1")
    field(ONST, "Internal")
    field(TWVL, "2")
    field(TWST, "FrontPanel")
    field(THVL, "3")
    field(THST, "BackPlane1")
    field(FRVL, "4")
    field(FRST, "BackPlane2")
    field(FVVL, "5")
    field(FVST, "BackPlane3")
    field(SXVL, "6")
    field(SXST, "BackPlane4")
    field(SVVL, "7")
    field(SVST, "BackPlane5")
    field(EIVL, "8")
    field(EIST, "BackPlane6")
    field(NIVL, "9")
    field(NIST, "BackPlane7")
    field(TEVL, "10")
    field(TEST, "BackPlane8")
}

record(ai, "$(P)$(R)PulseChargeR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.PULSE_CHARGE")
    field(EGU,  "uC")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(R)FlatTopChargeR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.FLATTOP_CHARGE")
    field(EGU,  "uC")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(R)PulseWidthR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.PULSE_WIDTH")
    field(EGU,  "ms")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)AdcScale")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ADC_SCALE")
    field(PREC, "5")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)AdcScaleR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ADC_SCALE")
    field(PREC, "5")
    field(SCAN, "I/O Intr")
}

record(calcout, "$(P)$(R)AdcScaleCalc")
{
    field(INPA, "$(P)$(R)CalibrationSample1R")
    field(INPB, "$(P)$(R)CalibrationSample2R")
    field(INPC, "$(P_BCM=$(P))$(R)CalibrationActualCurrent")
    field(INPD, "$(P_BCM=$(P))$(R)CalibrationPulseCounter CPP")
    field(CALC, "(163.84*C) / (B-A)")
    field(FLNK, "$(P)$(R)AdcScaleCalcCheck.PROC")
}

record(calcout, "$(P)$(R)AdcScaleCalcCheck")
{
    field(INPA, "$(P)$(R)AdcScaleCalc")
    field(CALC, "(0 < A) AND (A < 2) ? A : 0")
    field(OOPT, "When Non-zero")
    field(OUT,  "$(P)$(R)AdcScale PP")
}

record(longout, "$(P)$(R)AdcOffset")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ADC_OFFSET")
    field(VAL,  "0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(longin, "$(P)$(R)AdcOffsetR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ADC_OFFSET")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)FlatTopStart")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.FLATTOP_START")
    field(EGU,  "ms")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)FlatTopStartR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.FLATTOP_START")
    field(EGU,  "ms")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)FlatTopEnd")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.FLATTOP_END")
    field(EGU,  "ms")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)FlatTopEndR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.FLATTOP_END")
    field(EGU,  "ms")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(R)FlatTopCurrentR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.FLATTOP_CURRENT")
    field(EGU,  "mA")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)FineDelay")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.FINE_DELAY")
    field(EGU,  "ns")
    field(PREC, "4")
    field(DRVH, "11000.0")
    field(DRVL, "-11000.0")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)FineDelayR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.FINE_DELAY")
    field(EGU,  "ns")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)DroopRate")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.DROOP_RATE")
    field(EGU,  "%")
    field(PREC, "2")
    field(DRVH, "5.0")
    field(DRVL, "0.0")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)DroopRateR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.DROOP_RATE")
    field(EGU,  "%")
    field(PREC, "2")
    field(SCAN, "I/O Intr")
}

record(calcout, "$(P)$(R)DroopRateCalc")
{
    field(INPB, "$(P)$(R)CalibrationSample2R")
    field(INPC, "$(P)$(R)CalibrationSample3R")
    field(INPD, "$(P_BCM=$(P))$(R)CalibrationPulseCounter CPP")
    field(CALC, "100*(B-C) / (2.86*B)")
    field(OUT,  "$(P)$(R)DroopRate PP")
}

record(bo, "$(P)$(R)DroopCompensating")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.DROOP_COMPENSATING")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(VAL,  "0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)DroopCompensatingR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.DROOP_COMPENSATING")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)NoiseFiltering")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.NOISE_FILTERING")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(VAL,  "0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)NoiseFilteringR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.NOISE_FILTERING")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)BaseliningBefore")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.BASELINING_BEFORE")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(VAL,  "0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)BaseliningBeforeR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.BASELINING_BEFORE")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)BaseliningAfter")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.BASELINING_AFTER")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(VAL,  "0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)BaseliningAfterR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.BASELINING_AFTER")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)DcBlocking")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.DC_BLOCKING")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(VAL,  "0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)DcBlockingR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.DC_BLOCKING")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(ao, "$(P)$(R)UpperThreshold")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.UPPER_THRESHOLD")
    field(EGU,  "mA")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)UpperThresholdR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.UPPER_THRESHOLD")
    field(EGU,  "mA")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)LowerThreshold")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LOWER_THRESHOLD")
    field(EGU,  "mA")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)LowerThresholdR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LOWER_THRESHOLD")
    field(EGU,  "mA")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)ErrantThreshold")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ERRANT_THRESHOLD")
    field(EGU,  "mA")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)ErrantThresholdR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ERRANT_THRESHOLD")
    field(EGU,  "mA")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(bo, "$(P)$(R)AlarmUpperControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.UPPER_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmUpperControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.UPPER_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)AlarmLowerControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LOWER_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmLowerControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LOWER_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)AlarmErrantControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ERRANT_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmErrantControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ERRANT_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)AlarmTriggerControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.TRIGGER_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmTriggerControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.TRIGGER_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)AlarmLimitControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LIMIT_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmLimitControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LIMIT_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)AlarmAdcOverflowControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_OVERFLOW_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmAdcOverflowControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_OVERFLOW_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)AlarmAdcUnderflowControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_UNDERFLOW_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmAdcUnderflowControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_UNDERFLOW_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)AlarmAdcStuckControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_STUCK_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmAdcStuckControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_STUCK_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bo, "$(P)$(R)AlarmAiuFaultControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.AIU_FAULT_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmAiuFaultControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.AIU_FAULT_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}
record(bo, "$(P)$(R)AlarmChargeTooHighControl")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.CHARGE_TOO_HIGH_CONTROL")
    field(ZNAM, "Enable")
    field(ONAM, "Disable")
    field(VAL,  "1")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(bi, "$(P)$(R)AlarmChargeTooHighControlR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.CHARGE_TOO_HIGH_CONTROL")
    field(ZNAM, "Enabled")
    field(ONAM, "Disabled")
    field(SCAN, "I/O Intr")
    field(ASG,  "critical")
}

record(bi, "$(P)$(R)AlarmUpperHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.UPPER_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLowerHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LOWER_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmErrantHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ERRANT_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmTriggerHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.TRIGGER_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLimitHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LIMIT_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcOverflowHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_OVERFLOW_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcUnderflowHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_UNDERFLOW_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcStuckHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_STUCK_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAiuFaultHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.AIU_FAULT_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmChargeTooHighHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.CHARGE_TOO_HIGH_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTUpperThresholdHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_UPPER_THRESHOLD_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTLowerThresholdHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_LOWER_THRESHOLD_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTPulseLengthHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_PULSE_LENGTH_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTDestinationModeHoldR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_DESTINATION_MODE_HOLD")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmUpperFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.UPPER_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLowerFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LOWER_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmErrantFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ERRANT_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmTriggerFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.TRIGGER_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLimitFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LIMIT_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcOverflowFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_OVERFLOW_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcUnderflowFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_UNDERFLOW_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcStuckFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_STUCK_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAiuFaultFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.AIU_FAULT_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmChargeTooHighFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.CHARGE_TOO_HIGH_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTUpperThresholdFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_UPPER_THRESHOLD_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTLowerThresholdFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_LOWER_THRESHOLD_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTPulseLengthFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_PULSE_LENGTH_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTDestinationModeFirstR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_DESTINATION_MODE_FIRST")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmUpperDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.UPPER_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLowerDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LOWER_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmErrantDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ERRANT_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmTriggerDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.TRIGGER_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLimitDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LIMIT_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcOverflowDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_OVERFLOW_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcUnderflowDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_UNDERFLOW_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAdcStuckDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.ADC_STUCK_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmAiuFaultDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.AIU_FAULT_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmChargeTooHighDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.CHARGE_TOO_HIGH_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTUpperThresholdDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_UPPER_THRESHOLD_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTLowerThresholdDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_LOWER_THRESHOLD_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTPulseLengthDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_PULSE_LENGTH_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)AlarmLUTDestinationModeDirectR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ALARM.LUT_DESTINATION_MODE_DIRECT")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(bi, "$(P)$(R)BeamExistsR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.BEAM_EXISTS")
    field(ZNAM, "No")
    field(ONAM, "Yes")
    field(SCAN, "I/O Intr")
}

record(longout, "$(P)$(R)MaxPulseLength")
{
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.MAX_PULSE_LENGTH")
    field(EGU,  "us")
    field(VAL,  "0")
    field(PINI, "YES")
    field(ASG,  "critical")
}

record(longin, "$(P)$(R)MaxPulseLengthR")
{
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.MAX_PULSE_LENGTH")
    field(EGU,  "us")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)LowerWindowStart")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LOWER_WINDOW_START")
    field(EGU,  "ns")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)LowerWindowStartR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LOWER_WINDOW_START")
    field(EGU,  "ns")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)LowerWindowEnd")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LOWER_WINDOW_END")
    field(EGU,  "ns")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)LowerWindowEndR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LOWER_WINDOW_END")
    field(EGU,  "ns")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)ErrantWindowStart")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ERRANT_WINDOW_START")
    field(EGU,  "ns")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)ErrantWindowStartR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ERRANT_WINDOW_START")
    field(EGU,  "ns")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}
record(ao, "$(P)$(R)ErrantWindowEnd")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ERRANT_WINDOW_END")
    field(EGU,  "ns")
    field(PREC, "4")
    field(VAL,  "0.0")
    field(PINI, "YES")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)ErrantWindowEndR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.ERRANT_WINDOW_END")
    field(EGU,  "ns")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(R)CalibrationSample1R")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.CALIBRATION_SAMPLE1")
    field(PREC, "6")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(R)CalibrationSample2R")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.CALIBRATION_SAMPLE2")
    field(PREC, "6")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(R)CalibrationSample3R")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.CALIBRATION_SAMPLE3")
    field(PREC, "6")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(R)CalibrationSample4R")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.CALIBRATION_SAMPLE4")
    field(PREC, "6")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)BeamOverThreshold")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.BEAM_ABOVE_THRESHOLD")
    field(EGU,  "mA")
    field(PREC, "4")
    field(DRVH, "63.0")
    field(DRVL, "-63.0")
    field(VAL,  "3.0")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)BeamOverThresholdR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.BEAM_ABOVE_THRESHOLD")
    field(EGU,  "mA")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(R)LICoefficientR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LEAKY_INTEGRATOR_COEFFICIENT")
    field(EGU,  "ms")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)LICoefficient")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LEAKY_INTEGRATOR_COEFFICIENT")
    field(EGU,  "ms")
    field(PREC, "4")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}

record(ai, "$(P)$(R)LIThresholdR")
{
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LEAKY_INTEGRATOR_THRESHOLD")
    field(EGU,  "nC")
    field(PREC, "4")
    field(SCAN, "I/O Intr")
}

record(ao, "$(P)$(R)LIThreshold")
{
    field(DTYP, "asynFloat64")
    field(OUT,  "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))BCM.ACCT.LEAKY_INTEGRATOR_THRESHOLD")
    field(EGU,  "nC")
    field(PREC, "4")
    field(ASG,  "critical")
    info(autosaveFields, "VAL")
}