diff -r 50cbed80af1a -r 425def26d5f1 db/IOCPG9520.db --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/db/IOCPG9520.db Mon Jun 10 13:56:06 2013 +0200 @@ -0,0 +1,1837 @@ +# pg9520.db Uwe Hoppe Fritz-Haber-Institut der MPG 1/2013 + +record(stringin, "$(P)$(R)GetVersion") { + field(DESC, "Get Contr. Firmware Version") + field(DTYP, "stream") + field(INP, "@pg9520.proto getVersion $(BUS)") +} + +record(ao, "$(P)$(R)Recall") { + field(DESC, "Restores the state of PG") + field(DTYP, "stream") + field(OUT, "@pg9520.proto recall $(BUS)") + field(DRVL, "0") + field(DRVH, "12") +} + +record(ao, "$(P)$(R)Save") { + field(DESC, "Store current state of PG") + field(DTYP, "stream") + field(OUT, "@pg9520.proto save $(BUS)") + field(DRVL, "1") + field(DRVH, "12") +} + +record(bo, "$(P)$(R)State") { + field(DESC, "En-/Disables all channels") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setState $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(bi, "$(P)$(R)GetState") { + field(DESC, "Get state of all channels") + field(DTYP, "stream") + field(INP, "@pg9520.proto getState $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") + field(SCAN, "2 second") +# Some commands can stop the generator + field(FLNK, "$(P)$(R)CheckState") +} + +record(calcout,"$(P)$(R)CheckState") { + field(DESC, "Update state button") + field(OOPT, "On Change") + field(INPA,"$(P)$(R)GetState NPP NMS") + field(CALC,"A") + field(OUT, "$(P)$(R)State PP NMS") +} + +record(ao, "$(P)$(R)Period") { + field(DESC, "Sets the T0 period") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPeriod $(BUS)") + field(PREC, "4") + field(DRVL, "100e-9") + field(DRVH, "5000") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserPeriod") { + field(DESC, "Sets the T0 user period") + field(OUT, "$(P)$(R)Period2BaseUnit PP NMS") + field(PREC, "6") + field(DRVL, "100e-6") + field(DRVH, "5000000") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Period2BaseUnit") { + field(DESC, "Convert Period to base unit") + field(INPA,"$(P)$(R)UserPeriod NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)Period PP NMS") +} +record(calcout,"$(P)$(R)Period2UserUnit") { + field(DESC, "Convert Period to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)Period NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserPeriod NPP NMS") +} +record(ao,"$(P)$(R)PeriodTweak") { + field(DESC, "Step of Up/Down PeriodTweak") + field(VAL, "1e0") + field(PREC,"5") +} +record(calcout,"$(P)$(R)PeriodTweakDown") { + field(DESC, "New period after Down Tweak") + field(INPA,"$(P)$(R)PeriodTweak NPP NMS") + field(INPB,"$(P)$(R)UserPeriod NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserPeriod PP NMS") +} +record(calcout,"$(P)$(R)PeriodTweakUp") { + field(DESC, "New period after Up Tweak") + field(INPA,"$(P)$(R)PeriodTweak NPP NMS") + field(INPB,"$(P)$(R)UserPeriod NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserPeriod PP NMS") +} + +record(mbbo, "$(P)$(R)Mode") { + field(DESC, "Sets the T0 mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setMode $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Single") + field(ONVL, "1") + field(TWST, "Burst") + field(TWVL, "2") + field(THST, "Duty Cycle") + field(THVL, "3") +} + +record(mbbo, "$(P)$(R)GateMode") { + field(DESC, "Sets Global Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setGateMode $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") + field(THST, "Channel") + field(THVL, "3") +} + +record(mbbo, "$(P)$(R)GateLogic") { + field(DESC, "Sets Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setGateLogic $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +} + +record(mbbo, "$(P)$(R)GateEdge") { + field(DESC, "Select which edge to use") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setGateEdge $(BUS)") + field(ZRST, "Rising") + field(ZRVL, "0") + field(ONST, "Falling") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)GateLevel") { + field(DESC, "Sets the gate threshold") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setGateLevel $(BUS)") + field(PREC, "3") + field(DRVL, "0.2") + field(DRVH, "15") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)TriggerMode") { + field(DESC, "Sets Global Trigger Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setTriggerMode $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Trigger") + field(ONVL, "1") +} + +record(mbbo, "$(P)$(R)TriggerEdge") { + field(DESC, "Select which edge to trigger") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setTriggerEdge $(BUS)") + field(ZRST, "Rising") + field(ZRVL, "0") + field(ONST, "Falling") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)TriggerLevel") { + field(DESC, "Sets the trigger threshold") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setTriggerLevel $(BUS)") + field(PREC, "3") + field(DRVL, "0.2") + field(DRVH, "15") + field(EGU, "V") +} + +record(ao,"$(P)$(R)TimeUnitCF") { + field(DESC, "ms") + field(VAL, "1000.0") +} + +#============================== Channel A ============================== + +record(bo, "$(P)$(R)StateA") { + field(DESC, "En-/Disable output pulse A") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPState(1) $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ao, "$(P)$(R)WidthA") { + field(DESC, "Width of the output pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPWidth(1) $(BUS)") + field(PREC, "8") + field(DRVL, "10e-9") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserWidthA") { + field(DESC, "User-Width of the pulse") + field(OUT, "$(P)$(R)Width2BaseUnitA PP NMS") + field(PREC, "8") + field(DRVL, "10e-6") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Width2BaseUnitA") { + field(DESC, "Convert Width to base unit") + field(INPA,"$(P)$(R)UserWidthA NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)WidthA PP NMS") +} +record(calcout,"$(P)$(R)Width2UserUnitA") { + field(DESC, "Convert Width to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)WidthA NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserWidthA NPP NMS") +} +record(ao,"$(P)$(R)WidthTweakA") { + field(DESC, "Step of Up/Down Width Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)WidthTweakDownA") { + field(DESC, "New width after Down Tweak") + field(INPA,"$(P)$(R)WidthTweakA NPP NMS") + field(INPB,"$(P)$(R)UserWidthA NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserWidthA PP NMS") +} +record(calcout,"$(P)$(R)WidthTweakUpA") { + field(DESC, "New width after Up Tweak") + field(INPA,"$(P)$(R)WidthTweakA NPP NMS") + field(INPB,"$(P)$(R)UserWidthA NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserWidthA PP NMS") +} + +record(ao, "$(P)$(R)DelayA") { + field(DESC, "Time f. start T0 to 1.edge") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPDelay(1) $(BUS)") + field(PREC, "8") + field(DRVL, "-999.99999999975") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserDelayA") { + field(DESC, "User-Delay of the pulse") + field(OUT, "$(P)$(R)Delay2BaseUnitA PP NMS") + field(PREC, "8") + field(DRVL, "-999999.99999975") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Delay2BaseUnitA") { + field(DESC, "Convert Delay to base unit") + field(INPA,"$(P)$(R)UserDelayA NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)DelayA PP NMS") +} +record(calcout,"$(P)$(R)Delay2UserUnitA") { + field(DESC, "Convert Delay to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)DelayA NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserDelayA NPP NMS") +} +record(ao,"$(P)$(R)DelayTweakA") { + field(DESC, "Step of Up/Down Delay Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)DelayTweakDownA") { + field(DESC, "New delay after Down Tweak") + field(INPA,"$(P)$(R)DelayTweakA NPP NMS") + field(INPB,"$(P)$(R)UserDelayA NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserDelayA PP NMS") +} +record(calcout,"$(P)$(R)DelayTweakUpA") { + field(DESC, "New delay after Up Tweak") + field(INPA,"$(P)$(R)DelayTweakA NPP NMS") + field(INPB,"$(P)$(R)UserDelayA NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserDelayA PP NMS") +} + +record(mbbo, "$(P)$(R)SyncA") { + field(DESC, "Selects the Sync source") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPSync(1) $(BUS)") + field(ZRST, "T0") + field(ZRVL, "0") + field(ONST, "Error") + field(ONVL, "1") + field(TWST, "B") + field(TWVL, "2") + field(THST, "C") + field(THVL, "3") + field(FRST, "D") + field(FRVL, "4") + field(FVST, "E") + field(FVVL, "5") + field(SXST, "F") + field(SXVL, "6") + field(SVST, "G") + field(SVVL, "7") + field(EIST, "H") + field(EIVL, "8") +} + +record(ao, "$(P)$(R)MultiplexerA") { + field(DESC, "Select which timers are on") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPMux(1) $(BUS)") + field(DRVL, "0") + field(DRVH, "255") +} + +record(mbbo, "$(P)$(R)PolarityA") { + field(DESC, "Set polarity of the pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPolarity(1) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Complement") + field(ONVL, "1") + field(TWST, "Inverted") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)OutputModeA") { + field(DESC, "Select Amplitude mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputMode(1) $(BUS)") + field(ZRST, "TTL") + field(ZRVL, "0") + field(ONST, "Adjustable") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)OutputAmplitudeA") { + field(DESC, "Set adjustable output level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputAmplitude(1) $(BUS)") + field(PREC, "3") + field(DRVL, "2") + field(DRVH, "20") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)GateModeA") { + field(DESC, "Sets Channel Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGate(1) $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)GateLogicA") { + field(DESC, "Set Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGateLogic(1) $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +} + + +record(mbbo, "$(P)$(R)ChannelModeA") { + field(DESC, "Set Chan. pulse series Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPCMode(1) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Single") + field(ONVL, "1") + field(TWST, "Burst") + field(TWVL, "2") +# field(THST, "D-Cycle") +# field(THVL, "3") +} + +record(ao, "$(P)$(R)BurstCounterA") { + field(DESC, "Set no. of pulses in Burst") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPBCounter(1) $(BUS)") +# field(PREC, "8") + field(DRVL, "1") + field(DRVH, "9999999") +} + + +#============================== Channel B ============================== + +record(bo, "$(P)$(R)StateB") { + field(DESC, "En-/Disable output pulse B") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPState(2) $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ao, "$(P)$(R)WidthB") { + field(DESC, "Width of the output pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPWidth(2) $(BUS)") + field(PREC, "8") + field(DRVL, "10e-9") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserWidthB") { + field(DESC, "User-Width of the pulse") + field(OUT, "$(P)$(R)Width2BaseUnitB PP NMS") + field(PREC, "8") + field(DRVL, "10e-6") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Width2BaseUnitB") { + field(DESC, "Convert Width to base unit") + field(INPA,"$(P)$(R)UserWidthB NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)WidthB PP NMS") +} +record(calcout,"$(P)$(R)Width2UserUnitB") { + field(DESC, "Convert Width to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)WidthB NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserWidthB NPP NMS") +} +record(ao,"$(P)$(R)WidthTweakB") { + field(DESC, "Step of Up/Down Width Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)WidthTweakDownB") { + field(DESC, "New width after Down Tweak") + field(INPA,"$(P)$(R)WidthTweakB NPP NMS") + field(INPB,"$(P)$(R)UserWidthB NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserWidthB PP NMS") +} +record(calcout,"$(P)$(R)WidthTweakUpB") { + field(DESC, "New width after Up Tweak") + field(INPA,"$(P)$(R)WidthTweakB NPP NMS") + field(INPB,"$(P)$(R)UserWidthB NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserWidthB PP NMS") +} + +record(ao, "$(P)$(R)DelayB") { + field(DESC, "Time f. start T0 to 1.edge") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPDelay(2) $(BUS)") + field(PREC, "8") + field(DRVL, "-999.99999999975") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserDelayB") { + field(DESC, "User-Delay of the pulse") + field(OUT, "$(P)$(R)Delay2BaseUnitB PP NMS") + field(PREC, "8") + field(DRVL, "-999999.99999975") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Delay2BaseUnitB") { + field(DESC, "Convert Delay to base unit") + field(INPA,"$(P)$(R)UserDelayB NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)DelayB PP NMS") +} +record(calcout,"$(P)$(R)Delay2UserUnitB") { + field(DESC, "Convert Delay to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)DelayB NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserDelayB NPP NMS") +} +record(ao,"$(P)$(R)DelayTweakB") { + field(DESC, "Step of Up/Down Delay Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)DelayTweakDownB") { + field(DESC, "New delay after Down Tweak") + field(INPA,"$(P)$(R)DelayTweakB NPP NMS") + field(INPB,"$(P)$(R)UserDelayB NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserDelayB PP NMS") +} +record(calcout,"$(P)$(R)DelayTweakUpB") { + field(DESC, "New delay after Up Tweak") + field(INPA,"$(P)$(R)DelayTweakB NPP NMS") + field(INPB,"$(P)$(R)UserDelayB NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserDelayB PP NMS") +} + +record(mbbo, "$(P)$(R)SyncB") { + field(DESC, "Selects the Sync source") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPSync(2) $(BUS)") + field(ZRST, "T0") + field(ZRVL, "0") + field(ONST, "A") + field(ONVL, "1") + field(TWST, "Error") + field(TWVL, "2") + field(THST, "C") + field(THVL, "3") + field(FRST, "D") + field(FRVL, "4") + field(FVST, "E") + field(FVVL, "5") + field(SXST, "F") + field(SXVL, "6") + field(SVST, "G") + field(SVVL, "7") + field(EIST, "H") + field(EIVL, "8") +} + +record(ao, "$(P)$(R)MultiplexerB") { + field(DESC, "Select which timers are on") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPMux(2) $(BUS)") + field(DRVL, "0") + field(DRVH, "255") +} + +record(mbbo, "$(P)$(R)PolarityB") { + field(DESC, "Set polarity of the pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPolarity(2) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Complement") + field(ONVL, "1") + field(TWST, "Inverted") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)OutputModeB") { + field(DESC, "Select Amplitude mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputMode(2) $(BUS)") + field(ZRST, "TTL") + field(ZRVL, "0") + field(ONST, "Adjustable") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)OutputAmplitudeB") { + field(DESC, "Set adjustable output level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputAmplitude(2) $(BUS)") + field(PREC, "3") + field(DRVL, "2") + field(DRVH, "20") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)GateModeB") { + field(DESC, "Sets Channel Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGate(2) $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)GateLogicB") { + field(DESC, "Set Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGateLogic(2) $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +} + +#============================== Channel C ============================== + +record(bo, "$(P)$(R)StateC") { + field(DESC, "En-/Disable output pulse C") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPState(3) $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ao, "$(P)$(R)WidthC") { + field(DESC, "Width of the output pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPWidth(3) $(BUS)") + field(PREC, "8") + field(DRVL, "10e-9") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserWidthC") { + field(DESC, "User-Width of the pulse") + field(OUT, "$(P)$(R)Width2BaseUnitC PP NMS") + field(PREC, "8") + field(DRVL, "10e-6") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Width2BaseUnitC") { + field(DESC, "Convert Width to base unit") + field(INPA,"$(P)$(R)UserWidthC NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)WidthC PP NMS") +} +record(calcout,"$(P)$(R)Width2UserUnitC") { + field(DESC, "Convert Width to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)WidthC NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserWidthC NPP NMS") +} +record(ao,"$(P)$(R)WidthTweakC") { + field(DESC, "Step of Up/Down Width Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)WidthTweakDownC") { + field(DESC, "New width after Down Tweak") + field(INPA,"$(P)$(R)WidthTweakC NPP NMS") + field(INPB,"$(P)$(R)UserWidthC NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserWidthC PP NMS") +} +record(calcout,"$(P)$(R)WidthTweakUpC") { + field(DESC, "New width after Up Tweak") + field(INPA,"$(P)$(R)WidthTweakC NPP NMS") + field(INPB,"$(P)$(R)UserWidthC NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserWidthC PP NMS") +} + +record(ao, "$(P)$(R)DelayC") { + field(DESC, "Time f. start T0 to 1.edge") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPDelay(3) $(BUS)") + field(PREC, "8") + field(DRVL, "-999.99999999975") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserDelayC") { + field(DESC, "User-Delay of the pulse") + field(OUT, "$(P)$(R)Delay2BaseUnitC PP NMS") + field(PREC, "8") + field(DRVL, "-999999.99999975") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Delay2BaseUnitC") { + field(DESC, "Convert Delay to base unit") + field(INPA,"$(P)$(R)UserDelayC NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)DelayC PP NMS") +} +record(calcout,"$(P)$(R)Delay2UserUnitC") { + field(DESC, "Convert Delay to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)DelayC NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserDelayC NPP NMS") +} +record(ao,"$(P)$(R)DelayTweakC") { + field(DESC, "Step of Up/Down Delay Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)DelayTweakDownC") { + field(DESC, "New delay after Down Tweak") + field(INPA,"$(P)$(R)DelayTweakC NPP NMS") + field(INPB,"$(P)$(R)UserDelayC NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserDelayC PP NMS") +} +record(calcout,"$(P)$(R)DelayTweakUpC") { + field(DESC, "New delay after Up Tweak") + field(INPA,"$(P)$(R)DelayTweakC NPP NMS") + field(INPB,"$(P)$(R)UserDelayC NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserDelayC PP NMS") +} + +record(mbbo, "$(P)$(R)SyncC") { + field(DESC, "Selects the Sync source") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPSync(3) $(BUS)") + field(ZRST, "T0") + field(ZRVL, "0") + field(ONST, "A") + field(ONVL, "1") + field(TWST, "B") + field(TWVL, "2") + field(THST, "Error") + field(THVL, "3") + field(FRST, "D") + field(FRVL, "4") + field(FVST, "E") + field(FVVL, "5") + field(SXST, "F") + field(SXVL, "6") + field(SVST, "G") + field(SVVL, "7") + field(EIST, "H") + field(EIVL, "8") +} + +record(ao, "$(P)$(R)MultiplexerC") { + field(DESC, "Select which timers are on") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPMux(3) $(BUS)") + field(DRVL, "0") + field(DRVH, "255") +} + +record(mbbo, "$(P)$(R)PolarityC") { + field(DESC, "Set polarity of the pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPolarity(3) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Complement") + field(ONVL, "1") + field(TWST, "Inverted") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)OutputModeC") { + field(DESC, "Select Amplitude mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputMode(3) $(BUS)") + field(ZRST, "TTL") + field(ZRVL, "0") + field(ONST, "Adjustable") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)OutputAmplitudeC") { + field(DESC, "Set adjustable output level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputAmplitude(3) $(BUS)") + field(PREC, "3") + field(DRVL, "2") + field(DRVH, "20") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)GateModeC") { + field(DESC, "Sets Channel Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGate(3) $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)GateLogicC") { + field(DESC, "Set Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGateLogic(3) $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +} + +#============================== Channel D ============================== + +record(bo, "$(P)$(R)StateD") { + field(DESC, "En-/Disable output pulse D") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPState(4) $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ao, "$(P)$(R)WidthD") { + field(DESC, "Width of the output pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPWidth(4) $(BUS)") + field(PREC, "8") + field(DRVL, "10e-9") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserWidthD") { + field(DESC, "User-Width of the pulse") + field(OUT, "$(P)$(R)Width2BaseUnitD PP NMS") + field(PREC, "8") + field(DRVL, "10e-6") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Width2BaseUnitD") { + field(DESC, "Convert Width to base unit") + field(INPA,"$(P)$(R)UserWidthD NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)WidthD PP NMS") +} +record(calcout,"$(P)$(R)Width2UserUnitD") { + field(DESC, "Convert Width to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)WidthD NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserWidthD NPP NMS") +} +record(ao,"$(P)$(R)WidthTweakD") { + field(DESC, "Step of Up/Down Width Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)WidthTweakDownD") { + field(DESC, "New width after Down Tweak") + field(INPA,"$(P)$(R)WidthTweakD NPP NMS") + field(INPB,"$(P)$(R)UserWidthD NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserWidthD PP NMS") +} +record(calcout,"$(P)$(R)WidthTweakUpD") { + field(DESC, "New width after Up Tweak") + field(INPA,"$(P)$(R)WidthTweakD NPP NMS") + field(INPB,"$(P)$(R)UserWidthD NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserWidthD PP NMS") +} + +record(ao, "$(P)$(R)DelayD") { + field(DESC, "Time f. start T0 to 1.edge") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPDelay(4) $(BUS)") + field(PREC, "8") + field(DRVL, "-999.99999999975") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserDelayD") { + field(DESC, "User-Delay of the pulse") + field(OUT, "$(P)$(R)Delay2BaseUnitD PP NMS") + field(PREC, "8") + field(DRVL, "-999999.99999975") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Delay2BaseUnitD") { + field(DESC, "Convert Delay to base unit") + field(INPA,"$(P)$(R)UserDelayD NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)DelayD PP NMS") +} +record(calcout,"$(P)$(R)Delay2UserUnitD") { + field(DESC, "Convert Delay to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)DelayD NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserDelayD NPP NMS") +} +record(ao,"$(P)$(R)DelayTweakD") { + field(DESC, "Step of Up/Down Delay Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)DelayTweakDownD") { + field(DESC, "New delay after Down Tweak") + field(INPA,"$(P)$(R)DelayTweakD NPP NMS") + field(INPB,"$(P)$(R)UserDelayD NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserDelayD PP NMS") +} +record(calcout,"$(P)$(R)DelayTweakUpD") { + field(DESC, "New delay after Up Tweak") + field(INPA,"$(P)$(R)DelayTweakD NPP NMS") + field(INPB,"$(P)$(R)UserDelayD NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserDelayD PP NMS") +} + +record(mbbo, "$(P)$(R)SyncD") { + field(DESC, "Selects the Sync source") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPSync(4) $(BUS)") + field(ZRST, "T0") + field(ZRVL, "0") + field(ONST, "A") + field(ONVL, "1") + field(TWST, "B") + field(TWVL, "2") + field(THST, "C") + field(THVL, "3") + field(FRST, "Error") + field(FRVL, "4") + field(FVST, "E") + field(FVVL, "5") + field(SXST, "F") + field(SXVL, "6") + field(SVST, "G") + field(SVVL, "7") + field(EIST, "H") + field(EIVL, "8") +} + +record(ao, "$(P)$(R)MultiplexerD") { + field(DESC, "Select which timers are on") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPMux(4) $(BUS)") + field(DRVL, "0") + field(DRVH, "255") +} + +record(mbbo, "$(P)$(R)PolarityD") { + field(DESC, "Set polarity of the pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPolarity(4) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Complement") + field(ONVL, "1") + field(TWST, "Inverted") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)OutputModeD") { + field(DESC, "Select Amplitude mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputMode(4) $(BUS)") + field(ZRST, "TTL") + field(ZRVL, "0") + field(ONST, "Adjustable") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)OutputAmplitudeD") { + field(DESC, "Set adjustable output level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputAmplitude(4) $(BUS)") + field(PREC, "3") + field(DRVL, "2") + field(DRVH, "20") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)GateModeD") { + field(DESC, "Sets Channel Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGate(4) $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)GateLogicD") { + field(DESC, "Set Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGateLogic(4) $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +} + +#============================== Channel E ============================== + +record(bo, "$(P)$(R)StateE") { + field(DESC, "En-/Disable output pulse E") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPState(5) $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ao, "$(P)$(R)WidthE") { + field(DESC, "Width of the output pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPWidth(5) $(BUS)") + field(PREC, "8") + field(DRVL, "10e-9") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserWidthE") { + field(DESC, "User-Width of the pulse") + field(OUT, "$(P)$(R)Width2BaseUnitE PP NMS") + field(PREC, "8") + field(DRVL, "10e-6") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Width2BaseUnitE") { + field(DESC, "Convert Width to base unit") + field(INPA,"$(P)$(R)UserWidthE NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)WidthE PP NMS") +} +record(calcout,"$(P)$(R)Width2UserUnitE") { + field(DESC, "Convert Width to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)WidthE NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserWidthE NPP NMS") +} +record(ao,"$(P)$(R)WidthTweakE") { + field(DESC, "Step of Up/Down Width Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)WidthTweakDownE") { + field(DESC, "New width after Down Tweak") + field(INPA,"$(P)$(R)WidthTweakE NPP NMS") + field(INPB,"$(P)$(R)UserWidthE NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserWidthE PP NMS") +} +record(calcout,"$(P)$(R)WidthTweakUpE") { + field(DESC, "New width after Up Tweak") + field(INPA,"$(P)$(R)WidthTweakE NPP NMS") + field(INPB,"$(P)$(R)UserWidthE NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserWidthE PP NMS") +} + +record(ao, "$(P)$(R)DelayE") { + field(DESC, "Time f. start T0 to 1.edge") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPDelay(5) $(BUS)") + field(PREC, "8") + field(DRVL, "-999.99999999975") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserDelayE") { + field(DESC, "User-Delay of the pulse") + field(OUT, "$(P)$(R)Delay2BaseUnitE PP NMS") + field(PREC, "8") + field(DRVL, "-999999.99999975") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Delay2BaseUnitE") { + field(DESC, "Convert Delay to base unit") + field(INPA,"$(P)$(R)UserDelayE NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)DelayE PP NMS") +} +record(calcout,"$(P)$(R)Delay2UserUnitE") { + field(DESC, "Convert Delay to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)DelayE NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserDelayE NPP NMS") +} +record(ao,"$(P)$(R)DelayTweakE") { + field(DESC, "Step of Up/Down Delay Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)DelayTweakDownE") { + field(DESC, "New delay after Down Tweak") + field(INPA,"$(P)$(R)DelayTweakE NPP NMS") + field(INPB,"$(P)$(R)UserDelayE NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserDelayE PP NMS") +} +record(calcout,"$(P)$(R)DelayTweakUpE") { + field(DESC, "New delay after Up Tweak") + field(INPA,"$(P)$(R)DelayTweakE NPP NMS") + field(INPB,"$(P)$(R)UserDelayE NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserDelayE PP NMS") +} + +record(mbbo, "$(P)$(R)SyncE") { + field(DESC, "Selects the Sync source") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPSync(5) $(BUS)") + field(ZRST, "T0") + field(ZRVL, "0") + field(ONST, "A") + field(ONVL, "1") + field(TWST, "B") + field(TWVL, "2") + field(THST, "C") + field(THVL, "3") + field(FRST, "D") + field(FRVL, "4") + field(FVST, "Error") + field(FVVL, "5") + field(SXST, "F") + field(SXVL, "6") + field(SVST, "G") + field(SVVL, "7") + field(EIST, "H") + field(EIVL, "8") +} + +record(ao, "$(P)$(R)MultiplexerE") { + field(DESC, "Select which timers are on") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPMux(5) $(BUS)") + field(DRVL, "0") + field(DRVH, "255") +} + +record(mbbo, "$(P)$(R)PolarityE") { + field(DESC, "Set polarity of the pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPolarity(5) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Complement") + field(ONVL, "1") + field(TWST, "Inverted") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)OutputModeE") { + field(DESC, "Select Amplitude mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputMode(5) $(BUS)") + field(ZRST, "TTL") + field(ZRVL, "0") + field(ONST, "Adjustable") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)OutputAmplitudeE") { + field(DESC, "Set adjustable output level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputAmplitude(5) $(BUS)") + field(PREC, "3") + field(DRVL, "2") + field(DRVH, "20") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)GateModeE") { + field(DESC, "Sets Channel Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGate(5) $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)GateLogicE") { + field(DESC, "Set Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGateLogic(5) $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +} + +#============================== Channel F ============================== + +record(bo, "$(P)$(R)StateF") { + field(DESC, "En-/Disable output pulse F") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPState(6) $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ao, "$(P)$(R)WidthF") { + field(DESC, "Width of the output pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPWidth(6) $(BUS)") + field(PREC, "8") + field(DRVL, "10e-9") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserWidthF") { + field(DESC, "User-Width of the pulse") + field(OUT, "$(P)$(R)Width2BaseUnitF PP NMS") + field(PREC, "8") + field(DRVL, "10e-6") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Width2BaseUnitF") { + field(DESC, "Convert Width to base unit") + field(INPA,"$(P)$(R)UserWidthF NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)WidthF PP NMS") +} +record(calcout,"$(P)$(R)Width2UserUnitF") { + field(DESC, "Convert Width to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)WidthF NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserWidthF NPP NMS") +} +record(ao,"$(P)$(R)WidthTweakF") { + field(DESC, "Step of Up/Down Width Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)WidthTweakDownF") { + field(DESC, "New width after Down Tweak") + field(INPA,"$(P)$(R)WidthTweakF NPP NMS") + field(INPB,"$(P)$(R)UserWidthF NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserWidthF PP NMS") +} +record(calcout,"$(P)$(R)WidthTweakUpF") { + field(DESC, "New width after Up Tweak") + field(INPA,"$(P)$(R)WidthTweakF NPP NMS") + field(INPB,"$(P)$(R)UserWidthF NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserWidthF PP NMS") +} + +record(ao, "$(P)$(R)DelayF") { + field(DESC, "Time f. start T0 to 1.edge") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPDelay(6) $(BUS)") + field(PREC, "8") + field(DRVL, "-999.99999999975") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserDelayF") { + field(DESC, "User-Delay of the pulse") + field(OUT, "$(P)$(R)Delay2BaseUnitF PP NMS") + field(PREC, "8") + field(DRVL, "-999999.99999975") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Delay2BaseUnitF") { + field(DESC, "Convert Delay to base unit") + field(INPA,"$(P)$(R)UserDelayF NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)DelayF PP NMS") +} +record(calcout,"$(P)$(R)Delay2UserUnitF") { + field(DESC, "Convert Delay to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)DelayF NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserDelayF NPP NMS") +} +record(ao,"$(P)$(R)DelayTweakF") { + field(DESC, "Step of Up/Down Delay Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)DelayTweakDownF") { + field(DESC, "New delay after Down Tweak") + field(INPA,"$(P)$(R)DelayTweakF NPP NMS") + field(INPB,"$(P)$(R)UserDelayF NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserDelayF PP NMS") +} +record(calcout,"$(P)$(R)DelayTweakUpF") { + field(DESC, "New delay after Up Tweak") + field(INPA,"$(P)$(R)DelayTweakF NPP NMS") + field(INPB,"$(P)$(R)UserDelayF NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserDelayF PP NMS") +} + +record(mbbo, "$(P)$(R)SyncF") { + field(DESC, "Selects the Sync source") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPSync(6) $(BUS)") + field(ZRST, "T0") + field(ZRVL, "0") + field(ONST, "A") + field(ONVL, "1") + field(TWST, "B") + field(TWVL, "2") + field(THST, "C") + field(THVL, "3") + field(FRST, "D") + field(FRVL, "4") + field(FVST, "E") + field(FVVL, "5") + field(SXST, "Error") + field(SXVL, "6") + field(SVST, "G") + field(SVVL, "7") + field(EIST, "H") + field(EIVL, "8") +} + +record(ao, "$(P)$(R)MultiplexerF") { + field(DESC, "Select which timers are on") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPMux(6) $(BUS)") + field(DRVL, "0") + field(DRVH, "255") +} + +record(mbbo, "$(P)$(R)PolarityF") { + field(DESC, "Set polarity of the pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPolarity(6) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Complement") + field(ONVL, "1") + field(TWST, "Inverted") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)OutputModeF") { + field(DESC, "Select Amplitude mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputMode(6) $(BUS)") + field(ZRST, "TTL") + field(ZRVL, "0") + field(ONST, "Adjustable") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)OutputAmplitudeF") { + field(DESC, "Set adjustable output level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputAmplitude(6) $(BUS)") + field(PREC, "3") + field(DRVL, "2") + field(DRVH, "20") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)GateModeF") { + field(DESC, "Sets Channel Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGate(6) $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)GateLogicF") { + field(DESC, "Set Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGateLogic(6) $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +} + +#============================== Channel G ============================== + +record(bo, "$(P)$(R)StateG") { + field(DESC, "En-/Disable output pulse G") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPState(7) $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ao, "$(P)$(R)WidthG") { + field(DESC, "Width of the output pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPWidth(7) $(BUS)") + field(PREC, "8") + field(DRVL, "10e-9") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserWidthG") { + field(DESC, "User-Width of the pulse") + field(OUT, "$(P)$(R)Width2BaseUnitG PP NMS") + field(PREC, "8") + field(DRVL, "10e-6") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Width2BaseUnitG") { + field(DESC, "Convert Width to base unit") + field(INPA,"$(P)$(R)UserWidthG NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)WidthG PP NMS") +} +record(calcout,"$(P)$(R)Width2UserUnitG") { + field(DESC, "Convert Width to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)WidthG NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserWidthG NPP NMS") +} +record(ao,"$(P)$(R)WidthTweakG") { + field(DESC, "Step of Up/Down Width Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)WidthTweakDownG") { + field(DESC, "New width after Down Tweak") + field(INPA,"$(P)$(R)WidthTweakG NPP NMS") + field(INPB,"$(P)$(R)UserWidthG NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserWidthG PP NMS") +} +record(calcout,"$(P)$(R)WidthTweakUpG") { + field(DESC, "New width after Up Tweak") + field(INPA,"$(P)$(R)WidthTweakG NPP NMS") + field(INPB,"$(P)$(R)UserWidthG NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserWidthG PP NMS") +} + +record(ao, "$(P)$(R)DelayG") { + field(DESC, "Time f. start T0 to 1.edge") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPDelay(7) $(BUS)") + field(PREC, "8") + field(DRVL, "-999.99999999975") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserDelayG") { + field(DESC, "User-Delay of the pulse") + field(OUT, "$(P)$(R)Delay2BaseUnitG PP NMS") + field(PREC, "8") + field(DRVL, "-999999.99999975") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Delay2BaseUnitG") { + field(DESC, "Convert Delay to base unit") + field(INPA,"$(P)$(R)UserDelayG NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)DelayG PP NMS") +} +record(calcout,"$(P)$(R)Delay2UserUnitG") { + field(DESC, "Convert Delay to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)DelayG NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserDelayG NPP NMS") +} +record(ao,"$(P)$(R)DelayTweakG") { + field(DESC, "Step of Up/Down Delay Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)DelayTweakDownG") { + field(DESC, "New delay after Down Tweak") + field(INPA,"$(P)$(R)DelayTweakG NPP NMS") + field(INPB,"$(P)$(R)UserDelayG NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserDelayG PP NMS") +} +record(calcout,"$(P)$(R)DelayTweakUpG") { + field(DESC, "New delay after Up Tweak") + field(INPA,"$(P)$(R)DelayTweakG NPP NMS") + field(INPB,"$(P)$(R)UserDelayG NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserDelayG PP NMS") +} + +record(mbbo, "$(P)$(R)SyncG") { + field(DESC, "Selects the Sync source") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPSync(7) $(BUS)") + field(ZRST, "T0") + field(ZRVL, "0") + field(ONST, "A") + field(ONVL, "1") + field(TWST, "B") + field(TWVL, "2") + field(THST, "C") + field(THVL, "3") + field(FRST, "D") + field(FRVL, "4") + field(FVST, "E") + field(FVVL, "5") + field(SXST, "F") + field(SXVL, "6") + field(SVST, "Error") + field(SVVL, "7") + field(EIST, "H") + field(EIVL, "8") +} + +record(ao, "$(P)$(R)MultiplexerG") { + field(DESC, "Select which timers are on") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPMux(7) $(BUS)") + field(DRVL, "0") + field(DRVH, "255") +} + +record(mbbo, "$(P)$(R)PolarityG") { + field(DESC, "Set polarity of the pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPolarity(7) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Complement") + field(ONVL, "1") + field(TWST, "Inverted") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)OutputModeG") { + field(DESC, "Select Amplitude mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputMode(7) $(BUS)") + field(ZRST, "TTL") + field(ZRVL, "0") + field(ONST, "Adjustable") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)OutputAmplitudeG") { + field(DESC, "Set adjustable output level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputAmplitude(7) $(BUS)") + field(PREC, "3") + field(DRVL, "2") + field(DRVH, "20") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)GateModeG") { + field(DESC, "Sets Channel Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGate(7) $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)GateLogicG") { + field(DESC, "Set Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGateLogic(7) $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +} + +#============================== Channel H ============================== + +record(bo, "$(P)$(R)StateH") { + field(DESC, "En-/Disable output pulse H") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPState(8) $(BUS)") + field(ZNAM, "Off") + field(ONAM, "On") +} + +record(ao, "$(P)$(R)WidthH") { + field(DESC, "Width of the output pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPWidth(8) $(BUS)") + field(PREC, "8") + field(DRVL, "10e-9") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserWidthH") { + field(DESC, "User-Width of the pulse") + field(OUT, "$(P)$(R)Width2BaseUnitH PP NMS") + field(PREC, "8") + field(DRVL, "10e-6") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Width2BaseUnitH") { + field(DESC, "Convert Width to base unit") + field(INPA,"$(P)$(R)UserWidthH NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)WidthH PP NMS") +} +record(calcout,"$(P)$(R)Width2UserUnitH") { + field(DESC, "Convert Width to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)WidthH NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserWidthH NPP NMS") +} +record(ao,"$(P)$(R)WidthTweakH") { + field(DESC, "Step of Up/Down Width Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)WidthTweakDownH") { + field(DESC, "New width after Down Tweak") + field(INPA,"$(P)$(R)WidthTweakH NPP NMS") + field(INPB,"$(P)$(R)UserWidthH NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserWidthH PP NMS") +} +record(calcout,"$(P)$(R)WidthTweakUpH") { + field(DESC, "New width after Up Tweak") + field(INPA,"$(P)$(R)WidthTweakH NPP NMS") + field(INPB,"$(P)$(R)UserWidthH NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserWidthH PP NMS") +} + +record(ao, "$(P)$(R)DelayH") { + field(DESC, "Time f. start T0 to 1.edge") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPDelay(8) $(BUS)") + field(PREC, "8") + field(DRVL, "-999.99999999975") + field(DRVH, "999.99999999975") + field(EGU, "sec") +} + +record(ao, "$(P)$(R)UserDelayH") { + field(DESC, "User-Delay of the pulse") + field(OUT, "$(P)$(R)Delay2BaseUnitH PP NMS") + field(PREC, "8") + field(DRVL, "-999999.99999975") + field(DRVH, "999999.99999975") + field(EGU, "ms") +} +record(calcout,"$(P)$(R)Delay2BaseUnitH") { + field(DESC, "Convert Delay to base unit") + field(INPA,"$(P)$(R)UserDelayH NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A/B") + field(OUT, "$(P)$(R)DelayH PP NMS") +} +record(calcout,"$(P)$(R)Delay2UserUnitH") { + field(DESC, "Convert Delay to user unit") + field(PINI, "YES") + field(INPA,"$(P)$(R)DelayH NPP NMS") + field(INPB,"$(P)$(R)TimeUnitCF NPP NMS") + field(CALC,"A*B") + field(OUT, "$(P)$(R)UserDelayH NPP NMS") +} +record(ao,"$(P)$(R)DelayTweakH") { + field(DESC, "Step of Up/Down Delay Tweak") + field(VAL, "1e-1") + field(PREC,"6") +} +record(calcout,"$(P)$(R)DelayTweakDownH") { + field(DESC, "New delay after Down Tweak") + field(INPA,"$(P)$(R)DelayTweakH NPP NMS") + field(INPB,"$(P)$(R)UserDelayH NPP NMS") + field(CALC,"B-A") + field(OUT, "$(P)$(R)UserDelayH PP NMS") +} +record(calcout,"$(P)$(R)DelayTweakUpH") { + field(DESC, "New delay after Up Tweak") + field(INPA,"$(P)$(R)DelayTweakH NPP NMS") + field(INPB,"$(P)$(R)UserDelayH NPP NMS") + field(CALC,"B+A") + field(OUT, "$(P)$(R)UserDelayH PP NMS") +} + +record(mbbo, "$(P)$(R)SyncH") { + field(DESC, "Selects the Sync source") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPSync(8) $(BUS)") + field(ZRST, "T0") + field(ZRVL, "0") + field(ONST, "A") + field(ONVL, "1") + field(TWST, "B") + field(TWVL, "2") + field(THST, "C") + field(THVL, "3") + field(FRST, "D") + field(FRVL, "4") + field(FVST, "E") + field(FVVL, "5") + field(SXST, "F") + field(SXVL, "6") + field(SVST, "G") + field(SVVL, "7") + field(EIST, "Error") + field(EIVL, "8") +} + +record(ao, "$(P)$(R)MultiplexerH") { + field(DESC, "Select which timers are on") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPMux(8) $(BUS)") + field(DRVL, "0") + field(DRVH, "255") +} + +record(mbbo, "$(P)$(R)PolarityH") { + field(DESC, "Set polarity of the pulse") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPolarity(8) $(BUS)") + field(ZRST, "Normal") + field(ZRVL, "0") + field(ONST, "Complement") + field(ONVL, "1") + field(TWST, "Inverted") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)OutputModeH") { + field(DESC, "Select Amplitude mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputMode(8) $(BUS)") + field(ZRST, "TTL") + field(ZRVL, "0") + field(ONST, "Adjustable") + field(ONVL, "1") +} + +record(ao, "$(P)$(R)OutputAmplitudeH") { + field(DESC, "Set adjustable output level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setOutputAmplitude(8) $(BUS)") + field(PREC, "3") + field(DRVL, "2") + field(DRVH, "20") + field(EGU, "V") +} + +record(mbbo, "$(P)$(R)GateModeH") { + field(DESC, "Sets Channel Gate Mode") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGate(8) $(BUS)") + field(ZRST, "Disable") + field(ZRVL, "0") + field(ONST, "Pulse inhibit") + field(ONVL, "1") + field(TWST, "Output inhibit") + field(TWVL, "2") +} + +record(mbbo, "$(P)$(R)GateLogicH") { + field(DESC, "Set Chan. Gate Logic Level") + field(DTYP, "stream") + field(OUT, "@pg9520.proto setPGateLogic(8) $(BUS)") + field(ZRST, "Active low") + field(ZRVL, "0") + field(ONST, "Active high") + field(ONVL, "1") +}