db/IOCPG9520.db
changeset 1 425def26d5f1
equal deleted inserted replaced
0:50cbed80af1a 1:425def26d5f1
       
     1 # pg9520.db   Uwe Hoppe   Fritz-Haber-Institut der MPG   1/2013
       
     2 
       
     3 record(stringin, "$(P)$(R)GetVersion") {
       
     4     field(DESC, "Get Contr. Firmware Version")
       
     5     field(DTYP, "stream")
       
     6     field(INP, "@pg9520.proto getVersion $(BUS)")
       
     7 }
       
     8 
       
     9 record(ao, "$(P)$(R)Recall") {
       
    10     field(DESC, "Restores the state of PG")
       
    11     field(DTYP, "stream")
       
    12     field(OUT, "@pg9520.proto recall $(BUS)")
       
    13     field(DRVL, "0")
       
    14     field(DRVH, "12")
       
    15 }
       
    16 
       
    17 record(ao, "$(P)$(R)Save") {
       
    18     field(DESC, "Store current state of PG")
       
    19     field(DTYP, "stream")
       
    20     field(OUT, "@pg9520.proto save $(BUS)")
       
    21     field(DRVL, "1")
       
    22     field(DRVH, "12")
       
    23 }
       
    24 
       
    25 record(bo, "$(P)$(R)State") {
       
    26     field(DESC, "En-/Disables all channels")
       
    27     field(DTYP, "stream")
       
    28     field(OUT,  "@pg9520.proto setState $(BUS)")
       
    29     field(ZNAM, "Off")
       
    30     field(ONAM, "On")
       
    31 }
       
    32 
       
    33 record(bi, "$(P)$(R)GetState") {
       
    34     field(DESC, "Get state of all channels")
       
    35     field(DTYP, "stream")
       
    36     field(INP,  "@pg9520.proto getState $(BUS)")
       
    37     field(ZNAM, "Off")
       
    38     field(ONAM, "On")
       
    39     field(SCAN, "2 second")
       
    40 # Some commands can stop the generator
       
    41     field(FLNK, "$(P)$(R)CheckState")
       
    42 }
       
    43 
       
    44 record(calcout,"$(P)$(R)CheckState") {
       
    45     field(DESC, "Update state button")
       
    46     field(OOPT, "On Change")
       
    47     field(INPA,"$(P)$(R)GetState NPP NMS")
       
    48     field(CALC,"A")
       
    49     field(OUT, "$(P)$(R)State PP NMS")
       
    50 }
       
    51 
       
    52 record(ao, "$(P)$(R)Period") {
       
    53     field(DESC, "Sets the T0 period")
       
    54     field(DTYP, "stream")
       
    55     field(OUT,  "@pg9520.proto setPeriod $(BUS)")
       
    56     field(PREC, "4")
       
    57     field(DRVL, "100e-9")
       
    58     field(DRVH, "5000")
       
    59     field(EGU,  "sec")
       
    60 }
       
    61 
       
    62 record(ao, "$(P)$(R)UserPeriod") {
       
    63     field(DESC, "Sets the T0 user period")
       
    64     field(OUT, "$(P)$(R)Period2BaseUnit PP NMS")
       
    65     field(PREC, "6")
       
    66     field(DRVL, "100e-6")
       
    67     field(DRVH, "5000000")
       
    68     field(EGU,  "ms")
       
    69 }
       
    70 record(calcout,"$(P)$(R)Period2BaseUnit") {
       
    71     field(DESC, "Convert Period to base unit")
       
    72     field(INPA,"$(P)$(R)UserPeriod NPP NMS")
       
    73     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
    74     field(CALC,"A/B")
       
    75     field(OUT, "$(P)$(R)Period PP NMS")
       
    76 }
       
    77 record(calcout,"$(P)$(R)Period2UserUnit") {
       
    78     field(DESC, "Convert Period to user unit")
       
    79     field(PINI, "YES")
       
    80     field(INPA,"$(P)$(R)Period NPP NMS")
       
    81     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
    82     field(CALC,"A*B")
       
    83     field(OUT, "$(P)$(R)UserPeriod NPP NMS")
       
    84 }
       
    85 record(ao,"$(P)$(R)PeriodTweak") {
       
    86     field(DESC, "Step of Up/Down PeriodTweak")
       
    87     field(VAL, "1e0")
       
    88     field(PREC,"5")
       
    89 }
       
    90 record(calcout,"$(P)$(R)PeriodTweakDown") {
       
    91     field(DESC, "New period after Down Tweak")
       
    92     field(INPA,"$(P)$(R)PeriodTweak NPP NMS")
       
    93     field(INPB,"$(P)$(R)UserPeriod NPP NMS")
       
    94     field(CALC,"B-A")
       
    95     field(OUT, "$(P)$(R)UserPeriod PP NMS")
       
    96 }
       
    97 record(calcout,"$(P)$(R)PeriodTweakUp") {
       
    98     field(DESC, "New period after Up Tweak")
       
    99     field(INPA,"$(P)$(R)PeriodTweak NPP NMS")
       
   100     field(INPB,"$(P)$(R)UserPeriod NPP NMS")
       
   101     field(CALC,"B+A")
       
   102     field(OUT, "$(P)$(R)UserPeriod PP NMS")
       
   103 }
       
   104 
       
   105 record(mbbo, "$(P)$(R)Mode") {
       
   106     field(DESC, "Sets the T0 mode")
       
   107     field(DTYP, "stream")
       
   108     field(OUT,  "@pg9520.proto setMode $(BUS)")
       
   109     field(ZRST, "Normal")
       
   110     field(ZRVL, "0")
       
   111     field(ONST, "Single")
       
   112     field(ONVL, "1")
       
   113     field(TWST, "Burst")
       
   114     field(TWVL, "2")
       
   115     field(THST, "Duty Cycle")
       
   116     field(THVL, "3")
       
   117 }
       
   118 
       
   119 record(mbbo, "$(P)$(R)GateMode") {
       
   120     field(DESC, "Sets Global Gate Mode")
       
   121     field(DTYP, "stream")
       
   122     field(OUT,  "@pg9520.proto setGateMode $(BUS)")
       
   123     field(ZRST, "Disable")
       
   124     field(ZRVL, "0")
       
   125     field(ONST, "Pulse inhibit")
       
   126     field(ONVL, "1")
       
   127     field(TWST, "Output inhibit")
       
   128     field(TWVL, "2")
       
   129     field(THST, "Channel")
       
   130     field(THVL, "3")
       
   131 }
       
   132 
       
   133 record(mbbo, "$(P)$(R)GateLogic") {
       
   134     field(DESC, "Sets Chan. Gate Logic Level")
       
   135     field(DTYP, "stream")
       
   136     field(OUT,  "@pg9520.proto setGateLogic $(BUS)")
       
   137     field(ZRST, "Active low")
       
   138     field(ZRVL, "0")
       
   139     field(ONST, "Active high")
       
   140     field(ONVL, "1")
       
   141 }
       
   142 
       
   143 record(mbbo, "$(P)$(R)GateEdge") {
       
   144     field(DESC, "Select which edge to use")
       
   145     field(DTYP, "stream")
       
   146     field(OUT,  "@pg9520.proto setGateEdge $(BUS)")
       
   147     field(ZRST, "Rising")
       
   148     field(ZRVL, "0")
       
   149     field(ONST, "Falling")
       
   150     field(ONVL, "1")
       
   151 }
       
   152 
       
   153 record(ao, "$(P)$(R)GateLevel") {
       
   154     field(DESC, "Sets the gate threshold")
       
   155     field(DTYP, "stream")
       
   156     field(OUT,  "@pg9520.proto setGateLevel $(BUS)")
       
   157     field(PREC, "3")
       
   158     field(DRVL, "0.2")
       
   159     field(DRVH, "15")
       
   160     field(EGU,  "V")
       
   161 }
       
   162 
       
   163 record(mbbo, "$(P)$(R)TriggerMode") {
       
   164     field(DESC, "Sets Global Trigger Mode")
       
   165     field(DTYP, "stream")
       
   166     field(OUT,  "@pg9520.proto setTriggerMode $(BUS)")
       
   167     field(ZRST, "Disable")
       
   168     field(ZRVL, "0")
       
   169     field(ONST, "Trigger")
       
   170     field(ONVL, "1")
       
   171 }
       
   172 
       
   173 record(mbbo, "$(P)$(R)TriggerEdge") {
       
   174     field(DESC, "Select which edge to trigger")
       
   175     field(DTYP, "stream")
       
   176     field(OUT,  "@pg9520.proto setTriggerEdge $(BUS)")
       
   177     field(ZRST, "Rising")
       
   178     field(ZRVL, "0")
       
   179     field(ONST, "Falling")
       
   180     field(ONVL, "1")
       
   181 }
       
   182 
       
   183 record(ao, "$(P)$(R)TriggerLevel") {
       
   184     field(DESC, "Sets the trigger threshold")
       
   185     field(DTYP, "stream")
       
   186     field(OUT,  "@pg9520.proto setTriggerLevel $(BUS)")
       
   187     field(PREC, "3")
       
   188     field(DRVL, "0.2")
       
   189     field(DRVH, "15")
       
   190     field(EGU,  "V")
       
   191 }
       
   192 
       
   193 record(ao,"$(P)$(R)TimeUnitCF") {
       
   194     field(DESC, "ms")
       
   195     field(VAL, "1000.0")
       
   196 }
       
   197 
       
   198 #============================== Channel A ==============================
       
   199 
       
   200 record(bo, "$(P)$(R)StateA") {
       
   201     field(DESC, "En-/Disable output pulse A")
       
   202     field(DTYP, "stream")
       
   203     field(OUT,  "@pg9520.proto setPState(1) $(BUS)")
       
   204     field(ZNAM, "Off")
       
   205     field(ONAM, "On")
       
   206 }
       
   207 
       
   208 record(ao, "$(P)$(R)WidthA") {
       
   209     field(DESC, "Width of the output pulse")
       
   210     field(DTYP, "stream")
       
   211     field(OUT,  "@pg9520.proto setPWidth(1) $(BUS)")
       
   212     field(PREC, "8")
       
   213     field(DRVL, "10e-9")
       
   214     field(DRVH, "999.99999999975")
       
   215     field(EGU,  "sec")
       
   216 }
       
   217 
       
   218 record(ao, "$(P)$(R)UserWidthA") {
       
   219     field(DESC, "User-Width of the pulse")
       
   220     field(OUT, "$(P)$(R)Width2BaseUnitA PP NMS")
       
   221     field(PREC, "8")
       
   222     field(DRVL, "10e-6")
       
   223     field(DRVH, "999999.99999975")
       
   224     field(EGU,  "ms")
       
   225 }
       
   226 record(calcout,"$(P)$(R)Width2BaseUnitA") {
       
   227     field(DESC, "Convert Width to base unit")
       
   228     field(INPA,"$(P)$(R)UserWidthA NPP NMS")
       
   229     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   230     field(CALC,"A/B")
       
   231     field(OUT, "$(P)$(R)WidthA PP NMS")
       
   232 }
       
   233 record(calcout,"$(P)$(R)Width2UserUnitA") {
       
   234     field(DESC, "Convert Width to user unit")
       
   235     field(PINI, "YES")
       
   236     field(INPA,"$(P)$(R)WidthA NPP NMS")
       
   237     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   238     field(CALC,"A*B")
       
   239     field(OUT, "$(P)$(R)UserWidthA NPP NMS")
       
   240 }
       
   241 record(ao,"$(P)$(R)WidthTweakA") {
       
   242     field(DESC, "Step of Up/Down Width Tweak")
       
   243     field(VAL, "1e-1")
       
   244     field(PREC,"6")
       
   245 }
       
   246 record(calcout,"$(P)$(R)WidthTweakDownA") {
       
   247     field(DESC, "New width after Down Tweak")
       
   248     field(INPA,"$(P)$(R)WidthTweakA NPP NMS")
       
   249     field(INPB,"$(P)$(R)UserWidthA NPP NMS")
       
   250     field(CALC,"B-A")
       
   251     field(OUT, "$(P)$(R)UserWidthA PP NMS")
       
   252 }
       
   253 record(calcout,"$(P)$(R)WidthTweakUpA") {
       
   254     field(DESC, "New width after Up Tweak")
       
   255     field(INPA,"$(P)$(R)WidthTweakA NPP NMS")
       
   256     field(INPB,"$(P)$(R)UserWidthA NPP NMS")
       
   257     field(CALC,"B+A")
       
   258     field(OUT, "$(P)$(R)UserWidthA PP NMS")
       
   259 }
       
   260 
       
   261 record(ao, "$(P)$(R)DelayA") {
       
   262     field(DESC, "Time f. start T0 to 1.edge")
       
   263     field(DTYP, "stream")
       
   264     field(OUT,  "@pg9520.proto setPDelay(1) $(BUS)")
       
   265     field(PREC, "8")
       
   266     field(DRVL, "-999.99999999975")
       
   267     field(DRVH, "999.99999999975")
       
   268     field(EGU,  "sec")
       
   269 }
       
   270 
       
   271 record(ao, "$(P)$(R)UserDelayA") {
       
   272     field(DESC, "User-Delay of the pulse")
       
   273     field(OUT, "$(P)$(R)Delay2BaseUnitA PP NMS")
       
   274     field(PREC, "8")
       
   275     field(DRVL, "-999999.99999975")
       
   276     field(DRVH, "999999.99999975")
       
   277     field(EGU,  "ms")
       
   278 }
       
   279 record(calcout,"$(P)$(R)Delay2BaseUnitA") {
       
   280     field(DESC, "Convert Delay to base unit")
       
   281     field(INPA,"$(P)$(R)UserDelayA NPP NMS")
       
   282     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   283     field(CALC,"A/B")
       
   284     field(OUT, "$(P)$(R)DelayA PP NMS")
       
   285 }
       
   286 record(calcout,"$(P)$(R)Delay2UserUnitA") {
       
   287     field(DESC, "Convert Delay to user unit")
       
   288     field(PINI, "YES")
       
   289     field(INPA,"$(P)$(R)DelayA NPP NMS")
       
   290     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   291     field(CALC,"A*B")
       
   292     field(OUT, "$(P)$(R)UserDelayA NPP NMS")
       
   293 }
       
   294 record(ao,"$(P)$(R)DelayTweakA") {
       
   295     field(DESC, "Step of Up/Down Delay Tweak")
       
   296     field(VAL, "1e-1")
       
   297     field(PREC,"6")
       
   298 }
       
   299 record(calcout,"$(P)$(R)DelayTweakDownA") {
       
   300     field(DESC, "New delay after Down Tweak")
       
   301     field(INPA,"$(P)$(R)DelayTweakA NPP NMS")
       
   302     field(INPB,"$(P)$(R)UserDelayA NPP NMS")
       
   303     field(CALC,"B-A")
       
   304     field(OUT, "$(P)$(R)UserDelayA PP NMS")
       
   305 }
       
   306 record(calcout,"$(P)$(R)DelayTweakUpA") {
       
   307     field(DESC, "New delay after Up Tweak")
       
   308     field(INPA,"$(P)$(R)DelayTweakA NPP NMS")
       
   309     field(INPB,"$(P)$(R)UserDelayA NPP NMS")
       
   310     field(CALC,"B+A")
       
   311     field(OUT, "$(P)$(R)UserDelayA PP NMS")
       
   312 }
       
   313 
       
   314 record(mbbo, "$(P)$(R)SyncA") {
       
   315     field(DESC, "Selects the Sync source")
       
   316     field(DTYP, "stream")
       
   317     field(OUT,  "@pg9520.proto setPSync(1) $(BUS)")
       
   318     field(ZRST, "T0")
       
   319     field(ZRVL, "0")
       
   320     field(ONST, "Error")
       
   321     field(ONVL, "1")
       
   322     field(TWST, "B")
       
   323     field(TWVL, "2")
       
   324     field(THST, "C")
       
   325     field(THVL, "3")
       
   326     field(FRST, "D")
       
   327     field(FRVL, "4")
       
   328     field(FVST, "E")
       
   329     field(FVVL, "5")
       
   330     field(SXST, "F")
       
   331     field(SXVL, "6")
       
   332     field(SVST, "G")
       
   333     field(SVVL, "7")
       
   334     field(EIST, "H")
       
   335     field(EIVL, "8")
       
   336 }
       
   337 
       
   338 record(ao, "$(P)$(R)MultiplexerA") {
       
   339     field(DESC, "Select which timers are on")
       
   340     field(DTYP, "stream")
       
   341     field(OUT,  "@pg9520.proto setPMux(1) $(BUS)")
       
   342     field(DRVL, "0")
       
   343     field(DRVH, "255")
       
   344 }
       
   345 
       
   346 record(mbbo, "$(P)$(R)PolarityA") {
       
   347     field(DESC, "Set polarity of the pulse")
       
   348     field(DTYP, "stream")
       
   349     field(OUT,  "@pg9520.proto setPolarity(1) $(BUS)")
       
   350     field(ZRST, "Normal")
       
   351     field(ZRVL, "0")
       
   352     field(ONST, "Complement")
       
   353     field(ONVL, "1")
       
   354     field(TWST, "Inverted")
       
   355     field(TWVL, "2")
       
   356 }
       
   357 
       
   358 record(mbbo, "$(P)$(R)OutputModeA") {
       
   359     field(DESC, "Select Amplitude mode")
       
   360     field(DTYP, "stream")
       
   361     field(OUT,  "@pg9520.proto setOutputMode(1) $(BUS)")
       
   362     field(ZRST, "TTL")
       
   363     field(ZRVL, "0")
       
   364     field(ONST, "Adjustable")
       
   365     field(ONVL, "1")
       
   366 }
       
   367 
       
   368 record(ao, "$(P)$(R)OutputAmplitudeA") {
       
   369     field(DESC, "Set adjustable output level")
       
   370     field(DTYP, "stream")
       
   371     field(OUT,  "@pg9520.proto setOutputAmplitude(1) $(BUS)")
       
   372     field(PREC, "3")
       
   373     field(DRVL, "2")
       
   374     field(DRVH, "20")
       
   375     field(EGU,  "V")
       
   376 }
       
   377 
       
   378 record(mbbo, "$(P)$(R)GateModeA") {
       
   379     field(DESC, "Sets Channel Gate Mode")
       
   380     field(DTYP, "stream")
       
   381     field(OUT,  "@pg9520.proto setPGate(1) $(BUS)")
       
   382     field(ZRST, "Disable")
       
   383     field(ZRVL, "0")
       
   384     field(ONST, "Pulse inhibit")
       
   385     field(ONVL, "1")
       
   386     field(TWST, "Output inhibit")
       
   387     field(TWVL, "2")
       
   388 }
       
   389 
       
   390 record(mbbo, "$(P)$(R)GateLogicA") {
       
   391     field(DESC, "Set Chan. Gate Logic Level")
       
   392     field(DTYP, "stream")
       
   393     field(OUT,  "@pg9520.proto setPGateLogic(1) $(BUS)")
       
   394     field(ZRST, "Active low")
       
   395     field(ZRVL, "0")
       
   396     field(ONST, "Active high")
       
   397     field(ONVL, "1")
       
   398 }
       
   399 
       
   400 
       
   401 record(mbbo, "$(P)$(R)ChannelModeA") {
       
   402     field(DESC, "Set Chan. pulse series Mode")
       
   403     field(DTYP, "stream")
       
   404     field(OUT,  "@pg9520.proto setPCMode(1) $(BUS)")
       
   405     field(ZRST, "Normal")
       
   406     field(ZRVL, "0")
       
   407     field(ONST, "Single")
       
   408     field(ONVL, "1")
       
   409     field(TWST, "Burst")
       
   410     field(TWVL, "2")
       
   411 #    field(THST, "D-Cycle")
       
   412 #    field(THVL, "3")
       
   413 }
       
   414 
       
   415 record(ao, "$(P)$(R)BurstCounterA") {
       
   416     field(DESC, "Set no. of pulses in Burst")
       
   417     field(DTYP, "stream")
       
   418     field(OUT,  "@pg9520.proto setPBCounter(1) $(BUS)")
       
   419 #    field(PREC, "8")
       
   420     field(DRVL, "1")
       
   421     field(DRVH, "9999999")
       
   422 }
       
   423 
       
   424 
       
   425 #============================== Channel B ==============================
       
   426 
       
   427 record(bo, "$(P)$(R)StateB") {
       
   428     field(DESC, "En-/Disable output pulse B")
       
   429     field(DTYP, "stream")
       
   430     field(OUT,  "@pg9520.proto setPState(2) $(BUS)")
       
   431     field(ZNAM, "Off")
       
   432     field(ONAM, "On")
       
   433 }
       
   434 
       
   435 record(ao, "$(P)$(R)WidthB") {
       
   436     field(DESC, "Width of the output pulse")
       
   437     field(DTYP, "stream")
       
   438     field(OUT,  "@pg9520.proto setPWidth(2) $(BUS)")
       
   439     field(PREC, "8")
       
   440     field(DRVL, "10e-9")
       
   441     field(DRVH, "999.99999999975")
       
   442     field(EGU,  "sec")
       
   443 }
       
   444 
       
   445 record(ao, "$(P)$(R)UserWidthB") {
       
   446     field(DESC, "User-Width of the pulse")
       
   447     field(OUT, "$(P)$(R)Width2BaseUnitB PP NMS")
       
   448     field(PREC, "8")
       
   449     field(DRVL, "10e-6")
       
   450     field(DRVH, "999999.99999975")
       
   451     field(EGU,  "ms")
       
   452 }
       
   453 record(calcout,"$(P)$(R)Width2BaseUnitB") {
       
   454     field(DESC, "Convert Width to base unit")
       
   455     field(INPA,"$(P)$(R)UserWidthB NPP NMS")
       
   456     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   457     field(CALC,"A/B")
       
   458     field(OUT, "$(P)$(R)WidthB PP NMS")
       
   459 }
       
   460 record(calcout,"$(P)$(R)Width2UserUnitB") {
       
   461     field(DESC, "Convert Width to user unit")
       
   462     field(PINI, "YES")
       
   463     field(INPA,"$(P)$(R)WidthB NPP NMS")
       
   464     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   465     field(CALC,"A*B")
       
   466     field(OUT, "$(P)$(R)UserWidthB NPP NMS")
       
   467 }
       
   468 record(ao,"$(P)$(R)WidthTweakB") {
       
   469     field(DESC, "Step of Up/Down Width Tweak")
       
   470     field(VAL, "1e-1")
       
   471     field(PREC,"6")
       
   472 }
       
   473 record(calcout,"$(P)$(R)WidthTweakDownB") {
       
   474     field(DESC, "New width after Down Tweak")
       
   475     field(INPA,"$(P)$(R)WidthTweakB NPP NMS")
       
   476     field(INPB,"$(P)$(R)UserWidthB NPP NMS")
       
   477     field(CALC,"B-A")
       
   478     field(OUT, "$(P)$(R)UserWidthB PP NMS")
       
   479 }
       
   480 record(calcout,"$(P)$(R)WidthTweakUpB") {
       
   481     field(DESC, "New width after Up Tweak")
       
   482     field(INPA,"$(P)$(R)WidthTweakB NPP NMS")
       
   483     field(INPB,"$(P)$(R)UserWidthB NPP NMS")
       
   484     field(CALC,"B+A")
       
   485     field(OUT, "$(P)$(R)UserWidthB PP NMS")
       
   486 }
       
   487 
       
   488 record(ao, "$(P)$(R)DelayB") {
       
   489     field(DESC, "Time f. start T0 to 1.edge")
       
   490     field(DTYP, "stream")
       
   491     field(OUT,  "@pg9520.proto setPDelay(2) $(BUS)")
       
   492     field(PREC, "8")
       
   493     field(DRVL, "-999.99999999975")
       
   494     field(DRVH, "999.99999999975")
       
   495     field(EGU,  "sec")
       
   496 }
       
   497 
       
   498 record(ao, "$(P)$(R)UserDelayB") {
       
   499     field(DESC, "User-Delay of the pulse")
       
   500     field(OUT, "$(P)$(R)Delay2BaseUnitB PP NMS")
       
   501     field(PREC, "8")
       
   502     field(DRVL, "-999999.99999975")
       
   503     field(DRVH, "999999.99999975")
       
   504     field(EGU,  "ms")
       
   505 }
       
   506 record(calcout,"$(P)$(R)Delay2BaseUnitB") {
       
   507     field(DESC, "Convert Delay to base unit")
       
   508     field(INPA,"$(P)$(R)UserDelayB NPP NMS")
       
   509     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   510     field(CALC,"A/B")
       
   511     field(OUT, "$(P)$(R)DelayB PP NMS")
       
   512 }
       
   513 record(calcout,"$(P)$(R)Delay2UserUnitB") {
       
   514     field(DESC, "Convert Delay to user unit")
       
   515     field(PINI, "YES")
       
   516     field(INPA,"$(P)$(R)DelayB NPP NMS")
       
   517     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   518     field(CALC,"A*B")
       
   519     field(OUT, "$(P)$(R)UserDelayB NPP NMS")
       
   520 }
       
   521 record(ao,"$(P)$(R)DelayTweakB") {
       
   522     field(DESC, "Step of Up/Down Delay Tweak")
       
   523     field(VAL, "1e-1")
       
   524     field(PREC,"6")
       
   525 }
       
   526 record(calcout,"$(P)$(R)DelayTweakDownB") {
       
   527     field(DESC, "New delay after Down Tweak")
       
   528     field(INPA,"$(P)$(R)DelayTweakB NPP NMS")
       
   529     field(INPB,"$(P)$(R)UserDelayB NPP NMS")
       
   530     field(CALC,"B-A")
       
   531     field(OUT, "$(P)$(R)UserDelayB PP NMS")
       
   532 }
       
   533 record(calcout,"$(P)$(R)DelayTweakUpB") {
       
   534     field(DESC, "New delay after Up Tweak")
       
   535     field(INPA,"$(P)$(R)DelayTweakB NPP NMS")
       
   536     field(INPB,"$(P)$(R)UserDelayB NPP NMS")
       
   537     field(CALC,"B+A")
       
   538     field(OUT, "$(P)$(R)UserDelayB PP NMS")
       
   539 }
       
   540 
       
   541 record(mbbo, "$(P)$(R)SyncB") {
       
   542     field(DESC, "Selects the Sync source")
       
   543     field(DTYP, "stream")
       
   544     field(OUT,  "@pg9520.proto setPSync(2) $(BUS)")
       
   545     field(ZRST, "T0")
       
   546     field(ZRVL, "0")
       
   547     field(ONST, "A")
       
   548     field(ONVL, "1")
       
   549     field(TWST, "Error")
       
   550     field(TWVL, "2")
       
   551     field(THST, "C")
       
   552     field(THVL, "3")
       
   553     field(FRST, "D")
       
   554     field(FRVL, "4")
       
   555     field(FVST, "E")
       
   556     field(FVVL, "5")
       
   557     field(SXST, "F")
       
   558     field(SXVL, "6")
       
   559     field(SVST, "G")
       
   560     field(SVVL, "7")
       
   561     field(EIST, "H")
       
   562     field(EIVL, "8")
       
   563 }
       
   564 
       
   565 record(ao, "$(P)$(R)MultiplexerB") {
       
   566     field(DESC, "Select which timers are on")
       
   567     field(DTYP, "stream")
       
   568     field(OUT,  "@pg9520.proto setPMux(2) $(BUS)")
       
   569     field(DRVL, "0")
       
   570     field(DRVH, "255")
       
   571 }
       
   572 
       
   573 record(mbbo, "$(P)$(R)PolarityB") {
       
   574     field(DESC, "Set polarity of the pulse")
       
   575     field(DTYP, "stream")
       
   576     field(OUT,  "@pg9520.proto setPolarity(2) $(BUS)")
       
   577     field(ZRST, "Normal")
       
   578     field(ZRVL, "0")
       
   579     field(ONST, "Complement")
       
   580     field(ONVL, "1")
       
   581     field(TWST, "Inverted")
       
   582     field(TWVL, "2")
       
   583 }
       
   584 
       
   585 record(mbbo, "$(P)$(R)OutputModeB") {
       
   586     field(DESC, "Select Amplitude mode")
       
   587     field(DTYP, "stream")
       
   588     field(OUT,  "@pg9520.proto setOutputMode(2) $(BUS)")
       
   589     field(ZRST, "TTL")
       
   590     field(ZRVL, "0")
       
   591     field(ONST, "Adjustable")
       
   592     field(ONVL, "1")
       
   593 }
       
   594 
       
   595 record(ao, "$(P)$(R)OutputAmplitudeB") {
       
   596     field(DESC, "Set adjustable output level")
       
   597     field(DTYP, "stream")
       
   598     field(OUT,  "@pg9520.proto setOutputAmplitude(2) $(BUS)")
       
   599     field(PREC, "3")
       
   600     field(DRVL, "2")
       
   601     field(DRVH, "20")
       
   602     field(EGU,  "V")
       
   603 }
       
   604 
       
   605 record(mbbo, "$(P)$(R)GateModeB") {
       
   606     field(DESC, "Sets Channel Gate Mode")
       
   607     field(DTYP, "stream")
       
   608     field(OUT,  "@pg9520.proto setPGate(2) $(BUS)")
       
   609     field(ZRST, "Disable")
       
   610     field(ZRVL, "0")
       
   611     field(ONST, "Pulse inhibit")
       
   612     field(ONVL, "1")
       
   613     field(TWST, "Output inhibit")
       
   614     field(TWVL, "2")
       
   615 }
       
   616 
       
   617 record(mbbo, "$(P)$(R)GateLogicB") {
       
   618     field(DESC, "Set Chan. Gate Logic Level")
       
   619     field(DTYP, "stream")
       
   620     field(OUT,  "@pg9520.proto setPGateLogic(2) $(BUS)")
       
   621     field(ZRST, "Active low")
       
   622     field(ZRVL, "0")
       
   623     field(ONST, "Active high")
       
   624     field(ONVL, "1")
       
   625 }
       
   626 
       
   627 #============================== Channel C ==============================
       
   628 
       
   629 record(bo, "$(P)$(R)StateC") {
       
   630     field(DESC, "En-/Disable output pulse C")
       
   631     field(DTYP, "stream")
       
   632     field(OUT,  "@pg9520.proto setPState(3) $(BUS)")
       
   633     field(ZNAM, "Off")
       
   634     field(ONAM, "On")
       
   635 }
       
   636 
       
   637 record(ao, "$(P)$(R)WidthC") {
       
   638     field(DESC, "Width of the output pulse")
       
   639     field(DTYP, "stream")
       
   640     field(OUT,  "@pg9520.proto setPWidth(3) $(BUS)")
       
   641     field(PREC, "8")
       
   642     field(DRVL, "10e-9")
       
   643     field(DRVH, "999.99999999975")
       
   644     field(EGU,  "sec")
       
   645 }
       
   646 
       
   647 record(ao, "$(P)$(R)UserWidthC") {
       
   648     field(DESC, "User-Width of the pulse")
       
   649     field(OUT, "$(P)$(R)Width2BaseUnitC PP NMS")
       
   650     field(PREC, "8")
       
   651     field(DRVL, "10e-6")
       
   652     field(DRVH, "999999.99999975")
       
   653     field(EGU,  "ms")
       
   654 }
       
   655 record(calcout,"$(P)$(R)Width2BaseUnitC") {
       
   656     field(DESC, "Convert Width to base unit")
       
   657     field(INPA,"$(P)$(R)UserWidthC NPP NMS")
       
   658     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   659     field(CALC,"A/B")
       
   660     field(OUT, "$(P)$(R)WidthC PP NMS")
       
   661 }
       
   662 record(calcout,"$(P)$(R)Width2UserUnitC") {
       
   663     field(DESC, "Convert Width to user unit")
       
   664     field(PINI, "YES")
       
   665     field(INPA,"$(P)$(R)WidthC NPP NMS")
       
   666     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   667     field(CALC,"A*B")
       
   668     field(OUT, "$(P)$(R)UserWidthC NPP NMS")
       
   669 }
       
   670 record(ao,"$(P)$(R)WidthTweakC") {
       
   671     field(DESC, "Step of Up/Down Width Tweak")
       
   672     field(VAL, "1e-1")
       
   673     field(PREC,"6")
       
   674 }
       
   675 record(calcout,"$(P)$(R)WidthTweakDownC") {
       
   676     field(DESC, "New width after Down Tweak")
       
   677     field(INPA,"$(P)$(R)WidthTweakC NPP NMS")
       
   678     field(INPB,"$(P)$(R)UserWidthC NPP NMS")
       
   679     field(CALC,"B-A")
       
   680     field(OUT, "$(P)$(R)UserWidthC PP NMS")
       
   681 }
       
   682 record(calcout,"$(P)$(R)WidthTweakUpC") {
       
   683     field(DESC, "New width after Up Tweak")
       
   684     field(INPA,"$(P)$(R)WidthTweakC NPP NMS")
       
   685     field(INPB,"$(P)$(R)UserWidthC NPP NMS")
       
   686     field(CALC,"B+A")
       
   687     field(OUT, "$(P)$(R)UserWidthC PP NMS")
       
   688 }
       
   689 
       
   690 record(ao, "$(P)$(R)DelayC") {
       
   691     field(DESC, "Time f. start T0 to 1.edge")
       
   692     field(DTYP, "stream")
       
   693     field(OUT,  "@pg9520.proto setPDelay(3) $(BUS)")
       
   694     field(PREC, "8")
       
   695     field(DRVL, "-999.99999999975")
       
   696     field(DRVH, "999.99999999975")
       
   697     field(EGU,  "sec")
       
   698 }
       
   699 
       
   700 record(ao, "$(P)$(R)UserDelayC") {
       
   701     field(DESC, "User-Delay of the pulse")
       
   702     field(OUT, "$(P)$(R)Delay2BaseUnitC PP NMS")
       
   703     field(PREC, "8")
       
   704     field(DRVL, "-999999.99999975")
       
   705     field(DRVH, "999999.99999975")
       
   706     field(EGU,  "ms")
       
   707 }
       
   708 record(calcout,"$(P)$(R)Delay2BaseUnitC") {
       
   709     field(DESC, "Convert Delay to base unit")
       
   710     field(INPA,"$(P)$(R)UserDelayC NPP NMS")
       
   711     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   712     field(CALC,"A/B")
       
   713     field(OUT, "$(P)$(R)DelayC PP NMS")
       
   714 }
       
   715 record(calcout,"$(P)$(R)Delay2UserUnitC") {
       
   716     field(DESC, "Convert Delay to user unit")
       
   717     field(PINI, "YES")
       
   718     field(INPA,"$(P)$(R)DelayC NPP NMS")
       
   719     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   720     field(CALC,"A*B")
       
   721     field(OUT, "$(P)$(R)UserDelayC NPP NMS")
       
   722 }
       
   723 record(ao,"$(P)$(R)DelayTweakC") {
       
   724     field(DESC, "Step of Up/Down Delay Tweak")
       
   725     field(VAL, "1e-1")
       
   726     field(PREC,"6")
       
   727 }
       
   728 record(calcout,"$(P)$(R)DelayTweakDownC") {
       
   729     field(DESC, "New delay after Down Tweak")
       
   730     field(INPA,"$(P)$(R)DelayTweakC NPP NMS")
       
   731     field(INPB,"$(P)$(R)UserDelayC NPP NMS")
       
   732     field(CALC,"B-A")
       
   733     field(OUT, "$(P)$(R)UserDelayC PP NMS")
       
   734 }
       
   735 record(calcout,"$(P)$(R)DelayTweakUpC") {
       
   736     field(DESC, "New delay after Up Tweak")
       
   737     field(INPA,"$(P)$(R)DelayTweakC NPP NMS")
       
   738     field(INPB,"$(P)$(R)UserDelayC NPP NMS")
       
   739     field(CALC,"B+A")
       
   740     field(OUT, "$(P)$(R)UserDelayC PP NMS")
       
   741 }
       
   742 
       
   743 record(mbbo, "$(P)$(R)SyncC") {
       
   744     field(DESC, "Selects the Sync source")
       
   745     field(DTYP, "stream")
       
   746     field(OUT,  "@pg9520.proto setPSync(3) $(BUS)")
       
   747     field(ZRST, "T0")
       
   748     field(ZRVL, "0")
       
   749     field(ONST, "A")
       
   750     field(ONVL, "1")
       
   751     field(TWST, "B")
       
   752     field(TWVL, "2")
       
   753     field(THST, "Error")
       
   754     field(THVL, "3")
       
   755     field(FRST, "D")
       
   756     field(FRVL, "4")
       
   757     field(FVST, "E")
       
   758     field(FVVL, "5")
       
   759     field(SXST, "F")
       
   760     field(SXVL, "6")
       
   761     field(SVST, "G")
       
   762     field(SVVL, "7")
       
   763     field(EIST, "H")
       
   764     field(EIVL, "8")
       
   765 }
       
   766 
       
   767 record(ao, "$(P)$(R)MultiplexerC") {
       
   768     field(DESC, "Select which timers are on")
       
   769     field(DTYP, "stream")
       
   770     field(OUT,  "@pg9520.proto setPMux(3) $(BUS)")
       
   771     field(DRVL, "0")
       
   772     field(DRVH, "255")
       
   773 }
       
   774 
       
   775 record(mbbo, "$(P)$(R)PolarityC") {
       
   776     field(DESC, "Set polarity of the pulse")
       
   777     field(DTYP, "stream")
       
   778     field(OUT,  "@pg9520.proto setPolarity(3) $(BUS)")
       
   779     field(ZRST, "Normal")
       
   780     field(ZRVL, "0")
       
   781     field(ONST, "Complement")
       
   782     field(ONVL, "1")
       
   783     field(TWST, "Inverted")
       
   784     field(TWVL, "2")
       
   785 }
       
   786 
       
   787 record(mbbo, "$(P)$(R)OutputModeC") {
       
   788     field(DESC, "Select Amplitude mode")
       
   789     field(DTYP, "stream")
       
   790     field(OUT,  "@pg9520.proto setOutputMode(3) $(BUS)")
       
   791     field(ZRST, "TTL")
       
   792     field(ZRVL, "0")
       
   793     field(ONST, "Adjustable")
       
   794     field(ONVL, "1")
       
   795 }
       
   796 
       
   797 record(ao, "$(P)$(R)OutputAmplitudeC") {
       
   798     field(DESC, "Set adjustable output level")
       
   799     field(DTYP, "stream")
       
   800     field(OUT,  "@pg9520.proto setOutputAmplitude(3) $(BUS)")
       
   801     field(PREC, "3")
       
   802     field(DRVL, "2")
       
   803     field(DRVH, "20")
       
   804     field(EGU,  "V")
       
   805 }
       
   806 
       
   807 record(mbbo, "$(P)$(R)GateModeC") {
       
   808     field(DESC, "Sets Channel Gate Mode")
       
   809     field(DTYP, "stream")
       
   810     field(OUT,  "@pg9520.proto setPGate(3) $(BUS)")
       
   811     field(ZRST, "Disable")
       
   812     field(ZRVL, "0")
       
   813     field(ONST, "Pulse inhibit")
       
   814     field(ONVL, "1")
       
   815     field(TWST, "Output inhibit")
       
   816     field(TWVL, "2")
       
   817 }
       
   818 
       
   819 record(mbbo, "$(P)$(R)GateLogicC") {
       
   820     field(DESC, "Set Chan. Gate Logic Level")
       
   821     field(DTYP, "stream")
       
   822     field(OUT,  "@pg9520.proto setPGateLogic(3) $(BUS)")
       
   823     field(ZRST, "Active low")
       
   824     field(ZRVL, "0")
       
   825     field(ONST, "Active high")
       
   826     field(ONVL, "1")
       
   827 }
       
   828 
       
   829 #============================== Channel D ==============================
       
   830 
       
   831 record(bo, "$(P)$(R)StateD") {
       
   832     field(DESC, "En-/Disable output pulse D")
       
   833     field(DTYP, "stream")
       
   834     field(OUT,  "@pg9520.proto setPState(4) $(BUS)")
       
   835     field(ZNAM, "Off")
       
   836     field(ONAM, "On")
       
   837 }
       
   838 
       
   839 record(ao, "$(P)$(R)WidthD") {
       
   840     field(DESC, "Width of the output pulse")
       
   841     field(DTYP, "stream")
       
   842     field(OUT,  "@pg9520.proto setPWidth(4) $(BUS)")
       
   843     field(PREC, "8")
       
   844     field(DRVL, "10e-9")
       
   845     field(DRVH, "999.99999999975")
       
   846     field(EGU,  "sec")
       
   847 }
       
   848 
       
   849 record(ao, "$(P)$(R)UserWidthD") {
       
   850     field(DESC, "User-Width of the pulse")
       
   851     field(OUT, "$(P)$(R)Width2BaseUnitD PP NMS")
       
   852     field(PREC, "8")
       
   853     field(DRVL, "10e-6")
       
   854     field(DRVH, "999999.99999975")
       
   855     field(EGU,  "ms")
       
   856 }
       
   857 record(calcout,"$(P)$(R)Width2BaseUnitD") {
       
   858     field(DESC, "Convert Width to base unit")
       
   859     field(INPA,"$(P)$(R)UserWidthD NPP NMS")
       
   860     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   861     field(CALC,"A/B")
       
   862     field(OUT, "$(P)$(R)WidthD PP NMS")
       
   863 }
       
   864 record(calcout,"$(P)$(R)Width2UserUnitD") {
       
   865     field(DESC, "Convert Width to user unit")
       
   866     field(PINI, "YES")
       
   867     field(INPA,"$(P)$(R)WidthD NPP NMS")
       
   868     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   869     field(CALC,"A*B")
       
   870     field(OUT, "$(P)$(R)UserWidthD NPP NMS")
       
   871 }
       
   872 record(ao,"$(P)$(R)WidthTweakD") {
       
   873     field(DESC, "Step of Up/Down Width Tweak")
       
   874     field(VAL, "1e-1")
       
   875     field(PREC,"6")
       
   876 }
       
   877 record(calcout,"$(P)$(R)WidthTweakDownD") {
       
   878     field(DESC, "New width after Down Tweak")
       
   879     field(INPA,"$(P)$(R)WidthTweakD NPP NMS")
       
   880     field(INPB,"$(P)$(R)UserWidthD NPP NMS")
       
   881     field(CALC,"B-A")
       
   882     field(OUT, "$(P)$(R)UserWidthD PP NMS")
       
   883 }
       
   884 record(calcout,"$(P)$(R)WidthTweakUpD") {
       
   885     field(DESC, "New width after Up Tweak")
       
   886     field(INPA,"$(P)$(R)WidthTweakD NPP NMS")
       
   887     field(INPB,"$(P)$(R)UserWidthD NPP NMS")
       
   888     field(CALC,"B+A")
       
   889     field(OUT, "$(P)$(R)UserWidthD PP NMS")
       
   890 }
       
   891 
       
   892 record(ao, "$(P)$(R)DelayD") {
       
   893     field(DESC, "Time f. start T0 to 1.edge")
       
   894     field(DTYP, "stream")
       
   895     field(OUT,  "@pg9520.proto setPDelay(4) $(BUS)")
       
   896     field(PREC, "8")
       
   897     field(DRVL, "-999.99999999975")
       
   898     field(DRVH, "999.99999999975")
       
   899     field(EGU,  "sec")
       
   900 }
       
   901 
       
   902 record(ao, "$(P)$(R)UserDelayD") {
       
   903     field(DESC, "User-Delay of the pulse")
       
   904     field(OUT, "$(P)$(R)Delay2BaseUnitD PP NMS")
       
   905     field(PREC, "8")
       
   906     field(DRVL, "-999999.99999975")
       
   907     field(DRVH, "999999.99999975")
       
   908     field(EGU,  "ms")
       
   909 }
       
   910 record(calcout,"$(P)$(R)Delay2BaseUnitD") {
       
   911     field(DESC, "Convert Delay to base unit")
       
   912     field(INPA,"$(P)$(R)UserDelayD NPP NMS")
       
   913     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   914     field(CALC,"A/B")
       
   915     field(OUT, "$(P)$(R)DelayD PP NMS")
       
   916 }
       
   917 record(calcout,"$(P)$(R)Delay2UserUnitD") {
       
   918     field(DESC, "Convert Delay to user unit")
       
   919     field(PINI, "YES")
       
   920     field(INPA,"$(P)$(R)DelayD NPP NMS")
       
   921     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
   922     field(CALC,"A*B")
       
   923     field(OUT, "$(P)$(R)UserDelayD NPP NMS")
       
   924 }
       
   925 record(ao,"$(P)$(R)DelayTweakD") {
       
   926     field(DESC, "Step of Up/Down Delay Tweak")
       
   927     field(VAL, "1e-1")
       
   928     field(PREC,"6")
       
   929 }
       
   930 record(calcout,"$(P)$(R)DelayTweakDownD") {
       
   931     field(DESC, "New delay after Down Tweak")
       
   932     field(INPA,"$(P)$(R)DelayTweakD NPP NMS")
       
   933     field(INPB,"$(P)$(R)UserDelayD NPP NMS")
       
   934     field(CALC,"B-A")
       
   935     field(OUT, "$(P)$(R)UserDelayD PP NMS")
       
   936 }
       
   937 record(calcout,"$(P)$(R)DelayTweakUpD") {
       
   938     field(DESC, "New delay after Up Tweak")
       
   939     field(INPA,"$(P)$(R)DelayTweakD NPP NMS")
       
   940     field(INPB,"$(P)$(R)UserDelayD NPP NMS")
       
   941     field(CALC,"B+A")
       
   942     field(OUT, "$(P)$(R)UserDelayD PP NMS")
       
   943 }
       
   944 
       
   945 record(mbbo, "$(P)$(R)SyncD") {
       
   946     field(DESC, "Selects the Sync source")
       
   947     field(DTYP, "stream")
       
   948     field(OUT,  "@pg9520.proto setPSync(4) $(BUS)")
       
   949     field(ZRST, "T0")
       
   950     field(ZRVL, "0")
       
   951     field(ONST, "A")
       
   952     field(ONVL, "1")
       
   953     field(TWST, "B")
       
   954     field(TWVL, "2")
       
   955     field(THST, "C")
       
   956     field(THVL, "3")
       
   957     field(FRST, "Error")
       
   958     field(FRVL, "4")
       
   959     field(FVST, "E")
       
   960     field(FVVL, "5")
       
   961     field(SXST, "F")
       
   962     field(SXVL, "6")
       
   963     field(SVST, "G")
       
   964     field(SVVL, "7")
       
   965     field(EIST, "H")
       
   966     field(EIVL, "8")
       
   967 }
       
   968 
       
   969 record(ao, "$(P)$(R)MultiplexerD") {
       
   970     field(DESC, "Select which timers are on")
       
   971     field(DTYP, "stream")
       
   972     field(OUT,  "@pg9520.proto setPMux(4) $(BUS)")
       
   973     field(DRVL, "0")
       
   974     field(DRVH, "255")
       
   975 }
       
   976 
       
   977 record(mbbo, "$(P)$(R)PolarityD") {
       
   978     field(DESC, "Set polarity of the pulse")
       
   979     field(DTYP, "stream")
       
   980     field(OUT,  "@pg9520.proto setPolarity(4) $(BUS)")
       
   981     field(ZRST, "Normal")
       
   982     field(ZRVL, "0")
       
   983     field(ONST, "Complement")
       
   984     field(ONVL, "1")
       
   985     field(TWST, "Inverted")
       
   986     field(TWVL, "2")
       
   987 }
       
   988 
       
   989 record(mbbo, "$(P)$(R)OutputModeD") {
       
   990     field(DESC, "Select Amplitude mode")
       
   991     field(DTYP, "stream")
       
   992     field(OUT,  "@pg9520.proto setOutputMode(4) $(BUS)")
       
   993     field(ZRST, "TTL")
       
   994     field(ZRVL, "0")
       
   995     field(ONST, "Adjustable")
       
   996     field(ONVL, "1")
       
   997 }
       
   998 
       
   999 record(ao, "$(P)$(R)OutputAmplitudeD") {
       
  1000     field(DESC, "Set adjustable output level")
       
  1001     field(DTYP, "stream")
       
  1002     field(OUT,  "@pg9520.proto setOutputAmplitude(4) $(BUS)")
       
  1003     field(PREC, "3")
       
  1004     field(DRVL, "2")
       
  1005     field(DRVH, "20")
       
  1006     field(EGU,  "V")
       
  1007 }
       
  1008 
       
  1009 record(mbbo, "$(P)$(R)GateModeD") {
       
  1010     field(DESC, "Sets Channel Gate Mode")
       
  1011     field(DTYP, "stream")
       
  1012     field(OUT,  "@pg9520.proto setPGate(4) $(BUS)")
       
  1013     field(ZRST, "Disable")
       
  1014     field(ZRVL, "0")
       
  1015     field(ONST, "Pulse inhibit")
       
  1016     field(ONVL, "1")
       
  1017     field(TWST, "Output inhibit")
       
  1018     field(TWVL, "2")
       
  1019 }
       
  1020 
       
  1021 record(mbbo, "$(P)$(R)GateLogicD") {
       
  1022     field(DESC, "Set Chan. Gate Logic Level")
       
  1023     field(DTYP, "stream")
       
  1024     field(OUT,  "@pg9520.proto setPGateLogic(4) $(BUS)")
       
  1025     field(ZRST, "Active low")
       
  1026     field(ZRVL, "0")
       
  1027     field(ONST, "Active high")
       
  1028     field(ONVL, "1")
       
  1029 }
       
  1030 
       
  1031 #============================== Channel E ==============================
       
  1032 
       
  1033 record(bo, "$(P)$(R)StateE") {
       
  1034     field(DESC, "En-/Disable output pulse E")
       
  1035     field(DTYP, "stream")
       
  1036     field(OUT,  "@pg9520.proto setPState(5) $(BUS)")
       
  1037     field(ZNAM, "Off")
       
  1038     field(ONAM, "On")
       
  1039 }
       
  1040 
       
  1041 record(ao, "$(P)$(R)WidthE") {
       
  1042     field(DESC, "Width of the output pulse")
       
  1043     field(DTYP, "stream")
       
  1044     field(OUT,  "@pg9520.proto setPWidth(5) $(BUS)")
       
  1045     field(PREC, "8")
       
  1046     field(DRVL, "10e-9")
       
  1047     field(DRVH, "999.99999999975")
       
  1048     field(EGU,  "sec")
       
  1049 }
       
  1050 
       
  1051 record(ao, "$(P)$(R)UserWidthE") {
       
  1052     field(DESC, "User-Width of the pulse")
       
  1053     field(OUT, "$(P)$(R)Width2BaseUnitE PP NMS")
       
  1054     field(PREC, "8")
       
  1055     field(DRVL, "10e-6")
       
  1056     field(DRVH, "999999.99999975")
       
  1057     field(EGU,  "ms")
       
  1058 }
       
  1059 record(calcout,"$(P)$(R)Width2BaseUnitE") {
       
  1060     field(DESC, "Convert Width to base unit")
       
  1061     field(INPA,"$(P)$(R)UserWidthE NPP NMS")
       
  1062     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1063     field(CALC,"A/B")
       
  1064     field(OUT, "$(P)$(R)WidthE PP NMS")
       
  1065 }
       
  1066 record(calcout,"$(P)$(R)Width2UserUnitE") {
       
  1067     field(DESC, "Convert Width to user unit")
       
  1068     field(PINI, "YES")
       
  1069     field(INPA,"$(P)$(R)WidthE NPP NMS")
       
  1070     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1071     field(CALC,"A*B")
       
  1072     field(OUT, "$(P)$(R)UserWidthE NPP NMS")
       
  1073 }
       
  1074 record(ao,"$(P)$(R)WidthTweakE") {
       
  1075     field(DESC, "Step of Up/Down Width Tweak")
       
  1076     field(VAL, "1e-1")
       
  1077     field(PREC,"6")
       
  1078 }
       
  1079 record(calcout,"$(P)$(R)WidthTweakDownE") {
       
  1080     field(DESC, "New width after Down Tweak")
       
  1081     field(INPA,"$(P)$(R)WidthTweakE NPP NMS")
       
  1082     field(INPB,"$(P)$(R)UserWidthE NPP NMS")
       
  1083     field(CALC,"B-A")
       
  1084     field(OUT, "$(P)$(R)UserWidthE PP NMS")
       
  1085 }
       
  1086 record(calcout,"$(P)$(R)WidthTweakUpE") {
       
  1087     field(DESC, "New width after Up Tweak")
       
  1088     field(INPA,"$(P)$(R)WidthTweakE NPP NMS")
       
  1089     field(INPB,"$(P)$(R)UserWidthE NPP NMS")
       
  1090     field(CALC,"B+A")
       
  1091     field(OUT, "$(P)$(R)UserWidthE PP NMS")
       
  1092 }
       
  1093 
       
  1094 record(ao, "$(P)$(R)DelayE") {
       
  1095     field(DESC, "Time f. start T0 to 1.edge")
       
  1096     field(DTYP, "stream")
       
  1097     field(OUT,  "@pg9520.proto setPDelay(5) $(BUS)")
       
  1098     field(PREC, "8")
       
  1099     field(DRVL, "-999.99999999975")
       
  1100     field(DRVH, "999.99999999975")
       
  1101     field(EGU,  "sec")
       
  1102 }
       
  1103 
       
  1104 record(ao, "$(P)$(R)UserDelayE") {
       
  1105     field(DESC, "User-Delay of the pulse")
       
  1106     field(OUT, "$(P)$(R)Delay2BaseUnitE PP NMS")
       
  1107     field(PREC, "8")
       
  1108     field(DRVL, "-999999.99999975")
       
  1109     field(DRVH, "999999.99999975")
       
  1110     field(EGU,  "ms")
       
  1111 }
       
  1112 record(calcout,"$(P)$(R)Delay2BaseUnitE") {
       
  1113     field(DESC, "Convert Delay to base unit")
       
  1114     field(INPA,"$(P)$(R)UserDelayE NPP NMS")
       
  1115     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1116     field(CALC,"A/B")
       
  1117     field(OUT, "$(P)$(R)DelayE PP NMS")
       
  1118 }
       
  1119 record(calcout,"$(P)$(R)Delay2UserUnitE") {
       
  1120     field(DESC, "Convert Delay to user unit")
       
  1121     field(PINI, "YES")
       
  1122     field(INPA,"$(P)$(R)DelayE NPP NMS")
       
  1123     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1124     field(CALC,"A*B")
       
  1125     field(OUT, "$(P)$(R)UserDelayE NPP NMS")
       
  1126 }
       
  1127 record(ao,"$(P)$(R)DelayTweakE") {
       
  1128     field(DESC, "Step of Up/Down Delay Tweak")
       
  1129     field(VAL, "1e-1")
       
  1130     field(PREC,"6")
       
  1131 }
       
  1132 record(calcout,"$(P)$(R)DelayTweakDownE") {
       
  1133     field(DESC, "New delay after Down Tweak")
       
  1134     field(INPA,"$(P)$(R)DelayTweakE NPP NMS")
       
  1135     field(INPB,"$(P)$(R)UserDelayE NPP NMS")
       
  1136     field(CALC,"B-A")
       
  1137     field(OUT, "$(P)$(R)UserDelayE PP NMS")
       
  1138 }
       
  1139 record(calcout,"$(P)$(R)DelayTweakUpE") {
       
  1140     field(DESC, "New delay after Up Tweak")
       
  1141     field(INPA,"$(P)$(R)DelayTweakE NPP NMS")
       
  1142     field(INPB,"$(P)$(R)UserDelayE NPP NMS")
       
  1143     field(CALC,"B+A")
       
  1144     field(OUT, "$(P)$(R)UserDelayE PP NMS")
       
  1145 }
       
  1146 
       
  1147 record(mbbo, "$(P)$(R)SyncE") {
       
  1148     field(DESC, "Selects the Sync source")
       
  1149     field(DTYP, "stream")
       
  1150     field(OUT,  "@pg9520.proto setPSync(5) $(BUS)")
       
  1151     field(ZRST, "T0")
       
  1152     field(ZRVL, "0")
       
  1153     field(ONST, "A")
       
  1154     field(ONVL, "1")
       
  1155     field(TWST, "B")
       
  1156     field(TWVL, "2")
       
  1157     field(THST, "C")
       
  1158     field(THVL, "3")
       
  1159     field(FRST, "D")
       
  1160     field(FRVL, "4")
       
  1161     field(FVST, "Error")
       
  1162     field(FVVL, "5")
       
  1163     field(SXST, "F")
       
  1164     field(SXVL, "6")
       
  1165     field(SVST, "G")
       
  1166     field(SVVL, "7")
       
  1167     field(EIST, "H")
       
  1168     field(EIVL, "8")
       
  1169 }
       
  1170 
       
  1171 record(ao, "$(P)$(R)MultiplexerE") {
       
  1172     field(DESC, "Select which timers are on")
       
  1173     field(DTYP, "stream")
       
  1174     field(OUT,  "@pg9520.proto setPMux(5) $(BUS)")
       
  1175     field(DRVL, "0")
       
  1176     field(DRVH, "255")
       
  1177 }
       
  1178 
       
  1179 record(mbbo, "$(P)$(R)PolarityE") {
       
  1180     field(DESC, "Set polarity of the pulse")
       
  1181     field(DTYP, "stream")
       
  1182     field(OUT,  "@pg9520.proto setPolarity(5) $(BUS)")
       
  1183     field(ZRST, "Normal")
       
  1184     field(ZRVL, "0")
       
  1185     field(ONST, "Complement")
       
  1186     field(ONVL, "1")
       
  1187     field(TWST, "Inverted")
       
  1188     field(TWVL, "2")
       
  1189 }
       
  1190 
       
  1191 record(mbbo, "$(P)$(R)OutputModeE") {
       
  1192     field(DESC, "Select Amplitude mode")
       
  1193     field(DTYP, "stream")
       
  1194     field(OUT,  "@pg9520.proto setOutputMode(5) $(BUS)")
       
  1195     field(ZRST, "TTL")
       
  1196     field(ZRVL, "0")
       
  1197     field(ONST, "Adjustable")
       
  1198     field(ONVL, "1")
       
  1199 }
       
  1200 
       
  1201 record(ao, "$(P)$(R)OutputAmplitudeE") {
       
  1202     field(DESC, "Set adjustable output level")
       
  1203     field(DTYP, "stream")
       
  1204     field(OUT,  "@pg9520.proto setOutputAmplitude(5) $(BUS)")
       
  1205     field(PREC, "3")
       
  1206     field(DRVL, "2")
       
  1207     field(DRVH, "20")
       
  1208     field(EGU,  "V")
       
  1209 }
       
  1210 
       
  1211 record(mbbo, "$(P)$(R)GateModeE") {
       
  1212     field(DESC, "Sets Channel Gate Mode")
       
  1213     field(DTYP, "stream")
       
  1214     field(OUT,  "@pg9520.proto setPGate(5) $(BUS)")
       
  1215     field(ZRST, "Disable")
       
  1216     field(ZRVL, "0")
       
  1217     field(ONST, "Pulse inhibit")
       
  1218     field(ONVL, "1")
       
  1219     field(TWST, "Output inhibit")
       
  1220     field(TWVL, "2")
       
  1221 }
       
  1222 
       
  1223 record(mbbo, "$(P)$(R)GateLogicE") {
       
  1224     field(DESC, "Set Chan. Gate Logic Level")
       
  1225     field(DTYP, "stream")
       
  1226     field(OUT,  "@pg9520.proto setPGateLogic(5) $(BUS)")
       
  1227     field(ZRST, "Active low")
       
  1228     field(ZRVL, "0")
       
  1229     field(ONST, "Active high")
       
  1230     field(ONVL, "1")
       
  1231 }
       
  1232 
       
  1233 #============================== Channel F ==============================
       
  1234 
       
  1235 record(bo, "$(P)$(R)StateF") {
       
  1236     field(DESC, "En-/Disable output pulse F")
       
  1237     field(DTYP, "stream")
       
  1238     field(OUT,  "@pg9520.proto setPState(6) $(BUS)")
       
  1239     field(ZNAM, "Off")
       
  1240     field(ONAM, "On")
       
  1241 }
       
  1242 
       
  1243 record(ao, "$(P)$(R)WidthF") {
       
  1244     field(DESC, "Width of the output pulse")
       
  1245     field(DTYP, "stream")
       
  1246     field(OUT,  "@pg9520.proto setPWidth(6) $(BUS)")
       
  1247     field(PREC, "8")
       
  1248     field(DRVL, "10e-9")
       
  1249     field(DRVH, "999.99999999975")
       
  1250     field(EGU,  "sec")
       
  1251 }
       
  1252 
       
  1253 record(ao, "$(P)$(R)UserWidthF") {
       
  1254     field(DESC, "User-Width of the pulse")
       
  1255     field(OUT, "$(P)$(R)Width2BaseUnitF PP NMS")
       
  1256     field(PREC, "8")
       
  1257     field(DRVL, "10e-6")
       
  1258     field(DRVH, "999999.99999975")
       
  1259     field(EGU,  "ms")
       
  1260 }
       
  1261 record(calcout,"$(P)$(R)Width2BaseUnitF") {
       
  1262     field(DESC, "Convert Width to base unit")
       
  1263     field(INPA,"$(P)$(R)UserWidthF NPP NMS")
       
  1264     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1265     field(CALC,"A/B")
       
  1266     field(OUT, "$(P)$(R)WidthF PP NMS")
       
  1267 }
       
  1268 record(calcout,"$(P)$(R)Width2UserUnitF") {
       
  1269     field(DESC, "Convert Width to user unit")
       
  1270     field(PINI, "YES")
       
  1271     field(INPA,"$(P)$(R)WidthF NPP NMS")
       
  1272     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1273     field(CALC,"A*B")
       
  1274     field(OUT, "$(P)$(R)UserWidthF NPP NMS")
       
  1275 }
       
  1276 record(ao,"$(P)$(R)WidthTweakF") {
       
  1277     field(DESC, "Step of Up/Down Width Tweak")
       
  1278     field(VAL, "1e-1")
       
  1279     field(PREC,"6")
       
  1280 }
       
  1281 record(calcout,"$(P)$(R)WidthTweakDownF") {
       
  1282     field(DESC, "New width after Down Tweak")
       
  1283     field(INPA,"$(P)$(R)WidthTweakF NPP NMS")
       
  1284     field(INPB,"$(P)$(R)UserWidthF NPP NMS")
       
  1285     field(CALC,"B-A")
       
  1286     field(OUT, "$(P)$(R)UserWidthF PP NMS")
       
  1287 }
       
  1288 record(calcout,"$(P)$(R)WidthTweakUpF") {
       
  1289     field(DESC, "New width after Up Tweak")
       
  1290     field(INPA,"$(P)$(R)WidthTweakF NPP NMS")
       
  1291     field(INPB,"$(P)$(R)UserWidthF NPP NMS")
       
  1292     field(CALC,"B+A")
       
  1293     field(OUT, "$(P)$(R)UserWidthF PP NMS")
       
  1294 }
       
  1295 
       
  1296 record(ao, "$(P)$(R)DelayF") {
       
  1297     field(DESC, "Time f. start T0 to 1.edge")
       
  1298     field(DTYP, "stream")
       
  1299     field(OUT,  "@pg9520.proto setPDelay(6) $(BUS)")
       
  1300     field(PREC, "8")
       
  1301     field(DRVL, "-999.99999999975")
       
  1302     field(DRVH, "999.99999999975")
       
  1303     field(EGU,  "sec")
       
  1304 }
       
  1305 
       
  1306 record(ao, "$(P)$(R)UserDelayF") {
       
  1307     field(DESC, "User-Delay of the pulse")
       
  1308     field(OUT, "$(P)$(R)Delay2BaseUnitF PP NMS")
       
  1309     field(PREC, "8")
       
  1310     field(DRVL, "-999999.99999975")
       
  1311     field(DRVH, "999999.99999975")
       
  1312     field(EGU,  "ms")
       
  1313 }
       
  1314 record(calcout,"$(P)$(R)Delay2BaseUnitF") {
       
  1315     field(DESC, "Convert Delay to base unit")
       
  1316     field(INPA,"$(P)$(R)UserDelayF NPP NMS")
       
  1317     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1318     field(CALC,"A/B")
       
  1319     field(OUT, "$(P)$(R)DelayF PP NMS")
       
  1320 }
       
  1321 record(calcout,"$(P)$(R)Delay2UserUnitF") {
       
  1322     field(DESC, "Convert Delay to user unit")
       
  1323     field(PINI, "YES")
       
  1324     field(INPA,"$(P)$(R)DelayF NPP NMS")
       
  1325     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1326     field(CALC,"A*B")
       
  1327     field(OUT, "$(P)$(R)UserDelayF NPP NMS")
       
  1328 }
       
  1329 record(ao,"$(P)$(R)DelayTweakF") {
       
  1330     field(DESC, "Step of Up/Down Delay Tweak")
       
  1331     field(VAL, "1e-1")
       
  1332     field(PREC,"6")
       
  1333 }
       
  1334 record(calcout,"$(P)$(R)DelayTweakDownF") {
       
  1335     field(DESC, "New delay after Down Tweak")
       
  1336     field(INPA,"$(P)$(R)DelayTweakF NPP NMS")
       
  1337     field(INPB,"$(P)$(R)UserDelayF NPP NMS")
       
  1338     field(CALC,"B-A")
       
  1339     field(OUT, "$(P)$(R)UserDelayF PP NMS")
       
  1340 }
       
  1341 record(calcout,"$(P)$(R)DelayTweakUpF") {
       
  1342     field(DESC, "New delay after Up Tweak")
       
  1343     field(INPA,"$(P)$(R)DelayTweakF NPP NMS")
       
  1344     field(INPB,"$(P)$(R)UserDelayF NPP NMS")
       
  1345     field(CALC,"B+A")
       
  1346     field(OUT, "$(P)$(R)UserDelayF PP NMS")
       
  1347 }
       
  1348 
       
  1349 record(mbbo, "$(P)$(R)SyncF") {
       
  1350     field(DESC, "Selects the Sync source")
       
  1351     field(DTYP, "stream")
       
  1352     field(OUT,  "@pg9520.proto setPSync(6) $(BUS)")
       
  1353     field(ZRST, "T0")
       
  1354     field(ZRVL, "0")
       
  1355     field(ONST, "A")
       
  1356     field(ONVL, "1")
       
  1357     field(TWST, "B")
       
  1358     field(TWVL, "2")
       
  1359     field(THST, "C")
       
  1360     field(THVL, "3")
       
  1361     field(FRST, "D")
       
  1362     field(FRVL, "4")
       
  1363     field(FVST, "E")
       
  1364     field(FVVL, "5")
       
  1365     field(SXST, "Error")
       
  1366     field(SXVL, "6")
       
  1367     field(SVST, "G")
       
  1368     field(SVVL, "7")
       
  1369     field(EIST, "H")
       
  1370     field(EIVL, "8")
       
  1371 }
       
  1372 
       
  1373 record(ao, "$(P)$(R)MultiplexerF") {
       
  1374     field(DESC, "Select which timers are on")
       
  1375     field(DTYP, "stream")
       
  1376     field(OUT,  "@pg9520.proto setPMux(6) $(BUS)")
       
  1377     field(DRVL, "0")
       
  1378     field(DRVH, "255")
       
  1379 }
       
  1380 
       
  1381 record(mbbo, "$(P)$(R)PolarityF") {
       
  1382     field(DESC, "Set polarity of the pulse")
       
  1383     field(DTYP, "stream")
       
  1384     field(OUT,  "@pg9520.proto setPolarity(6) $(BUS)")
       
  1385     field(ZRST, "Normal")
       
  1386     field(ZRVL, "0")
       
  1387     field(ONST, "Complement")
       
  1388     field(ONVL, "1")
       
  1389     field(TWST, "Inverted")
       
  1390     field(TWVL, "2")
       
  1391 }
       
  1392 
       
  1393 record(mbbo, "$(P)$(R)OutputModeF") {
       
  1394     field(DESC, "Select Amplitude mode")
       
  1395     field(DTYP, "stream")
       
  1396     field(OUT,  "@pg9520.proto setOutputMode(6) $(BUS)")
       
  1397     field(ZRST, "TTL")
       
  1398     field(ZRVL, "0")
       
  1399     field(ONST, "Adjustable")
       
  1400     field(ONVL, "1")
       
  1401 }
       
  1402 
       
  1403 record(ao, "$(P)$(R)OutputAmplitudeF") {
       
  1404     field(DESC, "Set adjustable output level")
       
  1405     field(DTYP, "stream")
       
  1406     field(OUT,  "@pg9520.proto setOutputAmplitude(6) $(BUS)")
       
  1407     field(PREC, "3")
       
  1408     field(DRVL, "2")
       
  1409     field(DRVH, "20")
       
  1410     field(EGU,  "V")
       
  1411 }
       
  1412 
       
  1413 record(mbbo, "$(P)$(R)GateModeF") {
       
  1414     field(DESC, "Sets Channel Gate Mode")
       
  1415     field(DTYP, "stream")
       
  1416     field(OUT,  "@pg9520.proto setPGate(6) $(BUS)")
       
  1417     field(ZRST, "Disable")
       
  1418     field(ZRVL, "0")
       
  1419     field(ONST, "Pulse inhibit")
       
  1420     field(ONVL, "1")
       
  1421     field(TWST, "Output inhibit")
       
  1422     field(TWVL, "2")
       
  1423 }
       
  1424 
       
  1425 record(mbbo, "$(P)$(R)GateLogicF") {
       
  1426     field(DESC, "Set Chan. Gate Logic Level")
       
  1427     field(DTYP, "stream")
       
  1428     field(OUT,  "@pg9520.proto setPGateLogic(6) $(BUS)")
       
  1429     field(ZRST, "Active low")
       
  1430     field(ZRVL, "0")
       
  1431     field(ONST, "Active high")
       
  1432     field(ONVL, "1")
       
  1433 }
       
  1434 
       
  1435 #============================== Channel G ==============================
       
  1436 
       
  1437 record(bo, "$(P)$(R)StateG") {
       
  1438     field(DESC, "En-/Disable output pulse G")
       
  1439     field(DTYP, "stream")
       
  1440     field(OUT,  "@pg9520.proto setPState(7) $(BUS)")
       
  1441     field(ZNAM, "Off")
       
  1442     field(ONAM, "On")
       
  1443 }
       
  1444 
       
  1445 record(ao, "$(P)$(R)WidthG") {
       
  1446     field(DESC, "Width of the output pulse")
       
  1447     field(DTYP, "stream")
       
  1448     field(OUT,  "@pg9520.proto setPWidth(7) $(BUS)")
       
  1449     field(PREC, "8")
       
  1450     field(DRVL, "10e-9")
       
  1451     field(DRVH, "999.99999999975")
       
  1452     field(EGU,  "sec")
       
  1453 }
       
  1454 
       
  1455 record(ao, "$(P)$(R)UserWidthG") {
       
  1456     field(DESC, "User-Width of the pulse")
       
  1457     field(OUT, "$(P)$(R)Width2BaseUnitG PP NMS")
       
  1458     field(PREC, "8")
       
  1459     field(DRVL, "10e-6")
       
  1460     field(DRVH, "999999.99999975")
       
  1461     field(EGU,  "ms")
       
  1462 }
       
  1463 record(calcout,"$(P)$(R)Width2BaseUnitG") {
       
  1464     field(DESC, "Convert Width to base unit")
       
  1465     field(INPA,"$(P)$(R)UserWidthG NPP NMS")
       
  1466     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1467     field(CALC,"A/B")
       
  1468     field(OUT, "$(P)$(R)WidthG PP NMS")
       
  1469 }
       
  1470 record(calcout,"$(P)$(R)Width2UserUnitG") {
       
  1471     field(DESC, "Convert Width to user unit")
       
  1472     field(PINI, "YES")
       
  1473     field(INPA,"$(P)$(R)WidthG NPP NMS")
       
  1474     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1475     field(CALC,"A*B")
       
  1476     field(OUT, "$(P)$(R)UserWidthG NPP NMS")
       
  1477 }
       
  1478 record(ao,"$(P)$(R)WidthTweakG") {
       
  1479     field(DESC, "Step of Up/Down Width Tweak")
       
  1480     field(VAL, "1e-1")
       
  1481     field(PREC,"6")
       
  1482 }
       
  1483 record(calcout,"$(P)$(R)WidthTweakDownG") {
       
  1484     field(DESC, "New width after Down Tweak")
       
  1485     field(INPA,"$(P)$(R)WidthTweakG NPP NMS")
       
  1486     field(INPB,"$(P)$(R)UserWidthG NPP NMS")
       
  1487     field(CALC,"B-A")
       
  1488     field(OUT, "$(P)$(R)UserWidthG PP NMS")
       
  1489 }
       
  1490 record(calcout,"$(P)$(R)WidthTweakUpG") {
       
  1491     field(DESC, "New width after Up Tweak")
       
  1492     field(INPA,"$(P)$(R)WidthTweakG NPP NMS")
       
  1493     field(INPB,"$(P)$(R)UserWidthG NPP NMS")
       
  1494     field(CALC,"B+A")
       
  1495     field(OUT, "$(P)$(R)UserWidthG PP NMS")
       
  1496 }
       
  1497 
       
  1498 record(ao, "$(P)$(R)DelayG") {
       
  1499     field(DESC, "Time f. start T0 to 1.edge")
       
  1500     field(DTYP, "stream")
       
  1501     field(OUT,  "@pg9520.proto setPDelay(7) $(BUS)")
       
  1502     field(PREC, "8")
       
  1503     field(DRVL, "-999.99999999975")
       
  1504     field(DRVH, "999.99999999975")
       
  1505     field(EGU,  "sec")
       
  1506 }
       
  1507 
       
  1508 record(ao, "$(P)$(R)UserDelayG") {
       
  1509     field(DESC, "User-Delay of the pulse")
       
  1510     field(OUT, "$(P)$(R)Delay2BaseUnitG PP NMS")
       
  1511     field(PREC, "8")
       
  1512     field(DRVL, "-999999.99999975")
       
  1513     field(DRVH, "999999.99999975")
       
  1514     field(EGU,  "ms")
       
  1515 }
       
  1516 record(calcout,"$(P)$(R)Delay2BaseUnitG") {
       
  1517     field(DESC, "Convert Delay to base unit")
       
  1518     field(INPA,"$(P)$(R)UserDelayG NPP NMS")
       
  1519     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1520     field(CALC,"A/B")
       
  1521     field(OUT, "$(P)$(R)DelayG PP NMS")
       
  1522 }
       
  1523 record(calcout,"$(P)$(R)Delay2UserUnitG") {
       
  1524     field(DESC, "Convert Delay to user unit")
       
  1525     field(PINI, "YES")
       
  1526     field(INPA,"$(P)$(R)DelayG NPP NMS")
       
  1527     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1528     field(CALC,"A*B")
       
  1529     field(OUT, "$(P)$(R)UserDelayG NPP NMS")
       
  1530 }
       
  1531 record(ao,"$(P)$(R)DelayTweakG") {
       
  1532     field(DESC, "Step of Up/Down Delay Tweak")
       
  1533     field(VAL, "1e-1")
       
  1534     field(PREC,"6")
       
  1535 }
       
  1536 record(calcout,"$(P)$(R)DelayTweakDownG") {
       
  1537     field(DESC, "New delay after Down Tweak")
       
  1538     field(INPA,"$(P)$(R)DelayTweakG NPP NMS")
       
  1539     field(INPB,"$(P)$(R)UserDelayG NPP NMS")
       
  1540     field(CALC,"B-A")
       
  1541     field(OUT, "$(P)$(R)UserDelayG PP NMS")
       
  1542 }
       
  1543 record(calcout,"$(P)$(R)DelayTweakUpG") {
       
  1544     field(DESC, "New delay after Up Tweak")
       
  1545     field(INPA,"$(P)$(R)DelayTweakG NPP NMS")
       
  1546     field(INPB,"$(P)$(R)UserDelayG NPP NMS")
       
  1547     field(CALC,"B+A")
       
  1548     field(OUT, "$(P)$(R)UserDelayG PP NMS")
       
  1549 }
       
  1550 
       
  1551 record(mbbo, "$(P)$(R)SyncG") {
       
  1552     field(DESC, "Selects the Sync source")
       
  1553     field(DTYP, "stream")
       
  1554     field(OUT,  "@pg9520.proto setPSync(7) $(BUS)")
       
  1555     field(ZRST, "T0")
       
  1556     field(ZRVL, "0")
       
  1557     field(ONST, "A")
       
  1558     field(ONVL, "1")
       
  1559     field(TWST, "B")
       
  1560     field(TWVL, "2")
       
  1561     field(THST, "C")
       
  1562     field(THVL, "3")
       
  1563     field(FRST, "D")
       
  1564     field(FRVL, "4")
       
  1565     field(FVST, "E")
       
  1566     field(FVVL, "5")
       
  1567     field(SXST, "F")
       
  1568     field(SXVL, "6")
       
  1569     field(SVST, "Error")
       
  1570     field(SVVL, "7")
       
  1571     field(EIST, "H")
       
  1572     field(EIVL, "8")
       
  1573 }
       
  1574 
       
  1575 record(ao, "$(P)$(R)MultiplexerG") {
       
  1576     field(DESC, "Select which timers are on")
       
  1577     field(DTYP, "stream")
       
  1578     field(OUT,  "@pg9520.proto setPMux(7) $(BUS)")
       
  1579     field(DRVL, "0")
       
  1580     field(DRVH, "255")
       
  1581 }
       
  1582 
       
  1583 record(mbbo, "$(P)$(R)PolarityG") {
       
  1584     field(DESC, "Set polarity of the pulse")
       
  1585     field(DTYP, "stream")
       
  1586     field(OUT,  "@pg9520.proto setPolarity(7) $(BUS)")
       
  1587     field(ZRST, "Normal")
       
  1588     field(ZRVL, "0")
       
  1589     field(ONST, "Complement")
       
  1590     field(ONVL, "1")
       
  1591     field(TWST, "Inverted")
       
  1592     field(TWVL, "2")
       
  1593 }
       
  1594 
       
  1595 record(mbbo, "$(P)$(R)OutputModeG") {
       
  1596     field(DESC, "Select Amplitude mode")
       
  1597     field(DTYP, "stream")
       
  1598     field(OUT,  "@pg9520.proto setOutputMode(7) $(BUS)")
       
  1599     field(ZRST, "TTL")
       
  1600     field(ZRVL, "0")
       
  1601     field(ONST, "Adjustable")
       
  1602     field(ONVL, "1")
       
  1603 }
       
  1604 
       
  1605 record(ao, "$(P)$(R)OutputAmplitudeG") {
       
  1606     field(DESC, "Set adjustable output level")
       
  1607     field(DTYP, "stream")
       
  1608     field(OUT,  "@pg9520.proto setOutputAmplitude(7) $(BUS)")
       
  1609     field(PREC, "3")
       
  1610     field(DRVL, "2")
       
  1611     field(DRVH, "20")
       
  1612     field(EGU,  "V")
       
  1613 }
       
  1614 
       
  1615 record(mbbo, "$(P)$(R)GateModeG") {
       
  1616     field(DESC, "Sets Channel Gate Mode")
       
  1617     field(DTYP, "stream")
       
  1618     field(OUT,  "@pg9520.proto setPGate(7) $(BUS)")
       
  1619     field(ZRST, "Disable")
       
  1620     field(ZRVL, "0")
       
  1621     field(ONST, "Pulse inhibit")
       
  1622     field(ONVL, "1")
       
  1623     field(TWST, "Output inhibit")
       
  1624     field(TWVL, "2")
       
  1625 }
       
  1626 
       
  1627 record(mbbo, "$(P)$(R)GateLogicG") {
       
  1628     field(DESC, "Set Chan. Gate Logic Level")
       
  1629     field(DTYP, "stream")
       
  1630     field(OUT,  "@pg9520.proto setPGateLogic(7) $(BUS)")
       
  1631     field(ZRST, "Active low")
       
  1632     field(ZRVL, "0")
       
  1633     field(ONST, "Active high")
       
  1634     field(ONVL, "1")
       
  1635 }
       
  1636 
       
  1637 #============================== Channel H ==============================
       
  1638 
       
  1639 record(bo, "$(P)$(R)StateH") {
       
  1640     field(DESC, "En-/Disable output pulse H")
       
  1641     field(DTYP, "stream")
       
  1642     field(OUT,  "@pg9520.proto setPState(8) $(BUS)")
       
  1643     field(ZNAM, "Off")
       
  1644     field(ONAM, "On")
       
  1645 }
       
  1646 
       
  1647 record(ao, "$(P)$(R)WidthH") {
       
  1648     field(DESC, "Width of the output pulse")
       
  1649     field(DTYP, "stream")
       
  1650     field(OUT,  "@pg9520.proto setPWidth(8) $(BUS)")
       
  1651     field(PREC, "8")
       
  1652     field(DRVL, "10e-9")
       
  1653     field(DRVH, "999.99999999975")
       
  1654     field(EGU,  "sec")
       
  1655 }
       
  1656 
       
  1657 record(ao, "$(P)$(R)UserWidthH") {
       
  1658     field(DESC, "User-Width of the pulse")
       
  1659     field(OUT, "$(P)$(R)Width2BaseUnitH PP NMS")
       
  1660     field(PREC, "8")
       
  1661     field(DRVL, "10e-6")
       
  1662     field(DRVH, "999999.99999975")
       
  1663     field(EGU,  "ms")
       
  1664 }
       
  1665 record(calcout,"$(P)$(R)Width2BaseUnitH") {
       
  1666     field(DESC, "Convert Width to base unit")
       
  1667     field(INPA,"$(P)$(R)UserWidthH NPP NMS")
       
  1668     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1669     field(CALC,"A/B")
       
  1670     field(OUT, "$(P)$(R)WidthH PP NMS")
       
  1671 }
       
  1672 record(calcout,"$(P)$(R)Width2UserUnitH") {
       
  1673     field(DESC, "Convert Width to user unit")
       
  1674     field(PINI, "YES")
       
  1675     field(INPA,"$(P)$(R)WidthH NPP NMS")
       
  1676     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1677     field(CALC,"A*B")
       
  1678     field(OUT, "$(P)$(R)UserWidthH NPP NMS")
       
  1679 }
       
  1680 record(ao,"$(P)$(R)WidthTweakH") {
       
  1681     field(DESC, "Step of Up/Down Width Tweak")
       
  1682     field(VAL, "1e-1")
       
  1683     field(PREC,"6")
       
  1684 }
       
  1685 record(calcout,"$(P)$(R)WidthTweakDownH") {
       
  1686     field(DESC, "New width after Down Tweak")
       
  1687     field(INPA,"$(P)$(R)WidthTweakH NPP NMS")
       
  1688     field(INPB,"$(P)$(R)UserWidthH NPP NMS")
       
  1689     field(CALC,"B-A")
       
  1690     field(OUT, "$(P)$(R)UserWidthH PP NMS")
       
  1691 }
       
  1692 record(calcout,"$(P)$(R)WidthTweakUpH") {
       
  1693     field(DESC, "New width after Up Tweak")
       
  1694     field(INPA,"$(P)$(R)WidthTweakH NPP NMS")
       
  1695     field(INPB,"$(P)$(R)UserWidthH NPP NMS")
       
  1696     field(CALC,"B+A")
       
  1697     field(OUT, "$(P)$(R)UserWidthH PP NMS")
       
  1698 }
       
  1699 
       
  1700 record(ao, "$(P)$(R)DelayH") {
       
  1701     field(DESC, "Time f. start T0 to 1.edge")
       
  1702     field(DTYP, "stream")
       
  1703     field(OUT,  "@pg9520.proto setPDelay(8) $(BUS)")
       
  1704     field(PREC, "8")
       
  1705     field(DRVL, "-999.99999999975")
       
  1706     field(DRVH, "999.99999999975")
       
  1707     field(EGU,  "sec")
       
  1708 }
       
  1709 
       
  1710 record(ao, "$(P)$(R)UserDelayH") {
       
  1711     field(DESC, "User-Delay of the pulse")
       
  1712     field(OUT, "$(P)$(R)Delay2BaseUnitH PP NMS")
       
  1713     field(PREC, "8")
       
  1714     field(DRVL, "-999999.99999975")
       
  1715     field(DRVH, "999999.99999975")
       
  1716     field(EGU,  "ms")
       
  1717 }
       
  1718 record(calcout,"$(P)$(R)Delay2BaseUnitH") {
       
  1719     field(DESC, "Convert Delay to base unit")
       
  1720     field(INPA,"$(P)$(R)UserDelayH NPP NMS")
       
  1721     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1722     field(CALC,"A/B")
       
  1723     field(OUT, "$(P)$(R)DelayH PP NMS")
       
  1724 }
       
  1725 record(calcout,"$(P)$(R)Delay2UserUnitH") {
       
  1726     field(DESC, "Convert Delay to user unit")
       
  1727     field(PINI, "YES")
       
  1728     field(INPA,"$(P)$(R)DelayH NPP NMS")
       
  1729     field(INPB,"$(P)$(R)TimeUnitCF NPP NMS")
       
  1730     field(CALC,"A*B")
       
  1731     field(OUT, "$(P)$(R)UserDelayH NPP NMS")
       
  1732 }
       
  1733 record(ao,"$(P)$(R)DelayTweakH") {
       
  1734     field(DESC, "Step of Up/Down Delay Tweak")
       
  1735     field(VAL, "1e-1")
       
  1736     field(PREC,"6")
       
  1737 }
       
  1738 record(calcout,"$(P)$(R)DelayTweakDownH") {
       
  1739     field(DESC, "New delay after Down Tweak")
       
  1740     field(INPA,"$(P)$(R)DelayTweakH NPP NMS")
       
  1741     field(INPB,"$(P)$(R)UserDelayH NPP NMS")
       
  1742     field(CALC,"B-A")
       
  1743     field(OUT, "$(P)$(R)UserDelayH PP NMS")
       
  1744 }
       
  1745 record(calcout,"$(P)$(R)DelayTweakUpH") {
       
  1746     field(DESC, "New delay after Up Tweak")
       
  1747     field(INPA,"$(P)$(R)DelayTweakH NPP NMS")
       
  1748     field(INPB,"$(P)$(R)UserDelayH NPP NMS")
       
  1749     field(CALC,"B+A")
       
  1750     field(OUT, "$(P)$(R)UserDelayH PP NMS")
       
  1751 }
       
  1752 
       
  1753 record(mbbo, "$(P)$(R)SyncH") {
       
  1754     field(DESC, "Selects the Sync source")
       
  1755     field(DTYP, "stream")
       
  1756     field(OUT,  "@pg9520.proto setPSync(8) $(BUS)")
       
  1757     field(ZRST, "T0")
       
  1758     field(ZRVL, "0")
       
  1759     field(ONST, "A")
       
  1760     field(ONVL, "1")
       
  1761     field(TWST, "B")
       
  1762     field(TWVL, "2")
       
  1763     field(THST, "C")
       
  1764     field(THVL, "3")
       
  1765     field(FRST, "D")
       
  1766     field(FRVL, "4")
       
  1767     field(FVST, "E")
       
  1768     field(FVVL, "5")
       
  1769     field(SXST, "F")
       
  1770     field(SXVL, "6")
       
  1771     field(SVST, "G")
       
  1772     field(SVVL, "7")
       
  1773     field(EIST, "Error")
       
  1774     field(EIVL, "8")
       
  1775 }
       
  1776 
       
  1777 record(ao, "$(P)$(R)MultiplexerH") {
       
  1778     field(DESC, "Select which timers are on")
       
  1779     field(DTYP, "stream")
       
  1780     field(OUT,  "@pg9520.proto setPMux(8) $(BUS)")
       
  1781     field(DRVL, "0")
       
  1782     field(DRVH, "255")
       
  1783 }
       
  1784 
       
  1785 record(mbbo, "$(P)$(R)PolarityH") {
       
  1786     field(DESC, "Set polarity of the pulse")
       
  1787     field(DTYP, "stream")
       
  1788     field(OUT,  "@pg9520.proto setPolarity(8) $(BUS)")
       
  1789     field(ZRST, "Normal")
       
  1790     field(ZRVL, "0")
       
  1791     field(ONST, "Complement")
       
  1792     field(ONVL, "1")
       
  1793     field(TWST, "Inverted")
       
  1794     field(TWVL, "2")
       
  1795 }
       
  1796 
       
  1797 record(mbbo, "$(P)$(R)OutputModeH") {
       
  1798     field(DESC, "Select Amplitude mode")
       
  1799     field(DTYP, "stream")
       
  1800     field(OUT,  "@pg9520.proto setOutputMode(8) $(BUS)")
       
  1801     field(ZRST, "TTL")
       
  1802     field(ZRVL, "0")
       
  1803     field(ONST, "Adjustable")
       
  1804     field(ONVL, "1")
       
  1805 }
       
  1806 
       
  1807 record(ao, "$(P)$(R)OutputAmplitudeH") {
       
  1808     field(DESC, "Set adjustable output level")
       
  1809     field(DTYP, "stream")
       
  1810     field(OUT,  "@pg9520.proto setOutputAmplitude(8) $(BUS)")
       
  1811     field(PREC, "3")
       
  1812     field(DRVL, "2")
       
  1813     field(DRVH, "20")
       
  1814     field(EGU,  "V")
       
  1815 }
       
  1816 
       
  1817 record(mbbo, "$(P)$(R)GateModeH") {
       
  1818     field(DESC, "Sets Channel Gate Mode")
       
  1819     field(DTYP, "stream")
       
  1820     field(OUT,  "@pg9520.proto setPGate(8) $(BUS)")
       
  1821     field(ZRST, "Disable")
       
  1822     field(ZRVL, "0")
       
  1823     field(ONST, "Pulse inhibit")
       
  1824     field(ONVL, "1")
       
  1825     field(TWST, "Output inhibit")
       
  1826     field(TWVL, "2")
       
  1827 }
       
  1828 
       
  1829 record(mbbo, "$(P)$(R)GateLogicH") {
       
  1830     field(DESC, "Set Chan. Gate Logic Level")
       
  1831     field(DTYP, "stream")
       
  1832     field(OUT,  "@pg9520.proto setPGateLogic(8) $(BUS)")
       
  1833     field(ZRST, "Active low")
       
  1834     field(ZRVL, "0")
       
  1835     field(ONST, "Active high")
       
  1836     field(ONVL, "1")
       
  1837 }