tomoStream.templateΒΆ

# Database for EPICS PVS for tomography data streaming software
# This database contains all of the PVs used by the tomostream base class.

########################
# tomoStream PV Prefixes
########################

record(stringout, "$(P)$(R)TomoScanPVPrefix")
{
   field(VAL,  "$(TOMO_SCAN)")
}


#######################
# tomoStream  PVA names
#######################

record(stringout, "$(P)$(R)ImagePVAPName")
{
   field(VAL,  "$(IMAGE_P)")
}

record(stringout, "$(P)$(R)DarkPVAName")
{
   field(VAL,  "$(DARK_PVA)")
}

record(stringout, "$(P)$(R)FlatPVAName")
{
   field(VAL,  "$(FLAT_PVA)")
}

record(stringout, "$(P)$(R)ThetaPVAName")
{
   field(VAL,  "$(THETA_PVA)")
}

record(stringout, "$(P)$(R)ReconPVAName")
{
   field(VAL,  "$(RECON_PVA)")
}

############################
# Streaming analysis control
############################

record(stringout, "$(P)$(R)BufferSize")
{
}

record(ao, "$(P)$(R)Center")
{
   field(PREC, "3")
}

record(ao,"$(P)$(R)CenterTweak") {
    field(VAL, "3")
    field(PREC,"3")
}

record(calcout,"$(P)$(R)CenterTweakUp") {
    field(INPA,"$(P)$(R)CenterTweak NPP NMS")
    field(INPB,"$(P)$(R)Center NPP NMS")
    field(CALC,"B+A")
    field(OUT, "$(P)$(R)Center PP NMS")
}

record(calcout,"$(P)$(R)CenterTweakDown") {
    field(INPA,"$(P)$(R)CenterTweak NPP NMS")
    field(INPB,"$(P)$(R)Center NPP NMS")
    field(CALC,"B-A")
    field(OUT, "$(P)$(R)Center PP NMS")
}

record(mbbo, "$(P)$(R)FilterType")
{
   field(ZRVL, "0")
   field(ZRST, "Parzen")
   field(ONVL, "1")
   field(ONST, "Shepp-logan")
   field(TWVL, "2")
   field(TWST, "Ramp")
   field(THVL, "3")
   field(THST, "Butterworth")
}

record(mbbo, "$(P)$(R)Dezinger")
{
   field(ZRVL, "0")
   field(ZRST, "None")
   field(ONVL, "2")
   field(ONST, "Radius 2")
   field(TWVL, "3")
   field(TWST, "Radius 3")
   field(THVL, "4")
   field(THST, "Radius 4")
}

record(mbbo, "$(P)$(R)RingRemoval")
{
   field(ZRVL, "0")
   field(ZRST, "None")
   field(ONVL, "1")
   field(ONST, "fw")   
}


record(longout, "$(P)$(R)OrthoX")
{
   field(LOPR, "0")
   field(HOPR, "2448")
}

record(longout, "$(P)$(R)OrthoY")
{
   field(LOPR, "0")
   field(HOPR, "2448")
}

record(longout, "$(P)$(R)OrthoZ")
{
   field(LOPR, "0")
   field(HOPR, "2448")
}

record(ao, "$(P)$(R)RotX")
{
   field(PREC, "1")   
   field(LOPR, "-180")
   field(HOPR, "180")
}

record(ao, "$(P)$(R)RotY")
{
   field(PREC, "1")   
   field(LOPR, "-180")
   field(HOPR, "180")
}

record(ao, "$(P)$(R)RotZ")
{
   field(PREC, "1")  
   field(LOPR, "-180")
   field(HOPR, "180") 
}

record(ao, "$(P)$(R)Energy")
{
   field(PREC, "2")  
   field(LOPR, "1")
   field(HOPR, "100") 
}

record(ao, "$(P)$(R)Distance")
{
   field(PREC, "1")  
   field(LOPR, "0")
   field(HOPR, "5000") 
}

record(ao, "$(P)$(R)Alpha")
{
   field(PREC, "8")  
   field(LOPR, "0")
   field(HOPR, "10000") 
}

record(ao, "$(P)$(R)PixelSize")
{
   field(PREC, "3")  
   field(LOPR, "1e-5")
   field(HOPR, "100") 
}

##################################
# Stream status via Channel Access
##################################

record(waveform,"$(P)$(R)ReconStatus") 
{
   field(FTVL, "UCHAR")
   field(NELM, "256")
}

record(ao, "$(P)$(R)ReconTime")
{
   field(PREC, "5")
}

record(calcout, "$(P)$(R)Watchdog")
{
   field(SCAN, "1 second")
   field(INPA, "$(P)$(R)Watchdog.VAL NPP")
   field(CALC, "A-1")
   field(OCAL, "A>0?1:0")
   field(OOPT, "On Change")
   field(DOPT, "Use OCAL")
   field(OUT,  "$(P)$(R)ServerRunning PP")
}

record(bi, "$(P)$(R)ServerRunning")
{
   field(ZNAM, "Stopped")
   field(ZSV,  "MAJOR")
   field(ONAM, "Running")
   field(OSV,  "NO_ALARM")
}

###################################
# Stream control via Channel Access
###################################

record(busy,"$(P)$(R)StartRecon")
{
   field(ZNAM,"Done")
   field(ZSV, "NO_ALARM")
   field(ONAM,"Acquire")
   field(OSV, "MINOR")
   field(VAL, "0")
}

record(bo,"$(P)$(R)AbortRecon")
{
   field(ZNAM,"No")
   field(ONAM,"Yes")
}