Skip to content
Snippets Groups Projects
pyDevSBL.db 2.81 KiB
Newer Older
mwyman's avatar
mwyman committed
################################################################################
#
#  Detector: 0-d (intensity)
#
################################################################################


record(sseq, "$(P)$(INSTANCE):det:FullTrigger"){
#  field(DO1, "1")
#  field(LNK1, "$(P)$(INSTANCE):DimCalc.PROC PP")
  field(STR2, "Set")
  field(LNK2, "$(P)NDSA:NewArray PP")
  field(STR3, "Acquire")
  field(LNK3, "$(P)NDSA:Acquire PP") 
  field(STR4, "Acquiring")
  field(LNK4, "$(P)$(INSTANCE):det:Acquire PP")
}

record(acalcout, "$(P)$(INSTANCE):DimCalc")
{
	field(DTYP, "Soft Channel")
	field(DESC, "Setting Dims of NDSA")
	field(A, "$(XSIZE)")
	field(B, "$(YSIZE)")
	field(CALC, "ARR(A){0,0}+ARR(B)>>1")
    field(SIZE, "NELM")	
	field(OUT, "$(P)$(NDSA):Dimensions PP NMS")
	field(DISV, "1")
	field(NELM, "2")
}

record(busy, "$(P)$(INSTANCE):det:Acquire"){
mwyman's avatar
mwyman committed
	field(ZNAM, "Done")
	field(ONAM, "Acquiring")	
}

record(calcout, "$(P)$(INSTANCE):det:triggerCalc")
mwyman's avatar
mwyman committed
{
  field(INPA, "$(P)$(INSTANCE):det:Acquire CP")
mwyman's avatar
mwyman committed
  field(CALC, "A")
  field(OOPT, "Transition To Non-zero")
  field(OUT,  "$(P)$(INSTANCE):det:triggerPyDEV.RVAL PP")
  field(FLNK, "$(P)$(INSTANCE):det:triggerPyDEV.PROC")
mwyman's avatar
mwyman committed
}

#TODO make XSIZE here a PV? And then same PV could be used for DimCalc
record(bo, "$(P)$(INSTANCE):det:triggerPyDEV"){
mwyman's avatar
mwyman committed
  field(DTYP, "pydev")
  field(OUT, "@$(OBJ).detectorUpdate(zeroD = False, nbins=$(XSIZE))")
mwyman's avatar
mwyman committed
}

mwyman's avatar
mwyman committed

record(ai, "$(P)$(INSTANCE):det:intensity"){
mwyman's avatar
mwyman committed
  field(DTYP, "pydev")
mwyman's avatar
mwyman committed
  field(INP,  "@pydev.iointr('new_intensity')")
mwyman's avatar
mwyman committed
  field(SCAN, "I/O Intr")
  field(PREC, "4")
  field(FLNK, "$(P)$(INSTANCE):det:AcquireDone")
mwyman's avatar
mwyman committed
}

record(dfanout, "$(P)$(INSTANCE):det:AcquireDone"){
mwyman's avatar
mwyman committed
	field(DOL, "0")
	field(OUTA, "$(P)$(INSTANCE):det:Acquire PP")
mwyman's avatar
mwyman committed
}

mwyman's avatar
mwyman committed
################################################################################
#
#  Detector: 2-d Image
#
#
################################################################################


record(waveform, "$(P)$(INSTANCE):raw_image"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('raw_image')")
  field(SCAN, "I/O Intr")
  field(PREC, "4")
  field(NELM, "$(SIZE)")
  field(FTVL, "$(FTVL)")
  field(FLNK, "$(P)$(INSTANCE):imageTransfer")
}
mwyman's avatar
mwyman committed

record(acalcout, "$(P)$(INSTANCE):imageTransfer")
{
	field(DTYP, "Soft Channel")
	field(DESC, "")
	field(INAA, "$(P)$(INSTANCE):raw_image")
	field(CALC, "AA")
    field(SIZE, "NELM")	
	field(OUT, "$(P)$(NDSA):ArrayIn PP NMS")
	field(DISV, "1")
	field(NELM, "$(SIZE)")
}


record(waveform, "$(P)$(INSTANCE):h_coord"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('h_coord')")
  field(SCAN, "I/O Intr")
  field(PREC, "4")
  field(NELM, "$(XSIZE)")
  field(FTVL, "FLOAT")
}

record(waveform, "$(P)$(INSTANCE):v_coord"){
  field(DTYP, "pydev")
  field(INP,  "@pydev.iointr('v_coord')")
  field(SCAN, "I/O Intr")
  field(PREC, "4")
  field(NELM, "$(YSIZE)")
  field(FTVL, "FLOAT") 
}