#*************************************************************************
# Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
#     National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************

recordtype(lso) {
    include "dbCommon.dbd" 
    %#include "devSup.h"
    %
    %/* Declare Device Support Entry Table */
    %typedef struct lsodset {
    %    long number;
    %    DEVSUPFUN report;
    %    DEVSUPFUN init;
    %    DEVSUPFUN init_record;
    %    DEVSUPFUN get_ioint_info;
    %    DEVSUPFUN write_string;
    %} lsodset;
    %
    field(VAL,DBF_NOACCESS) {
        prompt("Current Value")
        asl(ASL0)
        pp(TRUE)
        special(SPC_DBADDR)
        extra("char *val")
    }
    field(OVAL,DBF_NOACCESS) {
        prompt("Previous Value")
        special(SPC_DBADDR)
        interest(3)
        extra("char *oval")
    }
    field(SIZV,DBF_USHORT) {
        prompt("Size of buffers")
        promptgroup("50 - Output")
        special(SPC_NOMOD)
        interest(1)
        initial("41")
    }
    field(LEN,DBF_ULONG) {
        prompt("Length of VAL")
        special(SPC_NOMOD)
    }
    field(OLEN,DBF_ULONG) {
        prompt("Length of OVAL")
        special(SPC_NOMOD)
        interest(3)
    }
    field(DOL,DBF_INLINK) {
        prompt("Desired Output Link")
        promptgroup("40 - Input")
        interest(1)
    }
    field(IVOA,DBF_MENU) {
        prompt("INVALID Output Action")
        promptgroup("50 - Output")
        interest(2)
        menu(menuIvoa)
    }
    field(IVOV,DBF_STRING) {
        prompt("INVALID Output Value")
        promptgroup("50 - Output")
        interest(2)
        size(40)
    }
    field(OMSL,DBF_MENU) {
        prompt("Output Mode Select")
        promptgroup("50 - Output")
        interest(1)
        menu(menuOmsl)
    }
    field(OUT,DBF_OUTLINK) {
        prompt("Output Specification")
        promptgroup("50 - Output")
        interest(1)
    }
    field(MPST,DBF_MENU) {
        prompt("Post Value Monitors")
        promptgroup("80 - Display")
        interest(1)
        menu(menuPost)
    }
    field(APST,DBF_MENU) {
        prompt("Post Archive Monitors")
        promptgroup("80 - Display")
        interest(1)
        menu(menuPost)
    }
    field(SIML,DBF_INLINK) {
        prompt("Sim Mode link")
        promptgroup("90 - Simulate")
        interest(1)
    }
    field(SIMM,DBF_MENU) {
        prompt("Simulation Mode")
        interest(1)
        menu(menuYesNo)
    }
    field(SIMS,DBF_MENU) {
        prompt("Sim mode Alarm Svrty")
        promptgroup("90 - Simulate")
        interest(2)
        menu(menuAlarmSevr)
    }
    field(SIOL,DBF_OUTLINK) {
        prompt("Sim Output Specifctn")
        promptgroup("90 - Simulate")
        interest(1)
    }
}
