record(ao, "$(P)CRL$(N):energy"){ field(EGU, "keV") field(DOL, "$(KEV) CP") field(OMSL, "closed_loop") field(DTYP, "pydev") field(OUT, "@$(OBJ).updateE('VAL')") field(FLNK, "$(P)CRL$(N):recalc_table.PROC CA") } record(ai, "$(P)CRL$(N):energy_RBV"){ field(DTYP, "pydev") field(INP, "@pydev.iointr('updated_E')") field(SCAN, "I/O Intr") field(PREC, "5") } record(ao, "$(P)CRL$(N):focalSize"){ field(EGU, "m") field(DTYP, "pydev") field(OUT, "@$(OBJ).updateFsize('VAL')") } #record(bo, "$(P)CRL$(N):fSize_twk_up"){ # field(DTYP, "pydev") # field(OUT, "@$(OBJ).tweakUp()") #} # #record(bo, "$(P)CRL$(N):fSize_twk_dn"){ # field(DTYP, "pydev") # field(OUT, "@$(OBJ).tweakDn()") #} record(calcout, "$(P)CRL$(N):fSize_twk_up"){ field(INPA, "$(P)CRL$(N):sortedIndex_RBV") field(CALC, "MIN(A+1,2**$(NUM)-1)") field(OUT, "$(P)Filter$(N):sortedIndex PP") } record(calcout, "$(P)CRL$(N):fSize_twk_dn"){ field(INPA, "$(P)CRL$(N):sortedIndex_RBV") field(CALC, "MAX(0,A-1)") field(OUT, "$(P)Filter$(N):sortedIndex PP") } record(ao, "$(P)CRL$(N):slitSize_H"){ field(EGU, "m") field(DOL, "$(SLITH) CP") field(OMSL, "closed_loop") field(DTYP, "pydev") field(OUT, "@$(OBJ).updateSlitSize('VAL', 'hor')") field(FLNK, "$(P)CRL$(N):recalc_table.PROC CA") } record(ai, "$(P)CRL$(N):slitSize_H_RBV"){ field(DTYP, "pydev") field(INP, "@pydev.iointr('updated_slitSize_H')") field(SCAN, "I/O Intr") field(PREC, "5") } record(ao, "$(P)CRL$(N):slitSize_V"){ field(EGU, "m") field(DOL, "$(SLITV) CP") field(OMSL, "closed_loop") field(DTYP, "pydev") field(OUT, "@$(OBJ).updateSlitSize('VAL', 'vert')") field(FLNK, "$(P)CRL$(N):recalc_table.PROC CA") } record(ai, "$(P)CRL$(N):slitSize_V_RBV"){ field(DTYP, "pydev") field(INP, "@pydev.iointr('updated_slitSize_V')") field(SCAN, "I/O Intr") field(PREC, "5") } record(bo, "$(P)CRL$(N):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)CRL$(N):recalc_table"){ field(DTYP, "pydev") field(OUT, "@$(OBJ).construct_lookup_table()") field(FLNK, "$(P)CRL$(N):refind_config.PROC CA") field(SDIS, "$(P)CRL$(N):recalc_enable") field(DISV, "0") } # Not sure this would work -- how to get a PV to simply trigger code? record(bo, "$(P)CRL$(N):refind_config"){ field(DTYP, "pydev") field(OUT, "@$(OBJ).find_config()") } record(bo, "$(P)CRL$(N):thickerr_flag"){ field(DTYP, "pydev") field(OUT, "@$(OBJ).updateThickerrFlag()") } record(longin, "$(P)CRL$(N):lenses") { field(DTYP, "pydev") field(INP, "@pydev.iointr('new_lenses')") field(SCAN, "I/O Intr") } record(transform, "$(P)CRL$(N):lens_decode"){ field(INPA, "$(P)CRL$(N):lenses 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)CRL$(N):lens_encode"){ field(OUT, "$(P)CRL$(N):lensConfig_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)CRL$(N):lensConfig_BW") { field(DTYP, "pydev") field(OUT, "@$(OBJ).updateConfig('VAL')") } record(longin, "$(P)CRL$(N):inMask_RBV") { field(DTYP, "pydev") field(INP, "@pydev.iointr('new_inMask')") field(SCAN, "I/O Intr") } record(longin, "$(P)CRL$(N):outMask_RBV") { field(DTYP, "pydev") field(INP, "@pydev.iointr('new_outMask')") field(SCAN, "I/O Intr") } record(ai, "$(P)CRL$(N):fSize_actual"){ field(DTYP, "pydev") field(INP, "@pydev.iointr('new_fSize')") field(SCAN, "I/O Intr") field(PREC, "5") } record(longout, "$(P)CRL$(N):sortedIndex") { field(DTYP, "pydev") field(OUT, "@$(OBJ).updateIndex('VAL')") } record(longin, "$(P)CRL$(N):sortedIndex_RBV") { field(DTYP, "pydev") field(INP, "@pydev.iointr('new_index')") field(SCAN, "I/O Intr") } record(bo, "$(P)CRL$(N):verbosity"){ field(DTYP, "pydev") field(OUT, "@$(OBJ).updateVerbosity('VAL')") field(ZNAM, "Off") field(ONAM, "On") }