std-rs 0.25.0

Rust port of EPICS std module (epid, throttle, timestamp records)
Documentation
menu(epidFeedbackState) {
        choice(epidFeedbackState_Off,"Off")
        choice(epidFeedbackState_On, "On")
}
menu(epidFeedbackMode) {
        choice(epidFeedbackMode_PID,"PID")
        choice(epidFeedbackMode_MaxMin, "Max/Min")
}

recordtype(epid) {
	include "dbCommon.dbd" 
	field(VAL,DBF_DOUBLE) {
		prompt("Setpoint")
		asl(ASL0)
		pp(TRUE)
	}
	field(SMSL,DBF_MENU) {
		prompt("Setpoint Mode Select")
		promptgroup(GUI_PID)
		interest(1)
		menu(menuOmsl)
	}
	field(STPL,DBF_INLINK) {
		prompt("Setpoint Location")
		promptgroup(GUI_PID)
		interest(1)
	}
	field(INP,DBF_INLINK) {
		prompt("Controlled Value Loc")
		promptgroup(GUI_INPUTS)
		interest(1)
	}
	field(OUTL,DBF_OUTLINK) {
		prompt("Output Location")
		promptgroup(GUI_PID)
		interest(1)
	}
	field(TRIG,DBF_OUTLINK) {
		prompt("Readback Trigger")
		promptgroup(GUI_PID)
		interest(1)
	}
	field(TVAL,DBF_DOUBLE) {
		prompt("Trigger Value")
		promptgroup(GUI_PID)
		interest(1)
	}
	field(CVAL,DBF_DOUBLE) {
		prompt("Controlled Value")
		special(SPC_NOMOD)
	}
	field(CVLP,DBF_DOUBLE) {
		prompt("Prev. Controlled Value")
		special(SPC_NOMOD)
	}
	field(OVAL, DBF_DOUBLE) {
		prompt("Output value")
		special(SPC_NOMOD)
	}
	field(OVLP,DBF_DOUBLE) {
		prompt("Prev output")
		special(SPC_NOMOD)
		interest(3)
	}
	field(PREC,DBF_SHORT) {
		prompt("Display Precision")
		promptgroup(GUI_DISPLAY)
		interest(1)
	}
	field(MDT,DBF_DOUBLE) {
		prompt("Min Delta T")
		promptgroup(GUI_PID)
		interest(1)
	}
	field(FMOD,DBF_MENU) {
		prompt("Feedback Mode")
		promptgroup(GUI_PID)
		interest(1)
		menu(epidFeedbackMode)
	}
	field(FBON,DBF_MENU) {
		prompt("Feedback On/Off")
		promptgroup(GUI_PID)
		interest(1)
		menu(epidFeedbackState)
	}
	field(FBOP,DBF_MENU) {
		prompt("Prev. feedback On/Off")
		promptgroup(GUI_PID)
		interest(1)
		menu(epidFeedbackState)
	}
	field(KP,DBF_DOUBLE) {
		prompt("Proportional Gain")
		promptgroup(GUI_PID)
		interest(1)
	}
	field(KI,DBF_DOUBLE) {
		prompt("Intergral Gain")
		promptgroup(GUI_PID)
		interest(1)
	}
	field(KD,DBF_DOUBLE) {
		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_DOUBLE) {
		prompt("High Operating Range")
		promptgroup(GUI_DISPLAY)
		interest(1)
	}
	field(LOPR,DBF_DOUBLE) {
		prompt("Low Operating Range")
		promptgroup(GUI_DISPLAY)
		interest(1)
	}
	field(DRVH,DBF_DOUBLE) {
		prompt("High Drive Limit")
		promptgroup(GUI_DISPLAY)
		interest(1)
	}
	field(DRVL,DBF_DOUBLE) {
		prompt("Low Drive Limit")
		promptgroup(GUI_DISPLAY)
		interest(1)
	}
	field(HIHI,DBF_DOUBLE) {
		prompt("Hihi Deviation Limit")
		promptgroup(GUI_ALARMS)
		interest(1)
	}
	field(LOLO,DBF_DOUBLE) {
		prompt("Lolo Deviation Limit")
		promptgroup(GUI_ALARMS)
		interest(1)
	}
	field(HIGH,DBF_DOUBLE) {
		prompt("High Deviation Limit")
		promptgroup(GUI_ALARMS)
		interest(1)
	}
	field(LOW,DBF_DOUBLE) {
		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_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(ODEL,DBF_DOUBLE) {
		prompt("Output Deadband")
		promptgroup(GUI_PID)
		interest(1)
	}
	field(P,DBF_DOUBLE) {
		prompt("P component")
		special(SPC_NOMOD)
		interest(2)
	}
	field(PP,DBF_DOUBLE) {
		prompt("Prev. P component")
		special(SPC_NOMOD)
		interest(2)
	}
	field(I,DBF_DOUBLE) {
		prompt("I component")
		interest(2)
	}
	field(IP,DBF_DOUBLE) {
		prompt("Prev. I component")
		interest(2)
	}
	field(D,DBF_DOUBLE) {
		prompt("D component")
		special(SPC_NOMOD)
		interest(2)
	}
	field(DP,DBF_DOUBLE) {
		prompt("Prev. D component")
		special(SPC_NOMOD)
		interest(2)
	}
	field(CT,DBF_NOACCESS) {
		prompt("Time")
		special(SPC_NOMOD)
		interest(4)
                extra("epicsTimeStamp  ct")
	}
	field(CTP,DBF_NOACCESS) {
		prompt("Previous time")
		special(SPC_NOMOD)
		interest(4)
                extra("epicsTimeStamp   ctp")
	}
	field(DT,DBF_DOUBLE) {
		prompt("Delta T")
		interest(2)
	}
	field(DTP,DBF_DOUBLE) {
		prompt("Prev. Delta T")
		interest(2)
	}
	field(ERR,DBF_DOUBLE) {
		prompt("Error")
		special(SPC_NOMOD)
		interest(2)
	}
	field(ERRP,DBF_DOUBLE) {
		prompt("Prev. Error")
		special(SPC_NOMOD)
		interest(2)
	}
	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)
	}
}