git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@7018 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
832 lines
19 KiB
Plaintext
832 lines
19 KiB
Plaintext
# Database for area detector control using asyn driver and standard asyn device support
|
|
# Mark Rivers
|
|
# March 9, 2008
|
|
|
|
###################################################################
|
|
# This record contains the asyn port name #
|
|
# about the detector #
|
|
###################################################################
|
|
|
|
record(stringin, "$(P)$(D)PortName_RBV")
|
|
{
|
|
field(VAL, "$(PORT)")
|
|
}
|
|
|
|
###################################################################
|
|
# These records control basic information #
|
|
# about the detector #
|
|
###################################################################
|
|
|
|
record(stringin, "$(P)$(D)Manufacturer_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetRead")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MANUFACTURER")
|
|
}
|
|
|
|
record(stringin, "$(P)$(D)Model_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetRead")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MODEL")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)MaxSizeX_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAX_SIZE_X")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)MaxSizeY_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAX_SIZE_Y")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
###################################################################
|
|
# These records control the data type #
|
|
###################################################################
|
|
|
|
record(mbbo, "$(P)$(D)DataType")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DATA_TYPE")
|
|
field(ZRST, "Int8")
|
|
field(ZRVL, "0")
|
|
field(ONST, "UInt8")
|
|
field(ONVL, "1")
|
|
field(TWST, "Int16")
|
|
field(TWVL, "2")
|
|
field(THST, "UInt16")
|
|
field(THVL, "3")
|
|
field(FRST, "Int32")
|
|
field(FRVL, "4")
|
|
field(FVST, "UInt32")
|
|
field(FVVL, "5")
|
|
field(SXST, "Float32")
|
|
field(SXVL, "6")
|
|
field(SVST, "Float64")
|
|
field(SVVL, "7")
|
|
}
|
|
|
|
record(mbbi, "$(P)$(D)DataType_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DATA_TYPE")
|
|
field(ZRST, "Int8")
|
|
field(ZRVL, "0")
|
|
field(ONST, "UInt8")
|
|
field(ONVL, "1")
|
|
field(TWST, "Int16")
|
|
field(TWVL, "2")
|
|
field(THST, "UInt16")
|
|
field(THVL, "3")
|
|
field(FRST, "Int32")
|
|
field(FRVL, "4")
|
|
field(FVST, "UInt32")
|
|
field(FVVL, "5")
|
|
field(SXST, "Float32")
|
|
field(SXVL, "6")
|
|
field(SVST, "Float64")
|
|
field(SVVL, "7")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
###################################################################
|
|
# These records control the detector readout #
|
|
# including binning, region start and size #
|
|
###################################################################
|
|
|
|
record(longout, "$(P)$(D)BinX")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BIN_X")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)BinX_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BIN_X")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longout, "$(P)$(D)BinY")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BIN_Y")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)BinY_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BIN_Y")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longout, "$(P)$(D)MinX")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_X")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)MinX_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_X")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longout, "$(P)$(D)MinY")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_Y")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)MinY_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_Y")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longout, "$(P)$(D)SizeX")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SIZE_X")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)SizeX_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SIZE_X")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longout, "$(P)$(D)SizeY")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SIZE_Y")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)SizeY_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SIZE_Y")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)ImageSizeX_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))IMAGE_SIZE_X")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)ImageSizeY_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))IMAGE_SIZE_Y")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)ImageSize_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))IMAGE_SIZE")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
###################################################################
|
|
# These records control the acquisition time and #
|
|
# period #
|
|
###################################################################
|
|
record(ao, "$(P)$(D)AcquireTime")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynFloat64")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ACQ_TIME")
|
|
field(PREC, "3")
|
|
}
|
|
|
|
record(ai, "$(P)$(D)AcquireTime_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynFloat64")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ACQ_TIME")
|
|
field(PREC, "3")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(ao, "$(P)$(D)AcquirePeriod")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynFloat64")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ACQ_PERIOD")
|
|
field(PREC, "3")
|
|
}
|
|
|
|
record(ai, "$(P)$(D)AcquirePeriod_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynFloat64")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ACQ_PERIOD")
|
|
field(PREC, "3")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
|
|
|
|
###################################################################
|
|
# These records control the gain #
|
|
###################################################################
|
|
record(ao, "$(P)$(D)Gain")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynFloat64")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))GAIN")
|
|
field(PREC, "3")
|
|
}
|
|
|
|
record(ai, "$(P)$(D)Gain_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynFloat64")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))GAIN")
|
|
field(PREC, "3")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
###################################################################
|
|
# These records control the acquisition mode #
|
|
###################################################################
|
|
record(mbbo, "$(P)$(D)ImageMode")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))IMAGE_MODE")
|
|
field(ZRST, "Single")
|
|
field(ZRVL, "0")
|
|
field(ONST, "Multiple")
|
|
field(ONVL, "1")
|
|
field(TWST, "Continuous")
|
|
field(TWVL, "2")
|
|
}
|
|
|
|
record(mbbi, "$(P)$(D)ImageMode_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))IMAGE_MODE")
|
|
field(ZRST, "Single")
|
|
field(ZRVL, "0")
|
|
field(ONST, "Multiple")
|
|
field(ONVL, "1")
|
|
field(TWST, "Continuous")
|
|
field(TWVL, "2")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
###################################################################
|
|
# These records control the trigger mode #
|
|
###################################################################
|
|
record(mbbo, "$(P)$(D)TriggerMode")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TRIGGER_MODE")
|
|
field(ZRST, "Internal")
|
|
field(ZRVL, "0")
|
|
field(ONST, "External")
|
|
field(ONVL, "1")
|
|
}
|
|
|
|
record(mbbi, "$(P)$(D)TriggerMode_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TRIGGER_MODE")
|
|
field(ZRST, "Internal")
|
|
field(ZRVL, "0")
|
|
field(ONST, "External")
|
|
field(ONVL, "1")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
###################################################################
|
|
# These records control the number of exposures and #
|
|
# number of images #
|
|
###################################################################
|
|
record(longout, "$(P)$(D)NumExposures")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))NEXPOSURES")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)NumExposures_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))NEXPOSURES")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(longout, "$(P)$(D)NumImages")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))NIMAGES")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)NumImages_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))NIMAGES")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
###################################################################
|
|
# These records control acquisition start and #
|
|
# and stop #
|
|
###################################################################
|
|
|
|
record(bo, "$(P)$(D)Acquire")
|
|
{
|
|
field(ZNAM, "Done")
|
|
field(ONAM, "Acquire")
|
|
field(OUT, "$(P)$(D)AcquireFanout PP MS")
|
|
}
|
|
|
|
record(dfanout, "$(P)$(D)AcquireFanout")
|
|
{
|
|
field(OUTA, "$(P)$(D)StartAcquireCalc.PROC PP MS")
|
|
field(OUTB, "$(P)$(D)DoAcquire PP MS")
|
|
}
|
|
|
|
record(calcout, "$(P)$(D)StartAcquireCalc")
|
|
{
|
|
field(INPA, "$(P)$(D)Acquire")
|
|
field(CALC, "A")
|
|
field(OUT, "$(P)$(D)AcquireBusy PP MS")
|
|
field(OOPT, "Transition To Non-zero")
|
|
}
|
|
|
|
record(busy, "$(P)$(D)AcquireBusy")
|
|
{
|
|
}
|
|
|
|
record(longout, "$(P)$(D)DoAcquire")
|
|
{
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ACQUIRE")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)Acquire_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ACQUIRE")
|
|
field(SCAN, "I/O Intr")
|
|
field(FLNK, "$(P)$(D)AcquireDoneCalc")
|
|
}
|
|
|
|
record(calcout, "$(P)$(D)AcquireDoneCalc")
|
|
{
|
|
field(INPA, "$(P)$(D)Acquire_RBV")
|
|
field(CALC, "A")
|
|
field(OUT, "$(P)$(D)AcquireDoneFanout PP MS")
|
|
field(OOPT, "Transition To Zero")
|
|
}
|
|
|
|
record(dfanout, "$(P)$(D)AcquireDoneFanout")
|
|
{
|
|
field(VAL, "0")
|
|
field(OUTA, "$(P)$(D)Acquire CA MS")
|
|
field(OUTB, "$(P)$(D)AcquireBusy CA MS")
|
|
}
|
|
|
|
###################################################################
|
|
# These records provide statistics on image callbacks and #
|
|
# image callback rates #
|
|
###################################################################
|
|
record(longout, "$(P)$(D)ImageCounter")
|
|
{
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))IMAGE_COUNTER")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)ImageCounter_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))IMAGE_COUNTER")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
# This record needs work, because .B should reflect the time since last processed
|
|
record(calc, "$(P)$(D)ImageRate_RBV")
|
|
{
|
|
field(INPA, "$(P)$(D)ImageRate_RBV.B NPP NMS") # Previous counter value
|
|
field(INPB, "$(P)$(D)ImageCounter_RBV NPP NMS") # Current counter value
|
|
field(INPC, "1.0") # Delta time, needs work
|
|
field(CALC, "(B-A)/C")
|
|
field(PREC, "1")
|
|
field(SCAN, "1 second")
|
|
}
|
|
|
|
###################################################################
|
|
# These records are for the detector state #
|
|
###################################################################
|
|
|
|
record(mbbi, "$(P)$(D)DetectorState_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))STATUS")
|
|
field(ZRST, "Idle")
|
|
field(ZRVL, "0")
|
|
field(ZRSV, "NO_ALARM")
|
|
field(ONST, "Acquire")
|
|
field(ONVL, "1")
|
|
field(ONSV, "MINOR")
|
|
field(TWST, "Readout")
|
|
field(TWVL, "2")
|
|
field(TWSV, "MINOR")
|
|
field(THST, "Correct")
|
|
field(THVL, "3")
|
|
field(THSV, "MINOR")
|
|
field(FRST, "Saving")
|
|
field(FRVL, "4")
|
|
field(FRSV, "MINOR")
|
|
field(FVST, "Aborting")
|
|
field(FVVL, "5")
|
|
field(FVSV, "MINOR")
|
|
field(SXST, "Error")
|
|
field(SXVL, "6")
|
|
field(SXSV, "MAJOR")
|
|
field(SVST, "Disconnected")
|
|
field(SVVL, "0")
|
|
field(SVSV, "MAJOR")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
|
|
###################################################################
|
|
# These records control file I/O #
|
|
###################################################################
|
|
|
|
# File path.
|
|
record(waveform, "$(P)$(D)FilePath")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetWrite")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_PATH")
|
|
field(FTVL, "UCHAR")
|
|
field(NELM, "256")
|
|
}
|
|
|
|
record(waveform, "$(P)$(D)FilePath_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetRead")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_PATH")
|
|
field(FTVL, "UCHAR")
|
|
field(NELM, "256")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
# Filename
|
|
record(waveform, "$(P)$(D)FileName")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetWrite")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_NAME")
|
|
field(FTVL, "UCHAR")
|
|
field(NELM, "256")
|
|
}
|
|
|
|
record(waveform, "$(P)$(D)FileName_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetRead")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_NAME")
|
|
field(FTVL, "UCHAR")
|
|
field(NELM, "256")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
# File number
|
|
record(longout, "$(P)$(D)FileNumber")
|
|
{
|
|
field(PINI, "1")
|
|
field(VAL, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_NUMBER")
|
|
}
|
|
|
|
record(longin, "$(P)$(D)FileNumber_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_NUMBER")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
record(calcout, "$(P)$(D)FileNumber_Sync")
|
|
{
|
|
field(INPA, "$(P)$(D)FileNumber_RBV CP")
|
|
field(CALC, "A")
|
|
field(OUT, "$(P)$(D)FileNumber PP")
|
|
}
|
|
|
|
# Autoincrement flag
|
|
record(mbbo, "$(P)$(D)AutoIncrement")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))AUTO_INCREMENT")
|
|
field(ZRST, "No")
|
|
field(ZRVL, "0")
|
|
field(ONST, "Yes")
|
|
field(ONVL, "1")
|
|
}
|
|
|
|
record(mbbo, "$(P)$(D)AutoIncrement_RBV")
|
|
{
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))AUTO_INCREMENT")
|
|
field(ZRST, "No")
|
|
field(ZRVL, "0")
|
|
field(ONST, "Yes")
|
|
field(ONVL, "1")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
# File template
|
|
record(waveform, "$(P)$(D)FileTemplate")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetWrite")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_TEMPLATE")
|
|
field(FTVL, "UCHAR")
|
|
field(NELM, "256")
|
|
}
|
|
|
|
record(waveform, "$(P)$(D)FileTemplate_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetRead")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_TEMPLATE")
|
|
field(FTVL, "UCHAR")
|
|
field(NELM, "256")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
# Full filename, including path
|
|
record(waveform, "$(P)$(D)FullFileName_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynOctetRead")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FULL_FILE_NAME")
|
|
field(FTVL, "UCHAR")
|
|
field(NELM, "256")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
# Autosave flag
|
|
record(mbbo, "$(P)$(D)AutoSave")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))AUTO_SAVE")
|
|
field(ZRST, "No")
|
|
field(ZRVL, "0")
|
|
field(ONST, "Yes")
|
|
field(ONVL, "1")
|
|
}
|
|
|
|
record(mbbi, "$(P)$(D)AutoSave_RBV")
|
|
{
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))AUTO_SAVE")
|
|
field(ZRST, "No")
|
|
field(ZRVL, "0")
|
|
field(ONST, "Yes")
|
|
field(ONVL, "1")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
# NOTE: These should be busy records, but wait till we get asynBusy record
|
|
# Write file
|
|
record(longout, "$(P)$(D)WriteFile")
|
|
{
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))WRITE_FILE")
|
|
}
|
|
|
|
# Read file
|
|
record(longout, "$(P)$(D)ReadFile")
|
|
{
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))READ_FILE")
|
|
}
|
|
|
|
# File data format
|
|
record(mbbo, "$(P)$(D)FileFormat")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_FORMAT")
|
|
field(ZRST, "Default")
|
|
field(ZRVL, "0")
|
|
field(ONST, "Invalid")
|
|
field(ONVL, "1")
|
|
}
|
|
|
|
record(mbbi, "$(P)$(D)FileFormat_RBV")
|
|
{
|
|
field(PINI, "1")
|
|
field(DTYP, "asynInt32")
|
|
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_FORMAT")
|
|
field(ZRST, "Default")
|
|
field(ZRVL, "0")
|
|
field(ONST, "Invalid")
|
|
field(ONVL, "1")
|
|
field(SCAN, "I/O Intr")
|
|
}
|
|
|
|
###################################################################
|
|
# The asynRecord is used for mainly for trace mask #
|
|
###################################################################
|
|
|
|
# Set ASYN_TRACEIO_HEX bit by default
|
|
record(asyn,"$(P)$(D)AsynIO")
|
|
{
|
|
field(PORT, $(PORT))
|
|
field(TIB2,"1")
|
|
}
|
|
|
|
###################################################################
|
|
# Records past here need work!!!! #
|
|
###################################################################
|
|
|
|
# Needs works past here
|
|
record(mbbo, "$(P)$(D)Compression")
|
|
{
|
|
field(ZRST, "None")
|
|
field(ONST, "LZW")
|
|
field(TWST, "Skip-Huff")
|
|
field(THST, "RL Encoding")
|
|
}
|
|
|
|
record(bi, "$(P)$(D)CorrectBackground")
|
|
{
|
|
field(VAL, "0")
|
|
field(ZNAM, "No")
|
|
field(ONAM, "Yes")
|
|
}
|
|
|
|
record(bi, "$(P)$(D)CorrectFlatfield")
|
|
{
|
|
field(VAL, "0")
|
|
field(ZNAM, "No")
|
|
field(ONAM, "Yes")
|
|
}
|
|
|
|
record(bi, "$(P)$(D)CorrectSpatial")
|
|
{
|
|
field(VAL, "0")
|
|
field(ZNAM, "No")
|
|
field(ONAM, "Yes")
|
|
}
|
|
|
|
record(mbbo, "$(P)$(D)ImageType")
|
|
{
|
|
field(VAL, "0")
|
|
field(ZRST, "Normal")
|
|
field(ONST, "Dbl correlation")
|
|
field(TWST, "Background")
|
|
field(THST, "Flatfield")
|
|
}
|
|
|
|
record(ao, "$(P)$(D)TimeRemaining")
|
|
{
|
|
field(VAL, "0")
|
|
field(PREC, "1")
|
|
}
|
|
|
|
record(stringout, "$(P)$(D)OpenShutterStr")
|
|
{
|
|
field(VAL, "1")
|
|
}
|
|
|
|
record(bo, "$(P)$(D)OpenShutter")
|
|
{
|
|
}
|
|
|
|
record(stringout, "$(P)$(D)CloseShutterStr")
|
|
{
|
|
field(VAL, "0")
|
|
}
|
|
|
|
record(bo, "$(P)$(D)CloseShutter")
|
|
{
|
|
}
|
|
|
|
record(ao, "$(P)$(D)OpenShutterDly")
|
|
{
|
|
field(VAL, ".05")
|
|
field(PREC, "3")
|
|
}
|
|
|
|
record(ao, "$(P)$(D)CloseShutterDly")
|
|
{
|
|
field(VAL, ".05")
|
|
field(PREC, "3")
|
|
}
|
|
|
|
record(mbbo, "$(P)$(D)ShutterMode")
|
|
{
|
|
field(VAL, "2")
|
|
field(ZRST, "None")
|
|
field(ONST, "Camera output")
|
|
field(TWST, "EPICS PV")
|
|
}
|
|
|
|
record(bo, "$(P)$(D)Shutter")
|
|
{
|
|
field(PINI, "YES")
|
|
field(VAL, "0")
|
|
field(ZNAM, "Closed")
|
|
field(ZSV, "MAJOR")
|
|
field(ONAM, "Open")
|
|
field(OSV, "NO_ALARM")
|
|
}
|
|
|
|
record(stringin, "$(P)$(D)ShutterStatus")
|
|
{
|
|
field(PINI, "YES")
|
|
field(INP, "$(P)$(D)Shutter CP MS")
|
|
}
|
|
|
|
record(stringout, "$(P)$(D)DetInStr")
|
|
{
|
|
}
|
|
|
|
record(stringout, "$(P)$(D)DetOutStr")
|
|
{
|
|
}
|
|
|
|
record(stringin, "$(P)$(D)Comment1")
|
|
{
|
|
field(DESC, "Comment 1")
|
|
}
|
|
|
|
record(stringin, "$(P)$(D)Comment2")
|
|
{
|
|
field(DESC, "Comment 2")
|
|
}
|
|
|
|
record(stringin, "$(P)$(D)Comment3")
|
|
{
|
|
field(DESC, "Comment 3")
|
|
}
|
|
|
|
record(stringin, "$(P)$(D)Comment4")
|
|
{
|
|
field(DESC, "Comment 4")
|
|
}
|
|
|
|
record(stringin, "$(P)$(D)Comment5")
|
|
{
|
|
field(DESC, "Comment 5")
|
|
}
|
|
|
|
record(stringin, "$(P)$(D)Comment6")
|
|
{
|
|
field(DESC, "Comment 6")
|
|
}
|
|
|