Skip to content
Snippets Groups Projects
pyDevFilters.db 7.9 KiB
Newer Older
record(ao, "$(P)$(FILTER_ID):transmission"){
	field(DRVL, "0")
	field(DRVH, "1")
	field(PREC, "8")
}

record(calcout, "$(P)$(FILTER_ID):conv_trans") {
	field(INPA, "$(P)$(FILTER_ID):transmission CP")
	field(CALC, "1/A")
	field(OUT, "$(P)$(FILTER_ID):attenuation PP")
}

record(ao, "$(P)$(FILTER_ID):attenuation"){
record(ao, "$(P)$(FILTER_ID):attenFactor"){
	field(FLNK, "$(P)$(FILTER_ID):attenFactor_Calc PP")
record(calcout, "$(P)$(FILTER_ID):attenFactor_Calc"){
	field(INPA, "$(P)$(FILTER_ID):attenuation_actual")
	field(INPB, "$(P)$(FILTER_ID):attenFactor")
	field(OUT, "$(P)$(FILTER_ID):attenuation PP")
record(bo, "$(P)$(FILTER_ID):EnergySelect") {
  field(DESC, "energy selection")
  field(DTYP, "Soft Channel")
  field(ZNAM, "Mono")
  field(ONAM, "Local")
  field(VAL, "1")
  field(FLNK, "$(P)$(FILTER_ID):EnergyCalc")
record(ao, "$(P)$(FILTER_ID):EnergyLocal") {
  field(DESC, "local energy")
  field(VAL,  "12.398")
  field(PREC, "4")
  field(EGU, "keV")
  field(FLNK, "$(P)$(FILTER_ID):EnergyCalc")
record(ao, "$(P)$(FILTER_ID):EnergyBeamline") {
  field(DESC, "beamline energy")
  field(DOL,  "$(KEV) CP")
  field(OMSL, "closed_loop")
  field(PREC, "4")
  field(EGU, "keV")
  field(FLNK, "$(P)$(FILTER_ID):EnergyCalc")
record(calcout, "$(P)$(FILTER_ID):EnergyCalc"){
  field(DESC, "Energy select calc")
  field(SCAN, "Passive")
  field(INPA, "$(P)$(FILTER_ID):EnergySelect.RVAL")
  field(INPB, "$(P)$(FILTER_ID):EnergyBeamline")
  field(INPC, "$(P)$(FILTER_ID):EnergyLocal")
record(ai, "$(P)$(FILTER_ID):energy_RBV"){
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_energy')")
mwyman's avatar
mwyman committed
  field(EGU, "keV")
record(calcout, "$(P)$(FILTER_ID):attenuation_twk_up"){
	field(INPA, "$(P)$(FILTER_ID):sortedIndex_RBV")
	field(OUT, "$(P)$(FILTER_ID):sortedIndex PP")
record(calcout, "$(P)$(FILTER_ID):attenuation_twk_dn"){
	field(INPA, "$(P)$(FILTER_ID):sortedIndex_RBV")
	field(OUT, "$(P)$(FILTER_ID):sortedIndex PP")
record(ai, "$(P)$(FILTER_ID):attenuation_actual"){
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_atten')")
  field(PREC, "5")
}

record(calcout, "$(P)$(FILTER_ID):conv_atten") {
	field(INPA, "$(P)$(FILTER_ID):attenuation_actual CP")
	field(CALC, "1/A")
	field(OUT, "$(P)$(FILTER_ID):transmission_RBV PP")
}

record(ao, "$(P)$(FILTER_ID):transmission_RBV"){
	field(DRVL, "0")
	field(DRVH, "1")
	field(PREC, "8")
}

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

record(ai, "$(P)$(FILTER_ID):atten_dn"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('$(FILTER_ID)_atten_dn')")
  field(SCAN, "I/O Intr")
  field(PREC, "5")
record(longin, "$(P)$(FILTER_ID):filterConfig") {
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_filters')")
  field(FLNK, "$(P)$(FILTER_ID):safeTransCalc")
record(longout, "$(P)$(FILTER_ID):sortedIndex") {
record(longin, "$(P)$(FILTER_ID):sortedIndex_RBV") {
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_index')")
record(longin, "$(P)$(FILTER_ID):inMask_RBV") {
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_inMask')")
record(longin, "$(P)$(FILTER_ID):outMask_RBV") {
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_outMask')")
record(longout, "$(P)$(FILTER_ID):previewIndex") {
  field(OUT, "@$(OBJ).getPreviewAtten(VAL)")
record(ai, "$(P)$(FILTER_ID):attenuation_preview"){
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_preview')")
record(calcout, "$(P)$(FILTER_ID):safeTransCalc") {
	field(INPA, "$(P)$(FILTER_ID):filterConfig_RBV")
	field(INPB, "$(P)$(FILTER_ID):filterConfig")
	field(CALC, "A|B")
	field(OUT, "$(P)$(FILTER_ID):safeTransState PP")
    field(FLNK, "$(P)$(FILTER_ID):safeTransition")
}
	
record(longin, "$(P)$(FILTER_ID):safeTransState") {}

record(sseq, "$(P)$(FILTER_ID):safeTransition"){
	field(LNK1, "$(P)$(FILTER_ID):disableEncode PP")
	field(DOL3, "$(P)$(FILTER_ID):safeTransState")
	field(LNK3, "$(P)$(FILTER_ID):filter_decode.A PP")
	field(DLY4, "1.0")
	field(DOL4, "$(P)$(FILTER_ID):filterConfig")
	field(LNK4, "$(P)$(FILTER_ID):filter_decode.A PP")
	field(DO5, "0")
	field(LNK5, "$(P)$(FILTER_ID):disableEncode PP")
	field(DLY6, "0.5")
	field(LNK6, "$(P)$(FILTER_ID):filter_RBV_encode.PROC PP")
	field(DO7, "1")
	field(LNK7, "$(P)$(FILTER_ID):filter_encode.PROC PP")
record(transform, "$(P)$(FILTER_ID):filter_decode"){
	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_ID):filter_RBV_encode"){
	field(OUT, "$(P)$(FILTER_ID):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")
} 

record(longin, "$(P)$(FILTER_ID):filterConfig_RBV") {
record(calcout, "$(P)$(FILTER_ID):filterConfig_RBV_update") {
	field(INPA, "$(P)$(FILTER_ID):filterConfig_RBV CP")
	field(INPB, "$(P)$(FILTER_ID):filterConfig_BW NPP")
	field(CALC, "A==B?1:0")
	field(OOPT, "When Zero")
	field(DOPT, "Use OCAL")
	field(OCAL, "A")
	field(OUT, "$(P)$(FILTER_ID):filterConfig_BW PP")
}

record(bo, "$(P)$(FILTER_ID):disableEncode"){
record(calcout, "$(P)$(FILTER_ID):filter_encode"){
	field(OUT, "$(P)$(FILTER_ID):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")
}

record(longout, "$(P)$(FILTER_ID):filterConfig_BW") {
record(ai, "$(P)$(FILTER_ID):filterRBV_atten"){
  field(INP,  "@pydev.iointr('$(FILTER_ID)_config_atten')")
record(ai, "$(P)$(FILTER_ID):attenuation_2E_actual"){
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_atten_2E')")
record(ai, "$(P)$(FILTER_ID):attenuation_3E_actual"){
  field(INP,  "@pydev.iointr('$(FILTER_ID)_new_atten_3E')")
record(calcout, "$(P)$(FILTER_ID):outMask_encode"){
	field(OUT, "$(P)$(FILTER_ID):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_ID):outMask") {
  field(DTYP, "pydev")
  field(DESC, "Fixed-out filter mask")
record(calcout, "$(P)$(FILTER_ID):inMask_encode"){
	field(OUT, "$(P)$(FILTER_ID):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_ID):inMask") {
  field(DTYP, "pydev")
  field(DESC, "Fixed-in filter mask")
record(bo, "$(P)$(FILTER_ID):verbosity"){
	field(OUT, "@$(OBJ).updateVerbosity(VAL)")