Skip to content
Snippets Groups Projects
pyDevFilters.db 6.72 KiB
Newer Older
record(ao, "$(P)Filter$(N):attenuation"){
	field(DTYP, "pydev")
	field(OUT, "@$(OBJ).updateAtten('VAL')")
	field(DRVL, "1")
	field(PREC, "3")
}

record(ao, "$(P)Filter$(N):attenFactor"){
	field(VAL,  "1.0")
	field(FLNK, "$(P)Filter$(N):attenFactor_Calc PP")
}

record(calcout, "$(P)Filter$(N):attenFactor_Calc"){
	field(SCAN, "Passive")
	field(INPA, "$(P)Filter$(N):attenuation_actual")
	field(INPB, "$(P)Filter$(N):attenFactor")
	field(CALC, "MAX(A*B,1.0)")
	field(OUT, "$(P)Filter$(N):attenuation PP")
}

# Select the source field for the energy
record(bo, "$(P)Filter$(N):EnergySelect") {
  field(DESC, "energy selection")
  field(DTYP, "Soft Channel")
  field(ZNAM, "Mono")
  field(ONAM, "Local")
  field(VAL, "1")
  field(FLNK, "$(P)Filter$(N):EnergyCalc")
}

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

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

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

record(ao, "$(P)Filter$(N):energy"){
	field(EGU, "keV")
	field(DTYP, "pydev")
	field(OUT, "@$(OBJ).updateEnergy('VAL')")
    field(PREC, "4")

}

record(ai, "$(P)Filter$(N):energy_RBV"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_energy')")
  field(SCAN, "I/O Intr")
mwyman's avatar
mwyman committed
  field(EGU, "keV")
  field(PREC, "4")

}

#record(bo, "$(P)Filter$(N):attenuation_twk_up"){
#	field(DTYP, "pydev")
##	field(HIGH, "0.25")
#	field(OUT, "@$(OBJ).tweakUp()")
#}
#
#record(bo, "$(P)Filter$(N):attenuation_twk_dn"){
#	field(DTYP, "pydev")
##	field(HIGH, "0.25")
#	field(OUT, "@$(OBJ).tweakDn()")
#}



record(calcout, "$(P)Filter$(N):attenuation_twk_up"){
	field(INPA, "$(P)Filter$(N):sortedIndex_RBV")
	field(CALC, "MIN(A+1,2**$(NUM)-1)")
	field(OUT, "$(P)Filter$(N):sortedIndex PP")
}

record(calcout, "$(P)Filter$(N):attenuation_twk_dn"){
	field(INPA, "$(P)Filter$(N):sortedIndex_RBV")
	field(CALC, "MAX(0,A-1)")
	field(OUT, "$(P)Filter$(N):sortedIndex PP")
}


record(ai, "$(P)Filter$(N):attenuation_actual"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_atten')")
  field(SCAN, "I/O Intr")
  field(PREC, "3")
}

record(longin, "$(P)Filter$(N):filterConfig") {
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_filters')")
  field(SCAN, "I/O Intr")
  field(FLNK, "$(P)Filter$(N):safeTransition")
}

record(longout, "$(P)Filter$(N):sortedIndex") {
  field(DTYP, "pydev")
  field(OUT, "@$(OBJ).updateIndex('VAL')")
}

record(longin, "$(P)Filter$(N):sortedIndex_RBV") {
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_index')")
  field(SCAN, "I/O Intr")
}

record(longin, "$(P)Filter$(N):inMask_RBV") {
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_inMask')")
  field(SCAN, "I/O Intr")
}

record(longin, "$(P)Filter$(N):outMask_RBV") {
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_outMask')")
  field(SCAN, "I/O Intr")
}


record(longout, "$(P)Filter$(N):previewIndex") {
  field(DTYP, "pydev")
  field(OUT, "@$(OBJ).getPreviewAtten('VAL')")
}

record(ai, "$(P)Filter$(N):attenuation_preview"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_preview')")
  field(SCAN, "I/O Intr")
  field(PREC, "3")

}

record(sseq, "$(P)Filter$(N):safeTransition"){
	field(DO1, "1")
	field(LNK1, "$(P)Filter$(N):disableEncode PP")
	field(DO2, "4095")
#	field(LNK2, "$(P)Filter$(N):rawConfig PP")
	field(LNK2, "$(P)Filter$(N):filter_decode.A PP")
	field(DLY3, "1.0")
	field(DOL3, "$(P)Filter$(N):filterConfig")
#	field(LNK3, "$(P)Filter$(N):rawConfig PP")
	field(LNK3, "$(P)Filter$(N):filter_decode.A PP")
	field(DO4, "0")
	field(LNK4, "$(P)Filter$(N):disableEncode PP")
	field(DLY5, "0.5")
	field(DO5, "1")
	field(LNK5, "$(P)Filter$(N):filter_RBV_encode.PROC PP")
	field(DO6, "1")
	field(LNK6, "$(P)Filter$(N):filter_encode.PROC PP")

}

#record(longin, "$(P)Filter$(N):rawConfig") {
#}
	
record(transform, "$(P)Filter$(N):filter_decode"){
#	field(INPA, "$(P)Filter$(N):rawConfig CP")
	field(CLCB, "A % 2")
	field(CLCC, "(A >> 1) % 2")
	field(CLCD, "(A >> 2) % 2")
	field(CLCE, "(A >> 3) % 2")
	field(CLCF, "(A >> 4) % 2")
	field(CLCG, "(A >> 5) % 2")
	field(CLCH, "(A >> 6) % 2")
	field(CLCI, "(A >> 7) % 2")
	field(CLCJ, "(A >> 8) % 2")
	field(CLCK, "(A >> 9) % 2")
	field(CLCL, "(A >> 10) % 2")
	field(CLCM, "(A >> 11) % 2")
}

record(calcout, "$(P)Filter$(N):filter_RBV_encode"){
	field(OUT, "$(P)Filter$(N):filterConfig_RBV PP")
	field(CALC, "A+B*2+C*4+D*8+E*16+F*32+G*64+H*128+I*256+J*512+K*1024+L*2048")
#	field(SDIS, "$(P)Filter$(N):disableEncode")
#	field(DISV, "1")
} 

record(longin, "$(P)Filter$(N):filterConfig_RBV") {
}

record(bo, "$(P)Filter$(N):disableEncode"){
	field(ZNAM, "Enabled")
	field(ONAM, "Disabled")
}

record(calcout, "$(P)Filter$(N):filter_encode"){
	field(OUT, "$(P)Filter$(N):filterConfig_BW PP")
	field(CALC, "A+B*2+C*4+D*8+E*16+F*32+G*64+H*128+I*256+J*512+K*1024+L*2048")
#	field(SDIS, "$(P)Filter$(N):disableEncode")
#	field(DISV, "1")

}

record(longout, "$(P)Filter$(N):filterConfig_BW") {
  field(DTYP, "pydev")
  field(OUT, "@$(OBJ).updateConfig('VAL')")
}

record(ai, "$(P)Filter$(N):filterRBV_atten"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('config_atten')")
  field(SCAN, "I/O Intr")
}

record(ai, "$(P)Filter$(N):attenuation_2E_actual"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_atten_2E')")
  field(SCAN, "I/O Intr")
}

record(ai, "$(P)Filter$(N):attenuation_3E_actual"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('new_atten_3E')")
  field(SCAN, "I/O Intr")
}

record(calcout, "$(P)Filter$(N):outMask_encode"){
	field(OUT, "$(P)Filter$(N):outMask PP")
	field(CALC, "A+B*2+C*4+D*8+E*16+F*32+G*64+H*128+I*256+J*512+K*1024+L*2048")
}

record(longout, "$(P)Filter$(N):outMask") {
  field(DTYP, "pydev")
  field(DESC, "Fixed-out filter mask")
  field(OUT, "@$(OBJ).setOutMask('VAL')")
}

record(calcout, "$(P)Filter$(N):inMask_encode"){
	field(OUT, "$(P)Filter$(N):inMask PP")
	field(CALC, "A+B*2+C*4+D*8+E*16+F*32+G*64+H*128+I*256+J*512+K*1024+L*2048")
}

record(longout, "$(P)Filter$(N):inMask") {
  field(DTYP, "pydev")
  field(DESC, "Fixed-in filter mask")
  field(OUT, "@$(OBJ).setInMask('VAL')")
}

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