################################################################### # These records contain the basic statistics # ################################################################### record(bo, "$(P)$(R)ComputeStatistics") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))COMPUTE_STATISTICS") field(VAL, "1") field(ZNAM, "No") field(ONAM, "Yes") } record(bi, "$(P)$(R)ComputeStatistics_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))COMPUTE_STATISTICS") field(ZNAM, "No") field(ONAM, "Yes") field(ZSV, "NO_ALARM") field(OSV, "MINOR") field(SCAN, "I/O Intr") } record(longout, "$(P)$(R)BgdWidth") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BGD_WIDTH") field(VAL, "1") } record(longin, "$(P)$(R)BgdWidth_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))BGD_WIDTH") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)MinValue_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_VALUE") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)MaxValue_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAX_VALUE") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)MeanValue_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MEAN_VALUE") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)Sigma_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SIGMA_VALUE") field(PREC, "1") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)Total_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TOTAL") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)Net_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))NET") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)MinX_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_X") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)MinY_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MIN_Y") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)MaxX_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAX_X") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)MaxY_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))MAX_Y") field(SCAN, "I/O Intr") } ################################################################### # These records control whether centroid statistics are computed # ################################################################### record(bo, "$(P)$(R)ComputeCentroid") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))COMPUTE_CENTROID") field(VAL, "0") field(ZNAM, "No") field(ONAM, "Yes") } record(bi, "$(P)$(R)ComputeCentroid_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))COMPUTE_CENTROID") field(ZNAM, "No") field(ONAM, "Yes") field(ZSV, "NO_ALARM") field(OSV, "MINOR") field(SCAN, "I/O Intr") } ################################################################### # These records contain the centroid statistics # ################################################################### record(ao, "$(P)$(R)CentroidThreshold") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CENTROID_THRESHOLD") field(VAL, "1") } record(ai, "$(P)$(R)CentroidThreshold_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CENTROID_THRESHOLD") field(VAL, "0") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)CentroidX_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CENTROIDX_VALUE") field(PREC, "1") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)CentroidY_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CENTROIDY_VALUE") field(PREC, "1") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)SigmaX_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SIGMAX_VALUE") field(PREC, "1") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)SigmaY_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SIGMAY_VALUE") field(PREC, "1") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)SigmaXY_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))SIGMAXY_VALUE") field(PREC, "3") field(SCAN, "I/O Intr") } ################################################################### # These records control time series # ################################################################### record(mbbo, "$(P)$(R)TSControl") { field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_CONTROL") field(ZRVL, "0") field(ZRST, "Erase/Start") field(ONVL, "1") field(ONST, "Start") field(TWVL, "2") field(TWST, "Stop") field(THVL, "3") field(THST, "Read") } # This record periodically pokes the TSControl record with 3 to read the time series # but only when TSAcquiring = Acquiring record(longout, "$(P)$(R)TSRead") { field(SDIS, "$(P)$(R)TSAcquiring NPP NMS") field(DISV, "0") field(OUT, "$(P)$(R)TSControl PP MS") field(VAL, "3") field(SCAN, "1 second") } record(longout, "$(P)$(R)TSNumPoints") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_NUM_POINTS") field(VAL, "$(NCHANS)") field(DRVH, "$(NCHANS)") } record(longin, "$(P)$(R)TSCurrentPoint") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_CURRENT_POINT") field(SCAN, "I/O Intr") } record(bi, "$(P)$(R)TSAcquiring") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_ACQUIRING") field(ZNAM, "Done") field(ONAM, "Acquiring") field(ZSV, "NO_ALARM") field(OSV, "MINOR") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSMinValue") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_MIN_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSMinX") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_MIN_X") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSMinY") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_MIN_Y") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSMaxValue") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_MAX_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSMaxX") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_MAX_X") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSMaxY") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_MAX_Y") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSMeanValue") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_MEAN_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSSigma") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_SIGMA_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSTotal") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_TOTAL") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSNet") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_NET") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSCentroidX") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_CENTROIDX_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSCentroidY") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_CENTROIDY_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSSigmaX") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_SIGMAX_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSSigmaY") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_SIGMAY_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)TSSigmaXY") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))TS_SIGMAXY_VALUE") field(NELM, "$(NCHANS)") field(FTVL, "DOUBLE") field(SCAN, "I/O Intr") } ################################################################### # These records control profiles # ################################################################### record(bo, "$(P)$(R)ComputeProfiles") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))COMPUTE_PROFILES") field(VAL, "0") field(ZNAM, "No") field(ONAM, "Yes") } record(bi, "$(P)$(R)ComputeProfiles_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))COMPUTE_PROFILES") field(ZNAM, "No") field(ONAM, "Yes") field(ZSV, "NO_ALARM") field(OSV, "MINOR") field(SCAN, "I/O Intr") } record(longin, "$(P)$(R)ProfileSizeX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_SIZE_X") field(SCAN, "I/O Intr") } record(longin, "$(P)$(R)ProfileSizeY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_SIZE_Y") field(SCAN, "I/O Intr") } record(longout, "$(P)$(R)CursorX") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CURSOR_X") field(VAL, "256") } record(longin, "$(P)$(R)CursorX_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CURSOR_X") field(SCAN, "I/O Intr") } record(longout, "$(P)$(R)CursorY") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CURSOR_Y") field(VAL, "256") } record(longin, "$(P)$(R)CursorY_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))CURSOR_Y") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)ProfileAverageX_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_AVERAGE_X") field(FTVL, "DOUBLE") field(NELM, "$(XSIZE)") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)ProfileAverageY_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_AVERAGE_Y") field(FTVL, "DOUBLE") field(NELM, "$(YSIZE)") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)ProfileThresholdX_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_THRESHOLD_X") field(FTVL, "DOUBLE") field(NELM, "$(XSIZE)") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)ProfileThresholdY_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_THRESHOLD_Y") field(FTVL, "DOUBLE") field(NELM, "$(YSIZE)") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)ProfileCentroidX_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_CENTROID_X") field(FTVL, "DOUBLE") field(NELM, "$(XSIZE)") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)ProfileCentroidY_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_CENTROID_Y") field(FTVL, "DOUBLE") field(NELM, "$(YSIZE)") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)ProfileCursorX_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_CURSOR_X") field(FTVL, "DOUBLE") field(NELM, "$(XSIZE)") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)ProfileCursorY_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))PROFILE_CURSOR_Y") field(FTVL, "DOUBLE") field(NELM, "$(YSIZE)") field(SCAN, "I/O Intr") } ################################################################### # These are used to define the histogram # ################################################################### record(bo, "$(P)$(R)ComputeHistogram") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))COMPUTE_HISTOGRAM") field(VAL, "0") field(ZNAM, "No") field(ONAM, "Yes") } record(bi, "$(P)$(R)ComputeHistogram_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))COMPUTE_HISTOGRAM") field(ZNAM, "No") field(ONAM, "Yes") field(ZSV, "NO_ALARM") field(OSV, "MINOR") field(SCAN, "I/O Intr") } record(longout, "$(P)$(R)HistSize") { field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HIST_SIZE") field(VAL, "256") } record(longin, "$(P)$(R)HistSize_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HIST_SIZE") field(SCAN, "I/O Intr") } record(ao, "$(P)$(R)HistMin") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HIST_MIN") field(VAL, "0") } record(ai, "$(P)$(R)HistMin_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HIST_MIN") field(SCAN, "I/O Intr") } record(ao, "$(P)$(R)HistMax") { field(PINI, "YES") field(DTYP, "asynFloat64") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HIST_MAX") field(VAL, "255") } record(ai, "$(P)$(R)HistMax_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HIST_MAX") field(SCAN, "I/O Intr") } record(ai, "$(P)$(R)HistEntropy_RBV") { field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HIST_ENTROPY") field(PREC, "3") field(SCAN, "I/O Intr") } record(waveform, "$(P)$(R)Histogram_RBV") { field(DTYP, "asynFloat64ArrayIn") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HIST_ARRAY") field(FTVL, "DOUBLE") field(NELM, "$(HIST_SIZE)") field(SCAN, "I/O Intr") } ################################################################### # These records set the HOPR and LOPR values for the cursor # # and size to the maximum for the input array # ################################################################### record(longin, "$(P)$(R)MaxSizeX") { field(INP, "$(P)$(R)ProfileSizeX_RBV CP") field(FLNK, "$(P)$(R)SetXHOPR.PROC PP") } record(dfanout, "$(P)$(R)SetXHOPR") { field(DOL, "$(P)$(R)MaxSizeX NPP") field(OMSL, "closed_loop") field(OUTA, "$(P)$(R)CursorX.HOPR NPP") } record(longin, "$(P)$(R)MaxSizeY") { field(INP, "$(P)$(R)ProfileSizeY_RBV CP") field(FLNK, "$(P)$(R)SetYHOPR.PROC PP") } record(dfanout, "$(P)$(R)SetYHOPR") { field(DOL, "$(P)$(R)MaxSizeY NPP") field(OMSL, "closed_loop") field(OUTA, "$(P)$(R)CursorY.HOPR NPP") }