-
Patrick Nonn authored
fix: Added SIZV fields with value 255 to all LSI/LSO records, to enable long strings. (Defaults to 41, otherwise)
Patrick Nonn authoredfix: Added SIZV fields with value 255 to all LSI/LSO records, to enable long strings. (Defaults to 41, otherwise)
llrfctrl-8_4_4-dbGen.xml 134.50 KiB
<?xml version="1.0" encoding="UTF-8"?>
<EPICSdb xmlns="https://github.com/ChimeraTK/ControlSystemAdapter-EPICS-IOC-Adapter" application="llrfctrl">
<sourcefile type="xml-variables" path="llrfctrl-8_4_4/llrfctrl.xml" label="llrfctrl">
<alias handle="Act" surrogate="Actual/" />
<alias handle="ActualPulseLength" surrogate="ActualPulseLength/" />
<alias handle="Adc0" surrogate="Adc0/" />
<alias handle="Adcb0" surrogate="AdcBoard0/" />
<alias handle="Adcb0Boardinit" surrogate="+{Adcb0}+{Boardinit}" />
<alias handle="Adcb0Cfg" surrogate="+{Adcb0}+{Cfg}" />
<alias handle="Adcb0Ch0" surrogate="+{Adcb0}+{Ch0}" />
<alias handle="Adcb0Ch0Autotune" surrogate="+{Adcb0}+{Ch0}+{Autotune}" />
<alias handle="Adcb0Ch0Cal" surrogate="+{Adcb0}+{Ch0}+{Cal}" />
<alias handle="Adcb0Ch0CalCommoncal" surrogate="+{Adcb0}+{Ch0}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch0Filter" surrogate="+{Adcb0}+{Ch0}+{Filter}" />
<alias handle="Adcb0Ch0Samples" surrogate="+{Adcb0}+{Ch0}+{Samples}" />
<alias handle="Adcb0Ch0Stats" surrogate="+{Adcb0}+{Ch0}+{Stats}" />
<alias handle="Adcb0Ch1" surrogate="+{Adcb0}+{Ch1}" />
<alias handle="Adcb0Ch1Autotune" surrogate="+{Adcb0}+{Ch1}+{Autotune}" />
<alias handle="Adcb0Ch1Cal" surrogate="+{Adcb0}+{Ch1}+{Cal}" />
<alias handle="Adcb0Ch1CalCommoncal" surrogate="+{Adcb0}+{Ch1}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch1Filter" surrogate="+{Adcb0}+{Ch1}+{Filter}" />
<alias handle="Adcb0Ch1Samples" surrogate="+{Adcb0}+{Ch1}+{Samples}" />
<alias handle="Adcb0Ch1Stats" surrogate="+{Adcb0}+{Ch1}+{Stats}" />
<alias handle="Adcb0Ch2" surrogate="+{Adcb0}+{Ch2}" />
<alias handle="Adcb0Ch2Autotune" surrogate="+{Adcb0}+{Ch2}+{Autotune}" />
<alias handle="Adcb0Ch2Cal" surrogate="+{Adcb0}+{Ch2}+{Cal}" />
<alias handle="Adcb0Ch2CalCommoncal" surrogate="+{Adcb0}+{Ch2}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch2Filter" surrogate="+{Adcb0}+{Ch2}+{Filter}" />
<alias handle="Adcb0Ch2Samples" surrogate="+{Adcb0}+{Ch2}+{Samples}" />
<alias handle="Adcb0Ch2Stats" surrogate="+{Adcb0}+{Ch2}+{Stats}" />
<alias handle="Adcb0Ch3" surrogate="+{Adcb0}+{Ch3}" />
<alias handle="Adcb0Ch3Autotune" surrogate="+{Adcb0}+{Ch3}+{Autotune}" />
<alias handle="Adcb0Ch3Cal" surrogate="+{Adcb0}+{Ch3}+{Cal}" />
<alias handle="Adcb0Ch3CalCommoncal" surrogate="+{Adcb0}+{Ch3}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch3Filter" surrogate="+{Adcb0}+{Ch3}+{Filter}" />
<alias handle="Adcb0Ch3Samples" surrogate="+{Adcb0}+{Ch3}+{Samples}" />
<alias handle="Adcb0Ch3Stats" surrogate="+{Adcb0}+{Ch3}+{Stats}" />
<alias handle="Adcb0Ch4" surrogate="+{Adcb0}+{Ch4}" />
<alias handle="Adcb0Ch4Autotune" surrogate="+{Adcb0}+{Ch4}+{Autotune}" />
<alias handle="Adcb0Ch4Cal" surrogate="+{Adcb0}+{Ch4}+{Cal}" />
<alias handle="Adcb0Ch4CalCommoncal" surrogate="+{Adcb0}+{Ch4}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch4Filter" surrogate="+{Adcb0}+{Ch4}+{Filter}" />
<alias handle="Adcb0Ch4Samples" surrogate="+{Adcb0}+{Ch4}+{Samples}" />
<alias handle="Adcb0Ch4Stats" surrogate="+{Adcb0}+{Ch4}+{Stats}" />
<alias handle="Adcb0Ch5" surrogate="+{Adcb0}+{Ch5}" />
<alias handle="Adcb0Ch5Autotune" surrogate="+{Adcb0}+{Ch5}+{Autotune}" />
<alias handle="Adcb0Ch5Cal" surrogate="+{Adcb0}+{Ch5}+{Cal}" />
<alias handle="Adcb0Ch5CalCommoncal" surrogate="+{Adcb0}+{Ch5}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch5Filter" surrogate="+{Adcb0}+{Ch5}+{Filter}" />
<alias handle="Adcb0Ch5Samples" surrogate="+{Adcb0}+{Ch5}+{Samples}" />
<alias handle="Adcb0Ch5Stats" surrogate="+{Adcb0}+{Ch5}+{Stats}" />
<alias handle="Adcb0Ch6" surrogate="+{Adcb0}+{Ch6}" />
<alias handle="Adcb0Ch6Autotune" surrogate="+{Adcb0}+{Ch6}+{Autotune}" />
<alias handle="Adcb0Ch6Cal" surrogate="+{Adcb0}+{Ch6}+{Cal}" />
<alias handle="Adcb0Ch6CalCommoncal" surrogate="+{Adcb0}+{Ch6}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch6Filter" surrogate="+{Adcb0}+{Ch6}+{Filter}" />
<alias handle="Adcb0Ch6Samples" surrogate="+{Adcb0}+{Ch6}+{Samples}" />
<alias handle="Adcb0Ch6Stats" surrogate="+{Adcb0}+{Ch6}+{Stats}" />
<alias handle="Adcb0Ch7" surrogate="+{Adcb0}+{Ch7}" />
<alias handle="Adcb0Ch7Autotune" surrogate="+{Adcb0}+{Ch7}+{Autotune}" />
<alias handle="Adcb0Ch7Cal" surrogate="+{Adcb0}+{Ch7}+{Cal}" />
<alias handle="Adcb0Ch7CalCommoncal" surrogate="+{Adcb0}+{Ch7}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch7Filter" surrogate="+{Adcb0}+{Ch7}+{Filter}" />
<alias handle="Adcb0Ch7Samples" surrogate="+{Adcb0}+{Ch7}+{Samples}" />
<alias handle="Adcb0Ch7Stats" surrogate="+{Adcb0}+{Ch7}+{Stats}" />
<alias handle="Adcb0Firmwareseudetection" surrogate="+{Adcb0}+{Firmwareseudetection}" />
<alias handle="Adcb0Rawchannel8" surrogate="+{Adcb0}+{Rawchannel8}" />
<alias handle="Adcb0Rawchannel9" surrogate="+{Adcb0}+{Rawchannel9}" />
<alias handle="Adcb0Status" surrogate="+{Adcb0}+{Status}" />
<alias handle="Aperror" surrogate="AmplitudePhaseError/" />
<alias handle="Autotune" surrogate="AUTOTUNE/" />
<alias handle="Averagingwindowfilling" surrogate="AveragingWindowFilling/" />
<alias handle="Averagingwindowflattop" surrogate="AveragingWindowFlattop/" />
<alias handle="Avgwin" surrogate="AveragingWindow/" />
<alias handle="Board" surrogate="Board/" />
<alias handle="Boardinit" surrogate="BoardInit/" />
<alias handle="Cadeinauto" surrogate="CascadeInputAutomation/" />
<alias handle="Cadeinovc" surrogate="CascadeInputOVC/" />
<alias handle="Cal" surrogate="Calibration/" />
<alias handle="CTable" surrogate="CalibrationTable/" />
<alias handle="Cfg" surrogate="Configuration/" />
<alias handle="CfgAdcb0" surrogate="+{Cfg}+{Adcb0}" />
<alias handle="CfgCommoncal" surrogate="+{Cfg}+{Commoncal}" />
<alias handle="CfgSamplingposition" surrogate="+{Cfg}+{Samplingposition}" />
<alias handle="Ch0" surrogate="Channel0/" />
<alias handle="Ch1" surrogate="Channel1/" />
<alias handle="Ch2" surrogate="Channel2/" />
<alias handle="Ch3" surrogate="Channel3/" />
<alias handle="Ch4" surrogate="Channel4/" />
<alias handle="Ch5" surrogate="Channel5/" />
<alias handle="Ch6" surrogate="Channel6/" />
<alias handle="Ch7" surrogate="Channel7/" />
<alias handle="Closedloop" surrogate="ClosedLoop/" />
<alias handle="Commoncal" surrogate="CommonCalibration/" />
<alias handle="Corr" surrogate="Correction/" />
<alias handle="Ctrl" surrogate="Controller/" />
<alias handle="CtrlAperror" surrogate="+{Ctrl}+{Aperror}" />
<alias handle="CtrlBoard" surrogate="+{Ctrl}+{Board}" />
<alias handle="CtrlBoardinit" surrogate="+{Ctrl}+{Boardinit}" />
<alias handle="CtrlErrorDaq" surrogate="+{Ctrl}+{Error}+{Daq}" />
<alias handle="CtrlErrorDaqSamples" surrogate="+{Ctrl}+{Error}+{Daq}+{Samples}" />
<alias handle="CtrlErrorDaqStats" surrogate="+{Ctrl}+{Error}+{Daq}+{Stats}" />
<alias handle="CtrlFastprotection" surrogate="+{Ctrl}+{Fastprotection}" />
<alias handle="CtrlFb" surrogate="+{Ctrl}+{Fb}" />
<alias handle="CtrlFbGain" surrogate="+{Ctrl}+{Fb}+{Gain}" />
<alias handle="CtrlFbGainDaq" surrogate="+{Ctrl}+{Fb}+{Gain}+{Daq}" />
<alias handle="CtrlFbGainDaqSamples" surrogate="+{Ctrl}+{Fb}+{Gain}+{Daq}+{Samples}" />
<alias handle="CtrlFbGainDaqStats" surrogate="+{Ctrl}+{Fb}+{Gain}+{Daq}+{Stats}" />
<alias handle="CtrlFbGainScheduling" surrogate="+{Ctrl}+{Fb}+{Gain}+{Scheduling}" />
<alias handle="CtrlFbGainTable" surrogate="+{Ctrl}+{Fb}+{Gain}+{Table}" />
<alias handle="CtrlFbMimocoeff" surrogate="+{Ctrl}+{Fb}+{Mimocoeff}" />
<alias handle="CtrlFbMimocoeffAct" surrogate="+{Ctrl}+{Fb}+{Mimocoeff}+{Act}" />
<alias handle="CtrlFbSmithcoeff" surrogate="+{Ctrl}+{Fb}+{Smithcoeff}" />
<alias handle="CtrlFbSmithcoeffAct" surrogate="+{Ctrl}+{Fb}+{Smithcoeff}+{Act}" />
<alias handle="CtrlFf" surrogate="+{Ctrl}+{Ff}" />
<alias handle="CtrlFfCorr" surrogate="+{Ctrl}+{Ff}+{Corr}" />
<alias handle="CtrlFfCorrLff" surrogate="+{Ctrl}+{Ff}+{Corr}+{Lff}" />
<alias handle="CtrlFfCorrTotal" surrogate="+{Ctrl}+{Ff}+{Corr}+{Total}" />
<alias handle="CtrlFfDaq" surrogate="+{Ctrl}+{Ff}+{Daq}" />
<alias handle="CtrlFfDaqSamples" surrogate="+{Ctrl}+{Ff}+{Daq}+{Samples}" />
<alias handle="CtrlFfDaqStats" surrogate="+{Ctrl}+{Ff}+{Daq}+{Stats}" />
<alias handle="CtrlFfPhaseadjust" surrogate="+{Ctrl}+{Ff}+{Phaseadjust}" />
<alias handle="CtrlFfSmooth" surrogate="+{Ctrl}+{Ff}+{Smooth}" />
<alias handle="CtrlFfTable" surrogate="+{Ctrl}+{Ff}+{Table}" />
<alias handle="CtrlFfRTable" surrogate="+{Ctrl}+{Ff}+{RTable}" />
<alias handle="CtrlFfUsertables" surrogate="+{Ctrl}+{Ff}+{Usertables}" />
<alias handle="CtrlFirmwareseudetection" surrogate="+{Ctrl}+{Firmwareseudetection}" />
<alias handle="CtrlFreqMod" surrogate="+{Ctrl}+{FreqMod}" />
<alias handle="CtrlInterlocklatcher" surrogate="+{Ctrl}+{Interlocklatcher}" />
<alias handle="CtrlMulti_flattop_limits" surrogate="+{Ctrl}+{Multi_flattop_limits}" />
<alias handle="CtrlOutCal" surrogate="+{Ctrl}+{Out}+{Cal}" />
<alias handle="CtrlOutCalCadeinauto" surrogate="+{Ctrl}+{Out}+{Cal}+{Cadeinauto}" />
<alias handle="CtrlOutCalCadeinovc" surrogate="+{Ctrl}+{Out}+{Cal}+{Cadeinovc}" />
<alias handle="CtrlOutCalManual" surrogate="+{Ctrl}+{Out}+{Cal}+{Manual}" />
<alias handle="CtrlOutCTable" surrogate="+{Ctrl}+{Out}+{CTable}" />
<alias handle="CtrlOutPropDaq" surrogate="+{Ctrl}+{Out}+{Prop}+{Daq}" />
<alias handle="CtrlOutPropDaqSamples" surrogate="+{Ctrl}+{Out}+{Prop}+{Daq}+{Samples}" />
<alias handle="CtrlOutPropDaqStats" surrogate="+{Ctrl}+{Out}+{Prop}+{Daq}+{Stats}" />
<alias handle="CtrlOutTotal" surrogate="+{Ctrl}+{Out}+{Total}" />
<alias handle="CtrlOutTotalDaq" surrogate="+{Ctrl}+{Out}+{Total}+{Daq}" />
<alias handle="CtrlOutTotalDaqSamples" surrogate="+{Ctrl}+{Out}+{Total}+{Daq}+{Samples}" />
<alias handle="CtrlOutTotalDaqStats" surrogate="+{Ctrl}+{Out}+{Total}+{Daq}+{Stats}" />
<alias handle="CtrlPhasemodFf" surrogate="+{Ctrl}+{Phasemod}+{Ff}" />
<alias handle="CtrlPhasemodSp" surrogate="+{Ctrl}+{Phasemod}Setpoint/" />
<alias handle="CtrlPulseshape" surrogate="+{Ctrl}+{Pulseshape}" />
<alias handle="CtrlSp" surrogate="+{Ctrl}+{Sp}" />
<alias handle="CtrlSpCorr" surrogate="+{Ctrl}+{Sp}+{Corr}" />
<alias handle="CtrlSpDaq" surrogate="+{Ctrl}+{Sp}+{Daq}" />
<alias handle="CtrlSpDaqSamples" surrogate="+{Ctrl}+{Sp}+{Daq}+{Samples}" />
<alias handle="CtrlSpDaqStats" surrogate="+{Ctrl}+{Sp}+{Daq}+{Stats}" />
<alias handle="CtrlSpTable" surrogate="+{Ctrl}+{Sp}+{Table}" />
<alias handle="CtrlStatus" surrogate="+{Ctrl}+{Status}" />
<alias handle="CtrlStatusActualPulseLength" surrogate="+{Ctrl}+{Status}+{ActualPulseLength}" />
<alias handle="CtrlVm" surrogate="+{Ctrl}+{Vm}" />
<alias handle="CtrlVmDacoffset" surrogate="+{Ctrl}+{Vm}+{Dacoffset}" />
<alias handle="CtrlVmPredistorter" surrogate="+{Ctrl}+{Vm}+{Predistorter}" />
<alias handle="CtrlVsCal" surrogate="+{Ctrl}+{Vs}+{Cal}" />
<alias handle="CtrlVsDaq" surrogate="+{Ctrl}+{Vs}+{Daq}" />
<alias handle="CtrlVsDaqSamples" surrogate="+{Ctrl}+{Vs}+{Daq}+{Samples}" />
<alias handle="CtrlVsDaqStats" surrogate="+{Ctrl}+{Vs}+{Daq}+{Stats}" />
<alias handle="Dacoffset" surrogate="DacOffset/" />
<alias handle="Daq" surrogate="DAQ/" />
<alias handle="Dev" surrogate="Devices/" />
<alias handle="DevAdc0" surrogate="+{Dev}+{Adc0}" />
<alias handle="DevCtrl" surrogate="+{Dev}+{Ctrl}" />
<alias handle="DevTimer" surrogate="+{Dev}+{Timer}" />
<alias handle="Dlcount" surrogate="DataLossCounter/" />
<alias handle="Error" surrogate="Error/" />
<alias handle="Fastprotection" surrogate="FastProtection/" />
<alias handle="Fb" surrogate="FeedBack/" />
<alias handle="Ff" surrogate="FeedForward/" />
<alias handle="Filter" surrogate="Filter/" />
<alias handle="Firmwareseudetection" surrogate="FirmwareSEUDetection/" />
<alias handle="Flattop" surrogate="Flattop/" />
<alias handle="Forward" surrogate="Forward/" />
<alias handle="FreqMod" surrogate="FrequencyModulation/" />
<alias handle="Fwdvs" surrogate="ForwardVectorSum/" />
<alias handle="Gain" surrogate="Gain/" />
<alias handle="Interlockdetection" surrogate="InterlockDetection/" />
<alias handle="InterlockdetectionFb" surrogate="+{Interlockdetection}+{Fb}" />
<alias handle="InterlockdetectionFf" surrogate="+{Interlockdetection}+{Ff}" />
<alias handle="Interlocklatcher" surrogate="InterlockLatcher/" />
<alias handle="Invaliditytracer" surrogate="InvalidityTracer/" />
<alias handle="Lff" surrogate="LearningFeedForward/" />
<alias handle="Main" surrogate="Main/" />
<alias handle="Manual" surrogate="Manual/" />
<alias handle="Microdaq" surrogate="MicroDAQ/" />
<alias handle="Mimocoeff" surrogate="MimoCoefficients/" />
<alias handle="Monitoringtrigger" surrogate="MonitoringTrigger/" />
<alias handle="Multi_flattop_limits" surrogate="MULTI_FLATTOP_LIMITS/" />
<alias handle="Openloop" surrogate="OpenLoop/" />
<alias handle="Out" surrogate="Output/" />
<alias handle="Ovc" surrogate="OutputVectorCorrection/" />
<alias handle="OvcClosedloopForward" surrogate="+{Ovc}+{Closedloop}+{Forward}" />
<alias handle="OvcClosedloopForwardAvgwin" surrogate="+{Ovc}+{Closedloop}+{Forward}+{Avgwin}" />
<alias handle="OvcClosedloopForwardRefpoint" surrogate="+{Ovc}+{Closedloop}+{Forward}+{Refpoint}" />
<alias handle="OvcClosedloopRatio" surrogate="+{Ovc}+{Closedloop}+{Ratio}" />
<alias handle="OvcClosedloopRatioAveragingwindowfilling" surrogate="+{Ovc}+{Closedloop}+{Ratio}+{Averagingwindowfilling}" />
<alias handle="OvcClosedloopRatioAveragingwindowflattop" surrogate="+{Ovc}+{Closedloop}+{Ratio}+{Averagingwindowflattop}" />
<alias handle="OvcClosedloopRotation" surrogate="+{Ovc}+{Closedloop}+{Rotation}" />
<alias handle="OvcClosedloopRotationAvgwin" surrogate="+{Ovc}+{Closedloop}+{Rotation}+{Avgwin}" />
<alias handle="OvcClosedloopScaling" surrogate="+{Ovc}+{Closedloop}+{Scaling}" />
<alias handle="OvcClosedloopScalingAvgwin" surrogate="+{Ovc}+{Closedloop}+{Scaling}+{Avgwin}" />
<alias handle="OvcOpenloopRatio" surrogate="+{Ovc}+{Openloop}+{Ratio}" />
<alias handle="OvcOpenloopRatioAvgwin" surrogate="+{Ovc}+{Openloop}+{Ratio}+{Avgwin}" />
<alias handle="OvcOpenloopRotation" surrogate="+{Ovc}+{Openloop}+{Rotation}" />
<alias handle="OvcOpenloopRotationAvgwin" surrogate="+{Ovc}+{Openloop}+{Rotation}+{Avgwin}" />
<alias handle="OvcOpenloopScaling" surrogate="+{Ovc}+{Openloop}+{Scaling}" />
<alias handle="OvcOpenloopScalingAvgwin" surrogate="+{Ovc}+{Openloop}+{Scaling}+{Avgwin}" />
<alias handle="OvcStatus" surrogate="+{Ovc}+{Status}" />
<alias handle="OvcThreshold" surrogate="+{Ovc}+{Threshold}" />
<alias handle="Phaseadjust" surrogate="PhaseAdjust/" />
<alias handle="Phasemod" surrogate="PhaseModulation/" />
<alias handle="Predistorter" surrogate="Predistorter/" />
<alias handle="Prop" surrogate="Proportional/" />
<alias handle="Pulseshape" surrogate="PulseShape/" />
<alias handle="Ratio" surrogate="Ratio/" />
<alias handle="Rawchannel8" surrogate="RawChannel8/" />
<alias handle="Rawchannel9" surrogate="RawChannel9/" />
<alias handle="Referencephasemonitor" surrogate="ReferencePhaseMonitor/" />
<alias handle="Refpoint" surrogate="ReferencePoint/" />
<alias handle="Rfinfo" surrogate="RfInfo/" />
<alias handle="Rotation" surrogate="Rotation/" />
<alias handle="RTable" surrogate="RotationTable/" />
<alias handle="Samples" surrogate="Samples/" />
<alias handle="Samplingposition" surrogate="SamplingPosition/" />
<alias handle="Samplingscheme" surrogate="SamplingScheme/" />
<alias handle="Scaling" surrogate="Scaling/" />
<alias handle="Scheduling" surrogate="Scheduling/" />
<alias handle="Server" surrogate="Server/" />
<alias handle="ServerDlcount" surrogate="+{Server}+{Dlcount}" />
<alias handle="ServerInvaliditytracer" surrogate="+{Server}+{Invaliditytracer}" />
<alias handle="ServerVersion" surrogate="+{Server}+{Version}" />
<alias handle="Smithcoeff" surrogate="SmithCoefficients/" />
<alias handle="Smooth" surrogate="Smooth/" />
<alias handle="Sp" surrogate="SetPoint/" />
<alias handle="Stats" surrogate="Statistics/" />
<alias handle="Status" surrogate="Status/" />
<alias handle="Table" surrogate="Table/" />
<alias handle="Threshold" surrogate="Threshold/" />
<alias handle="Timer" surrogate="Timer/" />
<alias handle="Total" surrogate="Total/" />
<alias handle="Triggerintervalmonitor" surrogate="TriggerIntervalMonitor/" />
<alias handle="Usertables" surrogate="UserTables/" />
<alias handle="Uservariables" surrogate="UserVariables/" />
<alias handle="UservariablesMain" surrogate="+{Uservariables}+{Main}" />
<alias handle="UservariablesRfinfo" surrogate="+{Uservariables}+{Rfinfo}" />
<alias handle="Version" surrogate="Version/" />
<alias handle="Vm" surrogate="VectorModulator/" />
<alias handle="Vs" surrogate="VectorSum/" />
</sourcefile>
<sourcefile type="xml-variables" path="llrfctrl-8_4_4/llrfctrl-Automation.xml" label="llrfctrl_auto">
<alias handle="Act" surrogate="Actual/" />
<alias handle="Adc0" surrogate="Adc0/" />
<alias handle="Adcb0" surrogate="AdcBoard0/" />
<alias handle="Adcb0Boardinit" surrogate="+{Adcb0}+{Boardinit}" />
<alias handle="Adcb0Cfg" surrogate="+{Adcb0}+{Cfg}" />
<alias handle="Adcb0Ch0" surrogate="+{Adcb0}+{Ch0}" />
<alias handle="Adcb0Ch0Autotune" surrogate="+{Adcb0}+{Ch0}+{Autotune}" />
<alias handle="Adcb0Ch0Cal" surrogate="+{Adcb0}+{Ch0}+{Cal}" />
<alias handle="Adcb0Ch0CalCommoncal" surrogate="+{Adcb0}+{Ch0}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch0Filter" surrogate="+{Adcb0}+{Ch0}+{Filter}" />
<alias handle="Adcb0Ch0Samples" surrogate="+{Adcb0}+{Ch0}+{Samples}" />
<alias handle="Adcb0Ch0Stats" surrogate="+{Adcb0}+{Ch0}+{Stats}" />
<alias handle="Adcb0Ch1" surrogate="+{Adcb0}+{Ch1}" />
<alias handle="Adcb0Ch1Autotune" surrogate="+{Adcb0}+{Ch1}+{Autotune}" />
<alias handle="Adcb0Ch1Cal" surrogate="+{Adcb0}+{Ch1}+{Cal}" />
<alias handle="Adcb0Ch1CalCommoncal" surrogate="+{Adcb0}+{Ch1}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch1Filter" surrogate="+{Adcb0}+{Ch1}+{Filter}" />
<alias handle="Adcb0Ch1Samples" surrogate="+{Adcb0}+{Ch1}+{Samples}" />
<alias handle="Adcb0Ch1Stats" surrogate="+{Adcb0}+{Ch1}+{Stats}" />
<alias handle="Adcb0Ch2" surrogate="+{Adcb0}+{Ch2}" />
<alias handle="Adcb0Ch2Autotune" surrogate="+{Adcb0}+{Ch2}+{Autotune}" />
<alias handle="Adcb0Ch2Cal" surrogate="+{Adcb0}+{Ch2}+{Cal}" />
<alias handle="Adcb0Ch2CalCommoncal" surrogate="+{Adcb0}+{Ch2}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch2Filter" surrogate="+{Adcb0}+{Ch2}+{Filter}" />
<alias handle="Adcb0Ch2Samples" surrogate="+{Adcb0}+{Ch2}+{Samples}" />
<alias handle="Adcb0Ch2Stats" surrogate="+{Adcb0}+{Ch2}+{Stats}" />
<alias handle="Adcb0Ch3" surrogate="+{Adcb0}+{Ch3}" />
<alias handle="Adcb0Ch3Autotune" surrogate="+{Adcb0}+{Ch3}+{Autotune}" />
<alias handle="Adcb0Ch3Cal" surrogate="+{Adcb0}+{Ch3}+{Cal}" />
<alias handle="Adcb0Ch3CalCommoncal" surrogate="+{Adcb0}+{Ch3}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch3Filter" surrogate="+{Adcb0}+{Ch3}+{Filter}" />
<alias handle="Adcb0Ch3Samples" surrogate="+{Adcb0}+{Ch3}+{Samples}" />
<alias handle="Adcb0Ch3Stats" surrogate="+{Adcb0}+{Ch3}+{Stats}" />
<alias handle="Adcb0Ch4" surrogate="+{Adcb0}+{Ch4}" />
<alias handle="Adcb0Ch4Autotune" surrogate="+{Adcb0}+{Ch4}+{Autotune}" />
<alias handle="Adcb0Ch4Cal" surrogate="+{Adcb0}+{Ch4}+{Cal}" />
<alias handle="Adcb0Ch4CalCommoncal" surrogate="+{Adcb0}+{Ch4}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch4Filter" surrogate="+{Adcb0}+{Ch4}+{Filter}" />
<alias handle="Adcb0Ch4Samples" surrogate="+{Adcb0}+{Ch4}+{Samples}" />
<alias handle="Adcb0Ch4Stats" surrogate="+{Adcb0}+{Ch4}+{Stats}" />
<alias handle="Adcb0Ch5" surrogate="+{Adcb0}+{Ch5}" />
<alias handle="Adcb0Ch5Autotune" surrogate="+{Adcb0}+{Ch5}+{Autotune}" />
<alias handle="Adcb0Ch5Cal" surrogate="+{Adcb0}+{Ch5}+{Cal}" />
<alias handle="Adcb0Ch5CalCommoncal" surrogate="+{Adcb0}+{Ch5}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch5Filter" surrogate="+{Adcb0}+{Ch5}+{Filter}" />
<alias handle="Adcb0Ch5Samples" surrogate="+{Adcb0}+{Ch5}+{Samples}" />
<alias handle="Adcb0Ch5Stats" surrogate="+{Adcb0}+{Ch5}+{Stats}" />
<alias handle="Adcb0Ch6" surrogate="+{Adcb0}+{Ch6}" />
<alias handle="Adcb0Ch6Autotune" surrogate="+{Adcb0}+{Ch6}+{Autotune}" />
<alias handle="Adcb0Ch6Cal" surrogate="+{Adcb0}+{Ch6}+{Cal}" />
<alias handle="Adcb0Ch6CalCommoncal" surrogate="+{Adcb0}+{Ch6}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch6Filter" surrogate="+{Adcb0}+{Ch6}+{Filter}" />
<alias handle="Adcb0Ch6Samples" surrogate="+{Adcb0}+{Ch6}+{Samples}" />
<alias handle="Adcb0Ch6Stats" surrogate="+{Adcb0}+{Ch6}+{Stats}" />
<alias handle="Adcb0Ch7" surrogate="+{Adcb0}+{Ch7}" />
<alias handle="Adcb0Ch7Autotune" surrogate="+{Adcb0}+{Ch7}+{Autotune}" />
<alias handle="Adcb0Ch7Cal" surrogate="+{Adcb0}+{Ch7}+{Cal}" />
<alias handle="Adcb0Ch7CalCommoncal" surrogate="+{Adcb0}+{Ch7}+{Cal}+{Commoncal}" />
<alias handle="Adcb0Ch7Filter" surrogate="+{Adcb0}+{Ch7}+{Filter}" />
<alias handle="Adcb0Ch7Samples" surrogate="+{Adcb0}+{Ch7}+{Samples}" />
<alias handle="Adcb0Ch7Stats" surrogate="+{Adcb0}+{Ch7}+{Stats}" />
<alias handle="Adcb0Firmwareseudetection" surrogate="+{Adcb0}+{Firmwareseudetection}" />
<alias handle="Adcb0Rawchannel8" surrogate="+{Adcb0}+{Rawchannel8}" />
<alias handle="Adcb0Rawchannel9" surrogate="+{Adcb0}+{Rawchannel9}" />
<alias handle="Adcb0Status" surrogate="+{Adcb0}+{Status}" />
<alias handle="Aperror" surrogate="AmplitudePhaseError/" />
<alias handle="Auto" surrogate="Automation/" />
<alias handle="AutoFb" surrogate="+{Auto}+{Fb}" />
<alias handle="AutoFbGain" surrogate="+{Auto}+{Fb}+{Gain}" />
<alias handle="AutoFf" surrogate="+{Auto}+{Ff}" />
<alias handle="AutoPulseshape" surrogate="+{Auto}+{Pulseshape}" />
<alias handle="AutoRamp" surrogate="+{Auto}+{Ramp}" />
<alias handle="AutoRampup" surrogate="+{Auto}+{Rampup}" />
<alias handle="AutoRampupOvc" surrogate="+{Auto}+{Rampup}OVC/" />
<alias handle="AutoSp" surrogate="+{Auto}+{Sp}" />
<alias handle="AutoVmDacoffset" surrogate="+{Auto}+{Vm}+{Dacoffset}" />
<alias handle="AutoVmDacoffsetCal" surrogate="+{Auto}+{Vm}+{Dacoffset}+{Cal}" />
<alias handle="Autotune" surrogate="AUTOTUNE/" />
<alias handle="Averagingwindowfilling" surrogate="AveragingWindowFilling/" />
<alias handle="Averagingwindowflattop" surrogate="AveragingWindowFlattop/" />
<alias handle="Avgwin" surrogate="AveragingWindow/" />
<alias handle="Board" surrogate="Board/" />
<alias handle="Boardinit" surrogate="BoardInit/" />
<alias handle="Cadeinauto" surrogate="CascadeInputAutomation/" />
<alias handle="Cadeinovc" surrogate="CascadeInputOVC/" />
<alias handle="Cal" surrogate="Calibration/" />
<alias handle="Cfg" surrogate="Configuration/" />
<alias handle="CfgAdcb0" surrogate="+{Cfg}+{Adcb0}" />
<alias handle="CfgCommoncal" surrogate="+{Cfg}+{Commoncal}" />
<alias handle="CfgSamplingposition" surrogate="+{Cfg}+{Samplingposition}" />
<alias handle="Ch0" surrogate="Channel0/" />
<alias handle="Ch1" surrogate="Channel1/" />
<alias handle="Ch2" surrogate="Channel2/" />
<alias handle="Ch3" surrogate="Channel3/" />
<alias handle="Ch4" surrogate="Channel4/" />
<alias handle="Ch5" surrogate="Channel5/" />
<alias handle="Ch6" surrogate="Channel6/" />
<alias handle="Ch7" surrogate="Channel7/" />
<alias handle="Closedloop" surrogate="ClosedLoop/" />
<alias handle="Commoncal" surrogate="CommonCalibration/" />
<alias handle="Corr" surrogate="Correction/" />
<alias handle="Ctrl" surrogate="Controller/" />
<alias handle="CtrlAperror" surrogate="+{Ctrl}+{Aperror}" />
<alias handle="CtrlBoard" surrogate="+{Ctrl}+{Board}" />
<alias handle="CtrlBoardinit" surrogate="+{Ctrl}+{Boardinit}" />
<alias handle="CtrlErrorDaq" surrogate="+{Ctrl}+{Error}+{Daq}" />
<alias handle="CtrlErrorDaqSamples" surrogate="+{Ctrl}+{Error}+{Daq}+{Samples}" />
<alias handle="CtrlErrorDaqStats" surrogate="+{Ctrl}+{Error}+{Daq}+{Stats}" />
<alias handle="CtrlFastprotection" surrogate="+{Ctrl}+{Fastprotection}" />
<alias handle="CtrlFb" surrogate="+{Ctrl}+{Fb}" />
<alias handle="CtrlFbGain" surrogate="+{Ctrl}+{Fb}+{Gain}" />
<alias handle="CtrlFbGainDaq" surrogate="+{Ctrl}+{Fb}+{Gain}+{Daq}" />
<alias handle="CtrlFbGainDaqSamples" surrogate="+{Ctrl}+{Fb}+{Gain}+{Daq}+{Samples}" />
<alias handle="CtrlFbGainDaqStats" surrogate="+{Ctrl}+{Fb}+{Gain}+{Daq}+{Stats}" />
<alias handle="CtrlFbGainScheduling" surrogate="+{Ctrl}+{Fb}+{Gain}+{Scheduling}" />
<alias handle="CtrlFbGainTable" surrogate="+{Ctrl}+{Fb}+{Gain}+{Table}" />
<alias handle="CtrlFbMimocoeff" surrogate="+{Ctrl}+{Fb}+{Mimocoeff}" />
<alias handle="CtrlFbMimocoeffAct" surrogate="+{Ctrl}+{Fb}+{Mimocoeff}+{Act}" />
<alias handle="CtrlFbSmithcoeff" surrogate="+{Ctrl}+{Fb}+{Smithcoeff}" />
<alias handle="CtrlFbSmithcoeffAct" surrogate="+{Ctrl}+{Fb}+{Smithcoeff}+{Act}" />
<alias handle="CtrlFf" surrogate="+{Ctrl}+{Ff}" />
<alias handle="CtrlFfCorr" surrogate="+{Ctrl}+{Ff}+{Corr}" />
<alias handle="CtrlFfCorrLff" surrogate="+{Ctrl}+{Ff}+{Corr}+{Lff}" />
<alias handle="CtrlFfCorrTotal" surrogate="+{Ctrl}+{Ff}+{Corr}+{Total}" />
<alias handle="CtrlFfDaq" surrogate="+{Ctrl}+{Ff}+{Daq}" />
<alias handle="CtrlFfDaqSamples" surrogate="+{Ctrl}+{Ff}+{Daq}+{Samples}" />
<alias handle="CtrlFfDaqStats" surrogate="+{Ctrl}+{Ff}+{Daq}+{Stats}" />
<alias handle="CtrlFfPhaseadjust" surrogate="+{Ctrl}+{Ff}+{Phaseadjust}" />
<alias handle="CtrlFfSmooth" surrogate="+{Ctrl}+{Ff}+{Smooth}" />
<alias handle="CtrlFfTable" surrogate="+{Ctrl}+{Ff}+{Table}" />
<alias handle="CtrlFfRTable" surrogate="+{Ctrl}+{Ff}+{RTable}" />
<alias handle="CtrlFfUsertables" surrogate="+{Ctrl}+{Ff}+{Usertables}" />
<alias handle="CtrlFirmwareseudetection" surrogate="+{Ctrl}+{Firmwareseudetection}" />
<alias handle="CtrlInterlocklatcher" surrogate="+{Ctrl}+{Interlocklatcher}" />
<alias handle="CtrlMulti_flattop_limits" surrogate="+{Ctrl}+{Multi_flattop_limits}" />
<alias handle="CtrlOutCal" surrogate="+{Ctrl}+{Out}+{Cal}" />
<alias handle="CtrlOutCalCadeinauto" surrogate="+{Ctrl}+{Out}+{Cal}+{Cadeinauto}" />
<alias handle="CtrlOutCalCadeinovc" surrogate="+{Ctrl}+{Out}+{Cal}+{Cadeinovc}" />
<alias handle="CtrlOutCalManual" surrogate="+{Ctrl}+{Out}+{Cal}+{Manual}" />
<alias handle="CtrlOutPropDaq" surrogate="+{Ctrl}+{Out}+{Prop}+{Daq}" />
<alias handle="CtrlOutPropDaqSamples" surrogate="+{Ctrl}+{Out}+{Prop}+{Daq}+{Samples}" />
<alias handle="CtrlOutPropDaqStats" surrogate="+{Ctrl}+{Out}+{Prop}+{Daq}+{Stats}" />
<alias handle="CtrlOutTotal" surrogate="+{Ctrl}+{Out}+{Total}" />
<alias handle="CtrlOutTotalDaq" surrogate="+{Ctrl}+{Out}+{Total}+{Daq}" />
<alias handle="CtrlOutTotalDaqSamples" surrogate="+{Ctrl}+{Out}+{Total}+{Daq}+{Samples}" />
<alias handle="CtrlOutTotalDaqStats" surrogate="+{Ctrl}+{Out}+{Total}+{Daq}+{Stats}" />
<alias handle="CtrlPhasemodFf" surrogate="+{Ctrl}+{Phasemod}+{Ff}" />
<alias handle="CtrlPhasemodSp" surrogate="+{Ctrl}+{Phasemod}Setpoint/" />
<alias handle="CtrlPulseshape" surrogate="+{Ctrl}+{Pulseshape}" />
<alias handle="CtrlSp" surrogate="+{Ctrl}+{Sp}" />
<alias handle="CtrlSpCorr" surrogate="+{Ctrl}+{Sp}+{Corr}" />
<alias handle="CtrlSpDaq" surrogate="+{Ctrl}+{Sp}+{Daq}" />
<alias handle="CtrlSpDaqSamples" surrogate="+{Ctrl}+{Sp}+{Daq}+{Samples}" />
<alias handle="CtrlSpDaqStats" surrogate="+{Ctrl}+{Sp}+{Daq}+{Stats}" />
<alias handle="CtrlSpTable" surrogate="+{Ctrl}+{Sp}+{Table}" />
<alias handle="CtrlStatus" surrogate="+{Ctrl}+{Status}" />
<alias handle="CtrlVm" surrogate="+{Ctrl}+{Vm}" />
<alias handle="CtrlVmDacoffset" surrogate="+{Ctrl}+{Vm}+{Dacoffset}" />
<alias handle="CtrlVmPredistorter" surrogate="+{Ctrl}+{Vm}+{Predistorter}" />
<alias handle="CtrlVsCal" surrogate="+{Ctrl}+{Vs}+{Cal}" />
<alias handle="CtrlVsDaq" surrogate="+{Ctrl}+{Vs}+{Daq}" />
<alias handle="CtrlVsDaqSamples" surrogate="+{Ctrl}+{Vs}+{Daq}+{Samples}" />
<alias handle="CtrlVsDaqStats" surrogate="+{Ctrl}+{Vs}+{Daq}+{Stats}" />
<alias handle="Dacoffset" surrogate="DacOffset/" />
<alias handle="Daq" surrogate="DAQ/" />
<alias handle="Dev" surrogate="Devices/" />
<alias handle="DevAdc0" surrogate="+{Dev}+{Adc0}" />
<alias handle="DevCtrl" surrogate="+{Dev}+{Ctrl}" />
<alias handle="DevTimer" surrogate="+{Dev}+{Timer}" />
<alias handle="Dlcount" surrogate="DataLossCounter/" />
<alias handle="Error" surrogate="Error/" />
<alias handle="Fastprotection" surrogate="FastProtection/" />
<alias handle="Fb" surrogate="FeedBack/" />
<alias handle="Ff" surrogate="FeedForward/" />
<alias handle="Filter" surrogate="Filter/" />
<alias handle="Firmwareseudetection" surrogate="FirmwareSEUDetection/" />
<alias handle="Flattop" surrogate="Flattop/" />
<alias handle="Forward" surrogate="Forward/" />
<alias handle="Fwdvs" surrogate="ForwardVectorSum/" />
<alias handle="Gain" surrogate="Gain/" />
<alias handle="Interlockdetection" surrogate="InterlockDetection/" />
<alias handle="InterlockdetectionFb" surrogate="+{Interlockdetection}+{Fb}" />
<alias handle="InterlockdetectionFf" surrogate="+{Interlockdetection}+{Ff}" />
<alias handle="Interlocklatcher" surrogate="InterlockLatcher/" />
<alias handle="Invaliditytracer" surrogate="InvalidityTracer/" />
<alias handle="Lff" surrogate="LearningFeedForward/" />
<alias handle="Main" surrogate="Main/" />
<alias handle="Manual" surrogate="Manual/" />
<alias handle="Microdaq" surrogate="MicroDAQ/" />
<alias handle="Mimocoeff" surrogate="MimoCoefficients/" />
<alias handle="Monitoringtrigger" surrogate="MonitoringTrigger/" />
<alias handle="Multi_flattop_limits" surrogate="MULTI_FLATTOP_LIMITS/" />
<alias handle="Openloop" surrogate="OpenLoop/" />
<alias handle="Out" surrogate="Output/" />
<alias handle="Ovc" surrogate="OutputVectorCorrection/" />
<alias handle="OvcClosedloopForward" surrogate="+{Ovc}+{Closedloop}+{Forward}" />
<alias handle="OvcClosedloopForwardAvgwin" surrogate="+{Ovc}+{Closedloop}+{Forward}+{Avgwin}" />
<alias handle="OvcClosedloopForwardRefpoint" surrogate="+{Ovc}+{Closedloop}+{Forward}+{Refpoint}" />
<alias handle="OvcClosedloopRatio" surrogate="+{Ovc}+{Closedloop}+{Ratio}" />
<alias handle="OvcClosedloopRatioAveragingwindowfilling" surrogate="+{Ovc}+{Closedloop}+{Ratio}+{Averagingwindowfilling}" />
<alias handle="OvcClosedloopRatioAveragingwindowflattop" surrogate="+{Ovc}+{Closedloop}+{Ratio}+{Averagingwindowflattop}" />
<alias handle="OvcClosedloopRotation" surrogate="+{Ovc}+{Closedloop}+{Rotation}" />
<alias handle="OvcClosedloopRotationAvgwin" surrogate="+{Ovc}+{Closedloop}+{Rotation}+{Avgwin}" />
<alias handle="OvcClosedloopScaling" surrogate="+{Ovc}+{Closedloop}+{Scaling}" />
<alias handle="OvcClosedloopScalingAvgwin" surrogate="+{Ovc}+{Closedloop}+{Scaling}+{Avgwin}" />
<alias handle="OvcOpenloopRatio" surrogate="+{Ovc}+{Openloop}+{Ratio}" />
<alias handle="OvcOpenloopRatioAvgwin" surrogate="+{Ovc}+{Openloop}+{Ratio}+{Avgwin}" />
<alias handle="OvcOpenloopRotation" surrogate="+{Ovc}+{Openloop}+{Rotation}" />
<alias handle="OvcOpenloopRotationAvgwin" surrogate="+{Ovc}+{Openloop}+{Rotation}+{Avgwin}" />
<alias handle="OvcOpenloopScaling" surrogate="+{Ovc}+{Openloop}+{Scaling}" />
<alias handle="OvcOpenloopScalingAvgwin" surrogate="+{Ovc}+{Openloop}+{Scaling}+{Avgwin}" />
<alias handle="OvcStatus" surrogate="+{Ovc}+{Status}" />
<alias handle="OvcThreshold" surrogate="+{Ovc}+{Threshold}" />
<alias handle="Phaseadjust" surrogate="PhaseAdjust/" />
<alias handle="Phasemod" surrogate="PhaseModulation/" />
<alias handle="Predistorter" surrogate="Predistorter/" />
<alias handle="Prop" surrogate="Proportional/" />
<alias handle="Pulseshape" surrogate="PulseShape/" />
<alias handle="Ramp" surrogate="Ramp/" />
<alias handle="Rampup" surrogate="Rampup/" />
<alias handle="Ratio" surrogate="Ratio/" />
<alias handle="Rawchannel8" surrogate="RawChannel8/" />
<alias handle="Rawchannel9" surrogate="RawChannel9/" />
<alias handle="Referencephasemonitor" surrogate="ReferencePhaseMonitor/" />
<alias handle="Refpoint" surrogate="ReferencePoint/" />
<alias handle="Rfinfo" surrogate="RfInfo/" />
<alias handle="Rotation" surrogate="Rotation/" />
<alias handle="RTable" surrogate="RotationTable/" />
<alias handle="Samples" surrogate="Samples/" />
<alias handle="Samplingposition" surrogate="SamplingPosition/" />
<alias handle="Samplingscheme" surrogate="SamplingScheme/" />
<alias handle="Scaling" surrogate="Scaling/" />
<alias handle="Scheduling" surrogate="Scheduling/" />
<alias handle="Server" surrogate="Server/" />
<alias handle="ServerDlcount" surrogate="+{Server}+{Dlcount}" />
<alias handle="ServerInvaliditytracer" surrogate="+{Server}+{Invaliditytracer}" />
<alias handle="ServerVersion" surrogate="+{Server}+{Version}" />
<alias handle="Smithcoeff" surrogate="SmithCoefficients/" />
<alias handle="Smooth" surrogate="Smooth/" />
<alias handle="Sp" surrogate="SetPoint/" />
<alias handle="Stats" surrogate="Statistics/" />
<alias handle="Status" surrogate="Status/" />
<alias handle="Table" surrogate="Table/" />
<alias handle="Threshold" surrogate="Threshold/" />
<alias handle="Timer" surrogate="Timer/" />
<alias handle="Total" surrogate="Total/" />
<alias handle="Triggerintervalmonitor" surrogate="TriggerIntervalMonitor/" />
<alias handle="Usertables" surrogate="UserTables/" />
<alias handle="Uservariables" surrogate="UserVariables/" />
<alias handle="UservariablesMain" surrogate="+{Uservariables}+{Main}" />
<alias handle="UservariablesRfinfo" surrogate="+{Uservariables}+{Rfinfo}" />
<alias handle="Version" surrogate="Version/" />
<alias handle="Vm" surrogate="VectorModulator/" />
<alias handle="Vs" surrogate="VectorSum/" />
</sourcefile>
<!-- Cheat Sheet: recordgroup types
input records: ending with in/i, for data from device (ChimeraTK application) to control system (EPICS client)
output records: ending with out/o, for data from control system (EPICS client) to device (ChimeraTK application)
aai/aao - Analog Array Input/Output, most basic record group, allows definition of value type, array can have only one element
ai/ao - Analog Input/Output, interpretes data as if value type is double
bi/bo - Binary Input/Output, interpretes data as if value type is boolean
longin/longout - interpretes data as if value type is int32
int64in/int64out - interpretes data as if value type is int64
lsi/lso - Long String Input/Output, able to handle strings, larger than 40 characters
-->
<outputfile path="../../templates/db/llrfctrl-logic.db" autosavePath="../../templates/iocBoot/iocChimeraTKApp/llrfctrl-logic.req" macroReserve="8">
<field type="DTYP" value="ChimeraTK" />
<recordgroup type="aai" autosave="false"><!--NELM, Type and EGU taken from sourcefile-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="+{:numberOfElements}" />
<field type="PREC" value="6" />
<record pvName="$(Server)/CtrlFbMimocoeff/A11" source="llrfctrl.+{CtrlFbMimocoeff}A11" />
<record pvName="$(Server)/CtrlFbMimocoeff/B11" source="llrfctrl.+{CtrlFbMimocoeff}B11" />
<record pvName="$(Server)/CtrlFbMimocoeff/A12" source="llrfctrl.+{CtrlFbMimocoeff}A12" />
<record pvName="$(Server)/CtrlFbMimocoeff/B12" source="llrfctrl.+{CtrlFbMimocoeff}B12" />
<record pvName="$(Server)/CtrlFbMimocoeff/A21" source="llrfctrl.+{CtrlFbMimocoeff}A21" />
<record pvName="$(Server)/CtrlFbMimocoeff/B21" source="llrfctrl.+{CtrlFbMimocoeff}B21" />
<record pvName="$(Server)/CtrlFbMimocoeff/A22" source="llrfctrl.+{CtrlFbMimocoeff}A22" />
<record pvName="$(Server)/CtrlFbMimocoeff/B22" source="llrfctrl.+{CtrlFbMimocoeff}B22" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A11" source="llrfctrl.+{CtrlFbSmithcoeff}A11" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B11" source="llrfctrl.+{CtrlFbSmithcoeff}B11" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A12" source="llrfctrl.+{CtrlFbSmithcoeff}A12" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B12" source="llrfctrl.+{CtrlFbSmithcoeff}B12" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A21" source="llrfctrl.+{CtrlFbSmithcoeff}A21" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B21" source="llrfctrl.+{CtrlFbSmithcoeff}B21" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A22" source="llrfctrl.+{CtrlFbSmithcoeff}A22" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B22" source="llrfctrl.+{CtrlFbSmithcoeff}B22" />
<record pvName="$(Server)/CtrlFf/flattopRatio" source="llrfctrl.+{CtrlFf}flattopRatio" />
<record pvName="$(Server)/CtrlFfDaqStats/IAverage" source="llrfctrl.+{CtrlFfDaqStats}IAverage" />
<record pvName="$(Server)/CtrlFfDaqStats/QAverage" source="llrfctrl.+{CtrlFfDaqStats}QAverage" />
<record pvName="$(Server)/CtrlSpDaqSamples/amplitude" source="llrfctrl.+{CtrlSpDaqSamples}amplitude" />
<record pvName="$(Server)/CtrlSpDaqSamples/phase" source="llrfctrl.+{CtrlSpDaqSamples}phase" />
<record pvName="$(Server)/CtrlSpDaqStats/IAverage" source="llrfctrl.+{CtrlSpDaqStats}IAverage" />
<record pvName="$(Server)/CtrlSpDaqStats/QAverage" source="llrfctrl.+{CtrlSpDaqStats}QAverage" />
<record pvName="$(Server)/CtrlSpDaqStats/amplitudeAverage" source="llrfctrl.+{CtrlSpDaqStats}amplitudeAverage" />
<record pvName="$(Server)/CtrlSpDaqStats/phaseAverage" source="llrfctrl.+{CtrlSpDaqStats}phaseAverage" />
<record pvName="$(Server)/CtrlSpDaqStats/amplitudeStdDev" source="llrfctrl.+{CtrlSpDaqStats}amplitudeStandardDeviation" />
<record pvName="$(Server)/CtrlSpDaqStats/phaseStdDev" source="llrfctrl.+{CtrlSpDaqStats}phaseStandardDeviation" />
<record pvName="$(Server)/CtrlFbGainDaqStats/IAverage" source="llrfctrl.+{CtrlFbGainDaqStats}IAverage" />
<record pvName="$(Server)/CtrlFbGainDaqStats/QAverage" source="llrfctrl.+{CtrlFbGainDaqStats}QAverage" />
<record pvName="$(Server)/CtrlVsCal/sineTable" source="llrfctrl.+{CtrlVsCal}sineTable" />
<record pvName="$(Server)/CtrlVsCal/cosineTable" source="llrfctrl.+{CtrlVsCal}cosineTable" />
<record pvName="$(Server)/CtrlVsDaqSamples/amplitude" source="llrfctrl.+{CtrlVsDaqSamples}amplitude" />
<record pvName="$(Server)/CtrlVsDaqSamples/phase" source="llrfctrl.+{CtrlVsDaqSamples}phase" />
<record pvName="$(Server)/CtrlVsDaqStats/IAverage" source="llrfctrl.+{CtrlVsDaqStats}IAverage" />
<record pvName="$(Server)/CtrlVsDaqStats/QAverage" source="llrfctrl.+{CtrlVsDaqStats}QAverage" />
<record pvName="$(Server)/CtrlVsDaqStats/amplitudeAverage" source="llrfctrl.+{CtrlVsDaqStats}amplitudeAverage" />
<record pvName="$(Server)/CtrlVsDaqStats/phaseAverage" source="llrfctrl.+{CtrlVsDaqStats}phaseAverage" />
<record pvName="$(Server)/CtrlVsDaqStats/amplitudeStdDev" source="llrfctrl.+{CtrlVsDaqStats}amplitudeStandardDeviation" />
<record pvName="$(Server)/CtrlVsDaqStats/phaseStdDev" source="llrfctrl.+{CtrlVsDaqStats}phaseStandardDeviation" />
<record pvName="$(Server)/CtrlErrorDaqStats/IAverage" source="llrfctrl.+{CtrlErrorDaqStats}IAverage" />
<record pvName="$(Server)/CtrlErrorDaqStats/QAverage" source="llrfctrl.+{CtrlErrorDaqStats}QAverage" />
<record pvName="$(Server)/CtrlAperror/amplitude" source="llrfctrl.+{CtrlAperror}amplitude" />
<record pvName="$(Server)/CtrlAperror/phase" source="llrfctrl.+{CtrlAperror}phase" />
<record pvName="$(Server)/CtrlOutPropDaqStats/IAverage" source="llrfctrl.+{CtrlOutPropDaqStats}IAverage" />
<record pvName="$(Server)/CtrlOutPropDaqStats/QAverage" source="llrfctrl.+{CtrlOutPropDaqStats}QAverage" />
<record pvName="$(Server)/CtrlOutTotalDaqStats/IAverage" source="llrfctrl.+{CtrlOutTotalDaqStats}IAverage" />
<record pvName="$(Server)/CtrlOutTotalDaqStats/QAverage" source="llrfctrl.+{CtrlOutTotalDaqStats}QAverage" />
<record pvName="$(Server)/CtrlOutCal/scale" source="llrfctrl.+{CtrlOutCal}scale" />
<record pvName="$(Server)/CtrlOutCal/angle" source="llrfctrl.+{CtrlOutCal}angle" />
<record pvName="$(Server)/CtrlOutCal/sineTable" source="llrfctrl.+{CtrlOutCal}sineTable" />
<record pvName="$(Server)/CtrlOutCal/cosineTable" source="llrfctrl.+{CtrlOutCal}cosineTable" />
<record pvName="$(Server)/CtrlStatusActPLength/time" source="llrfctrl.+{CtrlStatusActualPulseLength}time" />
<record pvName="$(Server)/Triggerintervalmonitor/triggerInterval" source="llrfctrl.+{Triggerintervalmonitor}triggerInterval" />
<record pvName="$(Server)/Refphasemonitor/localAvgRefPhase" source="llrfctrl.+{Referencephasemonitor}localAverageReferencePhase" />
<record pvName="$(Server)/Adcb0Cfg/BOARD_CLOCK_FREQUENCY" source="llrfctrl.+{Adcb0Cfg}BOARD_CLOCK_FREQUENCY">
<field type="EGU" value="MHz" />
</record>
<record pvName="$(Server)/Cfg/rfFrequency" source="llrfctrl.+{Cfg}rfFrequency">
<field type="EGU" value="MHz" />
</record>
<record pvName="$(Server)/Cfg/clockFrequency" source="llrfctrl.+{Cfg}clockFrequency">
<field type="EGU" value="MHz" />
</record>
<record pvName="$(Server)/Cfg/samplingTimeRawAdc" source="llrfctrl.+{Cfg}samplingTimeRawAdc">
<field type="EGU" value="us" />
</record>
<record pvName="$(Server)/Cfg/phaseStep" source="llrfctrl.+{Cfg}phaseStep">
<field type="EGU" value="°" />
</record>
<record pvName="$(Server)/Cfg/lengthScale" source="llrfctrl.+{Cfg}lengthScale" />
<record pvName="$(Server)/Cfg/allowedPhaseDifference" source="llrfctrl.+{Cfg}allowedPhaseDifference">
<field type="EGU" value="°" />
</record>
<record pvName="$(Server)/Cfg/extraPowerScaling" source="llrfctrl.+{Cfg}extraPowerScaling">
<field type="EGU" value="" />
</record>
<record pvName="$(Server)/Cfg/bitScalingLengthScaled" source="llrfctrl.+{Cfg}bitScalingLengthScaled" />
<record pvName="$(Server)/Cfg/samplingFrequency" source="llrfctrl.+{Cfg}samplingFrequency" />
<record pvName="$(Server)/Cfg/samplingFrequency4GainTable" source="llrfctrl.+{Cfg}samplingFrequency_for_GainTable" />
<record pvName="$(Server)/Cfg/samplingTime" source="llrfctrl.+{Cfg}samplingTime" />
<record pvName="$(Server)/Cfg/windowLength" source="llrfctrl.+{Cfg}windowLength" />
<record pvName="$(Server)/CfgSamplingposition/position" source="llrfctrl.+{CfgSamplingposition}position" />
<record pvName="$(Server)/OVC/OL/Scaling/vectorSum" source="llrfctrl.+{OvcOpenloopScaling}vectorSum" />
<record pvName="$(Server)/OVC/OL/Scaling/setPoint" source="llrfctrl.+{OvcOpenloopScaling}setPoint" />
<record pvName="$(Server)/OVC/OL/Scaling/errorAmplitude" source="llrfctrl.+{OvcOpenloopScaling}errorAmplitude" />
<record pvName="$(Server)/OVC/OL/Scaling/dAmplitude" source="llrfctrl.+{OvcOpenloopScaling}dAmplitude" />
<record pvName="$(Server)/OVC/OL/Rotation/vectorSum" source="llrfctrl.+{OvcOpenloopRotation}vectorSum" />
<record pvName="$(Server)/OVC/OL/Rotation/setPoint" source="llrfctrl.+{OvcOpenloopRotation}setPoint" />
<record pvName="$(Server)/OVC/OL/Rotation/errorAmplitude" source="llrfctrl.+{OvcOpenloopRotation}errorAmplitude" />
<record pvName="$(Server)/OVC/OL/Rotation/dPhase" source="llrfctrl.+{OvcOpenloopRotation}dPhase" />
<record pvName="$(Server)/OVC/OL/Ratio/vectorSum" source="llrfctrl.+{OvcOpenloopRatio}vectorSum" />
<record pvName="$(Server)/OVC/OL/Ratio/setPoint" source="llrfctrl.+{OvcOpenloopRatio}setPoint" />
<record pvName="$(Server)/OVC/OL/Ratio/errorAmplitude" source="llrfctrl.+{OvcOpenloopRatio}errorAmplitude" />
<record pvName="$(Server)/OVC/OL/Ratio/dAmplitude" source="llrfctrl.+{OvcOpenloopRatio}dAmplitude" />
<record pvName="$(Server)/OVC/CL/Scaling/totalFeed" source="llrfctrl.+{OvcClosedloopScaling}totalFeed" />
<record pvName="$(Server)/OVC/CL/Scaling/feedForward" source="llrfctrl.+{OvcClosedloopScaling}feedForward" />
<record pvName="$(Server)/OVC/CL/Scaling/currentScaling" source="llrfctrl.+{OvcClosedloopScaling}currentScaling" />
<record pvName="$(Server)/OVC/CL/Rotation/totalFeed" source="llrfctrl.+{OvcClosedloopRotation}totalFeed" />
<record pvName="$(Server)/OVC/CL/Rotation/feedForward" source="llrfctrl.+{OvcClosedloopRotation}feedForward" />
<record pvName="$(Server)/OVC/CL/Rotation/dPhase" source="llrfctrl.+{OvcClosedloopRotation}dPhase" />
<record pvName="$(Server)/OVC/CL/Ratio/ffTotalCorrectionFilling" source="llrfctrl.+{OvcClosedloopRatio}ffTotalCorrectionFilling" />
<record pvName="$(Server)/OVC/CL/Ratio/ffTotalCorrectionFlattop" source="llrfctrl.+{OvcClosedloopRatio}ffTotalCorrectionFlattop" />
<record pvName="$(Server)/OVC/CL/Ratio/ffAmplitudeMaximum" source="llrfctrl.+{OvcClosedloopRatio}ffAmplitudeMaximum" />
<record pvName="$(Server)/OVC/CL/Forward/amplification" source="llrfctrl.+{OvcClosedloopForward}amplification" />
<record pvName="$(Server)/OVC/CL/Forward/phaseDifference" source="llrfctrl.+{OvcClosedloopForward}phaseDifference" />
<record pvName="$(Server)/OVC/CL/Forward/delta" source="llrfctrl.+{OvcClosedloopForward}delta" />
<record pvName="$(Server)/OVC/CL/ForwardRefpoint/amplification" source="llrfctrl.+{OvcClosedloopForwardRefpoint}amplification" />
<record pvName="$(Server)/OVC/CL/ForwardRefpoint/phaseDifference" source="llrfctrl.+{OvcClosedloopForwardRefpoint}phaseDifference" />
<record pvName="$(Server)/CtrlOutTotalDaq/amplitude" source="llrfctrl.+{CtrlOutTotalDaq}amplitude" />
<record pvName="$(Server)/CtrlOutTotalDaq/phase" source="llrfctrl.+{CtrlOutTotalDaq}phase" />
<record pvName="$(Server)/CtrlOutTotalDaqSamples/ampl" source="llrfctrl.+{CtrlOutTotalDaqSamples}amplitude" />
<record pvName="$(Server)/CtrlOutTotalDaqSamples/phase" source="llrfctrl.+{CtrlOutTotalDaqSamples}phase" />
<record pvName="$(Server)/CtrlOutTotalDaqStats/amplitudeAverage" source="llrfctrl.+{CtrlOutTotalDaqStats}amplitudeAverage" />
<record pvName="$(Server)/CtrlOutTotalDaqStats/phaseAverage" source="llrfctrl.+{CtrlOutTotalDaqStats}phaseAverage" />
<record pvName="$(Server)/CtrlOutTotalDaqStats/amplitudeStdDev" source="llrfctrl.+{CtrlOutTotalDaqStats}amplitudeStandardDeviation" />
<record pvName="$(Server)/CtrlOutTotalDaqStats/phaseStdDev" source="llrfctrl.+{CtrlOutTotalDaqStats}phaseStandardDeviation" />
</recordgroup>
<recordgroup type="aai" autosave="false"><!--For pulse amplitudes: NELM=${pulseLength}, EGU=${gradientUnit}-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="${gradientUnit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="${pulseLength}" />
<field type="PREC" value="6" />
<record pvName="$(Server)/CtrlSpDaq/amplitude" source="llrfctrl.+{CtrlSpDaq}amplitude" />
<record pvName="$(Server)/CtrlVsDaq/amplitude" source="llrfctrl.+{CtrlVsDaq}amplitude" />
</recordgroup>
<recordgroup type="aai" autosave="false"><!--For pulse phases: NELM=${pulseLength}, EGU=°-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="°" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="${pulseLength}" />
<field type="PREC" value="6" />
<record pvName="$(Server)/CtrlSpDaq/phase" source="llrfctrl.+{CtrlSpDaq}phase" />
<record pvName="$(Server)/CtrlVsDaq/phase" source="llrfctrl.+{CtrlVsDaq}phase" />
<record pvName="$(Server)/CtrlOutCTable/rotation" source="llrfctrl.+{CtrlOutCTable}rotation" />
</recordgroup>
<!--
<recordgroup type="aai" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="${pulseLength}" />
<field type="PREC" value="6" />
<record pvName="$(Server)/CtrlFastprotection/LEVEL" source="llrfctrl.+{CtrlFastprotection}LEVEL" />
<record pvName="$(Server)/CtrlFastprotection/VREFL" source="llrfctrl.+{CtrlFastprotection}VREFL" />
</recordgroup>
-->
<recordgroup type="aai" autosave="false"><!--For (mostly) I/Q pulse arrays: NELM=${pulseLength}, EGU=""-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="${pulseLength}" />
<field type="PREC" value="0" />
<record pvName="$(Server)/CtrlFfTable/amplitude" source="llrfctrl.+{CtrlFfTable}amplitude" />
<record pvName="$(Server)/CtrlSpTable/amplitude" source="llrfctrl.+{CtrlSpTable}amplitude" />
<record pvName="$(Server)/CtrlFfTable/phase" source="llrfctrl.+{CtrlFfTable}phase" />
<record pvName="$(Server)/CtrlSpTable/phase" source="llrfctrl.+{CtrlSpTable}phase" />
<record pvName="$(Server)/CtrlFfCorrTotal/I" source="llrfctrl.+{CtrlFfCorrTotal}I" />
<record pvName="$(Server)/CtrlFfCorrTotal/Q" source="llrfctrl.+{CtrlFfCorrTotal}Q" />
<record pvName="$(Server)/CtrlFfCorrLff/I" source="llrfctrl.+{CtrlFfCorrLff}I" />
<record pvName="$(Server)/CtrlFfCorrLff/Q" source="llrfctrl.+{CtrlFfCorrLff}Q" />
<record pvName="$(Server)/CtrlFfTable/I" source="llrfctrl.+{CtrlFfTable}I" />
<record pvName="$(Server)/CtrlFfTable/Q" source="llrfctrl.+{CtrlFfTable}Q" />
<record pvName="$(Server)/CtrlFfRTable/I" source="llrfctrl.+{CtrlFfRTable}I" />
<record pvName="$(Server)/CtrlFfRTable/Q" source="llrfctrl.+{CtrlFfRTable}Q" />
<record pvName="$(Server)/CtrlOutCTable/I" source="llrfctrl.+{CtrlOutCTable}I" />
<record pvName="$(Server)/CtrlOutCTable/Q" source="llrfctrl.+{CtrlOutCTable}Q" />
<record pvName="$(Server)/CtrlFfDaq/I" source="llrfctrl.+{CtrlFfDaq}I" />
<record pvName="$(Server)/CtrlFfDaq/Q" source="llrfctrl.+{CtrlFfDaq}Q" />
<record pvName="$(Server)/CtrlSpTable/I" source="llrfctrl.+{CtrlSpTable}I" />
<record pvName="$(Server)/CtrlSpTable/Q" source="llrfctrl.+{CtrlSpTable}Q" />
<record pvName="$(Server)/CtrlSpDaq/I" source="llrfctrl.+{CtrlSpDaq}I" />
<record pvName="$(Server)/CtrlSpDaq/Q" source="llrfctrl.+{CtrlSpDaq}Q" />
<record pvName="$(Server)/CtrlFbGainTable/I" source="llrfctrl.+{CtrlFbGainTable}I" />
<record pvName="$(Server)/CtrlFbGainTable/Q" source="llrfctrl.+{CtrlFbGainTable}Q" />
<record pvName="$(Server)/CtrlFbGainDaq/I" source="llrfctrl.+{CtrlFbGainDaq}I" />
<record pvName="$(Server)/CtrlFbGainDaq/Q" source="llrfctrl.+{CtrlFbGainDaq}Q" />
<record pvName="$(Server)/CtrlVsDaq/I" source="llrfctrl.+{CtrlVsDaq}I" />
<record pvName="$(Server)/CtrlVsDaq/Q" source="llrfctrl.+{CtrlVsDaq}Q" />
<record pvName="$(Server)/CtrlErrorDaq/I" source="llrfctrl.+{CtrlErrorDaq}I" />
<record pvName="$(Server)/CtrlErrorDaq/Q" source="llrfctrl.+{CtrlErrorDaq}Q" />
<record pvName="$(Server)/CtrlOutPropDaq/I" source="llrfctrl.+{CtrlOutPropDaq}I" />
<record pvName="$(Server)/CtrlOutPropDaq/Q" source="llrfctrl.+{CtrlOutPropDaq}Q" />
<record pvName="$(Server)/CtrlOutTotalDaq/I" source="llrfctrl.+{CtrlOutTotalDaq}I" />
<record pvName="$(Server)/CtrlOutTotalDaq/Q" source="llrfctrl.+{CtrlOutTotalDaq}Q" />
<record pvName="$(Server)/CtrlOutCTable/scale" source="llrfctrl.+{CtrlOutCTable}scale" />
<record pvName="$(Server)/Fwdvs/I" source="llrfctrl.+{Fwdvs}I" />
<record pvName="$(Server)/Fwdvs/Q" source="llrfctrl.+{Fwdvs}Q" />
<record pvName="$(Server)/Cfg/timeIndex" source="">
<field type="DTYP" value="Soft Channel" />
<field type="SCAN" value=".5 second" />
<field type="INP" value="$(Server)/Cfg/timeIndexConfig.VAL" />
<field type="EGU" value="${timeUnit}" />
<field type="FTVL" value="DOUBLE" />
<field type="PREC" value="3" />
</record>
</recordgroup>
<recordgroup type="aai" autosave="false"><!--For pulse I/Q samples: EGU="", PREC=0-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="+{:numberOfElements}" />
<field type="PREC" value="0" />
<record pvName="$(Server)/CtrlFfDaqSamples/I" source="llrfctrl.+{CtrlFfDaqSamples}I" />
<record pvName="$(Server)/CtrlFfDaqSamples/Q" source="llrfctrl.+{CtrlFfDaqSamples}Q" />
<record pvName="$(Server)/CtrlSpDaqSamples/I" source="llrfctrl.+{CtrlSpDaqSamples}I" />
<record pvName="$(Server)/CtrlSpDaqSamples/Q" source="llrfctrl.+{CtrlSpDaqSamples}Q" />
<record pvName="$(Server)/CtrlFbGainDaqSamples/I" source="llrfctrl.+{CtrlFbGainDaqSamples}I" />
<record pvName="$(Server)/CtrlFbGainDaqSamples/Q" source="llrfctrl.+{CtrlFbGainDaqSamples}Q" />
<record pvName="$(Server)/CtrlVsDaqSamples/I" source="llrfctrl.+{CtrlVsDaqSamples}I" />
<record pvName="$(Server)/CtrlVsDaqSamples/Q" source="llrfctrl.+{CtrlVsDaqSamples}Q" />
<record pvName="$(Server)/CtrlErrorDaqSamples/I" source="llrfctrl.+{CtrlErrorDaqSamples}I" />
<record pvName="$(Server)/CtrlErrorDaqSamples/Q" source="llrfctrl.+{CtrlErrorDaqSamples}Q" />
<record pvName="$(Server)/CtrlOutPropDaqSamples/I" source="llrfctrl.+{CtrlOutPropDaqSamples}I" />
<record pvName="$(Server)/CtrlOutPropDaqSamples/Q" source="llrfctrl.+{CtrlOutPropDaqSamples}Q" />
<record pvName="$(Server)/CtrlOutTotalDaqSamples/I" source="llrfctrl.+{CtrlOutTotalDaqSamples}I" />
<record pvName="$(Server)/CtrlOutTotalDaqSamples/Q" source="llrfctrl.+{CtrlOutTotalDaqSamples}Q" />
</recordgroup>
<recordgroup type="aai" autosave="false"><!--For pulse amplitude samples: EGU=${gradientUnit}-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="${gradientUnit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="+{:numberOfElements}" />
<field type="PREC" value="6" />
<record pvName="$(Server)/CtrlSpDaqSamples/amplitude" source="llrfctrl.+{CtrlSpDaqSamples}amplitude" />
<record pvName="$(Server)/CtrlVsDaqSamples/amplitude" source="llrfctrl.+{CtrlVsDaqSamples}amplitude" />
<record pvName="$(Server)/CtrlOutTotalDaqSamples/amplitude" source="llrfctrl.+{CtrlOutTotalDaqSamples}amplitude" />
</recordgroup>
<recordgroup type="aai" autosave="false"><!--For pulse phase samples: EGU=°-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="°" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="+{:numberOfElements}" />
<field type="PREC" value="6" />
<record pvName="$(Server)/CtrlSpDaqSamples/phase" source="llrfctrl.+{CtrlSpDaqSamples}phase" />
<record pvName="$(Server)/CtrlVsDaqSamples/phase" source="llrfctrl.+{CtrlVsDaqSamples}phase" />
<record pvName="$(Server)/CtrlOutTotalDaqSamples/phase" source="llrfctrl.+{CtrlOutTotalDaqSamples}phase" />
</recordgroup>
<!-- Removed, until I found correct implementatation, aai, ai, mbbi and mbbiDirect do not work -PN-
<recordgroup type="mbbi" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="NOBT" value="+{:numberOfElements}" />
<record pvName="$(Server)/Adcb0Cfg/BOARD_TIMING_TRG_SEL" source="llrfctrl.+{Adcb0Cfg}BOARD_TIMING_TRG_SEL" />
</recordgroup>
-->
<recordgroup type="int64out" autosave="false">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/CtrlFWseudet/crcErrors" source="llrfctrl.+{CtrlFirmwareseudetection}crcErrors" />
<record pvName="$(Server)/CtrlFWseudet/eccFixedFramesTotal" source="llrfctrl.+{CtrlFirmwareseudetection}eccFixedFramesTotal" />
<record pvName="$(Server)/Adcb0FWseudet/crcErrors" source="llrfctrl.+{Adcb0Firmwareseudetection}crcErrors" />
<record pvName="$(Server)/Adcb0FWseudet/eccFixedFramesTotal" source="llrfctrl.+{Adcb0Firmwareseudetection}eccFixedFramesTotal" />
</recordgroup>
<recordgroup type="aao" autosave="false"><!--For pulse I/Q arrays: NELM=${pulseLength}, EGU="", PREC=3-->
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="${pulseLength}" />
<field type="PINI" value="1" />
<field type="PREC" value="3" />
<record pvName="$(Server)/CtrlFfCorr/I" source="llrfctrl.+{CtrlFfCorr}I" />
<record pvName="$(Server)/CtrlFfCorr/Q" source="llrfctrl.+{CtrlFfCorr}Q" />
<record pvName="$(Server)/CtrlFfRTable/scale" source="llrfctrl.+{CtrlFfRTable}scale" />
<record pvName="$(Server)/CtrlFfRTable/rotation" source="llrfctrl.+{CtrlFfRTable}rotation">
<field type="EGU" value="°" />
</record>
<record pvName="$(Server)/CtrlSpCorr/I" source="llrfctrl.+{CtrlSpCorr}I" />
<record pvName="$(Server)/CtrlSpCorr/Q" source="llrfctrl.+{CtrlSpCorr}Q" />
<record pvName="$(Server)/Cfg/timeIndexConfig" source="">
<field type="DTYP" value="Soft Channel" />
<field type="OUT" value="$(Server)/Cfg/timeIndex.VAL" />
<field type="FTVL" value="DOUBLE" />
</record>
</recordgroup>
<recordgroup type="aao" autosave="false"><!--NELM, Type and EGU taken from sourcefile-->
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="+{:numberOfElements}" />
<field type="PINI" value="1" />
<field type="PREC" value="2" />
<record pvName="$(Server)/CtrlVmPredistorter/TABLE_BASE_I" source="llrfctrl.+{CtrlVmPredistorter}TABLE_BASE_I" />
<record pvName="$(Server)/CtrlVmPredistorter/TABLE_BASE_Q" source="llrfctrl.+{CtrlVmPredistorter}TABLE_BASE_Q" />
<record pvName="$(Server)/CtrlVmPredistorter/TABLE_DERIVATIVE_I" source="llrfctrl.+{CtrlVmPredistorter}TABLE_DERIVATIVE_I" />
<record pvName="$(Server)/CtrlVmPredistorter/TABLE_DERIVATIVE_Q" source="llrfctrl.+{CtrlVmPredistorter}TABLE_DERIVATIVE_Q" />
<!-- TODO: Implement Learning Feed Forward, find source for number of elements of matrix Beta/Gamma/Omega -PN-
<record pvName="$(Server)/Lff/matrixBeta" source="llrfctrl.+{Lff}matrixBeta" />
<record pvName="$(Server)/Lff/matrixGamma" source="llrfctrl.+{Lff}matrixGamma" />
<record pvName="$(Server)/Lff/matrixOmega" source="llrfctrl.+{Lff}matrixOmega" />
<record pvName="$(Server)/Lff/matrixBetaShort" source="llrfctrl.+{Lff}matrixBetaShort" />
<record pvName="$(Server)/Lff/matrixGammaShort" source="llrfctrl.+{Lff}matrixGammaShort" />
-->
<record pvName="$(Server)/UservariablesRfinfo/MODEL_OL_A" source="llrfctrl.+{UservariablesRfinfo}MODEL_OL_A" />
<record pvName="$(Server)/UservariablesRfinfo/MODEL_OL_B" source="llrfctrl.+{UservariablesRfinfo}MODEL_OL_B" />
<record pvName="$(Server)/UservariablesRfinfo/MODEL_OL_C" source="llrfctrl.+{UservariablesRfinfo}MODEL_OL_C" />
<record pvName="$(Server)/UservariablesRfinfo/MODEL_CL_A" source="llrfctrl.+{UservariablesRfinfo}MODEL_CL_A" />
<record pvName="$(Server)/UservariablesRfinfo/MODEL_CL_B" source="llrfctrl.+{UservariablesRfinfo}MODEL_CL_B" />
<record pvName="$(Server)/UservariablesRfinfo/MODEL_CL_C" source="llrfctrl.+{UservariablesRfinfo}MODEL_CL_C" />
</recordgroup>
<recordgroup type="int64in" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<record pvName="$(Server)/Server/triggerNumber" source="llrfctrl.+{Server}triggerNumber" />
<record pvName="$(Server)/ServerDlcount/lostDataInLastTrigger" source="llrfctrl.+{ServerDlcount}lostDataInLastTrigger" />
<record pvName="$(Server)/ServerDlcount/triggersWithDataLoss" source="llrfctrl.+{ServerDlcount}triggersWithDataLoss" />
<record pvName="$(Server)/Monitoringtrigger/tick" source="llrfctrl.+{Monitoringtrigger}tick" />
</recordgroup>
<recordgroup type="longin" autosave="false"><!--EGU from sourcefile-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<record pvName="$(Server)/Ctrl/readyStatus" source="llrfctrl.+{Ctrl}readyStatus" />
<record pvName="$(Server)/CtrlBoard/fpgaClockStatus" source="llrfctrl.+{CtrlBoard}fpgaClockStatus" />
<record pvName="$(Server)/CtrlBoard/fpgaClockError" source="llrfctrl.+{CtrlBoard}fpgaClockError" />
<record pvName="$(Server)/CtrlBoard/FW_BOARD_VER_MAJOR" source="llrfctrl.+{CtrlBoard}FW_BOARD_VER_MAJOR" />
<record pvName="$(Server)/CtrlBoard/FW_BOARD_VER_MINOR" source="llrfctrl.+{CtrlBoard}FW_BOARD_VER_MINOR" />
<record pvName="$(Server)/CtrlBoard/FW_BOARD_VER_PATCH" source="llrfctrl.+{CtrlBoard}FW_BOARD_VER_PATCH" />
<record pvName="$(Server)/CtrlBoard/FW_BOARD_VER_COMMIT" source="llrfctrl.+{CtrlBoard}FW_BOARD_VER_COMMIT" />
<record pvName="$(Server)/CtrlPulseshape/flattopStartIndex" source="llrfctrl.+{CtrlPulseshape}Indices/flattopStart" />
<record pvName="$(Server)/CtrlPulseshape/fillingStartIndex" source="llrfctrl.+{CtrlPulseshape}Indices/fillingStart" />
<record pvName="$(Server)/CtrlPulseshape/decayStartIndex" source="llrfctrl.+{CtrlPulseshape}Indices/decayStart" />
<record pvName="$(Server)/CtrlFb/limitI" source="llrfctrl.+{CtrlFb}limitI" />
<record pvName="$(Server)/CtrlFb/limitQ" source="llrfctrl.+{CtrlFb}limitQ" />
<record pvName="$(Server)/CtrlFbGainTable/bufferSelectI" source="llrfctrl.+{CtrlFbGainTable}bufferSelectI" />
<record pvName="$(Server)/CtrlFbGainTable/bufferSelectQ" source="llrfctrl.+{CtrlFbGainTable}bufferSelectQ" />
<record pvName="$(Server)/CtrlFbGainTable/bufferCurrentI" source="llrfctrl.+{CtrlFbGainTable}bufferCurrentI" />
<record pvName="$(Server)/CtrlFbGainTable/bufferCurrentQ" source="llrfctrl.+{CtrlFbGainTable}bufferCurrentQ" />
<record pvName="$(Server)/CtrlFbMimocoeff/valid" source="llrfctrl.+{CtrlFbMimocoeff}valid" />
<record pvName="$(Server)/CtrlFbSmithcoeff/valid" source="llrfctrl.+{CtrlFbSmithcoeff}valid" />
<record pvName="$(Server)/CtrlAperror/fault" source="llrfctrl.+{CtrlAperror}fault" />
<record pvName="$(Server)/CtrlFWseudet/fatalErrorDetected" source="llrfctrl.+{CtrlFirmwareseudetection}unrecoverableErrorDetected" />
<record pvName="$(Server)/CtrlFWseudet/fatalErrorDetectedRaw" source="llrfctrl.+{CtrlFirmwareseudetection}unrecoverableErrorDetectedRaw" />
<record pvName="$(Server)/CtrlFWseudet/crcErrorAftBoot" source="llrfctrl.+{CtrlFirmwareseudetection}crcErrorSinceFpgaBoot" />
<record pvName="$(Server)/CtrlFWseudet/eccFixedFramesAftBoot" source="llrfctrl.+{CtrlFirmwareseudetection}eccFixedFramesSinceFpgaBoot" />
<record pvName="$(Server)/CtrlInterlocklatcher/ilockLatchStatus" source="llrfctrl.+{CtrlInterlocklatcher}ilockLatchStatus" />
<record pvName="$(Server)/Triggerintervalmonitor/triggerStatus" source="llrfctrl.+{Triggerintervalmonitor}triggerStatus" />
<record pvName="$(Server)/Refphasemonitor/refPhaseStatus" source="llrfctrl.+{Referencephasemonitor}referencePhaseStatus" />
<record pvName="$(Server)/Adcb0/normalTrigger" source="llrfctrl.+{Adcb0}normalTrigger" />
<record pvName="$(Server)/Adcb0/rawTrigger" source="llrfctrl.+{Adcb0}rawTrigger" />
<record pvName="$(Server)/Adcb0/WORD_DAQ_MUX1" source="llrfctrl.+{Adcb0}WORD_DAQ_MUX1" />
<record pvName="$(Server)/Adcb0/daqEnableForRawMode" source="llrfctrl.+{Adcb0}daqEnableForRawMode" />
<record pvName="$(Server)/Adcb0/timingDividerAdc" source="llrfctrl.+{Adcb0}timingDividerAdc" />
<record pvName="$(Server)/Adcb0Cfg/fpgaClockStatus" source="llrfctrl.+{Adcb0Cfg}fpgaClockStatus" />
<record pvName="$(Server)/Adcb0Cfg/fpgaClockError" source="llrfctrl.+{Adcb0Cfg}fpgaClockError" />
<record pvName="$(Server)/Adcb0Cfg/BOARD_CONFIG_PRIMARY_DAQ_EN" source="llrfctrl.+{Adcb0Cfg}BOARD_CONFIG_PRIMARY_DAQ_EN" />
<record pvName="$(Server)/Adcb0Cfg/BOARD_CONFIG_SECONDARY_DAQ_EN" source="llrfctrl.+{Adcb0Cfg}BOARD_CONFIG_SECONDARY_DAQ_EN" />
<record pvName="$(Server)/Adcb0Cfg/BOARD_VS_CH_ENA" source="llrfctrl.+{Adcb0Cfg}BOARD_VS_CH_ENA" />
<record pvName="$(Server)/Adcb0Cfg/FW_BOARD_VER_MAJOR" source="llrfctrl.+{Adcb0Cfg}FW_BOARD_VER_MAJOR" />
<record pvName="$(Server)/Adcb0Cfg/FW_BOARD_VER_MINOR" source="llrfctrl.+{Adcb0Cfg}FW_BOARD_VER_MINOR" />
<record pvName="$(Server)/Adcb0Cfg/FW_BOARD_VER_PATCH" source="llrfctrl.+{Adcb0Cfg}FW_BOARD_VER_PATCH" />
<record pvName="$(Server)/Adcb0Cfg/FW_BOARD_VER_COMMIT" source="llrfctrl.+{Adcb0Cfg}FW_BOARD_VER_COMMIT" />
<record pvName="$(Server)/Adcb0Cfg/LLL_STATUS_0" source="llrfctrl.+{Adcb0Cfg}LLL_STATUS_0" />
<record pvName="$(Server)/Adcb0Cfg/LLL_STATUS_1" source="llrfctrl.+{Adcb0Cfg}LLL_STATUS_1" />
<record pvName="$(Server)/Adcb0Cfg/LLL_STATUS_2" source="llrfctrl.+{Adcb0Cfg}LLL_STATUS_2" />
<record pvName="$(Server)/Adcb0Cfg/LLL_STATUS_3" source="llrfctrl.+{Adcb0Cfg}LLL_STATUS_3" />
<record pvName="$(Server)/Adcb0Cfg/LLL_STATUS_4" source="llrfctrl.+{Adcb0Cfg}LLL_STATUS_4" />
<record pvName="$(Server)/Adcb0Cfg/LLL_STATUS_5" source="llrfctrl.+{Adcb0Cfg}LLL_STATUS_5" />
<record pvName="$(Server)/Adcb0FWseudet/fatalErrorDetected" source="llrfctrl.+{Adcb0Firmwareseudetection}unrecoverableErrorDetected" />
<record pvName="$(Server)/Adcb0FWseudet/fatalErrorDetectedRaw" source="llrfctrl.+{Adcb0Firmwareseudetection}unrecoverableErrorDetectedRaw" />
<record pvName="$(Server)/Adcb0FWseudet/crcErrorAftBoot" source="llrfctrl.+{Adcb0Firmwareseudetection}crcErrorSinceFpgaBoot" />
<record pvName="$(Server)/Adcb0FWseudet/eccFixedFramesAftBoot" source="llrfctrl.+{Adcb0Firmwareseudetection}eccFixedFramesSinceFpgaBoot" />
<record pvName="$(Server)/Adcb0Status/WORD_AMP_LIMIT_PRE_ACTIVE" source="llrfctrl.+{Adcb0Status}WORD_AMP_LIMIT_PRE_ACTIVE" />
<record pvName="$(Server)/Adcb0Status/WORD_AMP_LIMIT_ACTIVE" source="llrfctrl.+{Adcb0Status}WORD_AMP_LIMIT_ACTIVE" />
<record pvName="$(Server)/Adcb0Status/WORD_AMP_LIMIT_TRG_ACTIVE" source="llrfctrl.+{Adcb0Status}WORD_AMP_LIMIT_TRG_ACTIVE" />
<record pvName="$(Server)/ServerVersion/config" source="llrfctrl.+{ServerVersion}config" />
<record pvName="$(Server)/ServerVersion/major" source="llrfctrl.+{ServerVersion}major" />
<record pvName="$(Server)/ServerVersion/minor" source="llrfctrl.+{ServerVersion}minor" />
<record pvName="$(Server)/ServerVersion/patch" source="llrfctrl.+{ServerVersion}patch" />
<record pvName="$(Server)/Cfg/pulseLength" source="llrfctrl.+{Cfg}pulseLength">
<field type="EGU" value="samples" />
</record>
<record pvName="$(Server)/Cfg/tZero_samples" source="llrfctrl.+{Cfg}tZero_samples" />
<record pvName="$(Server)/Samplingscheme/timingDividerController" source="llrfctrl.+{Samplingscheme}timingDividerController" />
<record pvName="$(Server)/Samplingscheme/timingDividerTables" source="llrfctrl.+{Samplingscheme}timingDividerTables" />
</recordgroup>
<recordgroup type="longin" autosave="false"><!--EGU=""-->
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="" />
<record pvName="$(Server)/CtrlStatusActPLength/samples" source="llrfctrl.+{CtrlStatusActualPulseLength}samples" />
<record pvName="$(Server)/CtrlStatus/overall" source="llrfctrl.+{CtrlStatus}overall" />
<record pvName="$(Server)/CtrlStatus/intendedPulseLength" source="llrfctrl.+{CtrlStatus}intendedPulseLength" />
<record pvName="$(Server)/CtrlStatus/controllerStatus" source="llrfctrl.+{CtrlStatus}controllerStatus" />
<record pvName="$(Server)/CtrlStatus/inhibitAlgos" source="llrfctrl.+{CtrlStatus}inhibitAlgos" />
<record pvName="$(Server)/CtrlStatus/bitmaskForInhibitAlgos" source="llrfctrl.+{CtrlStatus}bitmaskForInhibitAlgos" />
<!-- Masked because double buffering is still WIP
<record pvName="$(Server)/CtrlSpTable/bufferCurrentI" source="llrfctrl.+{CtrlSpTable}bufferCurrentI" />
<record pvName="$(Server)/CtrlSpTable/bufferCurrentQ" source="llrfctrl.+{CtrlSpTable}bufferCurrentQ" />
<record pvName="$(Server)/CtrlFfRTable/bufferCurrentI" source="llrfctrl.+{CtrlFfRTable}bufferCurrentI" />
<record pvName="$(Server)/CtrlFfRTable/bufferCurrentQ" source="llrfctrl.+{CtrlFfRTable}bufferCurrentQ" />
<record pvName="$(Server)/CtrlOutCTable/bufferCurrentI" source="llrfctrl.+{CtrlOutCTable}bufferCurrentI" />
<record pvName="$(Server)/CtrlOutCTable/bufferCurrentQ" source="llrfctrl.+{CtrlOutCTable}bufferCurrentQ" />
-->
<record pvName="$(Server)/Cfg/nMaxBunches" source="llrfctrl.+{Cfg}nMaxBunches" />
<record pvName="$(Server)/Cfg/nMaxBeamRegions" source="llrfctrl.+{Cfg}nMaxBeamRegions" />
<record pvName="$(Server)/Cfg/instanceType" source="llrfctrl.+{Cfg}instanceType" />
<record pvName="$(Server)/Cfg/IQdetectionLength" source="llrfctrl.+{Cfg}IQdetectionLength" />
<record pvName="$(Server)/Cfg/nSinCosTableSize" source="llrfctrl.+{Cfg}nSinCosTableSize" />
<record pvName="$(Server)/Cfg/sinSign" source="llrfctrl.+{Cfg}sinSign" />
<record pvName="$(Server)/Cfg/nAdcBoards" source="llrfctrl.+{Cfg}nAdcBoards" />
<record pvName="$(Server)/Cfg/enableAutomation" source="llrfctrl.+{Cfg}enableAutomation" />
<record pvName="$(Server)/Cfg/enablePhaseSetter" source="llrfctrl.+{Cfg}enablePhaseSetter" />
<record pvName="$(Server)/Cfg/enableAdcChannelStatistics" source="llrfctrl.+{Cfg}enableAdcChannelStatistics" />
<record pvName="$(Server)/Cfg/enableControllerChannelStatistics" source="llrfctrl.+{Cfg}enableControllerChannelStatistics" />
<record pvName="$(Server)/Cfg/maximumTriggerInterval" source="llrfctrl.+{Cfg}maximumTriggerInterval" />
<record pvName="$(Server)/Cfg/flattopBeginIndex" source="llrfctrl.+{Cfg}flattopBeginIndex" />
<record pvName="$(Server)/Cfg/flattopEndIndex" source="llrfctrl.+{Cfg}flattopEndIndex" />
<record pvName="$(Server)/Cfg/daqDecimation" source="llrfctrl.+{Cfg}rawAdcDecimation" />
<record pvName="$(Server)/CfgAdcb0/nChannels" source="llrfctrl.+{CfgAdcb0}nChannels" />
<record pvName="$(Server)/CfgAdcb0/slotNumber" source="llrfctrl.+{CfgAdcb0}slotNumber" />
<record pvName="$(Server)/CfgSamplingposition/index" source="llrfctrl.+{CfgSamplingposition}index" />
<record pvName="$(Server)/CfgMicrodaq/enable" source="llrfctrl.+{Cfg}+{Microdaq}enable" />
<record pvName="$(Server)/CfgMicrodaq/enableDetails" source="llrfctrl.+{Cfg}+{Microdaq}enableDetails" />
<record pvName="$(Server)/CfgMicrodaq/decimationThreshold" source="llrfctrl.+{Cfg}+{Microdaq}decimationThreshold" />
<record pvName="$(Server)/CfgMicrodaq/decimationFactor" source="llrfctrl.+{Cfg}+{Microdaq}decimationFactor" />
<record pvName="$(Server)/OVC/OL/ScalingAvgWin/startIndex" source="llrfctrl.+{OvcOpenloopScalingAvgwin}startIndex" />
<record pvName="$(Server)/OVC/OL/ScalingAvgWin/endIndex" source="llrfctrl.+{OvcOpenloopScalingAvgwin}endIndex" />
<record pvName="$(Server)/OVC/OL/RotationAvgWin/startIndex" source="llrfctrl.+{OvcOpenloopRotationAvgwin}startIndex" />
<record pvName="$(Server)/OVC/OL/RotationAvgWin/endIndex" source="llrfctrl.+{OvcOpenloopRotationAvgwin}endIndex" />
<record pvName="$(Server)/OVC/OL/RatioAvgWin/startIndex" source="llrfctrl.+{OvcOpenloopRatioAvgwin}startIndex" />
<record pvName="$(Server)/OVC/OL/RatioAvgWin/endIndex" source="llrfctrl.+{OvcOpenloopRatioAvgwin}endIndex" />
<record pvName="$(Server)/OVC/CL/ScalingAvgWin/startIndex" source="llrfctrl.+{OvcClosedloopScalingAvgwin}startIndex" />
<record pvName="$(Server)/OVC/CL/ScalingAvgWin/endIndex" source="llrfctrl.+{OvcClosedloopScalingAvgwin}endIndex" />
<record pvName="$(Server)/OVC/CL/RotationAvgWin/startIndex" source="llrfctrl.+{OvcClosedloopRotationAvgwin}startIndex" />
<record pvName="$(Server)/OVC/CL/RotationAvgWin/endIndex" source="llrfctrl.+{OvcClosedloopRotationAvgwin}endIndex" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFilling/startIndex" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowfilling}startIndex" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFilling/endIndex" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowfilling}endIndex" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFlattop/startIndex" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowflattop}startIndex" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFlattop/endIndex" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowflattop}endIndex" />
<record pvName="$(Server)/OVC/CL/ForwardAvgwin/startIndex" source="llrfctrl.+{OvcClosedloopForwardAvgwin}startIndex" />
<record pvName="$(Server)/OVC/CL/ForwardAvgwin/endIndex" source="llrfctrl.+{OvcClosedloopForwardAvgwin}endIndex" />
<record pvName="$(Server)/OvcStatus/code" source="llrfctrl.+{OvcStatus}code" />
<record pvName="$(Server)/Lff/isLimited" source="llrfctrl.+{Lff}isLimited" />
</recordgroup>
<recordgroup type="lso" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="SIZV" value="255" />
<field type="PINI" value="1" />
<record pvName="$(Server)/UservariablesMain/USER_MESSAGE" source="llrfctrl.+{UservariablesMain}USER_MESSAGE" />
<record pvName="$(Server)/UservariablesMain/LOC_KLYSTRON" source="llrfctrl.+{UservariablesMain}LOC_KLYSTRON" />
<record pvName="$(Server)/UservariablesMain/LOC_MPS" source="llrfctrl.+{UservariablesMain}LOC_MPS" />
<record pvName="$(Server)/UservariablesMain/LOC_MOD" source="llrfctrl.+{UservariablesMain}LOC_MOD" />
<record pvName="$(Server)/UservariablesMain/LOC_RACK" source="llrfctrl.+{UservariablesMain}LOC_RACK" />
</recordgroup>
<recordgroup type="longout" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<!-- Masked because double buffering is still WIP
<record pvName="$(Server)/CtrlSpTable/bufferSelectI" source="llrfctrl.+{CtrlSpTable}bufferSelectI" />
<record pvName="$(Server)/CtrlSpTable/bufferSelectQ" source="llrfctrl.+{CtrlSpTable}bufferSelectQ" />
<record pvName="$(Server)/CtrlOutCTable/bufferSelectI" source="llrfctrl.+{CtrlOutCTable}bufferSelectI" />
<record pvName="$(Server)/CtrlOutCTable/bufferSelectQ" source="llrfctrl.+{CtrlOutCTable}bufferSelectQ" />
<record pvName="$(Server)/CtrlFfRTable/bufferSelectI" source="llrfctrl.+{CtrlFfRTable}bufferSelectI" />
<record pvName="$(Server)/CtrlFfRTable/bufferSelectQ" source="llrfctrl.+{CtrlFfRTable}bufferSelectQ" />
-->
<record pvName="$(Server)/Ctrl/resetErrorMessage" source="llrfctrl.+{Ctrl}resetErrorMessage" />
<record pvName="$(Server)/CtrlFfSmooth/riseFunction" source="llrfctrl.+{CtrlFfSmooth}riseFunction" />
<record pvName="$(Server)/CtrlFfSmooth/stepFunction" source="llrfctrl.+{CtrlFfSmooth}stepFunction" />
<record pvName="$(Server)/CtrlFfSmooth/fallFunction" source="llrfctrl.+{CtrlFfSmooth}fallFunction" />
<record pvName="$(Server)/CtrlFb/maximumOutput" source="llrfctrl.+{CtrlFb}maximumOutput" />
<record pvName="$(Server)/CtrlFb/mimoEnable" source="llrfctrl.+{CtrlFb}mimoEnable" />
<record pvName="$(Server)/CtrlFb/smithEnable" source="llrfctrl.+{CtrlFb}smithEnable" />
<record pvName="$(Server)/CtrlFb/smithDelay" source="llrfctrl.+{CtrlFb}smithDelay" />
<record pvName="$(Server)/CtrlFbGainScheduling/functionSelect" source="llrfctrl.+{CtrlFbGainScheduling}functionSelect" />
<record pvName="$(Server)/CtrlFbMimocoeff/apply" source="llrfctrl.+{CtrlFbMimocoeff}apply" />
<record pvName="$(Server)/CtrlFbSmithcoeff/apply" source="llrfctrl.+{CtrlFbSmithcoeff}apply" />
<record pvName="$(Server)/CtrlPhasemodFf/functionSelect" source="llrfctrl.+{CtrlPhasemodFf}functionSelect" />
<record pvName="$(Server)/CtrlPhasemodSp/functionSelect" source="llrfctrl.+{CtrlPhasemodSp}functionSelect" />
<record pvName="$(Server)/CtrlAperror/faultCountSet" source="llrfctrl.+{CtrlAperror}faultCountSet" />
<record pvName="$(Server)/CtrlAperror/faultCountClear" source="llrfctrl.+{CtrlAperror}faultCountClear" />
<record pvName="$(Server)/CtrlOutTotal/limiterEnable" source="llrfctrl.+{CtrlOutTotal}limiterEnable" />
<record pvName="$(Server)/CtrlOutCalCadeinovc/enable" source="llrfctrl.+{CtrlOutCalCadeinovc}enable" />
<record pvName="$(Server)/CtrlBoardinit/forceReinitialisation" source="llrfctrl.+{CtrlBoardinit}forceReinitialisation" />
<record pvName="$(Server)/CtrlVm/qSign" source="llrfctrl.+{CtrlVm}qSign" />
<record pvName="$(Server)/CtrlVmPredistorter/ENA" source="llrfctrl.+{CtrlVmPredistorter}ENA" />
<!-- Masked, because register is not writable
<record pvName="$(Server)/CtrlInterlocklatcher/ilockLatchEnable" source="llrfctrl.+{CtrlInterlocklatcher}ilockLatchEnable" />
<record pvName="$(Server)/CtrlInterlocklatcher/ilockLatchReset" source="llrfctrl.+{CtrlInterlocklatcher}ilockLatchReset" />
-->
<record pvName="$(Server)/CtrlFastprotection/ENA" source="llrfctrl.+{CtrlFastprotection}ENA" />
<record pvName="$(Server)/CtrlFastprotection/THRESHOLD" source="llrfctrl.+{CtrlFastprotection}THRESHOLD" />
<record pvName="$(Server)/Adcb0/rawDaqMode" source="llrfctrl.+{Adcb0}rawDaqMode" />
<record pvName="$(Server)/Adcb0Cfg/BOARD_RESET" source="llrfctrl.+{Adcb0Cfg}BOARD_RESET" />
<record pvName="$(Server)/Adcb0Boardinit/forceReinitialisation" source="llrfctrl.+{Adcb0Boardinit}forceReinitialisation" />
<record pvName="$(Server)/ServerInvaliditytracer/printTrace" source="llrfctrl.+{ServerInvaliditytracer}printTrace" />
<record pvName="$(Server)/Cfg/vectorSumBitShift" source="llrfctrl.+{Cfg}vectorSumBitShift" />
<record pvName="$(Server)/Cfg/vectorSumBitShiftNoScale" source="llrfctrl.+{Cfg}vectorSumBitShiftNoScale">
<field type="EGU" value="" />
</record>
<record pvName="$(Server)/Cfg/sampingDecimation" source="llrfctrl.+{Cfg}samplingDecimation" />
<record pvName="$(Server)/Monitoringtrigger/period" source="llrfctrl.+{Monitoringtrigger}period" />
<record pvName="$(Server)/Ovc/enable" source="llrfctrl.+{Ovc}enable" />
<record pvName="$(Server)/Ovc/debug" source="llrfctrl.+{Ovc}debug" />
<record pvName="$(Server)/Ovc/nAveragedTriggers" source="llrfctrl.+{Ovc}nAveragedTriggers" />
<record pvName="$(Server)/OVC/OL/Scaling/enable" source="llrfctrl.+{OvcOpenloopScaling}enable" />
<record pvName="$(Server)/OVC/OL/ScalingAvgwin/fromFlattopEnd" source="llrfctrl.+{OvcOpenloopScalingAvgwin}fromFlattopEnd" />
<record pvName="$(Server)/OVC/OL/ScalingAvgwin/poi" source="llrfctrl.+{OvcOpenloopScalingAvgwin}poi" />
<record pvName="$(Server)/OVC/OL/ScalingAvgwin/offset" source="llrfctrl.+{OvcOpenloopScalingAvgwin}offset" />
<record pvName="$(Server)/OVC/OL/ScalingAvgwin/length" source="llrfctrl.+{OvcOpenloopScalingAvgwin}length" />
<record pvName="$(Server)/OVC/OL/Rotation/enable" source="llrfctrl.+{OvcOpenloopRotation}enable" />
<record pvName="$(Server)/OVC/OL/RotationAvgwin/fromFlattopEnd" source="llrfctrl.+{OvcOpenloopRotationAvgwin}fromFlattopEnd" />
<record pvName="$(Server)/OVC/OL/RotationAvgwin/poi" source="llrfctrl.+{OvcOpenloopRotationAvgwin}poi" />
<record pvName="$(Server)/OVC/OL/RotationAvgwin/offset" source="llrfctrl.+{OvcOpenloopRotationAvgwin}offset" />
<record pvName="$(Server)/OVC/OL/RotationAvgwin/length" source="llrfctrl.+{OvcOpenloopRotationAvgwin}length" />
<record pvName="$(Server)/OVC/OL/Ratio/enable" source="llrfctrl.+{OvcOpenloopRatio}enable" />
<record pvName="$(Server)/OVC/OL/RatioAvgwin/fromFlattopEnd" source="llrfctrl.+{OvcOpenloopRatioAvgwin}fromFlattopEnd" />
<record pvName="$(Server)/OVC/OL/RatioAvgwin/poi" source="llrfctrl.+{OvcOpenloopRatioAvgwin}poi" />
<record pvName="$(Server)/OVC/OL/RatioAvgwin/offset" source="llrfctrl.+{OvcOpenloopRatioAvgwin}offset" />
<record pvName="$(Server)/OVC/OL/RatioAvgwin/length" source="llrfctrl.+{OvcOpenloopRatioAvgwin}length" />
<record pvName="$(Server)/OVC/CL/Scaling/enable" source="llrfctrl.+{OvcClosedloopScaling}enable" />
<record pvName="$(Server)/OVC/CL/ScalingAvgwin/fromFlattopEnd" source="llrfctrl.+{OvcClosedloopScalingAvgwin}fromFlattopEnd" />
<record pvName="$(Server)/OVC/CL/ScalingAvgwin/poi" source="llrfctrl.+{OvcClosedloopScalingAvgwin}poi" />
<record pvName="$(Server)/OVC/CL/ScalingAvgwin/offset" source="llrfctrl.+{OvcClosedloopScalingAvgwin}offset" />
<record pvName="$(Server)/OVC/CL/ScalingAvgwin/length" source="llrfctrl.+{OvcClosedloopScalingAvgwin}length" />
<record pvName="$(Server)/OVC/CL/Rotation/enable" source="llrfctrl.+{OvcClosedloopRotation}enable" />
<record pvName="$(Server)/OVC/CL/RotationAvgwin/fromFlattopEnd" source="llrfctrl.+{OvcClosedloopRotationAvgwin}fromFlattopEnd" />
<record pvName="$(Server)/OVC/CL/RotationAvgwin/poi" source="llrfctrl.+{OvcClosedloopRotationAvgwin}poi" />
<record pvName="$(Server)/OVC/CL/RotationAvgwin/offset" source="llrfctrl.+{OvcClosedloopRotationAvgwin}offset" />
<record pvName="$(Server)/OVC/CL/RotationAvgwin/length" source="llrfctrl.+{OvcClosedloopRotationAvgwin}length" />
<record pvName="$(Server)/OVC/CL/Ratio/enable" source="llrfctrl.+{OvcClosedloopRatio}enable" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFilling/fromFTEnd" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowfilling}fromFlattopEnd" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFilling/poi" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowfilling}poi" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFilling/offset" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowfilling}offset" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFilling/length" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowfilling}length" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFlattop/fromFTEnd" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowflattop}fromFlattopEnd" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFlattop/poi" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowflattop}poi" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFlattop/offset" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowflattop}offset" />
<record pvName="$(Server)/OVC/CL/RatioAvgWinFlattop/length" source="llrfctrl.+{OvcClosedloopRatioAveragingwindowflattop}length" />
<record pvName="$(Server)/OVC/CL/Forward/enable" source="llrfctrl.+{OvcClosedloopForward}enable" />
<record pvName="$(Server)/OVC/CL/ForwardAvgWin/fromFTEnd" source="llrfctrl.+{OvcClosedloopForwardAvgwin}fromFlattopEnd" />
<record pvName="$(Server)/OVC/CL/ForwardAvgWin/poi" source="llrfctrl.+{OvcClosedloopForwardAvgwin}poi" />
<record pvName="$(Server)/OVC/CL/ForwardAvgWin/offset" source="llrfctrl.+{OvcClosedloopForwardAvgwin}offset" />
<record pvName="$(Server)/OVC/CL/ForwardAvgWin/length" source="llrfctrl.+{OvcClosedloopForwardAvgwin}length" />
<record pvName="$(Server)/OVC/CL/ForwardRefpoint/autoStore" source="llrfctrl.+{OvcClosedloopForwardRefpoint}autoStore" />
<record pvName="$(Server)/OVC/CL/ForwardRefpoint/store" source="llrfctrl.+{OvcClosedloopForwardRefpoint}store" />
<record pvName="$(Server)/OvcStatus/resetMessage" source="llrfctrl.+{OvcStatus}resetMessage" />
<record pvName="$(Server)/Lff/enable" source="llrfctrl.+{Lff}enable" />
<record pvName="$(Server)/Lff/reset" source="llrfctrl.+{Lff}reset" />
<record pvName="$(Server)/Lff/triggerDecimation" source="llrfctrl.+{Lff}triggerDecimation" />
<record pvName="$(Server)/Lff/shiftCorrectionTable" source="llrfctrl.+{Lff}shiftCorrectionTable" />
<record pvName="$(Server)/Lff/outputLimit" source="llrfctrl.+{Lff}outputLimit" />
<record pvName="$(Server)/Lff/firEnable" source="llrfctrl.+{Lff}firEnable" />
<record pvName="$(Server)/Lff/firTap" source="llrfctrl.+{Lff}firTap" />
<record pvName="$(Server)/Lff/firExtraTriggerDecimation" source="llrfctrl.+{Lff}firExtraTriggerDecimation" />
<record pvName="$(Server)/Lff/smoothingEnable" source="llrfctrl.+{Lff}smoothingEnable" />
<record pvName="$(Server)/Lff/smoothingTap" source="llrfctrl.+{Lff}smoothingTap" />
<record pvName="$(Server)/Lff/modelOrder" source="llrfctrl.+{Lff}modelOrder" />
<record pvName="$(Server)/Lff/matrixEnableShort" source="llrfctrl.+{Lff}matrixEnableShort" />
</recordgroup>
<recordgroup type="ao" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="PREC" value="3" />
<field type="PINI" value="1" />
<record pvName="$(Server)/CtrlFrequencyModulation/offset" source="llrfctrl.+{CtrlFreqMod}offset" />
<record pvName="$(Server)/CtrlPulseshape/delay" source="llrfctrl.+{CtrlPulseshape}delay" />
<record pvName="$(Server)/CtrlPulseshape/fillingDuration" source="llrfctrl.+{CtrlPulseshape}fillingDuration" />
<record pvName="$(Server)/CtrlPulseshape/flattopDuration" source="llrfctrl.+{CtrlPulseshape}flattopDuration" />
<record pvName="$(Server)/CtrlFf/delay" source="llrfctrl.+{CtrlFf}delay" />
<record pvName="$(Server)/CtrlFfSmooth/riseTime" source="llrfctrl.+{CtrlFfSmooth}riseTime" />
<record pvName="$(Server)/CtrlFfSmooth/stepTime" source="llrfctrl.+{CtrlFfSmooth}stepTime" />
<record pvName="$(Server)/CtrlFfSmooth/fallTime" source="llrfctrl.+{CtrlFfSmooth}fallTime" />
<record pvName="$(Server)/CtrlSp/delay" source="llrfctrl.+{CtrlSp}delay" />
<record pvName="$(Server)/CtrlSp/powerScaling" source="llrfctrl.+{CtrlSp}powerScaling" />
<record pvName="$(Server)/CtrlSp/power" source="llrfctrl.+{CtrlSp}power" />
<record pvName="$(Server)/CtrlSp/phaseSlope" source="llrfctrl.+{CtrlSp}phaseSlope">
<field type="EGU" value="°/flattop" />
</record>
<record pvName="$(Server)/CtrlSp/amplitudeSlope" source="llrfctrl.+{CtrlSp}amplitudeSlope">
<field type="EGU" value="${gradientUnit}/flattop" />
</record>
<record pvName="$(Server)/CtrlFbGain/delay" source="llrfctrl.+{CtrlFbGain}delay" />
<record pvName="$(Server)/CtrlFbGainDaq/samplingOffset" source="llrfctrl.+{CtrlFbGainDaq}samplingOffset" />
<record pvName="$(Server)/CtrlFbGainScheduling/startTime" source="llrfctrl.+{CtrlFbGainScheduling}startTime" />
<record pvName="$(Server)/CtrlFbGainScheduling/stopTime" source="llrfctrl.+{CtrlFbGainScheduling}stopTime" />
<record pvName="$(Server)/CtrlFbMimocoeff/A11_1" source="llrfctrl.+{CtrlFbMimocoeff}A11_1" />
<record pvName="$(Server)/CtrlFbMimocoeff/A11_2" source="llrfctrl.+{CtrlFbMimocoeff}A11_2" />
<record pvName="$(Server)/CtrlFbMimocoeff/B11_0" source="llrfctrl.+{CtrlFbMimocoeff}B11_0" />
<record pvName="$(Server)/CtrlFbMimocoeff/B11_1" source="llrfctrl.+{CtrlFbMimocoeff}B11_1" />
<record pvName="$(Server)/CtrlFbMimocoeff/B11_2" source="llrfctrl.+{CtrlFbMimocoeff}B11_2" />
<record pvName="$(Server)/CtrlFbMimocoeff/A12_1" source="llrfctrl.+{CtrlFbMimocoeff}A12_1" />
<record pvName="$(Server)/CtrlFbMimocoeff/A12_2" source="llrfctrl.+{CtrlFbMimocoeff}A12_2" />
<record pvName="$(Server)/CtrlFbMimocoeff/B12_0" source="llrfctrl.+{CtrlFbMimocoeff}B12_0" />
<record pvName="$(Server)/CtrlFbMimocoeff/B12_1" source="llrfctrl.+{CtrlFbMimocoeff}B12_1" />
<record pvName="$(Server)/CtrlFbMimocoeff/B12_2" source="llrfctrl.+{CtrlFbMimocoeff}B12_2" />
<record pvName="$(Server)/CtrlFbMimocoeff/A21_1" source="llrfctrl.+{CtrlFbMimocoeff}A21_1" />
<record pvName="$(Server)/CtrlFbMimocoeff/A21_2" source="llrfctrl.+{CtrlFbMimocoeff}A21_2" />
<record pvName="$(Server)/CtrlFbMimocoeff/B21_0" source="llrfctrl.+{CtrlFbMimocoeff}B21_0" />
<record pvName="$(Server)/CtrlFbMimocoeff/B21_1" source="llrfctrl.+{CtrlFbMimocoeff}B21_1" />
<record pvName="$(Server)/CtrlFbMimocoeff/B21_2" source="llrfctrl.+{CtrlFbMimocoeff}B21_2" />
<record pvName="$(Server)/CtrlFbMimocoeff/A22_1" source="llrfctrl.+{CtrlFbMimocoeff}A22_1" />
<record pvName="$(Server)/CtrlFbMimocoeff/A22_2" source="llrfctrl.+{CtrlFbMimocoeff}A22_2" />
<record pvName="$(Server)/CtrlFbMimocoeff/B22_0" source="llrfctrl.+{CtrlFbMimocoeff}B22_0" />
<record pvName="$(Server)/CtrlFbMimocoeff/B22_1" source="llrfctrl.+{CtrlFbMimocoeff}B22_1" />
<record pvName="$(Server)/CtrlFbMimocoeff/B22_2" source="llrfctrl.+{CtrlFbMimocoeff}B22_2" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/A11_1" source="llrfctrl.+{CtrlFbMimocoeffAct}A11_1" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/A11_2" source="llrfctrl.+{CtrlFbMimocoeffAct}A11_2" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B11_0" source="llrfctrl.+{CtrlFbMimocoeffAct}B11_0" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B11_1" source="llrfctrl.+{CtrlFbMimocoeffAct}B11_1" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B11_2" source="llrfctrl.+{CtrlFbMimocoeffAct}B11_2" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/A12_1" source="llrfctrl.+{CtrlFbMimocoeffAct}A12_1" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/A12_2" source="llrfctrl.+{CtrlFbMimocoeffAct}A12_2" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B12_0" source="llrfctrl.+{CtrlFbMimocoeffAct}B12_0" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B12_1" source="llrfctrl.+{CtrlFbMimocoeffAct}B12_1" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B12_2" source="llrfctrl.+{CtrlFbMimocoeffAct}B12_2" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/A21_1" source="llrfctrl.+{CtrlFbMimocoeffAct}A21_1" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/A21_2" source="llrfctrl.+{CtrlFbMimocoeffAct}A21_2" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B21_0" source="llrfctrl.+{CtrlFbMimocoeffAct}B21_0" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B21_1" source="llrfctrl.+{CtrlFbMimocoeffAct}B21_1" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B21_2" source="llrfctrl.+{CtrlFbMimocoeffAct}B21_2" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/A22_1" source="llrfctrl.+{CtrlFbMimocoeffAct}A22_1" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/A22_2" source="llrfctrl.+{CtrlFbMimocoeffAct}A22_2" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B22_0" source="llrfctrl.+{CtrlFbMimocoeffAct}B22_0" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B22_1" source="llrfctrl.+{CtrlFbMimocoeffAct}B22_1" />
<record pvName="$(Server)/CtrlFbMimocoeffAct/B22_2" source="llrfctrl.+{CtrlFbMimocoeffAct}B22_2" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A11_1" source="llrfctrl.+{CtrlFbSmithcoeff}A11_1" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A11_2" source="llrfctrl.+{CtrlFbSmithcoeff}A11_2" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B11_0" source="llrfctrl.+{CtrlFbSmithcoeff}B11_0" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B11_1" source="llrfctrl.+{CtrlFbSmithcoeff}B11_1" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B11_2" source="llrfctrl.+{CtrlFbSmithcoeff}B11_2" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A12_1" source="llrfctrl.+{CtrlFbSmithcoeff}A12_1" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A12_2" source="llrfctrl.+{CtrlFbSmithcoeff}A12_2" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B12_0" source="llrfctrl.+{CtrlFbSmithcoeff}B12_0" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B12_1" source="llrfctrl.+{CtrlFbSmithcoeff}B12_1" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B12_2" source="llrfctrl.+{CtrlFbSmithcoeff}B12_2" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A21_1" source="llrfctrl.+{CtrlFbSmithcoeff}A21_1" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A21_2" source="llrfctrl.+{CtrlFbSmithcoeff}A21_2" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B21_0" source="llrfctrl.+{CtrlFbSmithcoeff}B21_0" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B21_1" source="llrfctrl.+{CtrlFbSmithcoeff}B21_1" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B21_2" source="llrfctrl.+{CtrlFbSmithcoeff}B21_2" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A22_1" source="llrfctrl.+{CtrlFbSmithcoeff}A22_1" />
<record pvName="$(Server)/CtrlFbSmithcoeff/A22_2" source="llrfctrl.+{CtrlFbSmithcoeff}A22_2" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B22_0" source="llrfctrl.+{CtrlFbSmithcoeff}B22_0" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B22_1" source="llrfctrl.+{CtrlFbSmithcoeff}B22_1" />
<record pvName="$(Server)/CtrlFbSmithcoeff/B22_2" source="llrfctrl.+{CtrlFbSmithcoeff}B22_2" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/A11_1" source="llrfctrl.+{CtrlFbSmithcoeffAct}A11_1" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/A11_2" source="llrfctrl.+{CtrlFbSmithcoeffAct}A11_2" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B11_0" source="llrfctrl.+{CtrlFbSmithcoeffAct}B11_0" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B11_1" source="llrfctrl.+{CtrlFbSmithcoeffAct}B11_1" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B11_2" source="llrfctrl.+{CtrlFbSmithcoeffAct}B11_2" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/A12_1" source="llrfctrl.+{CtrlFbSmithcoeffAct}A12_1" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/A12_2" source="llrfctrl.+{CtrlFbSmithcoeffAct}A12_2" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B12_0" source="llrfctrl.+{CtrlFbSmithcoeffAct}B12_0" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B12_1" source="llrfctrl.+{CtrlFbSmithcoeffAct}B12_1" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B12_2" source="llrfctrl.+{CtrlFbSmithcoeffAct}B12_2" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/A21_1" source="llrfctrl.+{CtrlFbSmithcoeffAct}A21_1" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/A21_2" source="llrfctrl.+{CtrlFbSmithcoeffAct}A21_2" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B21_0" source="llrfctrl.+{CtrlFbSmithcoeffAct}B21_0" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B21_1" source="llrfctrl.+{CtrlFbSmithcoeffAct}B21_1" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B21_2" source="llrfctrl.+{CtrlFbSmithcoeffAct}B21_2" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/A22_1" source="llrfctrl.+{CtrlFbSmithcoeffAct}A22_1" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/A22_2" source="llrfctrl.+{CtrlFbSmithcoeffAct}A22_2" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B22_0" source="llrfctrl.+{CtrlFbSmithcoeffAct}B22_0" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B22_1" source="llrfctrl.+{CtrlFbSmithcoeffAct}B22_1" />
<record pvName="$(Server)/CtrlFbSmithcoeffAct/B22_2" source="llrfctrl.+{CtrlFbSmithcoeffAct}B22_2" />
<record pvName="$(Server)/CtrlPhasemodFf/timeConstant" source="llrfctrl.+{CtrlPhasemodFf}timeConstant" />
<record pvName="$(Server)/CtrlPhasemodFf/startTime" source="llrfctrl.+{CtrlPhasemodFf}startTime" />
<record pvName="$(Server)/CtrlPhasemodFf/stopTime" source="llrfctrl.+{CtrlPhasemodFf}stopTime" />
<record pvName="$(Server)/CtrlPhasemodSp/timeConstant" source="llrfctrl.+{CtrlPhasemodSp}timeConstant" />
<record pvName="$(Server)/CtrlPhasemodSp/startTime" source="llrfctrl.+{CtrlPhasemodSp}startTime" />
<record pvName="$(Server)/CtrlPhasemodSp/stopTime" source="llrfctrl.+{CtrlPhasemodSp}stopTime" />
<record pvName="$(Server)/CtrlVsCal/scale" source="llrfctrl.+{CtrlVsCal}scale" />
<record pvName="$(Server)/CtrlAperror/amplitudeLimit" source="llrfctrl.+{CtrlAperror}amplitudeLimit" />
<record pvName="$(Server)/CtrlOutTotal/limiter" source="llrfctrl.+{CtrlOutTotal}limiter" />
<record pvName="$(Server)/CtrlOutCalCadeinovc/scale" source="llrfctrl.+{CtrlOutCalCadeinovc}scale" />
<record pvName="$(Server)/CtrlOutCalManual/scale" source="llrfctrl.+{CtrlOutCalManual}scale" />
<record pvName="$(Server)/CtrlVm/attenuation" source="llrfctrl.+{CtrlVm}attenuation">
<field type="EGU" value="dB" />
</record>
<record pvName="$(Server)/CtrlFastprotection/LIMIT_HIGH" source="llrfctrl.+{CtrlFastprotection}LIMIT_HIGH" />
<record pvName="$(Server)/CtrlFastprotection/LIMIT_LOW" source="llrfctrl.+{CtrlFastprotection}LIMIT_LOW" />
<record pvName="$(Server)/CtrlFastprotection/SLOPE" source="llrfctrl.+{CtrlFastprotection}SLOPE" />
<record pvName="$(Server)/CtrlFastprotection/START" source="llrfctrl.+{CtrlFastprotection}START" />
<record pvName="$(Server)/CtrlFastprotection/STOP" source="llrfctrl.+{CtrlFastprotection}STOP" />
<record pvName="$(Server)/Cfg/bitScaling" source="llrfctrl.+{Cfg}bitScaling">
<field type="EGU" value="${gradientUnit}^-1" />
<field type="PREC" value="0" />
</record>
<record pvName="$(Server)/Cfg/QLoaded" source="llrfctrl.+{Cfg}QLoaded" />
<record pvName="$(Server)/Cfg/QLoadedFudge" source="llrfctrl.+{Cfg}QLoadedFudge" />
<record pvName="$(Server)/CfgSamplingposition/offset" source="llrfctrl.+{CfgSamplingposition}offset" />
<record pvName="$(Server)/CfgCommoncal/scale" source="llrfctrl.+{CfgCommoncal}scale" />
<record pvName="$(Server)/Ovc/manualRatio" source="llrfctrl.+{Ovc}manualRatio" />
<record pvName="$(Server)/Ovc/totalScaleMax" source="llrfctrl.+{Ovc}totalScaleMax" />
<record pvName="$(Server)/Ovc/totalScaleMin" source="llrfctrl.+{Ovc}totalScaleMin" />
<record pvName="$(Server)/OVC/OL/Scaling/gain" source="llrfctrl.+{OvcOpenloopScaling}gain" />
<record pvName="$(Server)/OVC/OL/Rotation/gain" source="llrfctrl.+{OvcOpenloopRotation}gain" />
<record pvName="$(Server)/OVC/OL/Ratio/gain" source="llrfctrl.+{OvcOpenloopRatio}gain" />
<record pvName="$(Server)/OVC/CL/Scaling/gain" source="llrfctrl.+{OvcClosedloopScaling}gain" />
<record pvName="$(Server)/OVC/CL/Rotation/gain" source="llrfctrl.+{OvcClosedloopRotation}gain" />
<record pvName="$(Server)/OVC/CL/Ratio/gain" source="llrfctrl.+{OvcClosedloopRatio}gain" />
<record pvName="$(Server)/OVC/CL/Ratio/maxLoopGainError" source="llrfctrl.+{OvcClosedloopRatio}maxLoopGainError" />
<record pvName="$(Server)/OVC/CL/Forward/gain" source="llrfctrl.+{OvcClosedloopForward}gain" />
<record pvName="$(Server)/OvcThreshold/amplitude" source="llrfctrl.+{OvcThreshold}amplitude" />
<record pvName="$(Server)/Lff/startTime" source="llrfctrl.+{Lff}startTime" />
<record pvName="$(Server)/Lff/stopTime" source="llrfctrl.+{Lff}stopTime" />
<record pvName="$(Server)/Lff/maxControlError" source="llrfctrl.+{Lff}maxControlError" />
<record pvName="$(Server)/Lff/minControlError" source="llrfctrl.+{Lff}minControlError" />
<record pvName="$(Server)/Lff/smoothingStopTime" source="llrfctrl.+{Lff}smoothingStopTime" />
<record pvName="$(Server)/UservariablesRfinfo/OL_A_SIZE" source="llrfctrl.+{UservariablesRfinfo}OL_A_SIZE" />
<record pvName="$(Server)/UservariablesRfinfo/OL_B_C_SIZE" source="llrfctrl.+{UservariablesRfinfo}OL_B_C_SIZE" />
<record pvName="$(Server)/UservariablesRfinfo/CL_A_SIZE" source="llrfctrl.+{UservariablesRfinfo}CL_A_SIZE" />
<record pvName="$(Server)/UservariablesRfinfo/CL_B_C_SIZE" source="llrfctrl.+{UservariablesRfinfo}CL_B_C_SIZE" />
</recordgroup>
<recordgroup type="ao" autosave="true"><!--EGU=°-->
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="°" />
<field type="PREC" value="3" />
<field type="PINI" value="1" />
<record pvName="$(Server)/CtrlVsCal/angle" source="llrfctrl.+{CtrlVsCal}angle" />
<record pvName="$(Server)/CtrlVsCal/performPhaseRotation" source="llrfctrl.+{CtrlVsCal}performPhaseRotation" />
<record pvName="$(Server)/CtrlOutCal/performPhaseRotation" source="llrfctrl.+{CtrlOutCal}performPhaseRotation" />
<record pvName="$(Server)/CtrlOutCalCadeinovc/angle" source="llrfctrl.+{CtrlOutCalCadeinovc}angle" />
<record pvName="$(Server)/CtrlOutCalManual/angle" source="llrfctrl.+{CtrlOutCalManual}angle" />
<record pvName="$(Server)/CtrlSp/performPhaseRotation" source="llrfctrl.+{CtrlSp}performPhaseRotation" />
<record pvName="$(Server)/CtrlSp/phaseFillingDelta" source="llrfctrl.+{CtrlSp}phaseFillingDelta" />
<record pvName="$(Server)/CtrlPhasemodFf/maximumPhaseOffset" source="llrfctrl.+{CtrlPhasemodFf}maximumPhaseOffset" />
<record pvName="$(Server)/CtrlPhasemodSp/maximumPhaseOffset" source="llrfctrl.+{CtrlPhasemodSp}maximumPhaseOffset" />
<record pvName="$(Server)/CfgCommoncal/angle" source="llrfctrl.+{CfgCommoncal}angle" />
<record pvName="$(Server)/Refphasemonitor/remoteAvgRefPhase" source="llrfctrl.+{Referencephasemonitor}remoteAverageReferencePhase" />
<record pvName="$(Server)/CtrlAperror/phaseLimit" source="llrfctrl.+{CtrlAperror}phaseLimit" />
<record pvName="$(Server)/OVC/CL/Ratio/maxLoopPhaseError" source="llrfctrl.+{OvcClosedloopRatio}maxLoopPhaseError" />
<record pvName="$(Server)/OVC/CL/Scaling/maxLoopPhaseError" source="llrfctrl.+{OvcClosedloopScaling}maxLoopPhaseError" />
</recordgroup>
<recordgroup type="ao" autosave="true"><!--EGU=${gradientUnit}-->
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="${gradientUnit}" />
<field type="PREC" value="3" />
<field type="PINI" value="1" />
<record pvName="$(Server)/CtrlSp/amplitudeLimitOperational" source="llrfctrl.+{CtrlSp}amplitudeLimitOperational" />
<record pvName="$(Server)/CtrlSp/amplitudeLimitAbsolute" source="llrfctrl.+{CtrlSp}amplitudeLimitAbsolute" />
<record pvName="$(Server)/Cfg/zeroPhaseThreshold" source="llrfctrl.+{Cfg}zeroPhaseThreshold" />
</recordgroup>
<recordgroup type="lsi" autosave="false">
<field type="SCAN" value="1 second" />
<field type="SIZV" value="255" />
<field type="INP" value="@$(APP) +{:address}" />
<record pvName="$(Server)/Ctrl/errorMessage" source="llrfctrl.+{Ctrl}errorMessage" />
<record pvName="$(Server)/ServerVersion/string" source="llrfctrl.+{ServerVersion}string" />
<record pvName="$(Server)/Cfg/gradientUnit" source="llrfctrl.+{Cfg}gradientUnit" />
<record pvName="$(Server)/Cfg/gradientUnitPerLength" source="llrfctrl.+{Cfg}gradientUnitPerLength" />
<record pvName="$(Server)/Cfg/powerUnit" source="llrfctrl.+{Cfg}powerUnit" />
<record pvName="$(Server)/Cfg/timerLocation" source="llrfctrl.+{Cfg}timerLocation" />
<record pvName="$(Server)/Cfg/extraDevices" source="llrfctrl.+{Cfg}extraDevices" />
<record pvName="$(Server)/CfgMicrodaq/outputFormat" source="llrfctrl.+{Cfg}+{Microdaq}outputFormat" />
<record pvName="$(Server)/OvcStatus/message" source="llrfctrl.+{OvcStatus}message" />
<record pvName="$(Server)/Lff/message" source="llrfctrl.+{Lff}message" />
</recordgroup>
<recordgroup type="bo" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="PINI" value="1" />
<field type="ZNAM" value="Disabled" />
<field type="ONAM" value="Enabled" />
<record pvName="$(Server)/CtrlFrequencyModulation/enable" source="llrfctrl.+{CtrlFreqMod}enable" />
<record pvName="$(Server)/CtrlSp/smoothEnable" source="llrfctrl.+{CtrlSp}smoothEnable" />
<record pvName="$(Server)/CtrlSpCorr/enable" source="llrfctrl.+{CtrlSpCorr}enable" />
<record pvName="$(Server)/CtrlFfCorr/enableUser" source="llrfctrl.+{CtrlFfCorr}enableUser" />
<record pvName="$(Server)/CtrlFfCorr/enableLFF" source="llrfctrl.+{CtrlFfCorr}enableLFF" />
</recordgroup>
<recordgroup type="bi" autosave="false">
<field type="SCAN" value=".5 second" />
<field type="INP" value="@$(APP) +{:address}" />
<record pvName="$(Server)/CtrlFf/enable_actual" source="llrfctrl.+{CtrlFf}enable_actual" />
<record pvName="$(Server)/CtrlFb/enable_actual" source="llrfctrl.+{CtrlFb}enable_actual" />
<record pvName="$(Server)/CtrlStatus/saturation" source="llrfctrl.+{CtrlStatus}saturation" />
<record pvName="$(Server)/CtrlStatus/externalInterlock" source="llrfctrl.+{CtrlStatus}externalInterlock" />
<record pvName="$(Server)/CtrlStatus/interlockLatcher" source="llrfctrl.+{CtrlStatus}interlockLatcher" />
<record pvName="$(Server)/CtrlStatus/fastProtectionActive" source="llrfctrl.+{CtrlStatus}fastProtectionActive" />
<record pvName="$(Server)/CtrlStatus/limiters" source="llrfctrl.+{CtrlStatus}limiters" />
<record pvName="$(Server)/CtrlStatus/prelimiters" source="llrfctrl.+{CtrlStatus}prelimiters" />
<record pvName="$(Server)/CtrlStatus/outputAmplitudeLimit" source="llrfctrl.+{CtrlStatus}outputAmplitudeLimit" />
<record pvName="$(Server)/CtrlStatus/controllerLimitI" source="llrfctrl.+{CtrlStatus}controllerLimitI" />
<record pvName="$(Server)/CtrlStatus/controllerLimitQ" source="llrfctrl.+{CtrlStatus}controllerLimitQ" />
<record pvName="$(Server)/CtrlStatus/feedForwardSaturationI" source="llrfctrl.+{CtrlStatus}feedForwardSaturationI" />
<record pvName="$(Server)/CtrlStatus/feedForwardSaturationQ" source="llrfctrl.+{CtrlStatus}feedForwardSaturationQ" />
<record pvName="$(Server)/CtrlStatus/gainSaturationI" source="llrfctrl.+{CtrlStatus}gainSaturationI" />
<record pvName="$(Server)/CtrlStatus/gainSaturationQ" source="llrfctrl.+{CtrlStatus}gainSaturationQ" />
<record pvName="$(Server)/CtrlStatus/offsetCompSaturI" source="llrfctrl.+{CtrlStatus}offsetCompensationSaturationI" />
<record pvName="$(Server)/CtrlStatus/offsetCompSaturQ" source="llrfctrl.+{CtrlStatus}offsetCompensationSaturationQ" />
<record pvName="$(Server)/CtrlBoardinit/bootStatus" source="llrfctrl.+{CtrlBoardinit}bootStatus" />
<record pvName="$(Server)/Adcb0Boardinit/bootStatus" source="llrfctrl.+{Adcb0Boardinit}bootStatus" />
</recordgroup>
</outputfile>
<!--This file is meant to be called for each input channel-->
<outputfile path="../../templates/db/llrfctrl-input-channel.db" autosavePath="../../templates/iocBoot/iocChimeraTKApp/llrfctrl-input-channel.req" macroReserve="12">
<field type="DTYP" value="ChimeraTK" />
<recordgroup type="aai" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{Adcb0}Channel$(CH)/+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="${pulseLength}" />
<field type="PREC" value="2" />
<record pvName="$(Server)/$(Channel)/amplitude" source="llrfctrl.+{Adcb0Ch0}amplitude" />
<record pvName="$(Server)/$(Channel)/phase" source="llrfctrl.+{Adcb0Ch0}phase" />
<record pvName="$(Server)/$(Channel)/amplitudeUncalibrated" source="llrfctrl.+{Adcb0Ch0}amplitudeUncalibrated" />
<record pvName="$(Server)/$(Channel)/phaseUncalibrated" source="llrfctrl.+{Adcb0Ch0}phaseUncalibrated" />
<record pvName="$(Server)/$(Channel)/power" source="llrfctrl.+{Adcb0Ch0}power" />
<record pvName="$(Server)/$(Channel)/rawData" source="llrfctrl.+{Adcb0Ch0}rawData">
<field type="NELM" value="${pulseLengthRaw}" />
</record>
<record pvName="$(Server)/$(Channel)/FilterCoefficients" source="llrfctrl.+{Adcb0Ch0Filter}coefficients">
<field type="INP" value="@$(APP) +{Adcb0}Channel$(CH)/+{Filter}+{:variableName}" />
<field type="NELM" value="+{:numberOfElements}" />
</record>
<record pvName="$(Server)/$(Channel)/CalibrationSineTable" source="llrfctrl.+{Adcb0Ch0Cal}sineTable">
<field type="INP" value="@$(APP) +{Adcb0}Channel$(CH)/+{Cal}+{:variableName}" />
<field type="NELM" value="${nSinCosTableSize}" />
</record>
<record pvName="$(Server)/$(Channel)/CalibrationCosineTable" source="llrfctrl.+{Adcb0Ch0Cal}cosineTable">
<field type="INP" value="@$(APP) +{Adcb0}Channel$(CH)/+{Cal}+{:variableName}" />
<field type="NELM" value="${nSinCosTableSize}" />
</record>
</recordgroup>
<recordgroup type="ai" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{Adcb0}Channel$(CH)/+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="PREC" value="2" />
<record pvName="$(Server)/$(Channel)/peakPowerFilling" source="llrfctrl.+{Adcb0Ch0}peakPowerFilling" />
<record pvName="$(Server)/$(Channel)/adcOverflowTime" source="llrfctrl.+{Adcb0Ch0}adcOverflowTime" />
</recordgroup>
<recordgroup type="aai" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{Adcb0}Channel$(CH)/+{Samples}+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="+{:numberOfElements}" />
<field type="PREC" value="2" />
<record pvName="$(Server)/$(Channel)/SamplesPhase" source="llrfctrl.+{Adcb0Ch0Samples}phase" />
<record pvName="$(Server)/$(Channel)/SamplesAmplitude" source="llrfctrl.+{Adcb0Ch0Samples}amplitude" />
<record pvName="$(Server)/$(Channel)/SamplesPower" source="llrfctrl.+{Adcb0Ch0Samples}power" />
</recordgroup>
<recordgroup type="aai" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{Adcb0}Channel$(CH)/+{Stats}+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="+{:numberOfElements}" />
<field type="PREC" value="2" />
<record pvName="$(Server)/$(Channel)/StatsAmplitudeAverage" source="llrfctrl.+{Adcb0Ch0Stats}amplitudeAverage" />
<record pvName="$(Server)/$(Channel)/StatsPhaseAverage" source="llrfctrl.+{Adcb0Ch0Stats}phaseAverage" />
<record pvName="$(Server)/$(Channel)/StatsPowerAverage" source="llrfctrl.+{Adcb0Ch0Stats}powerAverage" />
<record pvName="$(Server)/$(Channel)/StatsAmplitudeStdDev" source="llrfctrl.+{Adcb0Ch0Stats}amplitudeStandardDeviation" />
<record pvName="$(Server)/$(Channel)/StatsPhaseStdDev" source="llrfctrl.+{Adcb0Ch0Stats}phaseStandardDeviation" />
</recordgroup>
<recordgroup type="longin" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{Adcb0}Channel$(CH)/+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<record pvName="$(Server)/$(Channel)/adcFifoReset" source="llrfctrl.+{Adcb0Ch0}adcFifoReset" />
<record pvName="$(Server)/$(Channel)/adcFifoDelay" source="llrfctrl.+{Adcb0Ch0}adcFifoDelay" />
<record pvName="$(Server)/$(Channel)/channelNumber" source="llrfctrl.+{Adcb0Ch0}channelNumber" />
<record pvName="$(Server)/$(Channel)/limiterDisable" source="llrfctrl.+{Adcb0Ch0}limiterDisable" />
<record pvName="$(Server)/$(Channel)/triggerLimiterDisable" source="llrfctrl.+{Adcb0Ch0}triggerLimiterDisable" />
<record pvName="$(Server)/$(Channel)/prelimiterActive" source="llrfctrl.+{Adcb0Ch0}prelimiterActive" />
<record pvName="$(Server)/$(Channel)/limiterActive" source="llrfctrl.+{Adcb0Ch0}limiterActive" />
<record pvName="$(Server)/$(Channel)/triggerLimiterActive" source="llrfctrl.+{Adcb0Ch0}triggerLimiterActive" />
<record pvName="$(Server)/$(Channel)/adcOverflow" source="llrfctrl.+{Adcb0Ch0}adcOverflow" />
<record pvName="$(Server)/$(Channel)/daqErrorCounter" source="llrfctrl.+{Adcb0Ch0}adcOverflow" />
</recordgroup>
<recordgroup type="longout" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{Adcb0}Channel$(CH)/+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/$(Channel)/isReference" source="llrfctrl.+{Adcb0Ch0}isReference" />
<record pvName="$(Server)/$(Channel)/isForwardSignal" source="llrfctrl.+{Adcb0Ch0}isForwardSignal" />
<record pvName="$(Server)/$(Channel)/delay" source="llrfctrl.+{Adcb0Ch0}delay" />
<record pvName="$(Server)/$(Channel)/vectorSumInclude" source="llrfctrl.+{Adcb0Ch0}vectorSumInclude" />
<record pvName="$(Server)/$(Channel)/limiterEnable" source="llrfctrl.+{Adcb0Ch0}limiterEnable" />
<record pvName="$(Server)/$(Channel)/triggerLimiterEnable" source="llrfctrl.+{Adcb0Ch0}triggerLimiterEnable" />
<record pvName="$(Server)/$(Channel)/CAV_OUT_OF_OPERATION" source="llrfctrl.+{Adcb0Ch0}CAV_OUT_OF_OPERATION" />
<record pvName="$(Server)/$(Channel)/CommoncalEnable" source="llrfctrl.+{Adcb0Ch0CalCommoncal}enable">
<field type="OUT" value="@$(APP) +{Adcb0}Channel$(CH)/+{Cal}+{Commoncal}+{:variableName}" />
</record>
<record pvName="$(Server)/$(Channel)/FilterType" source="llrfctrl.+{Adcb0Ch0Filter}type">
<field type="OUT" value="@$(APP) +{Adcb0}Channel$(CH)/+{Filter}+{:variableName}" />
</record>
</recordgroup>
<recordgroup type="longout" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{Adcb0}Channel$(CH)/+{Autotune}+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/$(Channel)/AT/INHIBIT" source="llrfctrl.+{Adcb0Ch0Autotune}INHIBIT" />
<record pvName="$(Server)/$(Channel)/AT/PIEZO_INHIBIT" source="llrfctrl.+{Adcb0Ch0Autotune}PIEZO_INHIBIT" />
<record pvName="$(Server)/$(Channel)/AT/DEADSTEPS" source="llrfctrl.+{Adcb0Ch0Autotune}DEADSTEPS" />
</recordgroup>
<recordgroup type="ao" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{Adcb0}Channel$(CH)/+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/$(Channel)/powerScaling" source="llrfctrl.+{Adcb0Ch0}powerScaling" />
<record pvName="$(Server)/$(Channel)/samplingOffset" source="llrfctrl.+{Adcb0Ch0}samplingOffset" />
<record pvName="$(Server)/$(Channel)/prelimiter" source="llrfctrl.+{Adcb0Ch0}prelimiter" />
<record pvName="$(Server)/$(Channel)/limiter" source="llrfctrl.+{Adcb0Ch0}limiter" />
<record pvName="$(Server)/$(Channel)/triggerLimiter" source="llrfctrl.+{Adcb0Ch0}triggerLimiter" />
<record pvName="$(Server)/$(Channel)/attenuation" source="llrfctrl.+{Adcb0Ch0}attenuation">
<field type="EGU" value="dB" />
<field type="PREC" value="1" />
</record>
</recordgroup>
<recordgroup type="ao" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{Adcb0}Channel$(CH)/+{Cal}+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/$(Channel)/CalibrationScale" source="llrfctrl.+{Adcb0Ch0Cal}scale" />
<record pvName="$(Server)/$(Channel)/CalibrationAngle" source="llrfctrl.+{Adcb0Ch0Cal}angle" />
<record pvName="$(Server)/$(Channel)/performPhaseRotation" source="llrfctrl.+{Adcb0Ch0Cal}performPhaseRotation" />
</recordgroup>
<recordgroup type="ao" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{Adcb0}Channel$(CH)/+{Filter}+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/$(Channel)/FilterBandwidth" source="llrfctrl.+{Adcb0Ch0Filter}bandwidth" />
<record pvName="$(Server)/$(Channel)/FilterFrequency" source="llrfctrl.+{Adcb0Ch0Filter}frequency" />
</recordgroup>
<recordgroup type="ao" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{Adcb0}Channel$(CH)/+{Autotune}+{:variableName}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/$(Channel)/AT/SENSITIVITY" source="llrfctrl.+{Adcb0Ch0Autotune}SENSITIVITY" />
<record pvName="$(Server)/$(Channel)/AT/SP" source="llrfctrl.+{Adcb0Ch0Autotune}SP" />
<record pvName="$(Server)/$(Channel)/AT/PIEZO_SENSITIVITY" source="llrfctrl.+{Adcb0Ch0Autotune}PIEZO_SENSITIVITY" />
</recordgroup>
<recordgroup type="bi" autosave="false">
<field type="DTYP" value="Soft Channel" />
<field type="SCAN" value=".5 second" />
<record pvName="$(Server)/$(Channel)/showCalibrated" source="">
<field type="DESC" value="Auxiliary PV for GUI" />
<field type="INP" value="$(Server)/$(Channel)/setCalibrated.VAL" />
</record>
</recordgroup>
<recordgroup type="bo" autosave="true">
<field type="DTYP" value="Soft Channel" />
<field type="SCAN" value="Passive" />
<field type="PINI" value="1" />
<record pvName="$(Server)/$(Channel)/setCalibrated" source="">
<field type="DESC" value="Auxiliary PV for GUI" />
<field type="OUT" value="$(Server)/$(Channel)/showCalibrated.VAL" />
<field type="ZNAM" value="Uncalibrated" />
<field type="ONAM" value="Calibrated" />
</record>
</recordgroup>
</outputfile>
<outputfile path="../../templates/db/llrfctrl-no-automation.db" autosavePath="../../templates/iocBoot/iocChimeraTKApp/llrfctrl-no-automation.req" macroReserve="8">
<field type="DTYP" value="ChimeraTK" />
<recordgroup type="longout" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/CtrlPulseshape/cwMode" source="llrfctrl.+{CtrlPulseshape}cwMode" />
<record pvName="$(Server)/CtrlVmDacoffset/I" source="llrfctrl.+{CtrlVmDacoffset}I" />
<record pvName="$(Server)/CtrlVmDacoffset/Q" source="llrfctrl.+{CtrlVmDacoffset}Q" />
</recordgroup>
<recordgroup type="ao" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="PREC" value="3" />
<field type="PINI" value="1" />
<record pvName="$(Server)/CtrlSp/amplitude" source="llrfctrl.+{CtrlSp}amplitude" />
<record pvName="$(Server)/CtrlSp/phase" source="llrfctrl.+{CtrlSp}phase" />
<record pvName="$(Server)/CtrlFbGain/magnitude" source="llrfctrl.+{CtrlFbGain}magnitude" />
</recordgroup>
<recordgroup type="bo" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="PINI" value="1" />
<field type="ZNAM" value="disabled" />
<field type="ONAM" value="enabled" />
<record pvName="$(Server)/CtrlFf/enable" source="llrfctrl.+{CtrlFf}enable" />
<record pvName="$(Server)/CtrlFb/enable" source="llrfctrl.+{CtrlFb}enable" />
<record pvName="$(Server)/CtrlOutCalCadeinauto/enable" source="llrfctrl.+{CtrlOutCalCadeinauto}enable" />
</recordgroup>
</outputfile>
<outputfile path="../../templates/db/llrfctrl-automation.db" autosavePath="../../templates/iocBoot/iocChimeraTKApp/llrfctrl-automation.req" macroReserve="8">
<field type="DTYP" value="ChimeraTK" />
<recordgroup type="aai" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="FTVL" value="+{:value_type}" />
<field type="NELM" value="+{:numberOfElements}" />
<field type="PREC" value="6" />
<!--TODO Does not work with llrfctrl-server ver. 7.8. Check again for next version.
<record pvName="$(Server)/Adcb0Cfg/BOARD_TIMING_TRG_SEL" source="llrfctrl_auto.+{Adcb0Cfg}BOARD_TIMING_TRG_SEL" />
-->
<record pvName="$(Server)/Fwdvs/I" source="llrfctrl_auto.+{Fwdvs}I" />
<record pvName="$(Server)/Fwdvs/Q" source="llrfctrl_auto.+{Fwdvs}Q" />
</recordgroup>
<recordgroup type="longin" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="EGU" value="" />
<record pvName="$(Server)/CtrlPulseshape/cwMode" source="llrfctrl_auto.+{CtrlPulseshape}cwMode" />
<record pvName="$(Server)/CtrlFf/enable" source="llrfctrl_auto.+{CtrlFf}enable" />
<record pvName="$(Server)/CtrlFb/enable" source="llrfctrl_auto.+{CtrlFb}enable" />
<record pvName="$(Server)/CtrlOutCalCadeinauto/enable" source="llrfctrl_auto.+{CtrlOutCalCadeinauto}enable" />
<record pvName="$(Server)/CtrlOutCalCadeinauto/scale" source="llrfctrl_auto.+{CtrlOutCalCadeinauto}scale" />
<record pvName="$(Server)/CtrlOutCalCadeinauto/angle" source="llrfctrl_auto.+{CtrlOutCalCadeinauto}angle" />
<record pvName="$(Server)/CtrlVmDacoffset/I" source="llrfctrl_auto.+{CtrlVmDacoffset}I" />
<record pvName="$(Server)/CtrlVmDacoffset/Q" source="llrfctrl_auto.+{CtrlVmDacoffset}Q" />
<record pvName="$(Server)/Auto/currentMode" source="llrfctrl_auto.+{Auto}currentMode" />
<record pvName="$(Server)/Interlockdetection/enable" source="llrfctrl_auto.+{Interlockdetection}enable" />
<record pvName="$(Server)/Interlockdetection/reset" source="llrfctrl_auto.+{Interlockdetection}reset" />
<record pvName="$(Server)/Interlockdetection/interlockDetected" source="llrfctrl_auto.+{Interlockdetection}interlockDetected" />
<record pvName="$(Server)/Interlockdetection/interlockFWStatus" source="llrfctrl_auto.+{Interlockdetection}interlockFirmwareStatus" />
<record pvName="$(Server)/InterlockdetectionFf/enable" source="llrfctrl_auto.+{InterlockdetectionFf}enable" />
<record pvName="$(Server)/InterlockdetectionFb/enable" source="llrfctrl_auto.+{InterlockdetectionFb}enable" />
</recordgroup>
<recordgroup type="longout" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="PINI" value="1" />
<record pvName="$(Server)/Auto/requestMode" source="llrfctrl_auto.+{Auto}requestMode" />
<record pvName="$(Server)/AutoFf/enable" source="llrfctrl_auto.+{AutoFf}enable" />
<record pvName="$(Server)/AutoFb/enable" source="llrfctrl_auto.+{AutoFb}enable" />
<record pvName="$(Server)/AutoPulseshape/cwMode" source="llrfctrl_auto.+{AutoPulseshape}cwMode" />
<record pvName="$(Server)/AutoVmDacoffset/I" source="llrfctrl_auto.+{AutoVmDacoffset}I" />
<record pvName="$(Server)/AutoVmDacoffset/Q" source="llrfctrl_auto.+{AutoVmDacoffset}Q" />
<record pvName="$(Server)/AutoVmDacoffsetCal/maxIterations" source="llrfctrl_auto.+{AutoVmDacoffsetCal}maxIterations" />
<record pvName="$(Server)/AutoVmDacoffsetCal/nTriggersAverage" source="llrfctrl_auto.+{AutoVmDacoffsetCal}nTriggersAverage" />
<record pvName="$(Server)/AutoRampupOVC/maxIterations" source="llrfctrl_auto.+{AutoRampupOvc}maxIterations" />
<record pvName="$(Server)/AutoRampupOVC/rerunDuringRamp" source="llrfctrl_auto.+{AutoRampupOvc}rerunDuringRamping" />
<record pvName="$(Server)/AutoRampupOVC/debug" source="llrfctrl_auto.+{AutoRampupOvc}debug" />
</recordgroup>
<recordgroup type="ao" autosave="true">
<field type="SCAN" value="Passive" />
<field type="OUT" value="@$(APP) +{:address}" />
<field type="EGU" value="+{:unit}" />
<field type="PREC" value="3" />
<field type="PINI" value="1" />
<record pvName="$(Server)/CtrlVsDaqStats/phase" source="llrfctrl_auto.+{CtrlVsDaqStats}phase" />
<record pvName="$(Server)/CtrlErrorDaqStats/phase" source="llrfctrl_auto.+{CtrlErrorDaqStats}phase" />
<record pvName="$(Server)/AutoFbGain/magnitude" source="llrfctrl_auto.+{AutoFbGain}magnitude" />
<record pvName="$(Server)/AutoSp/amplitude" source="llrfctrl_auto.+{AutoSp}amplitude" />
<record pvName="$(Server)/AutoSp/phase" source="llrfctrl_auto.+{AutoSp}phase" />
<record pvName="$(Server)/AutoVmDacoffsetCal/maxIandQ" source="llrfctrl_auto.+{AutoVmDacoffsetCal}maxIandQ" />
<record pvName="$(Server)/AutoVmDacoffsetCal/maxAmplAftCal" source="llrfctrl_auto.+{AutoVmDacoffsetCal}maxAmplitudeAfterCalibration" />
<record pvName="$(Server)/AutoRampup/initialSetpoint" source="llrfctrl_auto.+{AutoRampup}initialSetpoint" />
<record pvName="$(Server)/AutoRampup/allowedAmplitudeExcess" source="llrfctrl_auto.+{AutoRampup}allowedAmplitudeExcess" />
<record pvName="$(Server)/AutoRampup/allowedError" source="llrfctrl_auto.+{AutoRampup}allowedError" />
<record pvName="$(Server)/AutoRampup/stepsizeSetpoint" source="llrfctrl_auto.+{AutoRampup}stepsizeSetpoint" />
<record pvName="$(Server)/AutoRampup/stepsizeGain" source="llrfctrl_auto.+{AutoRampup}stepsizeGain" />
<record pvName="$(Server)/AutoRampupOVC/maxScale" source="llrfctrl_auto.+{AutoRampupOvc}maxScale" />
<record pvName="$(Server)/AutoRampupOVC/minScale" source="llrfctrl_auto.+{AutoRampupOvc}minScale" />
<record pvName="$(Server)/AutoRampupOVC/rateScale" source="llrfctrl_auto.+{AutoRampupOvc}rateScale" />
<record pvName="$(Server)/AutoRampupOVC/ratePhase" source="llrfctrl_auto.+{AutoRampupOvc}ratePhase" />
<record pvName="$(Server)/AutoRampupOVC/targetError" source="llrfctrl_auto.+{AutoRampupOvc}targetError" />
<record pvName="$(Server)/AutoRamp/amplitudeStep" source="llrfctrl_auto.+{AutoRamp}amplitudeStep" />
<record pvName="$(Server)/AutoRamp/phaseStep" source="llrfctrl_auto.+{AutoRamp}phaseStep" />
<record pvName="$(Server)/Interlockdetection/threshold" source="llrfctrl_auto.+{Interlockdetection}threshold" />
</recordgroup>
<recordgroup type="lsi" autosave="false">
<field type="SCAN" value="1 second" />
<field type="INP" value="@$(APP) +{:address}" />
<field type="SIZV" value="255" />
<record pvName="$(Server)/Auto/errorMessage" source="llrfctrl_auto.+{Auto}errorMessage" />
</recordgroup>
</outputfile>
</EPICSdb>