mctOptics.templateΒΆ

# Database for EPICS PVS for txm optics control
# This database contains all of the PVs used by the txmoptics base class.

#################################
# Cameras and Plugins PV Prefixes
#################################

record(stringout, "$(P)$(R)Camera0PVPrefix")
{
   field(VAL,  "$(CAMERA0)")
}

record(stringout, "$(P)$(R)Camera1PVPrefix")
{
   field(VAL,  "$(CAMERA1)")
}

record(stringout, "$(P)$(R)OverlayPlugin0PVPrefix")
{
   field(VAL,  "$(OVERLAY0)")
}

record(stringout, "$(P)$(R)OverlayPlugin1PVPrefix")
{
   field(VAL,  "$(OVERLAY1)")
}

record(stringout, "$(P)$(R)FilePlugin0PVPrefix")
{
   field(VAL,  "$(FILE_PLUGIN0)")
}

record(stringout, "$(P)$(R)FilePlugin1PVPrefix")
{
   field(VAL,  "$(FILE_PLUGIN1)")
}

record(stringout, "$(P)$(R)PvaPlugin0PVPrefix")
{
   field(VAL,  "$(PVA_PLUGIN0)")
}

record(stringout, "$(P)$(R)RoiPlugin0PVPrefix")
{
   field(VAL,  "$(ROI_PLUGIN0)")
}

record(stringout, "$(P)$(R)CbPlugin0PVPrefix")
{
   field(VAL,  "$(CB_PLUGIN0)")
}

record(stringout, "$(P)$(R)PvaPlugin1PVPrefix")
{
   field(VAL,  "$(PVA_PLUGIN1)")
}

record(stringout, "$(P)$(R)RoiPlugin1PVPrefix")
{
   field(VAL,  "$(ROI_PLUGIN1)")
}

record(stringout, "$(P)$(R)CbPlugin1PVPrefix")
{
   field(VAL,  "$(CB_PLUGIN1)")
}

############################
# Lens Sample X-Y-Z PV Names
############################
record(stringout, "$(P)$(R)LensSampleXPVName")
{
   field(VAL,  "$(LENS_SAMPLE_X)")
}

record(stringout, "$(P)$(R)LensSampleYPVName")
{
   field(VAL,  "$(LENS_SAMPLE_Y)")
}

record(stringout, "$(P)$(R)LensSampleZPVName")
{
   field(VAL,  "$(LENS_SAMPLE_Z)")
}

#####################
# Lens Focus PV Names
#####################
record(stringout, "$(P)$(R)Lens0FocusPVName")
{
   field(VAL,  "$(LENS0_FOCUS)")
}

record(stringout, "$(P)$(R)Lens1FocusPVName")
{
   field(VAL,  "$(LENS1_FOCUS)")
}

record(stringout, "$(P)$(R)Lens2FocusPVName")
{
   field(VAL,  "$(LENS2_FOCUS)")
}

##########################
# Camera rotation PV Names
##########################
record(stringout, "$(P)$(R)Camera0RotationPVName")
{
   field(VAL,  "$(CAM0_ROT)")
}

record(stringout, "$(P)$(R)Camera1RotationPVName")
{
   field(VAL,  "$(CAM1_ROT)")
}

###############################
# Optique Peter camera selector
###############################

record(mbbo, "$(P)$(R)CameraSelect") {
  field(DTYP, "Raw Soft Channel")
  field(NOBT, "3")
  field(ZRVL, "0x0")
  field(ONVL, "0x1")
  field(ZRST, "Pos. 0")
  field(ONST, "Pos. 1")
}

record(mbbo, "$(P)$(R)CameraSelected") {
  field(DTYP, "Raw Soft Channel")
  field(NOBT, "3")
  field(ZRVL, "0x0")
  field(ONVL, "0x1")
  field(TWVL, "0x2")
  field(ZRST, "Camera Selected 0")
  field(ONST, "Camera Selected 1")
  field(TWST, "Moving between cameras")
}

record(ao, "$(P)$(R)CameraPos0") {
  field(PREC, "4")
  field(VAL,  "$(CAMERA_POS0)")
}

record(ao, "$(P)$(R)CameraPos1") {
  field(PREC, "4")
  field(VAL,  "$(CAMERA_POS1)")
}

record(stringout, "$(P)$(R)CameraName0") {
  field(PINI, "YES")
  field(VAL, "Pos. 0")
  field(OUT, "$(P)$(R)CameraSelect.ZRST PP MS")
}

record(stringout, "$(P)$(R)CameraName1") {
  field(PINI, "YES")
  field(VAL, "Pos. 1")
  field(OUT, "$(P)$(R)CameraSelect.ONST PP MS")
}

record(stringout, "$(P)$(R)CameraMotorPVName")
{
   field(VAL,  "$(CAMERA_MOTOR)")
}

###############################
# Optique Peter camera rotation
###############################

record(ao, "$(P)$(R)Camera0Lens0Rotation")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera0Lens1Rotation")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera0Lens2Rotation")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens0Rotation")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens1Rotation")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens2Rotation")
{
   field(PREC,  "4")
   field(VAL,  0)
}


##########################
# Optique Peter lens focus
##########################

record(ao, "$(P)$(R)Camera0Lens0Focus")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera0Lens1Focus")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera0Lens2Focus")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens0Focus")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens1Focus")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens2Focus")
{
   field(PREC,  "4")
   field(VAL,  0)
}

#############################
# Optique Peter lens selector
#############################

record(mbbo, "$(P)$(R)LensSelect") {
  field(DTYP, "Raw Soft Channel")
  field(NOBT, "3")
  field(ZRVL, "0x0")
  field(ONVL, "0x1")
  field(TWVL, "0x2")
  field(ZRST, "Pos. 0")
  field(ONST, "Pos. 1")
  field(TWST, "Pos. 2")
}

record(ao, "$(P)$(R)Camera0LensPos0") {
  field(PREC, "4")
  field(VAL,  "$(CAM0_LENS_POS0)")
}

record(ao, "$(P)$(R)Camera0LensPos1") {
  field(PREC, "4")
  field(VAL,  "$(CAM0_LENS_POS1)")
}

record(ao, "$(P)$(R)Camera0LensPos2") {
  field(PREC, "4")
  field(VAL,  "$(CAM0_LENS_POS2)")
}

record(ao, "$(P)$(R)Camera1LensPos0") {
  field(PREC, "4")
  field(VAL,  "$(CAM1_LENS_POS0)")
}

record(ao, "$(P)$(R)Camera1LensPos1") {
  field(PREC, "4")
  field(VAL,  "$(CAM1_LENS_POS1)")
}

record(ao, "$(P)$(R)Camera1LensPos2") {
  field(PREC, "4")
  field(VAL,  "$(CAM1_LENS_POS2)")
}


record(stringout, "$(P)$(R)LensName0") {
  field(PINI, "YES")
  field(VAL, "Pos. 0")
  field(OUT, "$(P)$(R)LensSelect.ZRST PP MS")
}

record(stringout, "$(P)$(R)LensName1") {
  field(PINI, "YES")
  field(VAL, "Pos. 1")
  field(OUT, "$(P)$(R)LensSelect.ONST PP MS")
}

record(stringout, "$(P)$(R)LensName2") {
  field(PINI, "YES")
  field(VAL, "Pos. 2")
  field(OUT, "$(P)$(R)LensSelect.TWST PP MS")
}

record(stringout, "$(P)$(R)LensMotorPVName")
{
   field(VAL,  "$(LENS_MOTOR)")
}

######################
# Detector image cross
######################

record(mbbo, "$(P)$(R)CrossSelect") {
  field(DTYP, "Raw Soft Channel")
  field(NOBT, "3")
  field(ZRVL, "0x0")
  field(ONVL, "0x1")
  field(ZRST, "Yes")
  field(ONST, "No")
}

##############################
# Optique Peter lens 1 offsets
##############################

record(ao, "$(P)$(R)Camera0Lens1XOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera0Lens1YOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera0Lens1ZOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens1XOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens1YOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens1ZOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

##############################
# Optique Peter lens 2 offsets
##############################

record(ao, "$(P)$(R)Camera0Lens2XOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera0Lens2YOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera0Lens2ZOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens2XOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens2YOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

record(ao, "$(P)$(R)Camera1Lens2ZOffset")
{
   field(PREC,  "4")
   field(VAL,  0)
}

###############################
# MCT status via Channel Access
###############################

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

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")
}

###############
# Sync to motor
###############

record(busy, "$(P)$(R)Sync")
{
   field(ZNAM, "Done")
   field(ONAM, "Sync")
}

####################
# Optics information
####################

record(stringout, "$(P)$(R)ScintillatorType")
{
   field(VAL,  "Unknown")
}

record(ao, "$(P)$(R)ScintillatorThickness")
{
   field(PREC,  "0")
}

record(ao, "$(P)$(R)ImagePixelSize")
{
   field(PREC, "2")
   field(EGU,  "microns")
}

record(ao, "$(P)$(R)DetectorPixelSize")
{
   field(PREC, "2")
   field(EGU,  "microns")
}

record(stringout, "$(P)$(R)CameraObjective")
{
   field(VAL,  "Unknown")
}

record(ao, "$(P)$(R)CameraTubeLength")
{
   field(PREC, "0")
   field(EGU,  "mm")
}

############
# Lens names
############

record(stringout, "$(P)$(R)Lens0Name")
{
   field(VAL,  "Unknown")
}

record(stringout, "$(P)$(R)Lens1Name")
{
   field(VAL,  "Unknown")
}

record(stringout, "$(P)$(R)Lens2Name")
{
   field(VAL,  "Unknown")
}

##############
# Camera names
##############

record(stringout, "$(P)$(R)Camera0Name")
{
   field(VAL,  "Unknown")
}

record(stringout, "$(P)$(R)Camera1Name")
{
   field(VAL,  "Unknown")
}

####################
# Detectors cropping
####################
record(longout, "$(P)$(R)CutLeft")
{
}

record(longout, "$(P)$(R)CutRight")
{
}

record(longout, "$(P)$(R)CutTop")
{
}

record(longout, "$(P)$(R)CutBottom")
{
}

record(busy, "$(P)$(R)Cut")
{
   field(ZNAM, "Done")
   field(ONAM, "Cut")
}

record(ao, "$(P)$(R)SuggestedAngles")
{
   field(PREC,  "0")
   field(VAL,  0)
}

record(ao, "$(P)$(R)SuggestedAngleStep")
{
   field(PREC,  "5")
   field(VAL,  0)
}

##################
# Detector options
##################
record(mbbi, "$(P)$(R)Camera0Bit")
{
   field(ZRVL, "0")
   field(ZRST, "8-bit")
   field(ONVL, "1")
   field(ONST, "10-bit")
   field(TWVL, "2")
   field(TWST, "12-bit")
   field(THVL, "3")
   field(THST, "16-bit")
}

record(mbbi, "$(P)$(R)Camera1Bit")
{
   field(ZRVL, "0")
   field(ZRST, "8-bit")
   field(ONVL, "1")
   field(ONST, "10-bit")
   field(TWVL, "2")
   field(TWST, "12-bit")
   field(THVL, "3")
   field(THST, "16-bit")
}


###################
# Detectors binning
###################
record(mbbo, "$(P)$(R)CameraBinning")
{
   field(ZRVL, "0")
   field(ZRST, "1x")
   field(ONVL, "1")
   field(ONST, "2x")
   field(TWVL, "2")
   field(TWST, "4x")
}