Files
ADAndor/ADApp/Db/pilatus.template

383 lines
8.7 KiB
Plaintext

# Database for the records specific to the Pilatus driver
# Mark Rivers
# July 25, 2008
# We redefine the states for the TriggerMode records defined in ADBase.template
record(mbbo,"$(P)$(R)TriggerMode") {
field(DESC,"Acquire mode")
field(ZRVL,"0")
field(ZRST,"Internal")
field(ONVL,"1")
field(ONST,"Ext. Enable")
field(TWVL,"2")
field(TWST,"Ext. Trigger")
field(THVL,"3")
field(THST,"Mult. Trigger")
field(FRVL,"4")
field(FRST,"Alignment")
}
record(mbbi,"$(P)$(R)TriggerMode_RBV") {
field(DESC,"Acquire mode")
field(ZRVL,"0")
field(ZRST,"Internal")
field(ONVL,"1")
field(ONST,"Ext. Enable")
field(TWVL,"2")
field(TWST,"Ext. Trigger")
field(THVL,"3")
field(THST,"Mult. Trigger")
field(FRVL,"4")
field(FRST,"Alignment")
}
# We redefine the states for the FileFormat records defined in NDFile.template
record(mbbo, "$(P)$(R)FileFormat")
{
field(ZRST, "TIFF")
field(ZRVL, "0")
field(ONST, "Invalid")
field(ONVL, "1")
}
record(mbbi, "$(P)$(R)FileFormat_RBV")
{
field(ZRST, "TIFF")
field(ZRVL, "0")
field(ONST, "Invalid")
field(ONVL, "1")
}
# Armed flag, which indicates Pilatus is ready for external triggers
record(bi, "$(P)$(R)Armed")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ARMED")
field(ZNAM, "Unarmed")
field(ONAM, "Armed")
field(SCAN, "I/O Intr")
}
# Delay time in External Trigger mode.
record(ao, "$(P)$(R)DelayTime")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DELAY_TIME")
field(EGU, "s")
field(VAL, "0")
field(PREC, "6")
}
record(ai, "$(P)$(R)DelayTime_RBV")
{
field(DTYP, "asynFloat64")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DELAY_TIME")
field(EGU, "s")
field(PREC, "6")
field(SCAN, "I/O Intr")
}
# Threshold energy
record(ao, "$(P)$(R)ThresholdEnergy")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))THRESHOLD")
field(DESC, "Energy threshold")
field(EGU, "keV")
field(PREC, "3")
field(VAL, "10.000")
}
record(ai, "$(P)$(R)ThresholdEnergy_RBV")
{
field(DTYP, "asynFloat64")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))THRESHOLD")
field(DESC, "Energy threshold")
field(EGU, "keV")
field(PREC, "3")
field(SCAN, "I/O Intr")
}
# Gain menu. This writes to the Gain PV in the base database.
record(mbbo, "$(P)$(R)GainMenu")
{
field(DESC, "Shaping time and gain")
field(OUT, "$(P)$(R)Gain.VAL PP MS")
field(ZRST, "Fast/Low")
field(ZRVL, "0")
field(ONST, "Medium/Medium")
field(ONVL, "1")
field(TWST, "Slow/High")
field(TWVL, "2")
field(THST, "Slow/Ultrahigh")
field(THVL, "3")
field(VAL, "1")
}
# Timeout waiting for image to be written to file system
record(ao, "$(P)$(R)ImageFileTmot")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))IMAGE_FILE_TMOT")
field(DESC, "Timeout for image file")
field(VAL, "20")
field(EGU, "s")
field(PREC, "3")
}
# Bad pixel file
record(waveform, "$(P)$(R)BadPixelFile")
{
field(PINI, "YES")
field(DTYP, "asynOctetWrite")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BAD_PIXEL_FILE")
field(FTVL, "CHAR")
field(NELM, "256")
}
# Number of bad pixels
record(longin, "$(P)$(R)NumBadPixels")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))NUM_BAD_PIXELS")
field(DESC, "Number of bad pixels")
field(SCAN, "I/O Intr")
}
# Flat field file
record(waveform, "$(P)$(R)FlatFieldFile")
{
field(PINI, "YES")
field(DTYP, "asynOctetWrite")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FLAT_FIELD_FILE")
field(FTVL, "CHAR")
field(NELM, "256")
}
# Minimum flat field value
record(longout, "$(P)$(R)MinFlatField")
{
field(PINI, "YES")
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_FLAT_FIELD")
field(DESC, "Minimum flat field value")
field(VAL, "100")
field(EGU, "Counts")
}
record(longin, "$(P)$(R)MinFlatField_RBV")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_FLAT_FIELD")
field(DESC, "Minimum flat field value")
field(EGU, "Counts")
field(SCAN, "I/O Intr")
}
# Flat field valid flag.
record(bi, "$(P)$(R)FlatFieldValid")
{
field(DTYP, "asynInt32")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FLAT_FIELD_VALID")
field(DESC, "Flat field valid")
field(ZNAM, "No")
field(ONAM, "Yes")
field(SCAN, "I/O Intr")
}
# asyn record for interactive communication with camserver
record(asyn, "$(P)$(R)CamserverAsyn")
{
field(PORT, "$(CAMSERVER_PORT)")
field(IMAX, "64")
field(OMAX, "64")
}
# ancillary information
record(ao, "$(P)$(R)Wavelength")
{
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))WAVELENGTH")
field(PREC, "4")
field(VAL, "1.54")
field(EGU, "Angstroms")
}
record(ao, "$(P)$(R)EnergyLow")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ENERGY_LOW")
field(PREC, "3")
field(VAL, "0")
field(EGU, "eV")
}
record(ao, "$(P)$(R)EnergyHigh")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ENERGY_HIGH")
field(PREC, "3")
field(VAL, "0")
field(EGU, "eV")
}
record(ao, "$(P)$(R)DetDist")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DET_DIST")
field(PREC, "3")
field(VAL, "1000")
field(EGU, "mm")
}
record(ao, "$(P)$(R)DetVOffset")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DET_VOFFSET")
field(PREC, "3")
field(VAL, "0")
field(EGU, "mm")
}
record(ao, "$(P)$(R)BeamX")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BEAM_X")
field(PREC, "3")
field(VAL, "0")
field(EGU, "pixels")
}
record(ao, "$(P)$(R)BeamY")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BEAM_Y")
field(PREC, "3")
field(VAL, "0")
field(EGU, "pixels")
}
record(ao, "$(P)$(R)Flux")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FLUX")
field(PREC, "4")
field(VAL, "0")
field(EGU, "ph/s")
}
record(ao, "$(P)$(R)FilterTransm")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILTER_TRANSM")
field(VAL, "1.0")
field(PREC, "4")
}
record(ao, "$(P)$(R)StartAngle")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))START_ANGLE")
field(PREC, "4")
field(VAL, "0")
field(EGU, "deg")
}
record(ao, "$(P)$(R)AngleIncr")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ANGLE_INCR")
field(PREC, "4")
field(VAL, "0.1")
field(EGU, "deg")
}
record(ao, "$(P)$(R)Det2theta")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))DET_2THETA")
field(PREC, "4")
field(VAL, "0")
field(EGU, "deg")
}
record(ao, "$(P)$(R)Polarization")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))POLARIZATION")
field(PREC, "4")
field(VAL, "0.99")
}
record(ao, "$(P)$(R)Alpha")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ALPHA")
field(PREC, "4")
field(VAL, "0")
field(EGU, "deg")
}
record(ao, "$(P)$(R)Kappa")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))KAPPA")
field(PREC, "4")
field(VAL, "0")
field(EGU, "deg")
}
record(ao, "$(P)$(R)Phi")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PHI")
field(PREC, "4")
field(VAL, "0")
field(EGU, "deg")
}
record(ao, "$(P)$(R)Chi")
{
field(PINI, "YES")
field(DTYP, "asynFloat64")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CHI")
field(PREC, "4")
field(VAL, "0")
field(EGU, "deg")
}
record(stringout, "$(P)$(R)OscillAxis")
{
field(PINI, "YES")
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))OSCILL_AXIS")
field(VAL, "X, CW")
}
record(longout, "$(P)$(R)NumOscill")
{
field(PINI, "YES")
field(DTYP, "asynInt32")
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))NUM_OSCILL")
field(VAL, "1")
}