Skip to content
Snippets Groups Projects
pyDevCRL_general.db 3.29 KiB
Newer Older
mwyman's avatar
mwyman committed
# Select the source field for the energy
record(bo, "$(P)$(SYSID):EnergySelect") {
  field(DESC, "energy selection")
  field(DTYP, "Soft Channel")
  field(ZNAM, "Mono")
  field(ONAM, "Local")
  field(VAL, "1")
  field(FLNK, "$(P)$(SYSID):EnergyCalc")
}

# The local energy
record(ao, "$(P)$(SYSID):EnergyLocal") {
  field(DESC, "local energy")
  field(VAL,  "12.398")
  field(PREC, "4")
  field(EGU, "keV")
  field(FLNK, "$(P)$(SYSID):EnergyCalc")
}

# The beamline energy
record(ao, "$(P)$(SYSID):EnergyBeamline") {
  field(DESC, "beamline energy")
  field(DOL,  "$(KEV) CP")
  field(OMSL, "closed_loop")
  field(PREC, "4")
  field(EGU, "keV")
  field(FLNK, "$(P)$(SYSID):EnergyCalc")
}

# Calculate the energy to be used
record(calcout, "$(P)$(SYSID):EnergyCalc"){
  field(DESC, "Energy select calc")
  field(SCAN, "Passive")
  field(INPA, "$(P)$(SYSID):EnergySelect.RVAL")
  field(INPB, "$(P)$(SYSID):EnergyBeamline")
  field(INPC, "$(P)$(SYSID):EnergyLocal")
  field(CALC, "(A==0)?B:C")
  field(OUT, "$(P)$(SYSID):energy PP")
  field(PREC, "4")
  field(SCAN, "Passive")
}

record(ao, "$(P)$(SYSID):energy"){
	field(EGU, "keV")
    field(DOL,  "$(KEV) CP")
    field(OMSL, "closed_loop")
	field(DTYP, "pydev")
	field(OUT, "@$(OBJ).updateE(VAL)")
	field(FLNK, "$(P)$(SYSID):recalc_table.PROC CA")
}

record(ai, "$(P)$(SYSID):energy_RBV"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('updated_E')")
  field(SCAN, "I/O Intr")
  field(PREC, "5")
}

record(ao, "$(P)$(SYSID):focalSize"){
	field(EGU, "m")
	field(DTYP, "pydev")
	field(OUT, "@$(OBJ).updateFsize(VAL)")
}

record(bo, "$(P)$(SYSID):recalc_enable"){
	field(DESC, "Lookup table calc enable")
	field(SCAN, "Passive")
	field(ZNAM, "Disabled")
	field(ONAM, "Enabled")
}

# Not sure this would work -- how to get a PV to simply trigger code?
record(bo, "$(P)$(SYSID):recalc_table"){
	field(DTYP, "pydev")
	field(OUT, "@$(OBJ).construct_lookup_table()")
	field(FLNK, "$(P)$(SYSID):refind_config.PROC CA")
	field(SDIS, "$(P)$(SYSID):recalc_enable")
	field(DISV, "0")
}

# Not sure this would work -- how to get a PV to simply trigger code?
record(bo, "$(P)$(SYSID):refind_config"){
	field(DTYP, "pydev")
	field(OUT, "@$(OBJ).find_config()")
}

record(bo, "$(P)$(SYSID):thickerr_flag"){
	field(DTYP, "pydev")
	field(ZNAM, "Off")
	field(ONAM, "On")
	field(OUT, "@$(OBJ).setThickerrFlag(VAL)")
    field(FLNK, "$(P)$(SYSID):recalc_table.PROC CA")
}

record(bi, "$(P)$(SYSID):thickerr_flag_RBV"){
	field(DTYP, "pydev")
    field(INP,  "@pydev.iointr('updated_thickerr_Flag')")
    field(SCAN, "I/O Intr")
}

record(ai, "$(P)$(SYSID):fSize_actual"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_fSize')")
  field(SCAN, "I/O Intr")
  field(PREC, "5")
}
s

record(longout, "$(P)$(SYSID):previewIndex") {
  field(DTYP, "pydev")
  field(OUT, "@$(OBJ).getPreviewFocalSize(VAL)")
}

record(ai, "$(P)$(SYSID):fSize_preview"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_preview')")
  field(SCAN, "I/O Intr")
  field(PREC, "6")
}

record(bo, "$(P)$(SYSID):verbosity"){
	field(DTYP, "pydev")
	field(OUT, "@$(OBJ).updateVerbosity(VAL)")
	field(ZNAM, "Off")
	field(ONAM, "On")
	
}

record(waveform, "$(P)$(SYSID):fSizes"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_lookupTable')")
  field(SCAN, "I/O Intr")
  field(PREC, "6")
  field(FTVL, "DOUBLE")
  field(NELM, "$(ELEM)")
}