#! Generated by VisualDCT v2.5
#! DBDSTART
#! DBDEND
record(asyn, "$(P)$(S):writeRead") {
field(DESC, "XIA shutter serial")
field(FLNK, "$(P)$(S):Status1")
field(TMOD, "Write/Read")
field(PORT, "$(PORT)")
field(TMOT, "1")
}
record(asyn, "$(P)$(S):UserCmd_IO") {
field(DESC, "XIA shutter serial")
field(TMOD, "Write/Read")
field(PORT, "$(PORT)")
field(TMOT, "1")
}
record(asyn, "$(P)$(S):expose_IO") {
field(DESC, "XIA shutter serial")
field(FLNK, "$(P)$(S):busyOn")
field(TMOD, "Write/Read")
field(PORT, "$(PORT)")
field(TMOT, "1")
}
record(asyn, "$(P)$(S):exposeDone_IO") {
field(DESC, "XIA shutter serial")
field(FLNK, "$(P)$(S):busyOffnew")
field(TMOD, "Read")
field(PORT, "$(PORT)")
}
record(busy, "$(P)$(S):busy") {
}
record(bo, "$(P)$(S):busyOn") {
field(DTYP, "Soft Channel")
field(FLNK, "$(P)$(S):exposeDone_IO PP MS")
field(DOL, "1")
field(OUT, "$(P)$(S):busy.VAL PP MS")
}
record(scalcout, "$(P)$(S):expose") {
field(DESC, "0 argument command builder")
field(SDIS, "$(P)$(S):busy.VAL NPP MS")
field(CALC, "$P('!PFCU%02d E ', a) + $P('%d',b*100)")
field(INPA, "$(P)$(S):address.VAL NPP NMS")
field(INPB, "$(P)$(S):exposeTime.VAL PP MS")
field(OUT, "$(P)$(S):expose_IO.AOUT PP")
field(ODLY, "0.1")
field(AA, "024CFHLOPUZ")
}
record(calcout, "$(P)$(S):waitTime") {
field(SDIS, "0")
field(CALC, "(A+.05)")
field(OUT, "$(P)$(S):exposeDone_IO.TMOT NPP MS")
field(DESC, "add 50 millisecond")
}
record(ao, "$(P)$(S):exposeTime") {
field(DESC, "exposure time (s)")
field(DTYP, "Soft Channel")
field(OUT, "$(P)$(S):waitTime.A PP MS")
field(DOL, "1")
field(PREC, "2")
field(DRVH, "6553")
field(DRVL, ".01")
field(PINI, "YES")
}
record(stringout, "$(P)$(S):poll") {
field(DTYP, "Soft Channel")
field(VAL, "F")
field(OUT, "$(P)$(S):do.AA PP")
field(SCAN, "1 second")
}
record(scalcout, "$(P)$(S):do") {
field(DESC, "0 argument command builder")
field(CALC, "printf('!PFCU%02d ', a)+aa[0,1]")
field(INPA, "$(P)$(S):address.VAL NPP NMS")
field(OUT, "$(P)$(S):writeRead.AOUT PP")
field(AA, "024CFHLOPUZ")
}
record(scalcout, "$(P)$(S):Status1") {
field(DESC, "Filter 1 status")
field(CALC, "SSCANF(AA, '%*11c%1d')")
field(INAA, "$(P)$(S):writeRead.AINP")
field(FLNK, "$(P)$(S):Status2 PP MS")
}
record(scalcout, "$(P)$(S):Status2") {
field(DESC, "Filter 2 status")
field(CALC, "SSCANF(AA, '%*12c%1d')")
field(INAA, "$(P)$(S):writeRead.AINP")
field(FLNK, "$(P)$(S):Status3 PP MS")
}
record(scalcout, "$(P)$(S):Status3") {
field(DESC, "Filter 3 status")
field(CALC, "SSCANF(AA, '%*13c%1d')")
field(INAA, "$(P)$(S):writeRead.AINP")
field(FLNK, "$(P)$(S):Status4 PP MS")
}
record(scalcout, "$(P)$(S):Status4") {
field(DESC, "Filter 4 status")
field(CALC, "SSCANF(AA, '%*14c%1d')")
field(INAA, "$(P)$(S):writeRead.AINP")
}
record(longout, "$(P)$(S):address") {
field(DTYP, "Soft Channel")
field(VAL, "$(ADDRESS)")
}
record(stringout, "$(P)$(S):init") {
field(PINI, "YES")
field(DTYP, "Soft Channel")
field(VAL, "2")
field(OUT, "$(P)$(S):doUserCmd.AA PP")
}
record(stringout, "$(P)$(S):sendCommand") {
field(DTYP, "Soft Channel")
field(OUT, "$(P)$(S):doUserCmd.AA PP")
}
record(stringout, "$(P)$(S):openShutter") {
field(DTYP, "Soft Channel")
field(VAL, "O")
field(OUT, "$(P)$(S):doUserCmd.AA PP")
}
record(stringout, "$(P)$(S):closeShutter") {
field(DTYP, "Soft Channel")
field(VAL, "C")
field(OUT, "$(P)$(S):doUserCmd.AA PP")
}
record(scalcout, "$(P)$(S):doUserCmd") {
field(DESC, "0 argument command builder")
field(CALC, "printf('!PFCU%02d ', a)+aa[0,1]")
field(INPA, "$(P)$(S):address.VAL NPP NMS")
field(OUT, "$(P)$(S):UserCmd_IO.AOUT PP")
field(AA, "024CFHLOPUZ")
}
record(seq, "$(P)$(S):busyOffnew") {
field(DLY1, ".2")
field(DOL1, "0")
field(LNK1, "$(P)$(S):busy PP")
}
#! Further lines contain data used by VisualDCT
#! View(1071,349,1.0)
#! TextBox(TB0,120,200,260,560,1,"Dialog",12,1,16777215,"Serial port \nsettings\n---------------\n9600 baud\n8 bits\n1 stop bit\nno parity\n\nTerminator is <CR>\n\nThree-wire serial:\nDevice talks via db9-pin2\nlistens to db9-pin3\ngnd - db9-pin5\n\nDevice ties together\n db9 pins 7 and 8\n db9 pins 1, 4, and 6",null)
#! TextBox(TB2,1740,140,2020,200,1,"Dialog",24,1,16777215,"Shutter commands",null)
#! TextBox(TB1,1120,200,880,140,1,"Dialog",24,1,16777215,"filter commands",null)
#! TextBox(TB3,720,540,920,620,0,"Dialog",24,1,16777215,"check filter states",null)
#! Record("$(P)$(S):writeRead",720,855,0,1,"$(P)$(S):writeRead")
#! Field("$(P)$(S):writeRead.FLNK",16777215,1,"$(P)$(S):writeRead.FLNK")
#! Link("$(P)$(S):writeRead.FLNK","$(P)$(S):writeRead/FLNK")
#! Field("$(P)$(S):writeRead.AOUT",16777215,0,"$(P)$(S):writeRead.AOUT")
#! Field("$(P)$(S):writeRead.AINP",16777215,1,"$(P)$(S):writeRead.AINP")
#! Connector("$(P)$(S):writeRead/FLNK","$(P)$(S):Status1",1000,807,16777215,"",0)
#! Record("$(P)$(S):UserCmd_IO",960,1429,0,1,"$(P)$(S):UserCmd_IO")
#! Field("$(P)$(S):UserCmd_IO.AOUT",16777215,0,"$(P)$(S):UserCmd_IO.AOUT")
#! Record("$(P)$(S):expose_IO",1820,615,0,1,"$(P)$(S):expose_IO")
#! Field("$(P)$(S):expose_IO.AOUT",16777215,0,"$(P)$(S):expose_IO.AOUT")
#! Field("$(P)$(S):expose_IO.FLNK",16777215,1,"$(P)$(S):expose_IO.FLNK")
#! Link("$(P)$(S):expose_IO.FLNK","$(P)$(S)serial2/FLNK")
#! Connector("$(P)$(S)serial2/FLNK","$(P)$(S)serial2/FLNK1",2060,785,16777215,"",0)
#! Connector("$(P)$(S)serial2/FLNK1","$(P)$(S)serial2/FLNK2",1910,800,16777215,"",0)
#! Connector("$(P)$(S)serial2/FLNK2","$(P)$(S):busyOn",1760,812,16777215,"",0)
#! Record("$(P)$(S):exposeDone_IO",1820,909,0,0,"$(P)$(S):exposeDone_IO")
#! Field("$(P)$(S):exposeDone_IO.TMOT",16777215,0,"$(P)$(S):exposeDone_IO.TMOT")
#! Field("$(P)$(S):exposeDone_IO.FLNK",16777215,1,"$(P)$(S):exposeDone_IO.FLNK")
#! Link("$(P)$(S):exposeDone_IO.FLNK","$(P)$(S):exposeDone_IO/FLNK")
#! Connector("$(P)$(S):exposeDone_IO/FLNK","$(P)$(S):exposeDone_IO/FLNK1",2040,1065,16777215,"",0)
#! Connector("$(P)$(S):exposeDone_IO/FLNK1","$(P)$(S):exposeDone_IO/FLNK2",1900,1080,16777215,"",0)
#! Connector("$(P)$(S):exposeDone_IO/FLNK2","$(P)$(S):busyOffnew",1760,1095,16777215,"",0)
#! Record("$(P)$(S):busy",2160,964,0,0,"$(P)$(S):busy")
#! Field("$(P)$(S):busy.VAL",16777215,1,"$(P)$(S):busy.VAL")
#! Record("$(P)$(S):busyOn",1820,769,0,0,"$(P)$(S):busyOn")
#! Field("$(P)$(S):busyOn.OUT",16777215,1,"$(P)$(S):busyOn.OUT")
#! Link("$(P)$(S):busyOn.OUT","$(P)$(S):busy.VAL")
#! Field("$(P)$(S):busyOn.FLNK",16777215,1,"$(P)$(S):busyOn.FLNK")
#! Link("$(P)$(S):busyOn.FLNK","$(P)$(S)busyOn/FLNK")
#! Connector("$(P)$(S)busyOn/FLNK","$(P)$(S)busyOn/FLNK1",2060,925,16777215,"",0)
#! Connector("$(P)$(S)busyOn/FLNK1","$(P)$(S)busyOn/FLNK2",1910,940,16777215,"",0)
#! Connector("$(P)$(S)busyOn/FLNK2","$(P)$(S):exposeDone_IO",1760,952,16777215,"",0)
#! Record("$(P)$(S):expose",1820,393,0,0,"$(P)$(S):expose")
#! Field("$(P)$(S):expose.SDIS",16777215,0,"$(P)$(S):expose.SDIS")
#! Link("$(P)$(S):expose.SDIS","$(P)$(S)expose/SDIS1")
#! Field("$(P)$(S):expose.INPA",16777215,0,"$(P)$(S):expose.INPA")
#! Link("$(P)$(S):expose.INPA","$(P)$(S)expose/INPA")
#! Field("$(P)$(S):expose.INPB",16777215,0,"$(P)$(S):expose.INPB")
#! Link("$(P)$(S):expose.INPB","$(P)$(S):exposeTime.VAL")
#! Field("$(P)$(S):expose.OUT",16777215,1,"$(P)$(S):expose.OUT")
#! Link("$(P)$(S):expose.OUT","$(P)$(S)expose/OUT")
#! Connector("$(P)$(S)expose/INPA","$(P)$(S):address.VAL",1400,910,16777215,"",0)
#! Connector("$(P)$(S)expose/SDIS1","$(P)$(S)expose/SDIS",1760,525,16777215,"",0)
#! Connector("$(P)$(S)expose/SDIS","$(P)$(S)expose/SDIS2",2070,480,16777215,"",0)
#! Connector("$(P)$(S)expose/SDIS2","$(P)$(S):busy.VAL",2380,755,16777215,"",0)
#! Connector("$(P)$(S)expose/OUT","$(P)$(S)expose/OUT1",2060,645,16777215,"",0)
#! Connector("$(P)$(S)expose/OUT1","$(P)$(S)expose/OUT2",1910,660,16777215,"",0)
#! Connector("$(P)$(S)expose/OUT2","$(P)$(S):expose_IO.AOUT",1760,705,16777215,"",0)
#! Record("$(P)$(S):waitTime",1520,889,0,0,"$(P)$(S):waitTime")
#! Field("$(P)$(S):waitTime.A",16777215,0,"$(P)$(S):waitTime.A")
#! Field("$(P)$(S):waitTime.OUT",16777215,1,"$(P)$(S):waitTime.OUT")
#! Link("$(P)$(S):waitTime.OUT","$(P)$(S):exposeDone_IO.TMOT")
#! Record("$(P)$(S):exposeTime",1500,693,0,0,"$(P)$(S):exposeTime")
#! Field("$(P)$(S):exposeTime.VAL",16777215,1,"$(P)$(S):exposeTime.VAL")
#! Field("$(P)$(S):exposeTime.OUT",16777215,1,"$(P)$(S):exposeTime.OUT")
#! Link("$(P)$(S):exposeTime.OUT","$(P)$(S)exposeTime/OUT")
#! Connector("$(P)$(S)exposeTime/OUT","$(P)$(S)exposeTime/OUT1",1720,905,16777215,"",0)
#! Connector("$(P)$(S)exposeTime/OUT1","$(P)$(S)exposeTime/OUT2",1590,920,16777215,"",0)
#! Connector("$(P)$(S)exposeTime/OUT2","$(P)$(S):waitTime.A",1460,965,16777215,"",0)
#! Record("$(P)$(S):poll",720,589,0,0,"$(P)$(S):poll")
#! Field("$(P)$(S):poll.OUT",16777215,1,"$(P)$(S):poll.OUT")
#! Link("$(P)$(S):poll.OUT","$(P)$(S)poll/OUT")
#! Connector("$(P)$(S)poll/OUT","$(P)$(S)poll/OUT1",940,725,16777215,"",0)
#! Connector("$(P)$(S)poll/OUT1","$(P)$(S)poll/OUT2",800,740,16777215,"",0)
#! Connector("$(P)$(S)poll/OUT2","$(P)$(S):do.AA",660,785,16777215,"",0)
#! Visibility("$(P)$(S):poll.SCAN",1)
#! Record("$(P)$(S):do",720,695,0,0,"$(P)$(S):do")
#! Field("$(P)$(S):do.AA",16777215,0,"$(P)$(S):do.AA")
#! Field("$(P)$(S):do.INPA",16777215,0,"$(P)$(S):do.INPA")
#! Link("$(P)$(S):do.INPA","$(P)$(S)do/INPA")
#! Field("$(P)$(S):do.OUT",16777215,1,"$(P)$(S):do.OUT")
#! Link("$(P)$(S):do.OUT","$(P)$(S)do/OUT")
#! Connector("$(P)$(S)do/INPA","$(P)$(S):address.VAL",620,1040,16777215,"",0)
#! Connector("$(P)$(S)do/OUT","$(P)$(S)do/OUT1",940,885,16777215,"",0)
#! Connector("$(P)$(S)do/OUT1","$(P)$(S)do/OUT2",800,900,16777215,"",0)
#! Connector("$(P)$(S)do/OUT2","$(P)$(S):writeRead.AOUT",660,955,16777215,"",0)
#! Record("$(P)$(S):Status1",1140,569,0,0,"$(P)$(S):Status1")
#! Field("$(P)$(S):Status1.INAA",16777215,0,"$(P)$(S):Status1.INAA")
#! Link("$(P)$(S):Status1.INAA","$(P)$(S)Status1/INAA")
#! Field("$(P)$(S):Status1.FLNK",16777215,1,"$(P)$(S):Status1.FLNK")
#! Link("$(P)$(S):Status1.FLNK","$(P)$(S)Status1/FLNK")
#! Connector("$(P)$(S)Status1/FLNK","$(P)$(S)Status1/FLNK1",1360,735,16777215,"",0)
#! Connector("$(P)$(S)Status1/FLNK1","$(P)$(S)Status1/FLNK2",1230,760,16777215,"",0)
#! Connector("$(P)$(S)Status1/FLNK2","$(P)$(S):Status2",1100,772,16777215,"",0)
#! Connector("$(P)$(S)Status1/INAA","$(P)$(S):writeRead.AINP",1040,860,16777215,"",0)
#! Record("$(P)$(S):Status2",1140,729,0,0,"$(P)$(S):Status2")
#! Field("$(P)$(S):Status2.INAA",16777215,0,"$(P)$(S):Status2.INAA")
#! Link("$(P)$(S):Status2.INAA","$(P)$(S)Status2/INAA")
#! Field("$(P)$(S):Status2.FLNK",16777215,1,"$(P)$(S):Status2.FLNK")
#! Link("$(P)$(S):Status2.FLNK","$(P)$(S)Status2/FLNK")
#! Connector("$(P)$(S)Status2/FLNK","$(P)$(S)Status2/FLNK1",1360,885,16777215,"",0)
#! Connector("$(P)$(S)Status2/FLNK1","$(P)$(S)Status2/FLNK2",1230,900,16777215,"",0)
#! Connector("$(P)$(S)Status2/FLNK2","$(P)$(S):Status3",1100,912,16777215,"",0)
#! Connector("$(P)$(S)Status2/INAA","$(P)$(S):writeRead.AINP",1040,940,16777215,"",0)
#! Record("$(P)$(S):Status3",1140,869,0,0,"$(P)$(S):Status3")
#! Field("$(P)$(S):Status3.INAA",16777215,0,"$(P)$(S):Status3.INAA")
#! Link("$(P)$(S):Status3.INAA","$(P)$(S)Status3/INAA")
#! Field("$(P)$(S):Status3.FLNK",16777215,1,"$(P)$(S):Status3.FLNK")
#! Link("$(P)$(S):Status3.FLNK","$(P)$(S)Status3/FLNK")
#! Connector("$(P)$(S)Status3/FLNK","$(P)$(S)Status3/FLNK1",1360,1025,16777215,"",0)
#! Connector("$(P)$(S)Status3/FLNK1","$(P)$(S)Status3/FLNK2",1230,1040,16777215,"",0)
#! Connector("$(P)$(S)Status3/FLNK2","$(P)$(S):Status4",1100,1055,16777215,"",0)
#! Connector("$(P)$(S)Status3/INAA","$(P)$(S):writeRead.AINP",1040,1010,16777215,"",0)
#! Record("$(P)$(S):Status4",1140,1023,0,0,"$(P)$(S):Status4")
#! Field("$(P)$(S):Status4.INAA",16777215,0,"$(P)$(S):Status4.INAA")
#! Link("$(P)$(S):Status4.INAA","$(P)$(S)Status4/INAA")
#! Connector("$(P)$(S)Status4/INAA","$(P)$(S):writeRead.AINP",1040,1080,16777215,"",0)
#! Record("$(P)$(S):address",200,1137,0,0,"$(P)$(S):address")
#! Field("$(P)$(S):address.VAL",16777215,1,"$(P)$(S):address.VAL")
#! Record("$(P)$(S):init",320,1249,0,0,"$(P)$(S):init")
#! Field("$(P)$(S):init.OUT",16777215,1,"$(P)$(S):init.OUT")
#! Link("$(P)$(S):init.OUT","$(P)$(S)init/OUT")
#! Connector("$(P)$(S)init/OUT","$(P)$(S):doUserCmd.AA",560,1470,16777215,"",0)
#! Visibility("$(P)$(S):init.PINI",1)
#! Record("$(P)$(S):sendCommand",320,1377,0,1,"$(P)$(S):sendCommand")
#! Field("$(P)$(S):sendCommand.OUT",16777215,1,"$(P)$(S):sendCommand.OUT")
#! Link("$(P)$(S):sendCommand.OUT","$(P)$(S)sendCommand2/OUT")
#! Connector("$(P)$(S)sendCommand2/OUT","$(P)$(S):doUserCmd.AA",560,1520,16777215,"",0)
#! Record("$(P)$(S):openShutter",320,1463,0,1,"$(P)$(S):openShutter")
#! Field("$(P)$(S):openShutter.OUT",16777215,1,"$(P)$(S):openShutter.OUT")
#! Link("$(P)$(S):openShutter.OUT","$(P)$(S):doUserCmd.AA")
#! Record("$(P)$(S):closeShutter",320,1563,0,1,"$(P)$(S):closeShutter")
#! Field("$(P)$(S):closeShutter.OUT",16777215,1,"$(P)$(S):closeShutter.OUT")
#! Link("$(P)$(S):closeShutter.OUT","$(P)$(S)closeShutter2/OUT")
#! Connector("$(P)$(S)closeShutter2/OUT","$(P)$(S):doUserCmd.AA",560,1620,16777215,"",0)
#! Record("$(P)$(S):doUserCmd",680,1415,0,1,"$(P)$(S):doUserCmd")
#! Field("$(P)$(S):doUserCmd.INPA",16777215,0,"$(P)$(S):doUserCmd.INPA")
#! Link("$(P)$(S):doUserCmd.INPA","$(P)$(S)do2/INPA")
#! Field("$(P)$(S):doUserCmd.AA",16777215,0,"$(P)$(S):doUserCmd.AA")
#! Field("$(P)$(S):doUserCmd.OUT",16777215,1,"$(P)$(S):doUserCmd.OUT")
#! Link("$(P)$(S):doUserCmd.OUT","$(P)$(S):UserCmd_IO.AOUT")
#! Connector("$(P)$(S)do2/INPA","$(P)$(S):address.VAL",620,1390,16777215,"",0)
#! Record("$(P)$(S):busyOffnew",1820,1063,0,0,"$(P)$(S):busyOffnew")
#! Field("$(P)$(S):busyOffnew.LNK1",16777215,1,"$(P)$(S):busyOffnew.LNK1")
#! Link("$(P)$(S):busyOffnew.LNK1","$(P)$(S):busy.VAL")