scanLib.templateΒΆ

# Database for EPICS PVS for txm optics control
# This database contains all of the PVs used by the txmoptics base class.

#############
# PV Prefixes 
#############

record(stringout, "$(P)$(R)TomoscanPVPrefix")
{
   field(VAL,  "$(TOMOSCAN_PREFIX)")
}

############
# Scan Types
############

record(mbbo, "$(P)$(R)ScanType")
{
   field(ZRVL, "0")
   field(ZRST, "Single")
   field(ONVL, "1")
   field(ONST, "Vertical")
   field(TWVL, "2")
   field(TWST, "Horizontal")
   field(THVL, "3")
   field(THST, "Mosaic")
   field(FRVL, "4")
   field(FRST, "Scan File")
   field(FVVL, "5")
   field(FVST, "Energy")
   field(SXVL, "6")
   field(SXST, "Energy File")
   field(SVVL, "7")
   field(SVST, "Helical")
}

###################
# Vertical scan PVs
###################

record(ao, "$(P)$(R)VerticalStart")
{
   field(PREC, "3")
   field(EGU,  "mm")
}

record(ao, "$(P)$(R)VerticalStepSize")
{
   field(PREC, "3")
   field(EGU,  "mm")
}

record(ao, "$(P)$(R)VerticalSteps")
{
   field(PREC, "3")
}

#####################
# Horizontal scan PVs
#####################

record(ao, "$(P)$(R)HorizontalStart")
{
   field(PREC, "3")
   field(EGU,  "mm")
}

record(ao, "$(P)$(R)HorizontalStepSize")
{
   field(PREC, "3")
   field(EGU,  "mm")
}

record(ao, "$(P)$(R)HorizontalSteps")
{
   field(PREC, "3")
}

###########
# Scan file
###########

record(stringout, "$(P)$(R)ScanFileName") 
{
   field(VAL,  "Unknown")
}

record(bo, "$(P)$(R)ScanFileOK")
{
   field(ZNAM, "No")
   field(ONAM, "Yes")
}

#################
# Energy scan PVs
#################

record(ao, "$(P)$(R)EnergyStart")
{
   field(PREC, "3")
   field(EGU,  "keV")
}

record(ao, "$(P)$(R)EnergyStepSize")
{
   field(PREC, "3")
   field(EGU,  "keV")
}

record(ao, "$(P)$(R)EnergySteps")
{
   field(PREC, "3")
}

#############
# Energy file
#############

record(stringout, "$(P)$(R)EnergyFileName") 
{
   field(VAL,  "Unknown")
}

record(bo, "$(P)$(R)EnergyFileOK")
{
   field(ZNAM, "No")
   field(ONAM, "Yes")
}

#######
# Sleep
#######

record(ao, "$(P)$(R)SleepTime")
{
   field(PREC, "3")
   field(EGU,  "s")
}

record(ao, "$(P)$(R)SleepSteps")
{
   field(PREC, "3")
   field(EGU,  "s")
}

record(mbbo, "$(P)$(R)SleepSelect") {
  field(DTYP, "Raw Soft Channel")
  field(NOBT, "3")
  field(ZRVL, "0x0")
  field(ONVL, "0x1")
  field(ZRST, "Yes")
  field(ONST, "No")
}

#################
# In-situ PV name
#################

record(stringout, "$(P)$(R)InsituPVName")
{
   field(VAL,  "$(INSITU_PV)")
}

##################
# In-situ scan PVs
##################

record(ao, "$(P)$(R)InsituStart")
{
   field(PREC, "3")
   field(EGU,  "mm")
}

record(ao, "$(P)$(R)InsituStepSize")
{
   field(PREC, "3")
   field(EGU,  "mm")
}

record(mbbo, "$(P)$(R)InsituSelect") {
  field(DTYP, "Raw Soft Channel")
  field(NOBT, "3")
  field(ZRVL, "0x0")
  field(ONVL, "0x1")
  field(ZRST, "Yes")
  field(ONST, "No")
}

##################
# Helical scan PVs
##################

record(ao, "$(P)$(R)PixelsYPer360Deg")
{
   field(PREC, "3")
}

###########
# Other PVs
###########

record(mbbo, "$(P)$(R)TestingSelect") {
  field(DTYP, "Raw Soft Channel")
  field(NOBT, "3")
  field(ZRVL, "0x0")
  field(ONVL, "0x1")
  field(ZRST, "Yes")
  field(ONST, "No")
}

#################################
# Scan control via Channel Access
#################################
record(busy,"$(P)$(R)StartScan")
{
   field(ZNAM,"Done")
   field(ZSV, "NO_ALARM")
   field(ONAM,"Acquire")
   field(OSV, "MINOR")
   field(VAL, "0")
}

record(bo,"$(P)$(R)AbortScan")
{
   field(ZNAM,"No")
   field(ONAM,"Yes")
}

################################
# Scan status via Channel Access
################################

record(waveform,"$(P)$(R)ScanLibStatus") 
{
   field(FTVL, "UCHAR")
   field(NELM, "256")
}

record(calcout, "$(P)$(R)Watchdog")
{
   field(SCAN, "1 second")
   field(INPA, "$(P)$(R)Watchdog.VAL NPP")
   field(CALC, "A-1")
   field(OCAL, "A>0?1:0")
   field(OOPT, "On Change")
   field(DOPT, "Use OCAL")
   field(OUT,  "$(P)$(R)ServerRunning PP")
}

record(bi, "$(P)$(R)ServerRunning")
{
   field(ZNAM, "Stopped")
   field(ZSV,  "MAJOR")
   field(ONAM, "Running")
   field(OSV,  "NO_ALARM")
}